Chaste Commit::1fd4e48e3990e67db148bc1bc4cf6991a0049d0c
AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL > Class Template Reference

#include <AbstractFeAssemblerCommon.hpp>

+ Inheritance diagram for AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >:
+ Collaboration diagram for AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >:

Public Member Functions

 AbstractFeAssemblerCommon ()
 
void SetCurrentSolution (Vec currentSolution)
 
virtual ~AbstractFeAssemblerCommon ()
 
- Public Member Functions inherited from AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >
 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 double GetCurrentSolutionOrGuessValue (unsigned nodeIndex, unsigned indexOfUnknown)
 
virtual void ResetInterpolatedQuantities ()
 
virtual void IncrementInterpolatedQuantities (double phiI, const Node< SPACE_DIM > *pNode)
 
virtual void IncrementInterpolatedGradientQuantities (const c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rGradPhi, unsigned phiIndex, const Node< SPACE_DIM > *pNode)
 
- Protected Member Functions inherited from AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >
virtual void DoAssemble ()=0
 

Protected Attributes

ReplicatableVector mCurrentSolutionOrGuessReplicated
 
- Protected Attributes inherited from AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >
Vec mVectorToAssemble
 
Mat mMatrixToAssemble
 
bool mAssembleMatrix
 
bool mAssembleVector
 
bool mZeroMatrixBeforeAssembly
 
bool mZeroVectorBeforeAssembly
 
PetscInt mOwnershipRangeLo
 
PetscInt mOwnershipRangeHi
 

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, bool CAN_ASSEMBLE_VECTOR, bool CAN_ASSEMBLE_MATRIX, InterpolationLevel INTERPOLATION_LEVEL>
class AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >

A base class for AbstractFeVolumeIntegralAssembler (the main abstract assembler class), AbstractSurfaceFeObjectAssembler, and AbstractCableFeObjectAssembler.

The base class of this, AbstractFeAssemblerInterface, defines the interface for these assembler classes. This class just defines a few pde-folder-specific (ie not continuum-mechanics-related) extra methods.

See AbstractFeVolumeIntegralAssembler documentation for info on these assembler classes.

Definition at line 73 of file AbstractFeAssemblerCommon.hpp.

Constructor & Destructor Documentation

◆ AbstractFeAssemblerCommon()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, bool CAN_ASSEMBLE_VECTOR, bool CAN_ASSEMBLE_MATRIX, InterpolationLevel INTERPOLATION_LEVEL>
AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AbstractFeAssemblerCommon ( )

Constructor.

Definition at line 159 of file AbstractFeAssemblerCommon.hpp.

◆ ~AbstractFeAssemblerCommon()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, bool CAN_ASSEMBLE_VECTOR, bool CAN_ASSEMBLE_MATRIX, InterpolationLevel INTERPOLATION_LEVEL>
virtual AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::~AbstractFeAssemblerCommon ( )
inlinevirtual

Destructor.

Definition at line 153 of file AbstractFeAssemblerCommon.hpp.

Member Function Documentation

◆ GetCurrentSolutionOrGuessValue()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, bool CAN_ASSEMBLE_VECTOR, bool CAN_ASSEMBLE_MATRIX, InterpolationLevel INTERPOLATION_LEVEL>
virtual double AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::GetCurrentSolutionOrGuessValue ( unsigned  nodeIndex,
unsigned  indexOfUnknown 
)
inlineprotectedvirtual
Returns
an entry from the solution vector.
Parameters
nodeIndexnode index
indexOfUnknownindex of unknown

Definition at line 88 of file AbstractFeAssemblerCommon.hpp.

References AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mCurrentSolutionOrGuessReplicated.

◆ IncrementInterpolatedGradientQuantities()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, bool CAN_ASSEMBLE_VECTOR, bool CAN_ASSEMBLE_MATRIX, InterpolationLevel INTERPOLATION_LEVEL>
virtual void AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::IncrementInterpolatedGradientQuantities ( const c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &  rGradPhi,
unsigned  phiIndex,
const Node< SPACE_DIM > *  pNode 
)
inlineprotectedvirtual

The concrete subclass can overload this and ResetInterpolatedQuantities() if there are some gradient dependent quantities which need to be computed at each Gauss point. A matrix of all the basis function gradients at the quad point is passed for efficiency reasons. To access the gradient vector use of the current basis function use rGradPhi(:, phi_index); They are called in AssembleOnElement().

Note that this method is ONLY called during assembly of elements. NOT during assembly of surface elements or cables.

Further, it is ONLY called in the cases where rGradPhi has been computed. Currently these cases are

  • When mAssembleMatrix is set or - When INTERPOLATION_LEVEL==NONLINEAR If there are use-cases, then allow other cases where interpolated gradients are needed in righthand-side assembly (see #2075)
Parameters
rGradPhiA matrix containing the gradient of all the basis functions at this Gauss point.
phiIndexThe index of the current basis function in the rGradPhi matrix.
pNodepointer to the node associated with the current basis function

Definition at line 133 of file AbstractFeAssemblerCommon.hpp.

◆ IncrementInterpolatedQuantities()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, bool CAN_ASSEMBLE_VECTOR, bool CAN_ASSEMBLE_MATRIX, InterpolationLevel INTERPOLATION_LEVEL>
virtual void AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::IncrementInterpolatedQuantities ( double  phiI,
const Node< SPACE_DIM > *  pNode 
)
inlineprotectedvirtual

The concrete subclass can overload this and ResetInterpolatedQuantities() if there are some quantities which need to be computed at each Gauss point. They are called in AssembleOnElement().

Note that this method is called over assembly of elements, surface elements and cables.

Parameters
phiI
pNodepointer to a node

Reimplemented in AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, PROBLEM_DIM >, AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 1 >, AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 2 >, and LinearParabolicPdeSystemWithCoupledOdeSystemSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >.

Definition at line 111 of file AbstractFeAssemblerCommon.hpp.

◆ ResetInterpolatedQuantities()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, bool CAN_ASSEMBLE_VECTOR, bool CAN_ASSEMBLE_MATRIX, InterpolationLevel INTERPOLATION_LEVEL>
virtual void AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ResetInterpolatedQuantities ( void  )
inlineprotectedvirtual

◆ SetCurrentSolution()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, bool CAN_ASSEMBLE_VECTOR, bool CAN_ASSEMBLE_MATRIX, InterpolationLevel INTERPOLATION_LEVEL>
void AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetCurrentSolution ( Vec  currentSolution)

Set a current solution vector that will be used in AssembleOnElement and can passed up to ComputeMatrixTerm() or ComputeVectorTerm().

Parameters
currentSolutionCurrent solution vector.

Definition at line 165 of file AbstractFeAssemblerCommon.hpp.

References GenericEventHandler< 16, HeartEventHandler >::BeginEvent(), and GenericEventHandler< 16, HeartEventHandler >::EndEvent().

Member Data Documentation

◆ mCurrentSolutionOrGuessReplicated

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, bool CAN_ASSEMBLE_VECTOR, bool CAN_ASSEMBLE_MATRIX, InterpolationLevel INTERPOLATION_LEVEL>
ReplicatableVector AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mCurrentSolutionOrGuessReplicated
protected

If the matrix or vector will be dependent on a current solution, say, this is where that information is put.

Definition at line 80 of file AbstractFeAssemblerCommon.hpp.

Referenced by AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::GetCurrentSolutionOrGuessValue().


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