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_material_model ()
 
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 354 of file stokes_matrix_free.h.

§ MassMatrixType

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

Definition at line 355 of file stokes_matrix_free.h.

§ ABlockMatrixType

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

Definition at line 356 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_material_model()

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

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.

§ 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 342 of file stokes_matrix_free.h.

§ dof_handler_v

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

Definition at line 344 of file stokes_matrix_free.h.

§ dof_handler_p

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

Definition at line 345 of file stokes_matrix_free.h.

§ dof_handler_projection

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

Definition at line 346 of file stokes_matrix_free.h.

§ stokes_fe

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

Definition at line 348 of file stokes_matrix_free.h.

§ fe_v

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

Definition at line 349 of file stokes_matrix_free.h.

§ fe_p

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

Definition at line 350 of file stokes_matrix_free.h.

§ fe_projection

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

Definition at line 351 of file stokes_matrix_free.h.

§ stokes_matrix

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

Definition at line 358 of file stokes_matrix_free.h.

§ velocity_matrix

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

Definition at line 359 of file stokes_matrix_free.h.

§ mass_matrix

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

Definition at line 360 of file stokes_matrix_free.h.

§ constraints_v

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

Definition at line 362 of file stokes_matrix_free.h.

§ constraints_p

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

Definition at line 363 of file stokes_matrix_free.h.

§ constraints_projection

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

Definition at line 364 of file stokes_matrix_free.h.

§ mg_matrices

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

Definition at line 366 of file stokes_matrix_free.h.

§ mg_constrained_dofs

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

Definition at line 367 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 368 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 370 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 371 of file stokes_matrix_free.h.

§ mg_transfer

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

Definition at line 373 of file stokes_matrix_free.h.


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