Amandus: Simulations based on multilevel Schwarz methods
|
#include <integrator.h>
Public Member Functions | |
Theta (AmandusIntegrator< dim > &client, bool implicit, dealii::BlockMask blocks=dealii::BlockMask(), bool enforce_homogenity=false) | |
virtual void | extract_data (const dealii::AnyData &data) |
Extract data independent of the cell. More... | |
Public Member Functions inherited from AmandusIntegrator< dim > | |
AmandusIntegrator () | |
unsigned int | n_errors () const |
unsigned int | error_type (unsigned int i) const |
std::string | error_name (unsigned int i) const |
dealii::UpdateFlags | update_flags () const |
Returns the update flags to be used. More... | |
dealii::UpdateFlags | update_flags_face () const |
Returns the update flags to be used on boundary and interior faces. More... | |
void | add_flags (const dealii::UpdateFlags flags) |
Add update flags on all objects. More... | |
void | add_flags_face (const dealii::UpdateFlags flags) |
Add update flags on boundary and internal faces. More... | |
Private Member Functions | |
virtual void | cell (dealii::MeshWorker::DoFInfo< dim > &dinfo, dealii::MeshWorker::IntegrationInfo< dim > &info) const |
virtual void | boundary (dealii::MeshWorker::DoFInfo< dim > &dinfo, dealii::MeshWorker::IntegrationInfo< dim > &info) const |
virtual void | face (dealii::MeshWorker::DoFInfo< dim > &dinfo1, dealii::MeshWorker::DoFInfo< dim > &dinfo2, dealii::MeshWorker::IntegrationInfo< dim > &info1, dealii::MeshWorker::IntegrationInfo< dim > &info2) const |
Private Attributes | |
dealii::SmartPointer< AmandusIntegrator< dim >, Theta< dim > > | client |
bool | is_implicit |
dealii::BlockMask | block_mask |
bool | enforce_homogenity |
Additional Inherited Members | |
Public Attributes inherited from AmandusIntegrator< dim > | |
double | timestep |
Current timestep if applicable. More... | |
dealii::SmartPointer< dealii::Quadrature< dim > > | cell_quadrature |
Quadrature rule used on cells. More... | |
dealii::SmartPointer< dealii::Quadrature< dim-1 > > | boundary_quadrature |
Quadrature rule used on boundary faces. More... | |
dealii::SmartPointer< dealii::Quadrature< dim-1 > > | face_quadrature |
Quadrature rule used on faces. More... | |
Protected Attributes inherited from AmandusIntegrator< dim > | |
std::vector< unsigned int > | error_types |
std::vector< std::string > | error_names |
The local integrator for the two residuals in dealii::ThetaTimestepping, namely the explicit part and the Newton-residual of the implicit part.
|
inline |
Constructor setting the integrator for the stationary problem and optionally a BlockMask, which for DAE identifies which blocks are subject to timestepping. Given a stationary operator \( F(u) \) and a weighted timestep \( \omega \), the local integral computed is
\[ Mu \pm \omega F(u), \]
where the sign is positive for the implicit operator and negative for the explicit.
client | is the integrator for the stationary problem. Copied into the dealii::SmartPointer client. |
implicit | selects whether the Newton residual of the implicit side (true) or the explicit side of the theta scheme is integrated. Copied into the variable is_implicit. |
blocks | If the system is a DAE, for instance the Stokes equations, then the timestepping applies only to some parts of the system, for instance only the velocities. Thus, the mass matrix in the fomula above would have empty blocks. |
enforce_homogenity | Set all components corresponding to blocks which are not timestepped to zero. If the initial system satisfies the algebraic constraints then this will be true anyway but setting it allows us to choose arbitrary initial values for non-timestepped blocks. |
|
privatevirtual |
|
privatevirtual |
|
inlinevirtual |
Extract data independent of the cell.
Extract data which does not depend on the current cell from AnyData, before the loop over cells and faces is run. By default, get the current time step if we are in a timestepping scheme.
Reimplemented from AmandusIntegrator< dim >.
|
privatevirtual |
|
private |
|
private |
|
private |
|
private |