Chaste Release::3.1
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 >:

List of all members.

Public Member Functions

 AbstractFeAssemblerCommon ()
void SetCurrentSolution (Vec currentSolution)
virtual ~AbstractFeAssemblerCommon ()

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 Attributes

ReplicatableVector mCurrentSolutionOrGuessReplicated

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 75 of file AbstractFeAssemblerCommon.hpp.


Constructor & Destructor Documentation

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 161 of file AbstractFeAssemblerCommon.hpp.

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 ( ) [inline, virtual]

Destructor.

Definition at line 155 of file AbstractFeAssemblerCommon.hpp.


Member Function Documentation

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 
) [inline, protected, virtual]

Useful inline function for getting an entry from the current solution vector.

Parameters:
nodeIndexnode index
indexOfUnknownindex of unknown

Definition at line 90 of file AbstractFeAssemblerCommon.hpp.

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 
) [inline, protected, virtual]

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 135 of file AbstractFeAssemblerCommon.hpp.

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 
) [inline, protected, virtual]

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 >, LinearParabolicPdeSystemWithCoupledOdeSystemSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >, AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 2 >, and AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 1 >.

Definition at line 113 of file AbstractFeAssemblerCommon.hpp.

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  ) [inline, protected, virtual]
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 167 of file AbstractFeAssemblerCommon.hpp.

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


Member Data Documentation

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 82 of file AbstractFeAssemblerCommon.hpp.

Referenced by AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, true, false, NORMAL >::GetCurrentSolutionOrGuessValue().


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