Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

s_grad_grad(3rheolef) [debian man page]

s_grad_grad(3rheolef)						    rheolef-6.1 					     s_grad_grad(3rheolef)

NAME
s_grad_grad -- grad_grad-like operator for the Stokes stream function computation SYNOPSIS
form(const space V, const space& V, "s_grad_grad"); DESCRIPTION
Assembly the form associated to the -div(grad) variant operator on a finite element space V. The V space may be a either P1 or P2 finite element space. See also form(2) and space(2). On cartesian coordinate systems, the form coincide with the "grad_grad" one (see grad_grad(3)): / | a(u,v) = | grad(u).grad(v) dx | / Omega The stream function on tri-dimensionnal cartesian coordinate systems is such that u = curl psi div psi = 0 where u is the velocity field. Taking the curl of the first relation, using the identity: curl(curl(psi)) = -div(grad(psi)) + grad(div(psi)) and using the div(psi)=0 relation leads to: -div(grad(psi)) = curl(u) This relation leads to a variational formulation involving the the "grad_grad" and the "curl" forms (see grad_grad(3), curl(3)). In the axisymmetric case, the stream function psi is scalar ans is defined from the velocity field u=(ur,uz) by (see Batchelor, 6th ed., 1967, p 543): d psi d psi uz = (1/r) ----- and ur = - (1/r) ----- d r d r See also http://en.wikipedia.org/wiki/Stokes_stream_function . Multiplying by rot(xi)=(d xi/dr, -d xi/dz), and integrating with r dr dz, we get a well-posed variationnal problem: a(psi,xi) = b(xi,u) with / | (d psi d xi d psi d xi) a(psi,xi) = | (----- ---- + ----- ----) dr dz | ( d r d r d z d z ) / Omega and / | (d xi d xi ) b(xi,u) = | (---- ur - ---- uz) r dr dz | (d z d r ) / Omega Notice that a is symmetric definite positive, but without the 'r' weight as is is usual for axisymmetric standard forms. The b form is named "s_curl", for the Stokes curl variant of the "curl" operator (see s_curl(3)) as it is closely related to the "curl" operator, but differs by the r and 1/r factors, as: ( d (r xi) d xi ) curl(xi) = ( (1/r) -------- ; - -----) ( d r d z ) while ( d xi d xi ) s_curl(xi) = ( ---- ; - ---- ) ( d r d z ) EXAMPLE
The following piece of code build the form associated to the P1 approximation: geo g("square"); space V(g, "P1"); form a(V, V, "s_grad_grad"); SEE ALSO
form(2), space(2), grad_grad(3), grad_grad(3), curl(3), s_curl(3) rheolef-6.1 rheolef-6.1 s_grad_grad(3rheolef)

Check Out this Related Man Page

mass(3rheolef)							    rheolef-6.1 						    mass(3rheolef)

NAME
mass -- L2 scalar product SYNOPSIS
form(const space& V, const space& V, "mass"); form(const space& M, const space& V, "mass"); form (const space& V, const space& V, "mass", const domain& gamma); form_diag(const space& V, "mass"); DESCRIPTION
Assembly the matrix associated to the L2 scalar product of the finite element space V. / | m(u,v) = | u v dx | / Omega The V space may be either a P0, P1, P2, bubble, P1d and P1d finite element spaces for building a form see form(2). The use of quadrature formulae is sometime usefull for building diagonal matrix. These approximate matrix are eay to invert. This proce- dure is available for P0 and P1 approximations. Notes that when dealing with discontinuous finite element space, i.e. P0 and P1d, the corresponding mass matrix is block diagonal, and the inv_mass form may be usefull. When two different space M and V are supplied, assembly the matrix associated to the projection operator from one finite element space M to space V. / | m(q,v) = | q v dx | / Omega for all q in M and v in V. This form is usefull for instance to convert discontinuous gradient components to a continuous approximation. The transpose operator may also be usefull to performs the opposite operation. The following $V$ and $M$ space approximation combinations are supported for the mass form: P0-P1, P0-P1d, P1d-P2, P1-P1d and P1-P2. EXAMPLE
The following piece of code build the mass matrix associated to the P1 approximation: geo g("square"); space V(g, "P1"); form m(V, V, "mass"); The use of lumped mass form write also: form_diag md(V, "mass"); The following piece of code build the projection form: geo g("square"); space V(g, "P1"); space M(g, "P0"); form m(M, V, "mass"); SCALAR PRODUCT ON THE BOUNDARY
Assembly the matrix associated to the L2 scalar product related to a boundary domain of a mesh and a specified polynomial approximation. These forms are usefull when defining non-homogeneous Neumann or Robin boundary conditions. Let W be a space of functions defined on Gamma, a subset of the boundary of the whole domain Omega. / | m(u,v) = | u v dx | / Gamma for all u, v in W. Let V a space of functions defined on Omega and gamma the trace operator from V into W. For all u in W and v in V: / | mb(u,v) = | u gamma(v) dx | / Gamma For all u and v in V: / | ab(u,v) = | gamma(u) gamma(v) dx | / Gamma EXAMPLE
The following piece of code build forms for the P1 approximation, assuming that the mesh contains a domain named boundary: geo omega ("square"); domain gamma = omega.boundary(); space V (omega, "P1"); space W (omega, gamma, "P1"); form m (W, W, "mass"); form mb (W, V, "mass"); form ab (V, V, "mass", gamma); SEE ALSO
form(2) rheolef-6.1 rheolef-6.1 mass(3rheolef)
Man Page