KASKADE 7 development version
|
Static a priori default information about the matrix blocks. More...
#include <functional_aux.hh>
Static a priori default information about the matrix blocks.
These flags declare structural properties of the individual blocks arising in the matrix of this problem and can be exploited by the assembler implementation for improved efficiency.
Definition at line 103 of file functional_aux.hh.
Static Public Attributes | |
static constexpr bool | present = type==WeakFormulation || row>=col |
Whether the block is to be assembled and stored or not. The default value is the conservative one (but maybe inefficient) that all blocks are structurally nonzero. Note that for variational problems (which are necessarily symmetric), only the lower triangular part is accessed and hence in this case the default omits the superdiagonal blocks. More... | |
static constexpr bool | symmetric = type==VariationalFunctional && row==col |
Whether the block is structurally symmetric (or hermitian). The default is true for diagonal blocks of variational problems (which are necessarily symmetric), and the conservative non-symmetric otherwise. Note that actually symmetric blocks are correctly stored if this flag is false, but the storage may be less efficient. The assembler implementation may choose whichever storage it likes, this flag is merely a hint that symmetry-exploiting optimizations are safe. More... | |
static constexpr bool | makePositive = false |
If this flag is true (and symmetric==true), the assembler will enforce positive semidefiniteness of all local matrices by projecting them onto the cone of psd matrices. More... | |
static constexpr bool | lumped = false |
If this flag is true, only the diagonal of this block will be assembled and stored. This is mainly useful for hierarchical error estimators. Note that setting this flag true for mass matrices does not give a traditional lumped mass matrix (as the integration weights are different). More... | |
static constexpr bool | constant = false |
static constexpr int | derivatives = 1 |
The maximum ansatz and test function derivative occuring in this block. More... | |
|
staticconstexpr |
Definition at line 141 of file functional_aux.hh.
|
staticconstexpr |
The maximum ansatz and test function derivative occuring in this block.
A default value of 1 is provided in the base class, which is appropriate for second order PDEs.
Definition at line 148 of file functional_aux.hh.
|
staticconstexpr |
If this flag is true, only the diagonal of this block will be assembled and stored. This is mainly useful for hierarchical error estimators. Note that setting this flag true for mass matrices does not give a traditional lumped mass matrix (as the integration weights are different).
Definition at line 139 of file functional_aux.hh.
|
staticconstexpr |
If this flag is true (and symmetric==true), the assembler will enforce positive semidefiniteness of all local matrices by projecting them onto the cone of psd matrices.
While this destroys accuracy in the Taylor approximation, it can be very convenient in algorithms for nonconvex minimization.
Definition at line 131 of file functional_aux.hh.
|
staticconstexpr |
Whether the block is to be assembled and stored or not. The default value is the conservative one (but maybe inefficient) that all blocks are structurally nonzero. Note that for variational problems (which are necessarily symmetric), only the lower triangular part is accessed and hence in this case the default omits the superdiagonal blocks.
If present is false, the functional's d2 method will never be called for this block.
Definition at line 113 of file functional_aux.hh.
|
staticconstexpr |
Whether the block is structurally symmetric (or hermitian). The default is true for diagonal blocks of variational problems (which are necessarily symmetric), and the conservative non-symmetric otherwise. Note that actually symmetric blocks are correctly stored if this flag is false, but the storage may be less efficient. The assembler implementation may choose whichever storage it likes, this flag is merely a hint that symmetry-exploiting optimizations are safe.
Definition at line 121 of file functional_aux.hh.