Next: Linear-forms Up: Reference Manual Previous: Grid-functions Contents

# Bilinear-forms

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=4

The <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

Next: Linear-forms Up: Reference Manual Previous: Grid-functions Contents