ASPECT
aspect::Assemblers::Manager< dim > Class Template Reference

## Classes

struct  Properties

void reset ()

## Public Attributes

std::vector< std::unique_ptr< Assemblers::Interface< dim > > > stokes_preconditioner

std::vector< std::unique_ptr< Assemblers::Interface< dim > > > stokes_system

std::vector< std::unique_ptr< Assemblers::Interface< dim > > > stokes_system_on_boundary_face

std::vector< std::unique_ptr< Assemblers::Interface< dim > > > advection_system

std::vector< std::unique_ptr< Assemblers::Interface< dim > > > advection_system_on_boundary_face

std::vector< std::unique_ptr< Assemblers::Interface< dim > > > advection_system_on_interior_face

Properties stokes_preconditioner_assembler_properties

Properties stokes_system_assembler_properties

Properties stokes_system_assembler_on_boundary_face_properties

## Detailed Description

### template<int dim> class aspect::Assemblers::Manager< dim >

A class that owns member variables representing all assemblers that need to be called when assembling right hand side vectors, matrices, or complete linear systems. We use this approach in order to support the following cases:

• Assembling different formulations: When assembling either the full equations or only the Boussinesq approximation (to give just two examples), one needs different terms. This could be achieved using a large number of switch or if statements in the code, or one could encapsulate each equation or approximation into a collection of assemblers for this particular purpose. The approach chosen here in essence allows the implementation of each set of equations in its own scope, and we then just need to store a pointer to the object that assembles the Stokes system (for example) for the selected approximation. The pointer to this function is stored in the appropriate member variable of this class.
• Sometimes, we want to assemble a number of terms that build on each other. An example is the addition of free boundary terms to the Stokes matrix. Rather than having to "know" in one place about all of the terms that need to be assembled, we simply add the function that computes these terms as another object to the appropriate set of assemblers declared in this class.

Definition at line 124 of file simulator.h.

## § reset()

template<int dim>
 void aspect::Assemblers::Manager< dim >::reset ( )

Reset the state of the manager and remove all Assemblers.

## § stokes_preconditioner

template<int dim>
 std::vector > > aspect::Assemblers::Manager< dim >::stokes_preconditioner

A vector of pointers containing all assemblers for the Stokes preconditioner. These assemblers are called once per cell.

Definition at line 613 of file interface.h.

## § stokes_system

template<int dim>
 std::vector > > aspect::Assemblers::Manager< dim >::stokes_system

A vector of pointers containing all assemblers that compute cell contributions for the Stokes system. These assemblers are called once per cell.

Definition at line 620 of file interface.h.

## § stokes_system_on_boundary_face

template<int dim>
 std::vector > > aspect::Assemblers::Manager< dim >::stokes_system_on_boundary_face

A vector of pointers containing all assemblers that compute face contributions for the Stokes system. These assemblers are called once per face at a boundary with the properly initialized inputs, therefore they allow terms that only exist on boundary faces (e.g. traction boundary conditions).

Definition at line 629 of file interface.h.

template<int dim>
 std::vector > > aspect::Assemblers::Manager< dim >::advection_system

A vector of pointers containing all assemblers for the advection systems. These assemblers are called once per cell.

Definition at line 635 of file interface.h.

template<int dim>
 std::vector > > aspect::Assemblers::Manager< dim >::advection_system_on_boundary_face

A vector of pointers containing all assemblers for the Advection systems that compute face contributions at boundaries. These assemblers are called once per boundary face with the properly initialized inputs, therefore they allow terms that only exist on boundary faces (e.g. flux boundary conditions).

Definition at line 644 of file interface.h.

template<int dim>
 std::vector > > aspect::Assemblers::Manager< dim >::advection_system_on_interior_face

A vector of pointers containing all assemblers for the Advection systems that compute face contributions on faces between cells. These assemblers are called once per interior face with the properly initialized inputs, therefore they allow terms that only exist on interior faces (e.g. DG penalty terms).

Definition at line 653 of file interface.h.

## § stokes_preconditioner_assembler_properties

template<int dim>
 Properties aspect::Assemblers::Manager< dim >::stokes_preconditioner_assembler_properties

Lists of properties for the various equations we want to assemble. These property lists are set in Simulator::set_assemblers() where we add individual functions to the vectors of assembler objects above.

Definition at line 721 of file interface.h.

## § stokes_system_assembler_properties

template<int dim>
 Properties aspect::Assemblers::Manager< dim >::stokes_system_assembler_properties

Definition at line 722 of file interface.h.

## § stokes_system_assembler_on_boundary_face_properties

template<int dim>
 Properties aspect::Assemblers::Manager< dim >::stokes_system_assembler_on_boundary_face_properties

Definition at line 723 of file interface.h.

template<int dim>

Definition at line 724 of file interface.h.