A bilinear form is defined by
define bilinearform <name> <flaglist> integrator1 integrator2 integrator3 ...Example
define bilinearform a -fespace=v laplace lam robin alpha
A bilinear-form is always defined as sum over integrators. A bilinear-form maintains the stiffness matrix. For multi-level algorithms, a bilinear-form stores all matrices. Bilinear-forms for high order spaces have a bilinear-form for the corresponding lowest order space.
The following flags are defined
-fespace=<name> | bilinear form is defined on fe space <name> |
-symmetric | bilinear form is symmetric (store just lower left triangular matrix) |
-nonassemble | do not allocate matrix (bilinear-form is used, e.g., for post-processing) |
An integrator is defined as
token <coef1> <coef2> ... <flaglist>Example:
elasticity coef_e coef_nu -order=4The <coefi> refers to a coefficient function defined above. It provides the coefficients defined sub-domain by dub-domain for integrators defined on the domain (e.g., laplace), or, the coefficient boundary-patch by boundary-patch for integrators defined on the surface (e.g., robin).
Allowed flags are
-order=num | use integration rule of order num. Default order is computed form element order. |
-comp=num | use scalar integrator as component num for system (e.g., penalty term for y-displacement). num=0 adds integrator to all components. |
-normal | add integrator in normal direction (penalty for normal-displacement) |
The integrator tokens are
laplace lam | |
mass rho | |
robin alpha | |
elasticity e nu | (with ..3D elasticity tensor, or plane stress) |
curlcurledge nu | for spaces |
massedge sigma | for spaces |
robinedge sigma | for spaces |