KASKADE 7 development version
|
Defines assembly of hierarchically extended problems for defining DLY style error estimators. More...
#include <hierarchicErrorEstimator.hh>
Defines assembly of hierarchically extended problems for defining DLY style error estimators.
This class defines the weak formulation of hierarchical error estimation. It is a model of the LinearVariationalProblem concept.
Assume you have discretized a linear(ized) variational functional using a Galerkin ansatz space \( V_l \). The Hessian is \( A_{ll} \) and the gradient at \(x_0=0 \) is \( b_l \), such that the solution (minimizer) \( x_l \) satisfies \( A_{ll}x_l = -b_l \).
Now we extend the ansatz space by another (probably higher order) ansatz space \( V_h \). The complete system to be solved would be
\[ \begin{bmatrix} A_{ll} & A_{lh} \\ A_{hl} & A_{hh} \end{bmatrix} \begin{bmatrix} x_l \\ x_h \end{bmatrix} = - \begin{bmatrix} b_l \\ b_h \end{bmatrix}. \]
Since the assembly and solution of the large system is quite expensive, we fix \( x_l \) obtained before and solve the defect equation
\[ A_{hh} x_h = -(b_h+A_{hl}x_l) \]
instead. And since the error \( x_h \) is structurally oscillatory, one Jacobi iteration will do for error estimation purposes, such that we only need to assemble the diagonal of \( A_{hh} \) (lumping).
Important things to note:
LinearFunctional | the linear variational weak formulation for which the error will be estimated |
ExtensionAnsatzVariables | a description of the ansatz variables and hierarchic extension spaces |
ExtensionTestVariables | a description of the test variables and hierarchic extension spaces |
D2BlockInfo | proivdes static block information |
D2BlockInfo defines which blocks should be assembled and which ones should be lumped (only diagonal assembled). The default is HierarchicErrorEstimatorDetail::DefaultD2, which takes only the symmetric blocks and lumps all of them.
Definition at line 152 of file fem/hierarchicErrorEstimator.hh.
Public Types | |
typedef LinearFunctional::Scalar | Scalar |
typedef ExtensionAnsatzVariables | AnsatzVars |
typedef ExtensionTestVariables | TestVars |
typedef FEAnsatzVars::VariableSet | FESolution |
Public Member Functions | |
HierarchicErrorEstimator (LinearFunctional const &lf_, FESolution const &ul_) | |
DomainCache | createDomainCache (int flags) const |
BoundaryCache | createBoundaryCache (int flags) const |
int | integrationOrder (Cell const &cell, int shapeFunctionOrder, bool boundary) const |
Static Public Attributes | |
static ProblemType const | type = LinearFunctional::type |
typedef ExtensionAnsatzVariables Kaskade::HierarchicErrorEstimator< LinearFunctional, ExtensionAnsatzVariables, ExtensionTestVariables, D2BlockInfo >::AnsatzVars |
Definition at line 162 of file fem/hierarchicErrorEstimator.hh.
typedef FEAnsatzVars::VariableSet Kaskade::HierarchicErrorEstimator< LinearFunctional, ExtensionAnsatzVariables, ExtensionTestVariables, D2BlockInfo >::FESolution |
Definition at line 165 of file fem/hierarchicErrorEstimator.hh.
typedef LinearFunctional::Scalar Kaskade::HierarchicErrorEstimator< LinearFunctional, ExtensionAnsatzVariables, ExtensionTestVariables, D2BlockInfo >::Scalar |
Definition at line 161 of file fem/hierarchicErrorEstimator.hh.
typedef ExtensionTestVariables Kaskade::HierarchicErrorEstimator< LinearFunctional, ExtensionAnsatzVariables, ExtensionTestVariables, D2BlockInfo >::TestVars |
Definition at line 163 of file fem/hierarchicErrorEstimator.hh.
|
inline |
lf_ | the linear weak formulation for which the error will be estimated. This object can be temporary, since a copy is held internally. Thus, it should not be too large. |
ul_ | the approximate solution of lf_ on the lower order ansatz space. |
Definition at line 437 of file fem/hierarchicErrorEstimator.hh.
|
inline |
Definition at line 445 of file fem/hierarchicErrorEstimator.hh.
|
inline |
Definition at line 440 of file fem/hierarchicErrorEstimator.hh.
|
inline |
Definition at line 450 of file fem/hierarchicErrorEstimator.hh.
|
static |
Definition at line 160 of file fem/hierarchicErrorEstimator.hh.