KASKADE 7 development version
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
ParabolicEquation Class Reference

Documentation of the concept of a parabolic parabolic equation. More...

#include <variationalfunctional.hh>

Detailed Description

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...
 
ParabolicEquationsetTime (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...
 

Member Typedef Documentation

◆ AnsatzVars

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.

◆ Cell

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.

◆ OriginVars

typedef unspecified ParabolicEquation::OriginVars

A description of the type of current evaluation state.

Definition at line 829 of file variationalfunctional.hh.

◆ Scalar

typedef unspecified ParabolicEquation::Scalar

The scalar type to be used for this variational problem.

Definition at line 810 of file variationalfunctional.hh.

◆ TestVars

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.

Member Function Documentation

◆ integrationOrder()

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().

◆ setTime()

ParabolicEquation & ParabolicEquation::setTime ( double  t)

Sets a new time for evaluating PDE coefficients.

Returns
a mutable reference to the parabolic equation object

Referenced by Kaskade::Limex< Eq >::advanceTime(), and Kaskade::Limex< Eq >::step().

◆ temporalEvaluationRange()

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().

◆ time()

double ParabolicEquation::time ( ) const

Reports the current simulated time for which the evaluations are done.

Referenced by Kaskade::Limex< Eq >::step().

Member Data Documentation

◆ type

ProblemType const ParabolicEquation::type
static

The type of problem, either VariationalFunctional (for symmetric problems) or WeakFormulation.

Definition at line 835 of file variationalfunctional.hh.


The documentation for this class was generated from the following file: