Chaste Release::3.1
|
#include <AbstractFeAssemblerInterface.hpp>
Public Member Functions | |
AbstractFeAssemblerInterface () | |
void | SetMatrixToAssemble (Mat &rMatToAssemble, bool zeroMatrixBeforeAssembly=true) |
void | SetVectorToAssemble (Vec &rVecToAssemble, bool zeroVectorBeforeAssembly) |
void | Assemble () |
void | AssembleMatrix () |
void | AssembleVector () |
virtual | ~AbstractFeAssemblerInterface () |
Protected Member Functions | |
virtual void | DoAssemble ()=0 |
Protected Attributes | |
Vec | mVectorToAssemble |
Mat | mMatrixToAssemble |
bool | mAssembleMatrix |
bool | mAssembleVector |
bool | mZeroMatrixBeforeAssembly |
bool | mZeroVectorBeforeAssembly |
PetscInt | mOwnershipRangeLo |
PetscInt | mOwnershipRangeHi |
A common bass class for AbstractFeVolumeIntegralAssembler (the main abstract assembler class), and other assembler classes (including continuum mechanics assemblers, which is why this class is separate to AbstractFeAssemblerInterface).
See AbstractFeVolumeIntegralAssembler documentation for info on these assembler classes.
Definition at line 51 of file AbstractFeAssemblerInterface.hpp.
AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::AbstractFeAssemblerInterface | ( | ) |
Constructor.
Definition at line 157 of file AbstractFeAssemblerInterface.hpp.
virtual AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::~AbstractFeAssemblerInterface | ( | ) | [inline, virtual] |
Destructor.
Definition at line 151 of file AbstractFeAssemblerInterface.hpp.
void AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::Assemble | ( | ) | [inline] |
Assemble everything that the class can assemble.
Definition at line 119 of file AbstractFeAssemblerInterface.hpp.
Referenced by OperatorSplittingMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), MonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::SetupLinearSystem(), and BidomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem().
void AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::AssembleMatrix | ( | ) | [inline] |
Assemble the matrix. Requires CAN_ASSEMBLE_MATRIX==true
Definition at line 129 of file AbstractFeAssemblerInterface.hpp.
Referenced by MonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem().
void AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::AssembleVector | ( | ) | [inline] |
Assemble the vector. Requires CAN_ASSEMBLE_VECTOR==true
Definition at line 140 of file AbstractFeAssemblerInterface.hpp.
virtual void AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::DoAssemble | ( | ) | [protected, pure virtual] |
The main assembly method. Protected, should only be called through Assemble(), AssembleMatrix() or AssembleVector() which set mAssembleMatrix, mAssembleVector accordingly. Pure and therefore is implemented in child classes. Will involve looping over elements (which may be volume, surface or cable elements), and computing integrals and adding them to the vector or matrix
Implemented in AbstractFeCableIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >, AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >, AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >, AbstractContinuumMechanicsAssembler< DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >, ContinuumMechanicsNeumannBcsAssembler< DIM >, AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 3 >, AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2 >, AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 1, false, true, NORMAL >, AbstractFeVolumeIntegralAssembler< DIM, DIM, 3, false, true, NORMAL >, AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, true, true, INTERPOLATION_LEVEL >, AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, true, true, NONLINEAR >, AbstractFeVolumeIntegralAssembler< DIM, DIM, 2, false, true, CARDIAC >, and AbstractContinuumMechanicsAssembler< DIM, true, true >.
Referenced by AbstractFeAssemblerInterface< true, false >::Assemble(), AbstractFeAssemblerInterface< true, false >::AssembleMatrix(), and AbstractFeAssemblerInterface< true, false >::AssembleVector().
void AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::SetMatrixToAssemble | ( | Mat & | rMatToAssemble, |
bool | zeroMatrixBeforeAssembly = true |
||
) |
Set the matrix that needs to be assembled. Requires CAN_ASSEMBLE_MATRIX==true.
rMatToAssemble | Reference to the matrix |
zeroMatrixBeforeAssembly | Whether to zero the matrix before assembling (otherwise it is just added to) |
Definition at line 167 of file AbstractFeAssemblerInterface.hpp.
Referenced by OperatorSplittingMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), MonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::SetupLinearSystem(), and BidomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem().
void AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::SetVectorToAssemble | ( | Vec & | rVecToAssemble, |
bool | zeroVectorBeforeAssembly | ||
) |
Set the vector that needs to be assembled. Requires CAN_ASSEMBLE_VECTOR==true.
rVecToAssemble | Reference to the vector |
zeroVectorBeforeAssembly | Whether to zero the vector before assembling (otherwise it is just added to) |
Definition at line 177 of file AbstractFeAssemblerInterface.hpp.
bool AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::mAssembleMatrix [protected] |
Whether to assemble the matrix (an assembler may be able to assemble matrices (CAN_ASSEMBLE_MATRIX==true), but may not want to do so each timestep, hence this second boolean.
Definition at line 65 of file AbstractFeAssemblerInterface.hpp.
Referenced by AbstractFeAssemblerInterface< true, false >::Assemble(), AbstractFeAssemblerInterface< true, false >::AssembleMatrix(), and AbstractFeAssemblerInterface< true, false >::AssembleVector().
bool AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::mAssembleVector [protected] |
Whether to assemble the vector.
Definition at line 68 of file AbstractFeAssemblerInterface.hpp.
Referenced by AbstractFeAssemblerInterface< true, false >::Assemble(), AbstractFeAssemblerInterface< true, false >::AssembleMatrix(), and AbstractFeAssemblerInterface< true, false >::AssembleVector().
Mat AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::mMatrixToAssemble [protected] |
The matrix to be assembled (only used if CAN_ASSEMBLE_MATRIX == true).
Definition at line 58 of file AbstractFeAssemblerInterface.hpp.
PetscInt AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::mOwnershipRangeHi [protected] |
Ownership range of the vector/matrix - highest component owned +1.
Definition at line 80 of file AbstractFeAssemblerInterface.hpp.
PetscInt AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::mOwnershipRangeLo [protected] |
Ownership range of the vector/matrix - lowest component owned.
Definition at line 77 of file AbstractFeAssemblerInterface.hpp.
Vec AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::mVectorToAssemble [protected] |
The vector to be assembled (only used if CAN_ASSEMBLE_VECTOR == true).
Definition at line 55 of file AbstractFeAssemblerInterface.hpp.
bool AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::mZeroMatrixBeforeAssembly [protected] |
Whether to zero the given matrix before assembly, or just add to it.
Definition at line 71 of file AbstractFeAssemblerInterface.hpp.
bool AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::mZeroVectorBeforeAssembly [protected] |
Whether to zero the given vector before assembly, or just add to it.
Definition at line 74 of file AbstractFeAssemblerInterface.hpp.