NAME¶
s_curl -- curl-like operator for the Stokes stream function computation
SYNOPSIS¶
form(const space M, const space& V, "s_curl");
DESCRIPTION¶
Assembly the form associated to the s_curl operator on a finite element space
V:
/
|
b(xi,u) = | u.s_curl(xi) dx
|
/ Omega
The M and V space may be a either
P1 or
P2 finite element space.
The M space is scalar-valued while the V is vector-valued. See also
form(2)
and
space(2).
For cartesian coordinate systems, this form coincide with the usual
"curl" one (see
curl(3)). In the axisymmetric case:
/
| (d xi d xi )
b(xi,u) = | (---- ur - ---- uz) r dr dz
| (d z d r )
/ Omega
The b form is denoted as "s_curl", for Stokes stream function
computation (see
s_grad_grad(3)) as it is closely related to the
"curl" operator (see
curl(3)), 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 )
Notice also that the differentiation is performed on the xi variable here:
b(xi,u)=(s_curl(xi),u) while the "curl" form brings the
differentiation on the u vector-valued variable: (curl(u),xi), i.e. a
transpose formulation.
ORIENTATION AND SIGN FIX¶
The (r,theta,z) coordinate system has positive orientation, thus (z,r,theta) and
(z,r) are positive also. But (r,z,theta) and (r,z) are negative : the sign of
s_curl is then inverted to obtain the same result as if (z,r) was used.
EXAMPLE¶
The following piece of code build the form associated to the
P1
approximation:
geo g("square");
space M(g, "P1");
space V(g, "P1", "vector");
form a(M, V, "s_curl");
SEE ALSO¶
form(2),
space(2),
curl(3),
s_grad_grad(3),
curl(3)