KASKADE 7 development version
|
Documentation of the concept of a parabolic parabolic equation. More...
#include <variationalfunctional.hh>
Documentation of the concept of a parabolic parabolic equation.
The ParabolicEquation concept defines the interface that is accessed by the SemiLinearizationAt and semiLinearization adapters. It differs from the basic VariationalFunctional concept mainly in how the DomainCache and the BoundaryCache are constructed.
This is not a base class, only a documentation!
The mathematical concept represented by this interface is that of a weak formulation for a parabolic equation
\[ \int_\Omega v^T B \dot u \,dx = \int_\Omega (v^T f(u,\nabla u)+ \nabla v : \tilde f(u,\nabla u) \, dx + \int_{\partial\Omega} v^Tg(u) \, dx \quad \forall v\]
to be evaluated for a specific fixed value of \(u\) (which may consist of multiple variables). The different variables \(u_i\) and \( v_i \) may be scalar or vector-valued, and may live in different finite element function spaces.
Some local classes have to be written into ParabolicEquation, where most of the functionality of the equation is defined. These are:
Also read the documentation of SemiLinearizationAt in functional_aux.hh, which provides helper classes for the usage and the definition of a variational functional.
Const methods are required to be thread-safe. Note that the space lists AnsatzVars::Spaces and TestVars::Spaces must coincide!
Definition at line 804 of file variationalfunctional.hh.
Classes | |
struct | B2 |
struct | BoundaryCache |
Defining boundary conditions. More... | |
struct | D1 |
struct | D2 |
struct | DomainCache |
This evaluation cache concept defines the interface that is accessed by the assembler. More... | |
Public Types | |
typedef unspecified | Scalar |
The scalar type to be used for this variational problem. More... | |
typedef unspecified | AnsatzVars |
A description of the ansatz variables occuring in the weak formulation. This should be an instance of VariableSetDescription<...>. More... | |
typedef unspecified | TestVars |
typedef unspecified | OriginVars |
A description of the type of current evaluation state. More... | |
using | Cell = Kaskade::Cell< typename AnsatzVars::GridView > |
Public Member Functions | |
double | time () const |
Reports the current simulated time for which the evaluations are done. More... | |
ParabolicEquation & | setTime (double t) |
Sets a new time for evaluating PDE coefficients. More... | |
void | temporalEvaluationRange (double t0, double t1) |
Notifies the PDE in which time interval evaluations will be done. More... | |
int | integrationOrder (typename Variables::Grid::template Codim< 0 >::Entity const &cell, int shapeFunctionOrder, bool boundary) const |
Static Public Attributes | |
static ProblemType const | type |
The type of problem, either VariationalFunctional (for symmetric problems) or WeakFormulation. More... | |
typedef unspecified ParabolicEquation::AnsatzVars |
A description of the ansatz variables occuring in the weak formulation. This should be an instance of VariableSetDescription<...>.
Definition at line 817 of file variationalfunctional.hh.
using ParabolicEquation::Cell = Kaskade::Cell<typename AnsatzVars::GridView> |
The following typedef should be useful, when accessing Entities, it is however not strictly required for a ParabolicEquation to work
Definition at line 841 of file variationalfunctional.hh.
typedef unspecified ParabolicEquation::OriginVars |
A description of the type of current evaluation state.
Definition at line 829 of file variationalfunctional.hh.
typedef unspecified ParabolicEquation::Scalar |
The scalar type to be used for this variational problem.
Definition at line 810 of file variationalfunctional.hh.
typedef unspecified ParabolicEquation::TestVars |
A description of the test variables occuring in the weak formulation. This should be an instance of VariableSetDescription<...>.
Definition at line 824 of file variationalfunctional.hh.
int ParabolicEquation::integrationOrder | ( | typename Variables::Grid::template Codim< 0 >::Entity const & | cell, |
int | shapeFunctionOrder, | ||
bool | boundary | ||
) | const |
This method defines a suitable quadrature order to be used on the given cell. The maximum shape function order occuring in the finite element spaces for this cell is provided for convenience. If boundary is true, this refers to evaluation of \(g\), otherwise to the evaluation of \(f\).
Referenced by Kaskade::SemiImplicitEulerStep< PE >::integrationOrder().
ParabolicEquation & ParabolicEquation::setTime | ( | double | t | ) |
Sets a new time for evaluating PDE coefficients.
Referenced by Kaskade::Limex< Eq >::advanceTime(), and Kaskade::Limex< Eq >::step().
void ParabolicEquation::temporalEvaluationRange | ( | double | t0, |
double | t1 | ||
) |
Notifies the PDE in which time interval evaluations will be done.
This can be larger than the time step \( \tau \), e.g., in extrapolation or deferred correction methods, where several shorter Euler steps are performed and combined to a higher order time step.
The PDE formulation may (or may not) make use of this information, e.g., by bounding some terms within that time range.
Referenced by Kaskade::Limex< Eq >::step().
double ParabolicEquation::time | ( | ) | const |
Reports the current simulated time for which the evaluations are done.
Referenced by Kaskade::Limex< Eq >::step().
|
static |
The type of problem, either VariationalFunctional (for symmetric problems) or WeakFormulation.
Definition at line 835 of file variationalfunctional.hh.