ASPECT
|
Public Member Functions | |
VariableDeclaration (const std::string &name, const std::shared_ptr< FiniteElement< dim >> &fe, const unsigned int multiplicity, const unsigned int n_blocks) | |
VariableDeclaration () | |
unsigned int | n_components () const |
Public Attributes | |
std::string | name |
std::shared_ptr< FiniteElement< dim > > | fe |
unsigned int | multiplicity |
unsigned int | n_blocks |
A structure to describe everything necessary to define a single variable of the finite element system in isolation. It groups the FiniteElement<dim> with other information like a name and the block structure used in linear systems. A std::vector of these structs will be converted into an ordered collection of objects of type FEVariable represented by FEVariableCollection to form the finite element system.
Blocks are used to extract or solve for certain variables separately or in block based preconditioners. As an example, in a Stokes problem one might want velocity and pressure in a single block (for use with a direct solver), or one block for all velocity components and a second block for the pressure (for a Schur complement-based preconditioner), or separate blocks for pressure and each velocity component.
Definition at line 49 of file fe_variable_collection.h.
aspect::VariableDeclaration< dim >::VariableDeclaration | ( | const std::string & | name, |
const std::shared_ptr< FiniteElement< dim >> & | fe, | ||
const unsigned int | multiplicity, | ||
const unsigned int | n_blocks | ||
) |
Constructor.
name | A user-friendly and unique string representation of the variable. |
fe | The FiniteElement class to use. Currently, this needs to be a scalar finite element class (with exactly one component). |
multiplicity | Number of copies of the fe to create. |
n_blocks | Number of blocks this variable represents inside the linear system. A value of 0 will add the next variable (in the std::vector<VariableDeclaration> that is used to construct the FEVariableCollection) to the current block, while 1 will put the next variable into a new block. A value that is equal to the number of components will create a block for each component. |
aspect::VariableDeclaration< dim >::VariableDeclaration | ( | ) |
Default constructor.
unsigned int aspect::VariableDeclaration< dim >::n_components | ( | ) | const |
Return the total number of components of this variable.
std::string aspect::VariableDeclaration< dim >::name |
Name of the variable used in FEVariableCollection to identify it.
Definition at line 86 of file fe_variable_collection.h.
std::shared_ptr<FiniteElement<dim> > aspect::VariableDeclaration< dim >::fe |
The FiniteElement space.
Definition at line 91 of file fe_variable_collection.h.
unsigned int aspect::VariableDeclaration< dim >::multiplicity |
The multiplicity used in FESystem: how many copies of fe
are there?
Definition at line 96 of file fe_variable_collection.h.
unsigned int aspect::VariableDeclaration< dim >::n_blocks |
Number of linear algebra blocks occupied by this variable. See constructor for details.
Definition at line 102 of file fe_variable_collection.h.