mass(7)

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. @tex $$ m(u,v) = int_ega u v dx $$ for all $u,v in V$. @end tex

The V space may be either a `P0', `P1', `P2', `bubble', `P1d' and `P1d' finite element spaces for building a form see form(3).

The use of quadrature formulae is sometime usefull for building diagonal matrix. These approximate matrix are eay to invert. This procedure 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. @tex $$ m(q,v) = int_ega q v dx $$ for all $q in M$ and $v in V$. @end tex

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");
L2 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. @tex $$ m(u,v) = int_Gamma u v ds,
rall u, v in W $$ Let $V$ a space of functions defined on $ega$ and
$mma$ the trace operator from $V$ into $W$. $$ mb(u,v) = int_Gamma u mma v ds, rall u in W, v in V $$ $$ ab(u,v) = int_Gamma mma u mma v ds, rall u, v in V $$ @end tex

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(3)
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout