# Term Overview

## Term Syntax

In general, the syntax of a term call is:

`<term name>.<i>.<r>( <arg1>, <arg2>, ... )`,

where `<i>` denotes an integral name (i.e. a name of numerical quadrature to use) and `<r>` marks a region (domain of the integral).

The following notation is used:

Notation.
symbol | meaning
--- | ---
\Omega | cell (volume) (sub)domain
\Gamma | facet (surface) (sub)domain
\cal{D} | cell or facet (sub)domain
d | dimension of space
t | time
y | any function
\ul{y} | any vector function
\ul{n} | unit outward normal
q | scalar test or parameter function
p | scalar unknown or parameter function
\ul{v} | vector test or parameter function
\ul{w}, \ul{u} | vector unknown or parameter function
\ull{e}(\ul{u}) | Cauchy strain tensor (\frac{1}{2}((\nabla u) + (\nabla u)^T))
\ull{F} | deformation gradient F_{ij} = \pdiff{x_i}{X_j}
J | \det(F)
\ull{C} | right Cauchy-Green deformation tensor C = F^T F
\ull{E}(\ul{u}) | Green strain tensor E_{ij} = \frac{1}{2}(\pdiff{u_i}{X_j} + \pdiff{u_j}{X_i} + \pdiff{u_m}{X_i}\pdiff{u_m}{X_j})
\ull{S} | second Piola-Kirchhoff stress tensor
\ul{f} | vector volume forces
f | scalar volume force (source)
\rho | density
\nu | kinematic viscosity
c, \ul{c}, \ull{c} | any constant
\delta_{ij}, \ull{I} | Kronecker delta, identity matrix
\tr{\ull{\bullet}} | trace of a second order tensor (\sum_{i=1}^d \bullet_{ii})
\dev{\ull{\bullet}} | deviator of a second order tensor (\ull{\bullet} - \frac{1}{d}\tr{\ull{\bullet}})
T_K \in \Tcal_h | K-th element of triangulation (= mesh) \Tcal_h of domain \Omega
K \from \Ical_h | K is assigned values from \{0, 1, \dots, N_h-1\} \equiv \Ical_h in ascending order

The suffix “_0” denotes a quantity related to a previous time step.

Term names are (usually) prefixed according to the following conventions:

Term name prefixes.
prefix | meaning | evaluation modes | meaning
--- | --- | --- | ---
dw | discrete weak | ‘weak’ | terms having a virtual (test) argument and zero or more unknown arguments, used for FE assembling
ev | evaluate | ‘eval’, ‘el_eval’, ‘el_avg’, ‘qp’ | terms having all arguments known, modes ‘el_avg’, ‘qp’ are not supported by all ev_ terms
de | discrete einsum | any (work in progress) | multi-linear terms defined using an enriched einsum notation

Evaluation modes ‘eval’, ‘el_avg’ and ‘qp’ are defined as follows:

Evaluation modes.
mode | definition
--- | ---
‘eval’ | \int_{\cal{D}} (\cdot)
‘el_avg’ | vector for K \from \Ical_h: \int_{T_K} (\cdot) / \int_{T_K} 1
‘qp’ | (\cdot)|_{qp}

## Term Table

Below we list all the terms available in automatically generated tables. The first column lists the name, the second column the argument lists and the third column the mathematical definition of each term. The terms are devided into the following tables:

- Table of basic terms

- Table of large deformation terms (total/updated Lagrangian formulation)

- Table of sensitivity terms

- Table of special terms

- Table of multi-linear terms

The notation `<virtual>` corresponds to a test function, `<state>` to a unknown function and `<parameter>` to a known function. By `<material>` we denote material (constitutive) parameters, or, in general, any given function of space and time that parameterizes a term, for example a given traction force vector.

### Table of basic terms

Basic terms
name/class | arguments | definition | examples
--- | --- | --- | ---
dw_advect_div_free `AdvectDivFreeTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} \nabla \cdot (\ul{y} p) q = \int_{\Omega} (\underbrace{(\nabla \cdot \ul{y})}_{\equiv 0} + \ul{y} \cdot \nabla) p) q | tim.adv.dif
dw_bc_newton `BCNewtonTerm` | `<material_1>`, `<material_2>`, `<virtual>`, `<state>` | \int_{\Gamma} \alpha q (p - p_{\rm outer}) | tim.hea.equ.mul.mat
dw_biot `BiotTerm` | `<material>`, `<virtual/param_v>`, `<state/param_s>` `<material>`, `<state>`, `<virtual>` | \int_{\Omega} p\ \alpha_{ij} e_{ij}(\ul{v}) \mbox{ , } \int_{\Omega} q\ \alpha_{ij} e_{ij}(\ul{u}) | bio.npb, the.ela.ess, bio, bio.npb.lag, the.ela, bio.sho.syn
ev_biot_stress `BiotStressTerm` | `<material>`, `<parameter>` | - \int_{\Omega} \alpha_{ij} p |
ev_cauchy_strain `CauchyStrainTerm` | `<parameter>` | \int_{\cal{D}} \ull{e}(\ul{w}) |
ev_cauchy_stress `CauchyStressTerm` | `<material>`, `<parameter>` | \int_{\cal{D}} D_{ijkl} e_{kl}(\ul{w}) |
dw_contact `ContactTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Gamma_{c}} \varepsilon_N \langle g_N(\ul{u}) \rangle \ul{n} \ul{v} | two.bod.con
dw_contact_ipc `ContactIPCTerm` | `<material_m>`, `<material_k>`, `<material_d>`, `<material_p>`, `<virtual>`, `<state>` | \int_{\Gamma_{c}} \sum_{k \in C} \nabla b(d_k, \ul{u}) |
dw_contact_plane `ContactPlaneTerm` | `<material_f>`, `<material_n>`, `<material_a>`, `<material_b>`, `<virtual>`, `<state>` | \int_{\Gamma} \ul{v} \cdot f(d(\ul{u})) \ul{n} | ela.con.pla
dw_contact_sphere `ContactSphereTerm` | `<material_f>`, `<material_c>`, `<material_r>`, `<virtual>`, `<state>` | \int_{\Gamma} \ul{v} \cdot f(d(\ul{u})) \ul{n}(\ul{u}) | ela.con.sph
dw_convect `ConvectTerm` | `<virtual>`, `<state>` | \int_{\Omega} ((\ul{u} \cdot \nabla) \ul{u}) \cdot \ul{v} | nav.sto, nav.sto.iga, nav.sto
dw_convect_v_grad_s `ConvectVGradSTerm` | `<virtual>`, `<state_v>`, `<state_s>` | \int_{\Omega} q (\ul{u} \cdot \nabla p) | poi.fun
ev_def_grad `DeformationGradientTerm` | `<parameter>` | \ull{F} = \pdiff{\ul{x}}{\ul{X}}|_{qp} = \ull{I} + \pdiff{\ul{u}}{\ul{X}}|_{qp} \;, \\ \ul{x} = \ul{X} + \ul{u} \;, J = \det{(\ull{F})} |
dw_dg_advect_laxfrie_flux `AdvectionDGFluxTerm` | `<opt_material>`, `<material_advelo>`, `<virtual>`, `<state>` | \int_{\partial{T_K}} \ul{n} \cdot \ul{f}^{*} (p_{in}, p_{out})q where \ul{f}^{*}(p_{in}, p_{out}) = \ul{a} \frac{p_{in} + p_{out}}{2} + (1 - \alpha) \ul{n} C \frac{ p_{in} - p_{out}}{2}, | adv.dif.2D, adv.1D, adv.2D
dw_dg_diffusion_flux `DiffusionDGFluxTerm` | `<material>`, `<state>`, `<virtual>` `<material>`, `<virtual>`, `<state>` | \int_{\partial{T_K}} D \langle \nabla p \rangle [q] \mbox{ , } \int_{\partial{T_K}} D \langle \nabla q \rangle [p] where \langle \nabla \phi \rangle = \frac{\nabla\phi_{in} + \nabla\phi_{out}}{2} [\phi] = \phi_{in} - \phi_{out} | adv.dif.2D, bur.2D, lap.2D
dw_dg_interior_penalty `DiffusionInteriorPenaltyTerm` | `<material>`, `<material_Cw>`, `<virtual>`, `<state>` | \int_{\partial{T_K}} \bar{D} C_w \frac{Ord^2}{d(\partial{T_K})}[p][q] where [\phi] = \phi_{in} - \phi_{out} | adv.dif.2D, bur.2D, lap.2D
dw_dg_nonlinear_laxfrie_flux `NonlinearHyperbolicDGFluxTerm` | `<opt_material>`, `<fun>`, `<fun_d>`, `<virtual>`, `<state>` | \int_{\partial{T_K}} \ul{n} \cdot f^{*} (p_{in}, p_{out})q where \ul{f}^{*}(p_{in}, p_{out}) = \frac{\ul{f}(p_{in}) + \ul{f}(p_{out})}{2} + (1 - \alpha) \ul{n} C \frac{ p_{in} - p_{out}}{2}, | bur.2D
dw_diffusion `DiffusionTerm` | `<material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Omega} K_{ij} \nabla_i q \nabla_j p | ela.axi, dar.flo.mul, pie.ela, bio.npb, poi.neu, bio, bio.npb.lag, pie.ela, bio.sho.syn, vib.aco
dw_diffusion_coupling `DiffusionCoupling` | `<material>`, `<virtual/param_1>`, `<state/param_2>` `<material>`, `<state>`, `<virtual>` | \int_{\Omega} p K_{j} \nabla_j q \mbox{ , } \int_{\Omega} q K_{j} \nabla_j p |
dw_diffusion_r `DiffusionRTerm` | `<material>`, `<virtual>` | \int_{\Omega} K_{j} \nabla_j q |
ev_diffusion_velocity `DiffusionVelocityTerm` | `<material>`, `<parameter>` | - \int_{\cal{D}} K_{ij} \nabla_j p |
ev_div `DivTerm` | `<opt_material>`, `<parameter>` | \int_{\cal{D}} \nabla \cdot \ul{u} \mbox { , } \int_{\cal{D}} c \nabla \cdot \ul{u} |
dw_div `DivOperatorTerm` | `<opt_material>`, `<virtual>` | \int_{\Omega} \nabla \cdot \ul{v} \mbox { or } \int_{\Omega} c \nabla \cdot \ul{v} |
dw_div_grad `DivGradTerm` | `<opt_material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Omega} \nu\ \nabla \ul{v} : \nabla \ul{u} \mbox{ , } \int_{\Omega} \nabla \ul{v} : \nabla \ul{u} | nav.sto.iga, sto.sli.bc, sto, nav.sto, sta.nav.sto, nav.sto

dw_dot

`DotProductTerm`

`<opt_material>`, `<virtual/param_1>`, `<state/param_2>`

\int_{\cal{D}} q p \mbox{ , } \int_{\cal{D}} \ul{v} \cdot \ul{u}\\ \int_\Gamma \ul{v} \cdot \ul{n} p \mbox{ , } \int_\Gamma q \ul{n} \cdot \ul{u} \mbox{ , }\\ \int_{\cal{D}} c q p \mbox{ , } \int_{\cal{D}} c \ul{v} \cdot \ul{u} \mbox{ , } \int_{\cal{D}} \ul{v} \cdot \ull{c} \cdot \ul{u}

dar.flo.mul, aco, lin.ela.dam, osc, aco, poi.fun, pie.ela, ref.evp, lin.ela.up, the.ele, pie.ela, vib.aco, sto.sli.bc, bal, hel.apa, hyd, adv.2D, wel, tim.adv.dif, bor, bur.2D, adv.1D, mod.ana.dec, tim.poi, tim.poi.exp, tim.hea.equ.mul.mat, poi.per.bou.con

dw_elastic_wave `ElasticWaveTerm` | `<material_1>`, `<material_2>`, `<virtual>`, `<state>` | \int_{\Omega} D_{ijkl}\ g_{ij}(\ul{v}) g_{kl}(\ul{u}) |
dw_elastic_wave_cauchy `ElasticWaveCauchyTerm` | `<material_1>`, `<material_2>`, `<virtual>`, `<state>` `<material_1>`, `<material_2>`, `<state>`, `<virtual>` | \int_{\Omega} D_{ijkl}\ g_{ij}(\ul{v}) e_{kl}(\ul{u})\\ \int_{\Omega} D_{ijkl}\ g_{ij}(\ul{u}) e_{kl}(\ul{v}) |
dw_electric_source `ElectricSourceTerm` | `<material>`, `<virtual>`, `<parameter>` | \int_{\Omega} c s (\nabla \phi)^2 | the.ele
ev_grad `GradTerm` | `<opt_material>`, `<parameter>` | \int_{\cal{D}} \nabla p \mbox{ or } \int_{\cal{D}} \nabla \ul{u}\\ \int_{\cal{D}} c \nabla p \mbox{ or } \int_{\cal{D}} c \nabla \ul{u} |
dw_integrate `IntegrateOperatorTerm` | `<opt_material>`, `<virtual>` | \int_{\cal{D}} q \mbox{ or } \int_{\cal{D}} c q | dar.flo.mul, aco, hel.apa, tim.hea.equ.mul.mat, aco, poi.neu, vib.aco, poi.per.bou.con
ev_integrate `IntegrateTerm` | `<opt_material>`, `<parameter>` | \int_{\cal{D}} y \mbox{ , } \int_{\cal{D}} \ul{y} \mbox{ , } \int_\Gamma \ul{y} \cdot \ul{n}\\ \int_{\cal{D}} c y \mbox{ , } \int_{\cal{D}} c \ul{y} \mbox{ , } \int_\Gamma c \ul{y} \cdot \ul{n} \mbox{ flux } |
ev_integrate_mat `IntegrateMatTerm` | `<material>`, `<parameter>` | \int_{\cal{D}} c |
dw_jump `SurfaceJumpTerm` | `<opt_material>`, `<virtual>`, `<state_1>`, `<state_2>` | \int_{\Gamma} c\, q (p_1 - p_2) | aco

dw_laplace

`LaplaceTerm`

`<opt_material>`, `<virtual/param_1>`, `<state/param_2>`

\int_{\Omega} c \nabla q \cdot \nabla p

aco, osc, lap.flu.2d, aco, poi.fun, cub, poi, adv.dif.2D, ref.evp, lap.tim.ebc, the.ele, poi.iga, lap.cou.lcb, vib.aco, sin, poi.par.stu, poi.fie.dep.mat, sto.sli.bc, hel.apa, hyd, wel, tim.adv.dif, bor, bur.2D, lap.1d, poi.sho.syn, lap.2D, tim.poi, tim.poi.exp, the.ela.ess, tim.hea.equ.mul.mat, poi.per.bou.con

dw_lin_convect `LinearConvectTerm` | `<virtual>`, `<parameter>`, `<state>` | \int_{\Omega} ((\ul{w} \cdot \nabla) \ul{u}) \cdot \ul{v} ((\ul{w} \cdot \nabla) \ul{u})|_{qp} | sta.nav.sto
dw_lin_convect2 `LinearConvect2Term` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} ((\ul{c} \cdot \nabla) \ul{u}) \cdot \ul{v} ((\ul{c} \cdot \nabla) \ul{u})|_{qp} |
dw_lin_dspring `LinearDSpringTerm` | `<opt_material>`, `<material>`, `<virtual>`, `<state>` | f^{(i)}_k = -f^{(j)}_k = K_{kl} (u^{(j)}_l - u^{(i)}_l)\\ \quad \forall \mbox{ elements } T_K^{i,j}\\ \mbox{ in a region connecting nodes } i, j |
dw_lin_dspring_rot `LinearDRotSpringTerm` | `<opt_material>`, `<material>`, `<virtual>`, `<state>` | f^{(i)}_k = -f^{(j)}_k = K_{kl} (u^{(j)}_l - u^{(i)}_l)\\ \quad \forall \mbox{ elements } T_K^{i,j}\\ \mbox{ in a region connecting nodes } i, j | mul.poi.con

dw_lin_elastic

`LinearElasticTerm`

`<material>`, `<virtual/param_1>`, `<state/param_2>`

\int_{\Omega} D_{ijkl}\ e_{ij}(\ul{v}) e_{kl}(\ul{u})

lin.ela.tra, lin.ela.mM, lin.ela.dam, rig.twi, two.bod.con, bio, tru.bri, its.4, ela, wed.mes, the.ela, bio.sho.syn, its.3, nod.lcb, its.2, bio.npb.lag, pie.ela.mac, lin.ela, pie.ela, lin.ela.up, pie.ela, lin.ela.opt, mul.nod.lcb, mix.mes, mul.poi.con, vib.aco, bio.npb, ela.con.sph, its.1, mod.ana.dec, mat.non, lin.vis, com.ela.mat, sei.loa, the.ela.ess, ela.con.pla, ela.shi.per, lin.ela.iga, pre.fib

dw_lin_elastic_iso `LinearElasticIsotropicTerm` | `<material_1>`, `<material_2>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Omega} D_{ijkl}\ e_{ij}(\ul{v}) e_{kl}(\ul{u})\\ \mbox{ with } \\ D_{ijkl} = \mu (\delta_{ik} \delta_{jl}+\delta_{il} \delta_{jk}) + \lambda \ \delta_{ij} \delta_{kl} |
dw_lin_prestress `LinearPrestressTerm` | `<material>`, `<virtual/param>` | \int_{\Omega} \sigma_{ij} e_{ij}(\ul{v}) | non.hyp.mM, pre.fib, pie.ela.mac
dw_lin_spring `LinearSpringTerm` | `<material>`, `<virtual>`, `<state>` | \ul{f}^{(i)} = - \ul{f}^{(j)} = k (\ul{u}^{(j)} - \ul{u}^{(i)})\\ \quad \forall \mbox{ elements } T_K^{i,j}\\ \mbox{ in a region connecting nodes } i, j |
dw_lin_strain_fib `LinearStrainFiberTerm` | `<material_1>`, `<material_2>`, `<virtual>` | \int_{\Omega} D_{ijkl} e_{ij}(\ul{v}) \left(d_k d_l\right) | pre.fib
dw_lin_truss `LinearTrussTerm` | `<material>`, `<virtual>`, `<state>` | F^{(i)} = -F^{(j)} = EA / l (U^{(j)} - U^{(i)})\\ \quad \forall \mbox{ elements } T_K^{i,j}\\ \mbox{ in a region connecting nodes } i, j | tru.bri, tru.bri
ev_lin_truss_force `LinearTrussInternalForceTerm` | `<material>`, `<parameter>` | F = EA / l (U^{(j)} - U^{(i)})\\ \quad \forall \mbox{ elements } T_K^{i,j}\\ \mbox{ in a region connecting nodes } i, j |
dw_nl_diffusion `NonlinearDiffusionTerm` | `<fun>`, `<dfun>`, `<virtual>`, `<state>` | \int_{\Omega} \nabla q \cdot \nabla p f(p) | poi.non.mat
dw_non_penetration `NonPenetrationTerm` | `<opt_material>`, `<virtual>`, `<state>` `<opt_material>`, `<state>`, `<virtual>` | \int_{\Gamma} c \lambda \ul{n} \cdot \ul{v} \mbox{ , } \int_{\Gamma} c \hat\lambda \ul{n} \cdot \ul{u} \\ \int_{\Gamma} \lambda \ul{n} \cdot \ul{v} \mbox{ , } \int_{\Gamma} \hat\lambda \ul{n} \cdot \ul{u} | bio.npb.lag
dw_non_penetration_p `NonPenetrationPenaltyTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Gamma} c (\ul{n} \cdot \ul{v}) (\ul{n} \cdot \ul{u}) | bio.sho.syn
dw_nonsym_elastic `NonsymElasticTerm` | `<material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Omega} \ull{D} \nabla\ul{u} : \nabla\ul{v} | non.hyp.mM
dw_ns_dot_grad_s `NonlinearScalarDotGradTerm` | `<fun>`, `<fun_d>`, `<virtual>`, `<state>` `<fun>`, `<fun_d>`, `<state>`, `<virtual>` | \int_{\Omega} q \cdot \nabla \cdot \ul{f}(p) = \int_{\Omega} q \cdot \text{div} \ul{f}(p) \mbox{ , } \int_{\Omega} \ul{f}(p) \cdot \nabla q | bur.2D
dw_piezo_coupling `PiezoCouplingTerm` | `<material>`, `<virtual/param_v>`, `<state/param_s>` `<material>`, `<state>`, `<virtual>` | \int_{\Omega} g_{kij}\ e_{ij}(\ul{v}) \nabla_k p\\ \int_{\Omega} g_{kij}\ e_{ij}(\ul{u}) \nabla_k q | pie.ela, pie.ela
ev_piezo_strain `PiezoStrainTerm` | `<material>`, `<parameter>` | \int_{\Omega} g_{kij} e_{ij}(\ul{u}) |
ev_piezo_stress `PiezoStressTerm` | `<material>`, `<parameter>` | \int_{\Omega} g_{kij} \nabla_k p |
dw_point_load `ConcentratedPointLoadTerm` | `<material>`, `<virtual>` | \ul{f}^i = \ul{\bar f}^i \quad \forall \mbox{ FE node } i \mbox{ in a region } | its.1, tru.bri, she.can, its.4, its.3, its.2
dw_point_lspring `LinearPointSpringTerm` | `<material>`, `<virtual>`, `<state>` | \ul{f}^i = -k \ul{u}^i \quad \forall \mbox{ FE node } i \mbox{ in a region } |
dw_s_dot_grad_i_s `ScalarDotGradIScalarTerm` | `<material>`, `<virtual>`, `<state>` | Z^i = \int_{\Omega} q \nabla_i p | ela.axi
dw_s_dot_mgrad_s `ScalarDotMGradScalarTerm` | `<material>`, `<virtual>`, `<state>` `<material>`, `<state>`, `<virtual>` | \int_{\Omega} q \ul{y} \cdot \nabla p \mbox{ , } \int_{\Omega} p \ul{y} \cdot \nabla q | adv.dif.2D, adv.1D, adv.2D
dw_shell10x `Shell10XTerm` | `<material_d>`, `<material_drill>`, `<virtual>`, `<state>` | \int_{\Omega} D_{ijkl}\ e_{ij}(\ul{v}) e_{kl}(\ul{u}) | she.can
dw_stokes `StokesTerm` | `<opt_material>`, `<virtual/param_v>`, `<state/param_s>` `<opt_material>`, `<state>`, `<virtual>` | \int_{\Omega} p\ \nabla \cdot \ul{v} \mbox{ , } \int_{\Omega} q\ \nabla \cdot \ul{u}\\ \mbox{ or } \int_{\Omega} c\ p\ \nabla \cdot \ul{v} \mbox{ , } \int_{\Omega} c\ q\ \nabla \cdot \ul{u} | nav.sto.iga, sto.sli.bc, sto, lin.ela.up, nav.sto, sta.nav.sto, nav.sto
dw_stokes_wave `StokesWaveTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} (\ul{\kappa} \cdot \ul{v}) (\ul{\kappa} \cdot \ul{u}) |
dw_stokes_wave_div `StokesWaveDivTerm` | `<material>`, `<virtual>`, `<state>` `<material>`, `<state>`, `<virtual>` | \int_{\Omega} (\ul{\kappa} \cdot \ul{v}) (\nabla \cdot \ul{u}) \;, \int_{\Omega} (\ul{\kappa} \cdot \ul{u}) (\nabla \cdot \ul{v}) |
ev_sum_vals `SumNodalValuesTerm` | `<parameter>` |  |
ev_surface_flux `SurfaceFluxTerm` | `<material>`, `<parameter>` | \int_{\Gamma} \ul{n} \cdot K_{ij} \nabla_j p |
dw_surface_flux `SurfaceFluxOperatorTerm` | `<opt_material>`, `<virtual>`, `<state>` | \int_{\Gamma} q \ul{n} \cdot \ull{K} \cdot \nabla p |
dw_surface_ltr `LinearTractionTerm` | `<opt_material>`, `<virtual/param>` | \int_{\Gamma} \ul{v} \cdot \ull{\sigma} \cdot \ul{n}, \int_{\Gamma} \ul{v} \cdot \ul{n}, | lin.ela.tra, nod.lcb, lin.vis, com.ela.mat, tru.bri, mix.mes, wed.mes, ela.shi.per, lin.ela.opt
ev_surface_moment `SurfaceMomentTerm` | `<material>`, `<parameter>` | \int_{\Gamma} \ul{n} (\ul{x} - \ul{x}_0) |
dw_surface_ndot `SufaceNormalDotTerm` | `<material>`, `<virtual/param>` | \int_{\Gamma} q \ul{c} \cdot \ul{n} | lap.flu.2d
ev_surface_piezo_flux `SurfacePiezoFluxTerm` | `<material>`, `<parameter>` | \int_{\Gamma} g_{kij} e_{ij}(\ul{u}) n_k |

