ASPECT
Public Member Functions | Static Public Member Functions | List of all members
aspect::StokesMatrixFreeHandler< dim > Class Template Referenceabstract
Inheritance diagram for aspect::StokesMatrixFreeHandler< dim >:
Inheritance graph
[legend]

Public Member Functions

virtual ~StokesMatrixFreeHandler ()=default
 
virtual std::pair< double, double > solve ()=0
 
virtual void setup_dofs ()=0
 
virtual void evaluate_material_model ()=0
 
virtual void correct_stokes_rhs ()=0
 
virtual void build_preconditioner ()=0
 
virtual const DoFHandler< dim > & get_dof_handler_v () const =0
 
virtual const DoFHandler< dim > & get_dof_handler_p () const =0
 
virtual const DoFHandler< dim > & get_dof_handler_projection () const =0
 
virtual const ConstraintMatrix & get_constraints_v () const =0
 
virtual const ConstraintMatrix & get_constraints_p () const =0
 
virtual const MGTransferMatrixFree< dim, double > & get_mg_transfer_A () const =0
 
virtual const MGTransferMatrixFree< dim, double > & get_mg_transfer_S () const =0
 
virtual const Table< 2, VectorizedArray< double > > & get_active_viscosity_table () const =0
 
virtual const MGLevelObject< Table< 2, VectorizedArray< double > > > & get_level_viscosity_tables () const =0
 

Static Public Member Functions

static void declare_parameters (ParameterHandler &prm)
 

Detailed Description

template<int dim>
class aspect::StokesMatrixFreeHandler< dim >

Base class for the matrix free GMG solver for the Stokes system. The actual implementation is found inside StokesMatrixFreeHandlerImplementation below.

Definition at line 100 of file simulator.h.

Constructor & Destructor Documentation

§ ~StokesMatrixFreeHandler()

template<int dim>
virtual aspect::StokesMatrixFreeHandler< dim >::~StokesMatrixFreeHandler ( )
virtualdefault

virtual Destructor.

Member Function Documentation

§ solve()

template<int dim>
virtual std::pair<double,double> aspect::StokesMatrixFreeHandler< dim >::solve ( )
pure virtual

Solves the Stokes linear system matrix-free. This is called by Simulator<dim>::solve_stokes().

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ setup_dofs()

template<int dim>
virtual void aspect::StokesMatrixFreeHandler< dim >::setup_dofs ( )
pure virtual

Allocates and sets up the members of the StokesMatrixFreeHandler. This is called by Simulator<dim>::setup_dofs()

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ evaluate_material_model()

template<int dim>
virtual void aspect::StokesMatrixFreeHandler< dim >::evaluate_material_model ( )
pure virtual

Evalute the MaterialModel to query for the viscosity on the active cells, project this viscosity to the multigrid hierarchy, and cache the information for later usage. Also sets pressure scaling and information regarding the compressiblity of the flow.

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ correct_stokes_rhs()

template<int dim>
virtual void aspect::StokesMatrixFreeHandler< dim >::correct_stokes_rhs ( )
pure virtual

Add correction to system RHS for non-zero boundary condition.

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ build_preconditioner()

template<int dim>
virtual void aspect::StokesMatrixFreeHandler< dim >::build_preconditioner ( )
pure virtual

Computes and sets the diagonal for both the mass matrix operator and the A-block operators on each level for the purpose of smoothing inside the multigrid v-cycle.

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ declare_parameters()

template<int dim>
static void aspect::StokesMatrixFreeHandler< dim >::declare_parameters ( ParameterHandler prm)
static

Declare parameters.

§ get_dof_handler_v()

template<int dim>
virtual const DoFHandler<dim>& aspect::StokesMatrixFreeHandler< dim >::get_dof_handler_v ( ) const
pure virtual

Return a reference to the DoFHandler that is used for velocity in the block GMG solver.

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ get_dof_handler_p()

template<int dim>
virtual const DoFHandler<dim>& aspect::StokesMatrixFreeHandler< dim >::get_dof_handler_p ( ) const
pure virtual

Return a reference to the DoFHandler that is used for pressure in the block GMG solver.

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ get_dof_handler_projection()

template<int dim>
virtual const DoFHandler<dim>& aspect::StokesMatrixFreeHandler< dim >::get_dof_handler_projection ( ) const
pure virtual

Return a reference to the DoFHandler that is used for the coefficient projection in the block GMG solver.

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ get_constraints_v()

template<int dim>
virtual const ConstraintMatrix& aspect::StokesMatrixFreeHandler< dim >::get_constraints_v ( ) const
pure virtual

Return a pointer to the object that describes the velocity DoF constraints for the block GMG Stokes solver.

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ get_constraints_p()

template<int dim>
virtual const ConstraintMatrix& aspect::StokesMatrixFreeHandler< dim >::get_constraints_p ( ) const
pure virtual

Return a pointer to the object that describes the pressure DoF constraints for the block GMG Stokes solver.

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ get_mg_transfer_A()

template<int dim>
virtual const MGTransferMatrixFree<dim,double>& aspect::StokesMatrixFreeHandler< dim >::get_mg_transfer_A ( ) const
pure virtual

Return a pointer to the MGTransfer object used for the A block of the block GMG Stokes solver.

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ get_mg_transfer_S()

template<int dim>
virtual const MGTransferMatrixFree<dim,double>& aspect::StokesMatrixFreeHandler< dim >::get_mg_transfer_S ( ) const
pure virtual

Return a pointer to the MGTransfer object used for the Schur complement block of the block GMG Stokes solver.

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ get_active_viscosity_table()

template<int dim>
virtual const Table<2, VectorizedArray<double> >& aspect::StokesMatrixFreeHandler< dim >::get_active_viscosity_table ( ) const
pure virtual

Return a pointer to the Table containing the viscosities on the active level used in the block GMG Stokes solver.

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.

§ get_level_viscosity_tables()

template<int dim>
virtual const MGLevelObject<Table<2, VectorizedArray<double> > >& aspect::StokesMatrixFreeHandler< dim >::get_level_viscosity_tables ( ) const
pure virtual

Return a pointer to the Tables containing the viscosities on the multigrid levels used in the block GMG Stokes solver.

Implemented in aspect::StokesMatrixFreeHandlerImplementation< dim, velocity_degree >.


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