ASPECT
Public Member Functions | Static Public Member Functions | Private Types | Private Attributes | List of all members
aspect::StokesMatrixFreeHandler< dim > Class Template Reference

Public Member Functions

 StokesMatrixFreeHandler (Simulator< dim > &, ParameterHandler &prm)
 
 ~StokesMatrixFreeHandler ()
 
std::pair< double, double > solve ()
 
void setup_dofs ()
 
void evaluate_viscosity ()
 
double get_workload_imbalance ()
 
void correct_stokes_rhs ()
 
void parse_parameters (ParameterHandler &prm)
 

Static Public Member Functions

static void declare_parameters (ParameterHandler &prm)
 

Private Types

typedef MatrixFreeStokesOperators::StokesOperator< dim, 2, double > StokesMatrixType
 
typedef MatrixFreeStokesOperators::MassMatrixOperator< dim, 1, double > MassMatrixType
 
typedef MatrixFreeStokesOperators::ABlockOperator< dim, 2, double > ABlockMatrixType
 

Private Attributes

Simulator< dim > & sim
 
DoFHandler< dim > dof_handler_v
 
DoFHandler< dim > dof_handler_p
 
DoFHandler< dim > dof_handler_projection
 
FESystem< dim > stokes_fe
 
FESystem< dim > fe_v
 
FESystem< dim > fe_p
 
FESystem< dim > fe_projection
 
StokesMatrixType stokes_matrix
 
ABlockMatrixType velocity_matrix
 
MassMatrixType mass_matrix
 
ConstraintMatrix constraints_v
 
ConstraintMatrix constraints_p
 
ConstraintMatrix constraints_projection
 
MGLevelObject< ABlockMatrixTypemg_matrices
 
MGConstrainedDoFs mg_constrained_dofs
 
MGConstrainedDoFs mg_constrained_dofs_projection
 
::LinearAlgebra::distributed::Vector< double > active_coef_dof_vec
 
MGLevelObject<::LinearAlgebra::distributed::Vector< double > > level_coef_dof_vec
 
MGTransferMatrixFree< dim, double > mg_transfer
 

Detailed Description

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

Main class of the Matrix-free method. Here are all the functions for setup, assembly and solving the Stokes system.

Definition at line 98 of file simulator.h.

Member Typedef Documentation

§ StokesMatrixType

template<int dim>
typedef MatrixFreeStokesOperators::StokesOperator<dim,2,double> aspect::StokesMatrixFreeHandler< dim >::StokesMatrixType
private

Definition at line 340 of file stokes_matrix_free.h.

§ MassMatrixType

template<int dim>
typedef MatrixFreeStokesOperators::MassMatrixOperator<dim,1,double> aspect::StokesMatrixFreeHandler< dim >::MassMatrixType
private

Definition at line 341 of file stokes_matrix_free.h.

§ ABlockMatrixType

template<int dim>
typedef MatrixFreeStokesOperators::ABlockOperator<dim,2,double> aspect::StokesMatrixFreeHandler< dim >::ABlockMatrixType
private

Definition at line 342 of file stokes_matrix_free.h.

Constructor & Destructor Documentation

§ StokesMatrixFreeHandler()

template<int dim>
aspect::StokesMatrixFreeHandler< dim >::StokesMatrixFreeHandler ( Simulator< dim > &  ,
ParameterHandler prm 
)

Initialize this class, allowing it to read in relevant parameters as well as giving it a reference to the Simulator that owns it, since it needs to make fairly extensive changes to the internals of the simulator.

§ ~StokesMatrixFreeHandler()

Destructor.

Member Function Documentation

§ solve()

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

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

§ setup_dofs()

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

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

§ evaluate_viscosity()

template<int dim>
void aspect::StokesMatrixFreeHandler< dim >::evaluate_viscosity ( )

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.

§ get_workload_imbalance()

template<int dim>
double aspect::StokesMatrixFreeHandler< dim >::get_workload_imbalance ( )

Get the workload imbalance of the distribution of the level hierarchy.

§ correct_stokes_rhs()

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

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

§ declare_parameters()

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

Declare parameters. (No actual parameters at the moment).

§ parse_parameters()

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

Parse parameters. (No actual parameters at the moment).

Member Data Documentation

§ sim

template<int dim>
Simulator<dim>& aspect::StokesMatrixFreeHandler< dim >::sim
private

Definition at line 328 of file stokes_matrix_free.h.

§ dof_handler_v

template<int dim>
DoFHandler<dim> aspect::StokesMatrixFreeHandler< dim >::dof_handler_v
private

Definition at line 330 of file stokes_matrix_free.h.

§ dof_handler_p

template<int dim>
DoFHandler<dim> aspect::StokesMatrixFreeHandler< dim >::dof_handler_p
private

Definition at line 331 of file stokes_matrix_free.h.

§ dof_handler_projection

template<int dim>
DoFHandler<dim> aspect::StokesMatrixFreeHandler< dim >::dof_handler_projection
private

Definition at line 332 of file stokes_matrix_free.h.

§ stokes_fe

template<int dim>
FESystem<dim> aspect::StokesMatrixFreeHandler< dim >::stokes_fe
private

Definition at line 334 of file stokes_matrix_free.h.

§ fe_v

template<int dim>
FESystem<dim> aspect::StokesMatrixFreeHandler< dim >::fe_v
private

Definition at line 335 of file stokes_matrix_free.h.

§ fe_p

template<int dim>
FESystem<dim> aspect::StokesMatrixFreeHandler< dim >::fe_p
private

Definition at line 336 of file stokes_matrix_free.h.

§ fe_projection

template<int dim>
FESystem<dim> aspect::StokesMatrixFreeHandler< dim >::fe_projection
private

Definition at line 337 of file stokes_matrix_free.h.

§ stokes_matrix

template<int dim>
StokesMatrixType aspect::StokesMatrixFreeHandler< dim >::stokes_matrix
private

Definition at line 344 of file stokes_matrix_free.h.

§ velocity_matrix

template<int dim>
ABlockMatrixType aspect::StokesMatrixFreeHandler< dim >::velocity_matrix
private

Definition at line 345 of file stokes_matrix_free.h.

§ mass_matrix

template<int dim>
MassMatrixType aspect::StokesMatrixFreeHandler< dim >::mass_matrix
private

Definition at line 346 of file stokes_matrix_free.h.

§ constraints_v

template<int dim>
ConstraintMatrix aspect::StokesMatrixFreeHandler< dim >::constraints_v
private

Definition at line 348 of file stokes_matrix_free.h.

§ constraints_p

template<int dim>
ConstraintMatrix aspect::StokesMatrixFreeHandler< dim >::constraints_p
private

Definition at line 349 of file stokes_matrix_free.h.

§ constraints_projection

template<int dim>
ConstraintMatrix aspect::StokesMatrixFreeHandler< dim >::constraints_projection
private

Definition at line 350 of file stokes_matrix_free.h.

§ mg_matrices

template<int dim>
MGLevelObject<ABlockMatrixType> aspect::StokesMatrixFreeHandler< dim >::mg_matrices
private

Definition at line 352 of file stokes_matrix_free.h.

§ mg_constrained_dofs

template<int dim>
MGConstrainedDoFs aspect::StokesMatrixFreeHandler< dim >::mg_constrained_dofs
private

Definition at line 353 of file stokes_matrix_free.h.

§ mg_constrained_dofs_projection

template<int dim>
MGConstrainedDoFs aspect::StokesMatrixFreeHandler< dim >::mg_constrained_dofs_projection
private

Definition at line 354 of file stokes_matrix_free.h.

§ active_coef_dof_vec

template<int dim>
::LinearAlgebra::distributed::Vector<double> aspect::StokesMatrixFreeHandler< dim >::active_coef_dof_vec
private

Definition at line 356 of file stokes_matrix_free.h.

§ level_coef_dof_vec

template<int dim>
MGLevelObject<::LinearAlgebra::distributed::Vector<double> > aspect::StokesMatrixFreeHandler< dim >::level_coef_dof_vec
private

Definition at line 357 of file stokes_matrix_free.h.

§ mg_transfer

template<int dim>
MGTransferMatrixFree<dim,double> aspect::StokesMatrixFreeHandler< dim >::mg_transfer
private

Definition at line 360 of file stokes_matrix_free.h.


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