dw_v_dot_grad_s

`VectorDotGradScalarTerm`

`<opt_material>`, `<virtual/param_v>`, `<state/param_s>`

`<opt_material>`, `<state>`, `<virtual>`

\int_{\Omega} \ul{v} \cdot \nabla p \mbox{ , } \int_{\Omega} \ul{u} \cdot \nabla q \\ \int_{\Omega} c \ul{v} \cdot \nabla p \mbox{ , } \int_{\Omega} c \ul{u} \cdot \nabla q \\ \int_{\Omega} \ul{v} \cdot (\ull{c} \nabla p) \mbox{ , } \int_{\Omega} \ul{u} \cdot (\ull{c} \nabla q)

vib.aco

dw_vm_dot_s `VectorDotScalarTerm` | `<material>`, `<virtual/param_v>`, `<state/param_s>` `<material>`, `<state>`, `<virtual>` | \int_{\Omega} \ul{v} \cdot \ul{c} p \mbox{ , } \int_{\Omega} \ul{u} \cdot \ul{c} q\\ |
ev_volume `VolumeTerm` | `<parameter>` | \int_{\cal{D}} 1 |
dw_volume_lvf `LinearVolumeForceTerm` | `<material>`, `<virtual>` | \int_{\Omega} \ul{f} \cdot \ul{v} \mbox{ or } \int_{\Omega} f q | poi.par.stu, bur.2D, poi.iga, adv.dif.2D
dw_volume_nvf `NonlinearVolumeForceTerm` | `<fun>`, `<dfun>`, `<virtual>`, `<state>` | \int_{\Omega} q f(p) | poi.non.mat
ev_volume_surface `VolumeSurfaceTerm` | `<parameter>` | 1 / D \int_\Gamma \ul{x} \cdot \ul{n} |
dw_zero `ZeroTerm` | `<virtual>`, `<state>` | 0 | ela

### Table of sensitivity terms

Sensitivity terms
name/class | arguments | definition | examples
--- | --- | --- | ---
dw_adj_convect1 `AdjConvect1Term` | `<virtual>`, `<state>`, `<parameter>` | \int_{\Omega} ((\ul{v} \cdot \nabla) \ul{u}) \cdot \ul{w} |
dw_adj_convect2 `AdjConvect2Term` | `<virtual>`, `<state>`, `<parameter>` | \int_{\Omega} ((\ul{u} \cdot \nabla) \ul{v}) \cdot \ul{w} |
dw_adj_div_grad `AdjDivGradTerm` | `<material_1>`, `<material_2>`, `<virtual>`, `<parameter>` | w \delta_{u} \Psi(\ul{u}) \circ \ul{v} |
ev_sd_convect `SDConvectTerm` | `<parameter_u>`, `<parameter_w>`, `<parameter_mv>` | \int_{\Omega} [ u_k \pdiff{u_i}{x_k} w_i (\nabla \cdot \Vcal) - u_k \pdiff{\Vcal_j}{x_k} \pdiff{u_i}{x_j} w_i ] |
de_sd_diffusion `ESDDiffusionTerm` | `<material>`, `<virtual/param_1>`, `<state/param_2>`, `<parameter_mv>` | \int_{\Omega} \hat{K}_{ij} \nabla_i q\, \nabla_j p \hat{K}_{ij} = K_{ij}\left( \delta_{ik}\delta_{jl} \nabla \cdot \ul{\Vcal} - \delta_{ik}{\partial \Vcal_j \over \partial x_l} - \delta_{jl}{\partial \Vcal_i \over \partial x_k}\right) |
ev_sd_diffusion `SDDiffusionTerm` | `<material>`, `<parameter_q>`, `<parameter_p>`, `<parameter_mv>` | \int_{\Omega} \hat{K}_{ij} \nabla_i q\, \nabla_j p \hat{K}_{ij} = K_{ij}\left( \delta_{ik}\delta_{jl} \nabla \cdot \ul{\Vcal} - \delta_{ik}{\partial \Vcal_j \over \partial x_l} - \delta_{jl}{\partial \Vcal_i \over \partial x_k}\right) |
ev_sd_div `SDDivTerm` | `<parameter_u>`, `<parameter_p>`, `<parameter_mv>` | \int_{\Omega} p [ (\nabla \cdot \ul{w}) (\nabla \cdot \ul{\Vcal}) - \pdiff{\Vcal_k}{x_i} \pdiff{w_i}{x_k} ] |

de_sd_div_grad

`ESDDivGradTerm`

`<opt_material>`, `<virtual/param_1>`, `<state/param_2>`, `<parameter_mv>`

\int_{\Omega} \hat{I} \nabla \ul{v} : \nabla \ul{u} \mbox{ , } \int_{\Omega} \nu \hat{I} \nabla \ul{v} : \nabla \ul{u}

\hat{I}_{ijkl} = \delta_{ik}\delta_{jl} \nabla \cdot \ul{\Vcal} - \delta_{ik}\delta_{js} {\partial \Vcal_l \over \partial x_s} - \delta_{is}\delta_{jl} {\partial \Vcal_k \over \partial x_s}

ev_sd_div_grad

`SDDivGradTerm`

`<opt_material>`, `<parameter_u>`, `<parameter_w>`, `<parameter_mv>`

\int_{\Omega} \hat{I} \nabla \ul{v} : \nabla \ul{u} \mbox{ , } \int_{\Omega} \nu \hat{I} \nabla \ul{v} : \nabla \ul{u}

\hat{I}_{ijkl} = \delta_{ik}\delta_{jl} \nabla \cdot \ul{\Vcal} - \delta_{ik}\delta_{js} {\partial \Vcal_l \over \partial x_s} - \delta_{is}\delta_{jl} {\partial \Vcal_k \over \partial x_s}

ev_sd_dot `SDDotTerm` | `<parameter_1>`, `<parameter_2>`, `<parameter_mv>` | \int_{\Omega} p q (\nabla \cdot \ul{\Vcal}) \mbox{ , } \int_{\Omega} (\ul{u} \cdot \ul{w}) (\nabla \cdot \ul{\Vcal}) |

de_sd_dot

`ESDDotTerm`

`<opt_material>`, `<virtual/param_1>`, `<state/param_2>`, `<parameter_mv>`

\int_\Omega q p (\nabla \cdot \ul{\Vcal}) \mbox{ , } \int_\Omega (\ul{v} \cdot \ul{u}) (\nabla \cdot \ul{\Vcal})\\ \int_\Omega c q p (\nabla \cdot \ul{\Vcal}) \mbox{ , } \int_\Omega c (\ul{v} \cdot \ul{u}) (\nabla \cdot \ul{\Vcal})\\ \int_\Omega \ul{v} \cdot (\ull{M}\, \ul{u}) (\nabla \cdot \ul{\Vcal})

de_sd_lin_elastic `ESDLinearElasticTerm` | `<material>`, `<virtual/param_1>`, `<state/param_2>`, `<parameter_mv>` | \int_{\Omega} \hat{D}_{ijkl} {\partial v_i \over \partial x_j} {\partial u_k \over \partial x_l} \hat{D}_{ijkl} = D_{ijkl}(\nabla \cdot \ul{\Vcal}) - D_{ijkq}{\partial \Vcal_l \over \partial x_q} - D_{iqkl}{\partial \Vcal_j \over \partial x_q} |
ev_sd_lin_elastic `SDLinearElasticTerm` | `<material>`, `<parameter_w>`, `<parameter_u>`, `<parameter_mv>` | \int_{\Omega} \hat{D}_{ijkl}\ e_{ij}(\ul{v}) e_{kl}(\ul{u}) \hat{D}_{ijkl} = D_{ijkl}(\nabla \cdot \ul{\Vcal}) - D_{ijkq}{\partial \Vcal_l \over \partial x_q} - D_{iqkl}{\partial \Vcal_j \over \partial x_q} |
ev_sd_piezo_coupling `SDPiezoCouplingTerm` | `<material>`, `<parameter_u>`, `<parameter_p>`, `<parameter_mv>` | \int_{\Omega} \hat{g}_{kij}\ e_{ij}(\ul{u}) \nabla_k p \hat{g}_{kij} = g_{kij}(\nabla \cdot \ul{\Vcal}) - g_{kil}{\partial \Vcal_j \over \partial x_l} - g_{lij}{\partial \Vcal_k \over \partial x_l} |

de_sd_piezo_coupling

`ESDPiezoCouplingTerm`

`<material>`, `<virtual/param_v>`, `<state/param_s>`, `<parameter_mv>`

`<material>`, `<state>`, `<virtual>`, `<parameter_mv>`

\int_{\Omega} \hat{g}_{kij}\ e_{ij}(\ul{v}) \nabla_k p \mbox{ , } \int_{\Omega} \hat{g}_{kij}\ e_{ij}(\ul{u}) \nabla_k q

\hat{g}_{kij} = g_{kij}(\nabla \cdot \ul{\Vcal}) - g_{kil}{\partial \Vcal_j \over \partial x_l} - g_{lij}{\partial \Vcal_k \over \partial x_l}

de_sd_stokes `ESDStokesTerm` | `<opt_material>`, `<virtual/param_v>`, `<state/param_s>`, `<parameter_mv>` `<opt_material>`, `<state>`, `<virtual>`, `<parameter_mv>` | \int_{\Omega} p\, \hat{I}_{ij} {\partial v_i \over \partial x_j} \mbox{ , } \int_{\Omega} q\, \hat{I}_{ij} {\partial u_i \over \partial x_j} \hat{I}_{ij} = \delta_{ij} \nabla \cdot \Vcal - {\partial \Vcal_j \over \partial x_i} |
ev_sd_surface_integrate `SDSufaceIntegrateTerm` | `<parameter>`, `<parameter_mv>` | \int_{\Gamma} p \nabla \cdot \ul{\Vcal} |
ev_sd_surface_ltr `SDLinearTractionTerm` | `<opt_material>`, `<parameter>`, `<parameter_mv>` | \int_{\Gamma} \ul{v} \cdot (\ull{\sigma}\, \ul{n}), \int_{\Gamma} \ul{v} \cdot \ul{n}, |
de_sd_surface_ltr `ESDLinearTractionTerm` | `<opt_material>`, `<virtual/param>`, `<parameter_mv>` | \int_{\Gamma} \ul{v} \cdot \left[\left(\ull{\hat{\sigma}}\, \nabla \cdot \ul{\cal{V}} - \ull{{\hat\sigma}}\, \nabla \ul{\cal{V}} \right)\ul{n}\right] \ull{\hat\sigma} = \ull{I} \mbox{ , } \ull{\hat\sigma} = c\,\ull{I} \mbox{ or } \ull{\hat\sigma} = \ull{\sigma} |

