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 |
|
| curlcurledge nu |
|
| massedge sigma |
|
| robinedge sigma |
|