de_sd_v_dot_grad_s

`ESDVectorDotGradScalarTerm`

`<opt_material>`, `<virtual/param_v>`, `<state/param_s>`, `<parameter_mv>`

`<opt_material>`, `<state>`, `<virtual>`, `<parameter_mv>`

\int_{\Omega} \hat{I}_{ij} {\partial p \over \partial x_j}\, v_i \mbox{ , } \int_{\Omega} \hat{I}_{ij} {\partial q \over \partial x_j}\, u_i

\hat{I}_{ij} = \delta_{ij} \nabla \cdot \Vcal - {\partial \Vcal_j \over \partial x_i}

### Table of large deformation terms

Large deformation terms
name/class | arguments | definition | examples
--- | --- | --- | ---
dw_tl_bulk_active `BulkActiveTLTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v}) |
dw_tl_bulk_penalty `BulkPenaltyTLTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v}) | act.fib, hyp, com.ela.mat
dw_tl_bulk_pressure `BulkPressureTLTerm` | `<virtual>`, `<state>`, `<state_p>` | \int_{\Omega} S_{ij}(p) \delta E_{ij}(\ul{u};\ul{v}) | per.tl, bal
dw_tl_diffusion `DiffusionTLTerm` | `<material_1>`, `<material_2>`, `<virtual>`, `<state>`, `<parameter>` | \int_{\Omega} \ull{K}(\ul{u}^{(n-1)}) : \pdiff{q}{\ul{X}} \pdiff{p}{\ul{X}} | per.tl
dw_tl_fib_a `FibresActiveTLTerm` | `<material_1>`, `<material_2>`, `<material_3>`, `<material_4>`, `<material_5>`, `<virtual>`, `<state>` | \int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v}) | act.fib
dw_tl_fib_e `FibresExponentialTLTerm` | `<material_1>`, `<material_2>`, `<material_3>`, `<material_4>`, `<virtual>`, `<state>` | \int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v}) |
dw_tl_fib_spe `FibresSoftPlusExponentialTLTerm` | `<opt_material_0>`, `<material_1>`, `<material_2>`, `<material_3>`, `<material_4>`, `<virtual>`, `<state>` | \int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v}) |
dw_tl_he_genyeoh `GenYeohTLTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v}) |
dw_tl_he_mooney_rivlin `MooneyRivlinTLTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v}) | hyp, com.ela.mat, bal
dw_tl_he_neohook `NeoHookeanTLTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v}) | bal, per.tl, com.ela.mat, hyp, act.fib
dw_tl_he_ogden `OgdenTLTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v}) |
dw_tl_he_svk `SaintVenantKirchhoffTLTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v}) | com.ela.mat
dw_tl_membrane `TLMembraneTerm` | `<material_a1>`, `<material_a2>`, `<material_h0>`, `<virtual>`, `<state>` |  | bal
ev_tl_surface_flux `SurfaceFluxTLTerm` | `<material_1>`, `<material_2>`, `<parameter_1>`, `<parameter_2>` | \int_{\Gamma} \ul{\nu} \cdot \ull{K}(\ul{u}^{(n-1)}) \pdiff{p}{\ul{X}} |
dw_tl_surface_traction `SurfaceTractionTLTerm` | `<opt_material>`, `<virtual>`, `<state>` | \int_{\Gamma} \ul{\nu} \cdot \ull{F}^{-1} \cdot \ull{\sigma} \cdot \ul{v} J | per.tl
dw_tl_volume `VolumeTLTerm` | `<virtual>`, `<state>` | \begin{array}{l} \int_{\Omega} q J(\ul{u}) \\ \mbox{volume mode: vector for } K \from \Ical_h: \int_{T_K} J(\ul{u}) \\ \mbox{rel\_volume mode: vector for } K \from \Ical_h: \int_{T_K} J(\ul{u}) / \int_{T_K} 1 \end{array} | per.tl, bal
ev_tl_volume_surface `VolumeSurfaceTLTerm` | `<parameter>` | 1 / D \int_{\Gamma} \ul{\nu} \cdot \ull{F}^{-1} \cdot \ul{x} J |
dw_ul_bulk_penalty `BulkPenaltyULTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} \mathcal{L}\tau_{ij}(\ul{u}) e_{ij}(\delta\ul{v})/J | hyp.ul
dw_ul_bulk_pressure `BulkPressureULTerm` | `<virtual>`, `<state>`, `<state_p>` | \int_{\Omega} \mathcal{L}\tau_{ij}(\ul{u}) e_{ij}(\delta\ul{v})/J | hyp.ul.up
dw_ul_compressible `CompressibilityULTerm` | `<material>`, `<virtual>`, `<state>`, `<parameter_u>` | \int_{\Omega} 1\over \gamma p \, q | hyp.ul.up
dw_ul_he_by_fun `HyperelasticByFunULTerm` | `<fun>`, `<virtual>`, `<state>` | \int_{\Omega} \mathcal{L}\tau_{ij}(\ul{u}) e_{ij}(\delta\ul{v})/J |
dw_ul_he_mooney_rivlin `MooneyRivlinULTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} \mathcal{L}\tau_{ij}(\ul{u}) e_{ij}(\delta\ul{v})/J | hyp.ul.up, hyp.ul
dw_ul_he_neohook `NeoHookeanULTerm` | `<material>`, `<virtual>`, `<state>` | \int_{\Omega} \mathcal{L}\tau_{ij}(\ul{u}) e_{ij}(\delta\ul{v})/J | hyp.ul.up, hyp.ul
dw_ul_volume `VolumeULTerm` | `<virtual>`, `<state>` | \begin{array}{l} \int_{\Omega} q J(\ul{u}) \\ \mbox{volume mode: vector for } K \from \Ical_h: \int_{T_K} J(\ul{u}) \\ \mbox{rel\_volume mode: vector for } K \from \Ical_h: \int_{T_K} J(\ul{u}) / \int_{T_K} 1 \end{array} | hyp.ul.up

### Table of special terms

Special terms
name/class | arguments | definition | examples
--- | --- | --- | ---
dw_biot_eth `BiotETHTerm` | `<ts>`, `<material_0>`, `<material_1>`, `<virtual>`, `<state>` `<ts>`, `<material_0>`, `<material_1>`, `<state>`, `<virtual>` | \begin{array}{l} \int_{\Omega} \left [\int_0^t \alpha_{ij}(t-\tau)\,p(\tau)) \difd{\tau} \right]\,e_{ij}(\ul{v}) \mbox{ ,} \\ \int_{\Omega} \left [\int_0^t \alpha_{ij}(t-\tau) e_{kl}(\ul{u}(\tau)) \difd{\tau} \right] q \end{array} |
dw_biot_th `BiotTHTerm` | `<ts>`, `<material>`, `<virtual>`, `<state>` `<ts>`, `<material>`, `<state>`, `<virtual>` | \begin{array}{l} \int_{\Omega} \left [\int_0^t \alpha_{ij}(t-\tau)\,p(\tau)) \difd{\tau} \right]\,e_{ij}(\ul{v}) \mbox{ ,} \\ \int_{\Omega} \left [\int_0^t \alpha_{ij}(t-\tau) e_{kl}(\ul{u}(\tau)) \difd{\tau} \right] q \end{array} |
ev_cauchy_stress_eth `CauchyStressETHTerm` | `<ts>`, `<material_0>`, `<material_1>`, `<parameter>` | \int_{\Omega} \int_0^t \Hcal_{ijkl}(t-\tau)\,e_{kl}(\ul{w}(\tau)) \difd{\tau} |
ev_cauchy_stress_th `CauchyStressTHTerm` | `<ts>`, `<material>`, `<parameter>` | \int_{\Omega} \int_0^t \Hcal_{ijkl}(t-\tau)\,e_{kl}(\ul{w}(\tau)) \difd{\tau} |
dw_lin_elastic_eth `LinearElasticETHTerm` | `<ts>`, `<material_0>`, `<material_1>`, `<virtual>`, `<state>` | \int_{\Omega} \left [\int_0^t \Hcal_{ijkl}(t-\tau)\,e_{kl}(\ul{u}(\tau)) \difd{\tau} \right]\,e_{ij}(\ul{v}) | lin.vis
dw_lin_elastic_th `LinearElasticTHTerm` | `<ts>`, `<material>`, `<virtual>`, `<state>` | \int_{\Omega} \left [\int_0^t \Hcal_{ijkl}(t-\tau)\,e_{kl}(\ul{u}(\tau)) \difd{\tau} \right]\,e_{ij}(\ul{v}) |
ev_of_ns_surf_min_d_press `NSOFSurfMinDPressTerm` | `<material_1>`, `<material_2>`, `<parameter>` | \delta \Psi(p) = \delta \left( \int_{\Gamma_{in}}p - \int_{\Gamma_{out}}bpress \right) |
dw_of_ns_surf_min_d_press_diff `NSOFSurfMinDPressDiffTerm` | `<material>`, `<virtual>` | w \delta_{p} \Psi(p) \circ q |
ev_sd_st_grad_div `SDGradDivStabilizationTerm` | `<material>`, `<parameter_u>`, `<parameter_w>`, `<parameter_mv>` | \gamma \int_{\Omega} [ (\nabla \cdot \ul{u}) (\nabla \cdot \ul{w}) (\nabla \cdot \ul{\Vcal}) - \pdiff{u_i}{x_k} \pdiff{\Vcal_k}{x_i} (\nabla \cdot \ul{w}) - (\nabla \cdot \ul{u}) \pdiff{w_i}{x_k} \pdiff{\Vcal_k}{x_i} ] |
ev_sd_st_pspg_c `SDPSPGCStabilizationTerm` | `<material>`, `<parameter_b>`, `<parameter_u>`, `<parameter_r>`, `<parameter_mv>` | \sum_{K \in \Ical_h}\int_{T_K} \delta_K\ [ \pdiff{r}{x_i} (\ul{b} \cdot \nabla u_i) (\nabla \cdot \Vcal) - \pdiff{r}{x_k} \pdiff{\Vcal_k}{x_i} (\ul{b} \cdot \nabla u_i) - \pdiff{r}{x_k} (\ul{b} \cdot \nabla \Vcal_k) \pdiff{u_i}{x_k} ] |
ev_sd_st_pspg_p `SDPSPGPStabilizationTerm` | `<material>`, `<parameter_r>`, `<parameter_p>`, `<parameter_mv>` | \sum_{K \in \Ical_h}\int_{T_K} \tau_K\ [ (\nabla r \cdot \nabla p) (\nabla \cdot \Vcal) - \pdiff{r}{x_k} (\nabla \Vcal_k \cdot \nabla p) - (\nabla r \cdot \nabla \Vcal_k) \pdiff{p}{x_k} ] |
ev_sd_st_supg_c `SDSUPGCStabilizationTerm` | `<material>`, `<parameter_b>`, `<parameter_u>`, `<parameter_w>`, `<parameter_mv>` | \sum_{K \in \Ical_h}\int_{T_K} \delta_K\ [ (\ul{b} \cdot \nabla u_k) (\ul{b} \cdot \nabla w_k) (\nabla \cdot \Vcal) - (\ul{b} \cdot \nabla \Vcal_i) \pdiff{u_k}{x_i} (\ul{b} \cdot \nabla w_k) - (\ul{u} \cdot \nabla u_k) (\ul{b} \cdot \nabla \Vcal_i) \pdiff{w_k}{x_i} ] |
dw_st_adj1_supg_p `SUPGPAdj1StabilizationTerm` | `<material>`, `<virtual>`, `<state>`, `<parameter>` | \sum_{K \in \Ical_h}\int_{T_K} \delta_K\ \nabla p (\ul{v} \cdot \nabla \ul{w}) |
dw_st_adj2_supg_p `SUPGPAdj2StabilizationTerm` | `<material>`, `<virtual>`, `<parameter>`, `<state>` | \sum_{K \in \Ical_h}\int_{T_K} \tau_K\ \nabla r (\ul{v} \cdot \nabla \ul{u}) |
dw_st_adj_supg_c `SUPGCAdjStabilizationTerm` | `<material>`, `<virtual>`, `<parameter>`, `<state>` | \sum_{K \in \Ical_h}\int_{T_K} \delta_K\ [ ((\ul{v} \cdot \nabla) \ul{u}) ((\ul{u} \cdot \nabla) \ul{w}) + ((\ul{u} \cdot \nabla) \ul{u}) ((\ul{v} \cdot \nabla) \ul{w}) ] |
dw_st_grad_div `GradDivStabilizationTerm` | `<material>`, `<virtual>`, `<state>` | \gamma \int_{\Omega} (\nabla\cdot\ul{u}) \cdot (\nabla\cdot\ul{v}) | sta.nav.sto
dw_st_pspg_c `PSPGCStabilizationTerm` | `<material>`, `<virtual>`, `<parameter>`, `<state>` | \sum_{K \in \Ical_h}\int_{T_K} \tau_K\ ((\ul{b} \cdot \nabla) \ul{u}) \cdot \nabla q | sta.nav.sto
dw_st_pspg_p `PSPGPStabilizationTerm` | `<opt_material>`, `<virtual/param_1>`, `<state/param_2>` | \sum_{K \in \Ical_h}\int_{T_K} \tau_K\ \nabla p \cdot \nabla q | sta.nav.sto
dw_st_supg_c `SUPGCStabilizationTerm` | `<material>`, `<virtual>`, `<parameter>`, `<state>` | \sum_{K \in \Ical_h}\int_{T_K} \delta_K\ ((\ul{b} \cdot \nabla) \ul{u})\cdot ((\ul{b} \cdot \nabla) \ul{v}) | sta.nav.sto
dw_st_supg_p `SUPGPStabilizationTerm` | `<material>`, `<virtual>`, `<parameter>`, `<state>` | \sum_{K \in \Ical_h}\int_{T_K} \delta_K\ \nabla p\cdot ((\ul{b} \cdot \nabla) \ul{v}) | sta.nav.sto
dw_volume_dot_w_scalar_eth `DotSProductVolumeOperatorWETHTerm` | `<ts>`, `<material_0>`, `<material_1>`, `<virtual>`, `<state>` | \int_\Omega \left [\int_0^t \Gcal(t-\tau) p(\tau) \difd{\tau} \right] q |
dw_volume_dot_w_scalar_th `DotSProductVolumeOperatorWTHTerm` | `<ts>`, `<material>`, `<virtual>`, `<state>` | \int_\Omega \left [\int_0^t \Gcal(t-\tau) p(\tau) \difd{\tau} \right] q |

### Table of multi-linear terms

Multi-linear terms
name/class | arguments | definition | examples
--- | --- | --- | ---
de_cauchy_stress `ECauchyStressTerm` | `<material>`, `<parameter>` | \int_{\Omega} D_{ijkl} e_{kl}(\ul{w}) |
de_convect `EConvectTerm` | `<opt_material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Omega} c ((\ul{u} \cdot \nabla) \ul{u}) \cdot \ul{v} |
de_diffusion `EDiffusionTerm` | `<material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Omega} K_{ij} \nabla_i q\, \nabla_j p |
de_div `EDivTerm` | `<opt_material>`, `<virtual/param>` | \int_{\Omega} \nabla \cdot \ul{v} \mbox { , } \int_{\Omega} c \nabla \cdot \ul{v} |
de_div_grad `EDivGradTerm` | `<opt_material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Omega} \nabla \ul{v} : \nabla \ul{u} \mbox{ , } \int_{\Omega} \nu\ \nabla \ul{v} : \nabla \ul{u} |
de_dot `EDotTerm` | `<opt_material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\cal{D}} q p \mbox{ , } \int_{\cal{D}} \ul{v} \cdot \ul{u}\\ \int_{\cal{D}} c q p \mbox{ , } \int_{\cal{D}} c \ul{v} \cdot \ul{u}\\ \int_{\cal{D}} \ul{v} \cdot (\ull{c}\, \ul{u}) |
de_grad `EGradTerm` | `<opt_material>`, `<parameter>` | \int_{\Omega} \nabla \ul{v} \mbox { , } \int_{\Omega} c \nabla \ul{v} \mbox { , } \int_{\Omega} \ul{c} \cdot \nabla \ul{v} \mbox { , } \int_{\Omega} \ull{c} \cdot \nabla \ul{v} |
de_integrate `EIntegrateOperatorTerm` | `<opt_material>`, `<virtual>` | \int_{\cal{D}} q \mbox{ or } \int_{\cal{D}} c q |
de_laplace `ELaplaceTerm` | `<opt_material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Omega} \nabla q \cdot \nabla p \mbox{ , } \int_{\Omega} c \nabla q \cdot \nabla p |
de_lin_convect `ELinearConvectTerm` | `<virtual/param_1>`, `<parameter>`, `<state/param_3>` | \int_{\Omega} ((\ul{w} \cdot \nabla) \ul{u}) \cdot \ul{v} |
de_lin_elastic `ELinearElasticTerm` | `<material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Omega} D_{ijkl}\ e_{ij}(\ul{v}) e_{kl}(\ul{u}) |
de_m_flexo `MixedFlexoTerm` | `<virtual/param_v>`, `<state/param_t>` `<state>`, `<virtual>` | \int_{\Omega} v_{i,j} a_{ij} \\ \int_{\Omega} u_{i,j} \delta a_{ij} |
de_m_flexo_coupling `MixedFlexoCouplingTerm` | `<material>`, `<virtual/param_t>`, `<state/param_s>` `<material>`, `<state>`, `<virtual>` | \int_{\Omega} f_{ijkl}\ e_{jk,l}(\ull{\delta w}) \nabla_i p \\ \int_{\Omega} f_{ijkl}\ e_{jk,l}(\ull{w}) \nabla_i q |
de_m_sg_elastic `MixedStrainGradElasticTerm` | `<material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Omega} a_{ijklmn}\ e_{ij,k}(\ull{\delta w}) \ e_{lm,n}(\ull{w}) |
de_mass `MassTerm` | `<material_rho>`, `<material_lumping>`, `<material_beta>`, `<virtual>`, `<state>` | M^C = \int_{\cal{D}} \rho \ul{v} \cdot \ul{u} \\ M^L = \mathrm{lumping}(M^C) \\ M^A = (1 - \beta) M^C + \beta M^L \\ A = \sum_e A_e \\ C = \sum_e A_e^T (M_e^A)^{-1} A_e | sei.loa, ela
de_non_penetration_p `ENonPenetrationPenaltyTerm` | `<material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Gamma} c (\ul{n} \cdot \ul{v}) (\ul{n} \cdot \ul{u}) |
de_nonsym_elastic `ENonSymElasticTerm` | `<material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Omega} \ull{D} \nabla \ul{v} : \nabla \ul{u} |
de_s_dot_mgrad_s `EScalarDotMGradScalarTerm` | `<material>`, `<virtual/param_1>`, `<state/param_2>` `<material>`, `<state>`, `<virtual>` | \int_{\Omega} q \ul{y} \cdot \nabla p \mbox{ , } \int_{\Omega} p \ul{y} \cdot \nabla q |
de_stokes `EStokesTerm` | `<opt_material>`, `<virtual/param_v>`, `<state/param_s>` `<opt_material>`, `<state>`, `<virtual>` | \int_{\Omega} p\, \nabla \cdot \ul{v} \mbox{ , } \int_{\Omega} q\, \nabla \cdot \ul{u}\\ \int_{\Omega} c\, p\, \nabla \cdot \ul{v} \mbox{ , } \int_{\Omega} c\, q\, \nabla \cdot \ul{u} |
de_stokes_traction `StokesTractionTerm` | `<opt_material>`, `<virtual/param_1>`, `<state/param_2>` | \int_{\Gamma} \nu \ul{v}\cdot(\nabla \ul{u} \cdot \ul{n}) |
de_surface_flux `SurfaceFluxOperatorTerm` | `<material>`, `<virtual/param_1>`, `<state/param_2>` `<material>`, `<state>`, `<virtual>` | \int_{\Gamma} q \ul{n} \cdot \ull{K} \cdot \nabla p \mbox{ , } \int_{\Gamma} p \ul{n} \cdot \ull{K} \cdot \nabla q | pie.ela
de_surface_ltr `ELinearTractionTerm` | `<opt_material>`, `<virtual/param>` | \int_{\Gamma} \ul{v} \cdot \ul{n} \mbox{ , } \int_{\Gamma} c\, \ul{v} \cdot \ul{n}\\ \int_{\Gamma} \ul{v} \cdot (\ull{\sigma}\, \ul{n}) \mbox{ , } \int_{\Gamma} \ul{v} \cdot \ul{f} |
de_surface_piezo_flux `SurfacePiezoFluxOperatorTerm` | `<material>`, `<virtual/param_1>`, `<state/param_2>` `<material>`, `<state>`, `<virtual>` | \int_{\Gamma} q g_{kij} e_{ij}(\ul{u}) n_k \mbox{ , } \int_{\Gamma} p g_{kij} e_{ij}(\ul{v}) n_k |