#include <AbstractFeObjectAssembler.hpp>
Public Member Functions | |
AbstractFeObjectAssembler (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, unsigned numQuadPoints=2) | |
void | SetApplyNeummanBoundaryConditionsToVector (BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > *pBcc) |
void | OnlyAssembleOnSurfaceElements (bool onlyAssembleOnSurfaceElements=true) |
void | SetMatrixToAssemble (Mat &rMatToAssemble) |
void | SetVectorToAssemble (Vec &rVecToAssemble, bool zeroVectorBeforeAssembly) |
void | SetCurrentSolution (Vec currentSolution) |
void | Assemble () |
void | AssembleMatrix () |
void | AssembleVector () |
virtual | ~AbstractFeObjectAssembler () |
Protected Types | |
typedef LinearBasisFunction < ELEMENT_DIM > | BasisFunction |
typedef LinearBasisFunction < ELEMENT_DIM-1 > | SurfaceBasisFunction |
Protected Member Functions | |
void | ComputeTransformedBasisFunctionDerivatives (const ChastePoint< ELEMENT_DIM > &rPoint, const c_matrix< double, ELEMENT_DIM, SPACE_DIM > &rInverseJacobian, c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rReturnValue) |
void | DoAssemble () |
void | ApplyNeummanBoundaryConditionsToVector () |
virtual double | GetCurrentSolutionOrGuessValue (unsigned nodeIndex, unsigned indexOfUnknown) |
virtual void | ResetInterpolatedQuantities () |
virtual void | IncrementInterpolatedQuantities (double phiI, const Node< SPACE_DIM > *pNode) |
virtual c_matrix< double, PROBLEM_DIM *(ELEMENT_DIM+1), PROBLEM_DIM *(ELEMENT_DIM+1)> | ComputeMatrixTerm (c_vector< double, ELEMENT_DIM+1 > &rPhi, c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rGradPhi, ChastePoint< SPACE_DIM > &rX, c_vector< double, PROBLEM_DIM > &rU, c_matrix< double, PROBLEM_DIM, SPACE_DIM > &rGradU, Element< ELEMENT_DIM, SPACE_DIM > *pElement) |
virtual c_vector< double, PROBLEM_DIM *(ELEMENT_DIM+1)> | ComputeVectorTerm (c_vector< double, ELEMENT_DIM+1 > &rPhi, c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rGradPhi, ChastePoint< SPACE_DIM > &rX, c_vector< double, PROBLEM_DIM > &rU, c_matrix< double, PROBLEM_DIM, SPACE_DIM > &rGradU, Element< ELEMENT_DIM, SPACE_DIM > *pElement) |
virtual c_vector< double, PROBLEM_DIM *ELEMENT_DIM > | ComputeVectorSurfaceTerm (const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > &rSurfaceElement, c_vector< double, ELEMENT_DIM > &rPhi, ChastePoint< SPACE_DIM > &rX) |
virtual bool | ElementAssemblyCriterion (Element< ELEMENT_DIM, SPACE_DIM > &rElement) |
virtual void | AssembleOnElement (Element< ELEMENT_DIM, SPACE_DIM > &rElement, c_matrix< double, PROBLEM_DIM *(ELEMENT_DIM+1), PROBLEM_DIM *(ELEMENT_DIM+1) > &rAElem, c_vector< double, PROBLEM_DIM *(ELEMENT_DIM+1)> &rBElem) |
virtual void | AssembleOnSurfaceElement (const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > &rSurfaceElement, c_vector< double, PROBLEM_DIM *ELEMENT_DIM > &rBSurfElem) |
Protected Attributes | |
Vec | mVectorToAssemble |
Mat | mMatrixToAssemble |
bool | mAssembleMatrix |
bool | mAssembleVector |
bool | mZeroVectorBeforeAssembly |
bool | mApplyNeummanBoundaryConditionsToVector |
bool | mOnlyAssembleOnSurfaceElements |
PetscInt | mOwnershipRangeLo |
PetscInt | mOwnershipRangeHi |
GaussianQuadratureRule < ELEMENT_DIM > * | mpQuadRule |
GaussianQuadratureRule < ELEMENT_DIM-1 > * | mpSurfaceQuadRule |
ReplicatableVector | mCurrentSolutionOrGuessReplicated |
AbstractTetrahedralMesh < ELEMENT_DIM, SPACE_DIM > * | mpMesh |
BoundaryConditionsContainer < ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > * | mpBoundaryConditions |
This class can be used to assemble a matrix OR a vector OR one of each. The template booleans CAN_ASSEMBLE_VECTOR and CAN_ASSEMBLE_MATRIX should be chosen accordingly.
The class provides the functionality to loop over elements, perform element-wise integration (using Gaussian quadrature and linear basis functions), and add the results to the final matrix or vector. The concrete class which inherits from this must implement either COMPUTE_MATRIX_TERM or COMPUTE_VECTOR_TERM or both, which should return the INTERGRAND, as a function of the basis functions.
Adding integrals of surface elements can also be done (but only to vectors).
The final template parameter defines how much interpolation (onto quadrature points) is required by the concrete class.
CARDIAC: only interpolates the first component of the unknown (ie the voltage) NORMAL: interpolates the position X and all components of the unknown u NONLINEAR: interpolates X, u and grad(u). Also computes the gradient of the basis functions when assembling vectors.
Definition at line 87 of file AbstractFeObjectAssembler.hpp.
typedef LinearBasisFunction<ELEMENT_DIM> AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::BasisFunction [protected] |
Basis function for use with normal elements
Definition at line 127 of file AbstractFeObjectAssembler.hpp.
typedef LinearBasisFunction<ELEMENT_DIM-1> AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SurfaceBasisFunction [protected] |
Basis function for use with boundary elements
Definition at line 129 of file AbstractFeObjectAssembler.hpp.
AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AbstractFeObjectAssembler | ( | AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * | pMesh, | |
unsigned | numQuadPoints = 2 | |||
) | [inline] |
Constructor
pMesh | The mesh | |
numQuadPoints | The number of quadratures points (in each dimension) to use per element. Defaults to 2. |
Definition at line 455 of file AbstractFeObjectAssembler.hpp.
References AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpQuadRule, and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpSurfaceQuadRule.
virtual AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::~AbstractFeObjectAssembler | ( | ) | [inline, virtual] |
Destructor
Definition at line 439 of file AbstractFeObjectAssembler.hpp.
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ComputeTransformedBasisFunctionDerivatives | ( | const ChastePoint< ELEMENT_DIM > & | rPoint, | |
const c_matrix< double, ELEMENT_DIM, SPACE_DIM > & | rInverseJacobian, | |||
c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > & | rReturnValue | |||
) | [inline, protected] |
Compute the derivatives of all basis functions at a point within an element. This method will transform the results, for use within gaussian quadrature for example.
This is almost identical to LinearBasisFunction::ComputeTransformedBasisFunctionDerivatives, except that it is also templated over SPACE_DIM and can handle cases such as 1d in 3d space.
rPoint | The point at which to compute the basis functions. The results are undefined if this is not within the canonical element. | |
rInverseJacobian | The inverse of the Jacobian matrix mapping the real element into the canonical element. | |
rReturnValue | A reference to a vector, to be filled in |
Definition at line 660 of file AbstractFeObjectAssembler.hpp.
References LinearBasisFunction< ELEMENT_DIM >::ComputeBasisFunctionDerivatives().
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::DoAssemble | ( | ) | [inline, protected] |
The main assembly method. Private, should only be called through Assemble(), AssembleMatrix() or AssembleVector() which set mAssembleMatrix, mAssembleVector accordingly
Definition at line 520 of file AbstractFeObjectAssembler.hpp.
References AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ApplyNeummanBoundaryConditionsToVector(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnElement(), GenericEventHandler< 13, HeartEventHandler >::BeginEvent(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ElementAssemblyCriterion(), GenericEventHandler< 13, HeartEventHandler >::EndEvent(), EXCEPTION, AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetOwnership(), AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::GetStiffnessMatrixGlobalIndices(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mApplyNeummanBoundaryConditionsToVector, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mAssembleMatrix, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mAssembleVector, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mMatrixToAssemble, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mOnlyAssembleOnSurfaceElements, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpMesh, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mVectorToAssemble, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mZeroVectorBeforeAssembly, PetscMatTools::Zero(), and PetscVecTools::Zero().
Referenced by AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::Assemble(), AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::AssembleMatrix(), and AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::AssembleVector().
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ApplyNeummanBoundaryConditionsToVector | ( | ) | [inline, protected] |
Applies surface integral contributions to the vector after integrating over the elements. Requires CAN_ASSEMBLE_VECTOR==true and ComputeVectorSurfaceTerm to be implemented. Called if SetApplyNeummanBoundaryConditionsToVector() has been called.
Definition at line 622 of file AbstractFeObjectAssembler.hpp.
References AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnSurfaceElement(), GenericEventHandler< 13, HeartEventHandler >::BeginEvent(), GenericEventHandler< 13, HeartEventHandler >::EndEvent(), AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::GetStiffnessMatrixGlobalIndices(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mAssembleVector, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpBoundaryConditions, and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mVectorToAssemble.
virtual double AbstractFeObjectAssembler< 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
nodeIndex | node index | |
indexOfUnknown | index of unknown |
Definition at line 183 of file AbstractFeObjectAssembler.hpp.
virtual void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ResetInterpolatedQuantities | ( | void | ) | [inline, protected, virtual] |
The concrete subclass can overload this and IncrementInterpolatedQuantities() if there are some quantities which need to be computed at each Gauss point. They are called in AssembleOnElement().
Reimplemented in AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, PROBLEM_DIM >, BidomainAssembler< ELEMENT_DIM, SPACE_DIM >, MonodomainAssembler< ELEMENT_DIM, SPACE_DIM >, CellBasedSimulationWithPdesAssembler< DIM >, AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 2 >, and AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 1 >.
Definition at line 203 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnElement(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnSurfaceElement().
virtual void AbstractFeObjectAssembler< 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().
phiI | ||
pNode | pointer to a node |
Reimplemented in AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, PROBLEM_DIM >, BidomainAssembler< ELEMENT_DIM, SPACE_DIM >, MonodomainAssembler< ELEMENT_DIM, SPACE_DIM >, AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 2 >, and AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, 1 >.
Definition at line 214 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnElement(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnSurfaceElement().
virtual c_matrix<double,PROBLEM_DIM*(ELEMENT_DIM+1),PROBLEM_DIM*(ELEMENT_DIM+1)> AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ComputeMatrixTerm | ( | c_vector< double, ELEMENT_DIM+1 > & | rPhi, | |
c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > & | rGradPhi, | |||
ChastePoint< SPACE_DIM > & | rX, | |||
c_vector< double, PROBLEM_DIM > & | rU, | |||
c_matrix< double, PROBLEM_DIM, SPACE_DIM > & | rGradU, | |||
Element< ELEMENT_DIM, SPACE_DIM > * | pElement | |||
) | [inline, protected, virtual] |
This method returns the matrix to be added to element stiffness matrix for a given gauss point, ie, essentially the INTERGRAND in the integral definition of the matrix. The arguments are the bases, bases gradients, x and current solution computed at the Gauss point. The returned matrix will be multiplied by the gauss weight and jacobian determinent and added to the element stiffness matrix (see AssembleOnElement()).
** This method has to be implemented in the concrete class if CAN_ASSEMBLE_MATRIX is true **
NOTE: for linear problems rGradU is NOT set up correctly because it should not be needed
rPhi | The basis functions, rPhi(i) = phi_i, i=1..numBases. | |
rGradPhi | Basis gradients, rGradPhi(i,j) = d(phi_j)/d(X_i). | |
rX | The point in space. | |
rU | The unknown as a vector, u(i) = u_i. | |
rGradU | The gradient of the unknown as a matrix, rGradU(i,j) = d(u_i)/d(X_j). | |
pElement | Pointer to the element. |
Definition at line 239 of file AbstractFeObjectAssembler.hpp.
virtual c_vector<double,PROBLEM_DIM*(ELEMENT_DIM+1)> AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ComputeVectorTerm | ( | c_vector< double, ELEMENT_DIM+1 > & | rPhi, | |
c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > & | rGradPhi, | |||
ChastePoint< SPACE_DIM > & | rX, | |||
c_vector< double, PROBLEM_DIM > & | rU, | |||
c_matrix< double, PROBLEM_DIM, SPACE_DIM > & | rGradU, | |||
Element< ELEMENT_DIM, SPACE_DIM > * | pElement | |||
) | [inline, protected, virtual] |
This method returns the vector to be added to element stiffness vector for a given gauss point, ie, essentially the INTERGRAND in the integral definition of the vector. The arguments are the bases, x and current solution computed at the Gauss point. The returned vector will be multiplied by the gauss weight and jacobian determinent and added to the element stiffness matrix (see AssembleOnElement()).
** This method has to be implemented in the concrete class if CAN_ASSEMBLE_VECTOR is true **
NOTE: for linear problems rGradPhi and rGradU are NOT set up correctly because they should not be needed
rPhi | The basis functions, rPhi(i) = phi_i, i=1..numBases | |
rGradPhi | Basis gradients, rGradPhi(i,j) = d(phi_j)/d(X_i) | |
rX | The point in space | |
rU | The unknown as a vector, u(i) = u_i | |
rGradU | The gradient of the unknown as a matrix, rGradU(i,j) = d(u_i)/d(X_j) | |
pElement | Pointer to the element |
Definition at line 272 of file AbstractFeObjectAssembler.hpp.
virtual c_vector<double, PROBLEM_DIM*ELEMENT_DIM> AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ComputeVectorSurfaceTerm | ( | const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > & | rSurfaceElement, | |
c_vector< double, ELEMENT_DIM > & | rPhi, | |||
ChastePoint< SPACE_DIM > & | rX | |||
) | [inline, protected, virtual] |
This method returns the vector to be added to element stiffness vector for a given gauss point in BoundaryElement, ie, essentially the INTERGRAND in the boundary integral part of the definition of the vector. The arguments are the bases, x and current solution computed at the Gauss point. The returned vector will be multiplied by the gauss weight and jacobian determinent and added to the element stiffness matrix (see AssembleOnElement()).
** This method has to be implemented in the concrete class if CAN_ASSEMBLE_VECTOR is true and SetApplyNeumannBoundaryConditionsToVector will be called.**
rSurfaceElement | the element which is being considered. | |
rPhi | The basis functions, rPhi(i) = phi_i, i=1..numBases | |
rX | The point in space |
Reimplemented in BidomainAssembler< ELEMENT_DIM, SPACE_DIM >, MonodomainAssembler< ELEMENT_DIM, SPACE_DIM >, SimpleLinearEllipticSolver< ELEMENT_DIM, SPACE_DIM >, SimpleLinearParabolicSolver< ELEMENT_DIM, SPACE_DIM >, SimpleNonlinearEllipticSolver< ELEMENT_DIM, SPACE_DIM >, and SimpleLinearEllipticSolver< DIM, DIM >.
Definition at line 301 of file AbstractFeObjectAssembler.hpp.
virtual bool AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ElementAssemblyCriterion | ( | Element< ELEMENT_DIM, SPACE_DIM > & | rElement | ) | [inline, protected, virtual] |
Whether to include this (volume) element when assembling. Returns true here but can be overridden by the concrete assembler if not all elements should be included
rElement | the element |
Reimplemented in AbstractCorrectionTermAssembler< ELEM_DIM, SPACE_DIM, PROBLEM_DIM >.
Definition at line 316 of file AbstractFeObjectAssembler.hpp.
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnElement | ( | Element< ELEMENT_DIM, SPACE_DIM > & | rElement, | |
c_matrix< double, PROBLEM_DIM *(ELEMENT_DIM+1), PROBLEM_DIM *(ELEMENT_DIM+1) > & | rAElem, | |||
c_vector< double, PROBLEM_DIM *(ELEMENT_DIM+1)> & | rBElem | |||
) | [inline, protected, virtual] |
Calculate the contribution of a single element to the linear system.
rElement | The element to assemble on. | |
rAElem | The element's contribution to the LHS matrix is returned in this n by n matrix, where n is the no. of nodes in this element. There is no need to zero this matrix before calling. | |
rBElem | The element's contribution to the RHS vector is returned in this vector of length n, the no. of nodes in this element. There is no need to zero this vector before calling. |
Definition at line 674 of file AbstractFeObjectAssembler.hpp.
References LinearBasisFunction< ELEMENT_DIM >::ComputeBasisFunctions(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ComputeMatrixTerm(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ComputeTransformedBasisFunctionDerivatives(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ComputeVectorTerm(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::GetCurrentSolutionOrGuessValue(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetIndex(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), ReplicatableVector::GetSize(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::IncrementInterpolatedQuantities(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mAssembleMatrix, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mAssembleVector, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mCurrentSolutionOrGuessReplicated, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpMesh, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpQuadRule, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ResetInterpolatedQuantities(), ChastePoint< DIM >::rGetLocation(), and Node< SPACE_DIM >::rGetLocation().
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnSurfaceElement | ( | const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > & | rSurfaceElement, | |
c_vector< double, PROBLEM_DIM *ELEMENT_DIM > & | rBSurfElem | |||
) | [inline, protected, virtual] |
Calculate the contribution of a single surface element with Neumann boundary condition to the linear system.
rSurfaceElement | The element to assemble on. | |
rBSurfElem | The element's contribution to the RHS vector is returned in this vector of length n, the no. of nodes in this element. There is no need to zero this vector before calling. |
Definition at line 799 of file AbstractFeObjectAssembler.hpp.
References LinearBasisFunction< ELEMENT_DIM >::ComputeBasisFunctions(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ComputeVectorSurfaceTerm(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetIndex(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), GaussianQuadratureRule< ELEMENT_DIM >::GetNumQuadPoints(), GaussianQuadratureRule< ELEMENT_DIM >::GetWeight(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::IncrementInterpolatedQuantities(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpMesh, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpSurfaceQuadRule, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ResetInterpolatedQuantities(), ChastePoint< DIM >::rGetLocation(), and GaussianQuadratureRule< ELEMENT_DIM >::rGetQuadPoint().
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetApplyNeummanBoundaryConditionsToVector | ( | BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > * | pBcc | ) | [inline] |
Whether to apply surface integrals to the vector.
pBcc | A boundary conditions container (boundary elements containing a Neumann bc will be looped over). Requires CAN_ASSEMBLE_VECTOR==true. |
Definition at line 613 of file AbstractFeObjectAssembler.hpp.
References AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mApplyNeummanBoundaryConditionsToVector, and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpBoundaryConditions.
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::OnlyAssembleOnSurfaceElements | ( | bool | onlyAssembleOnSurfaceElements = true |
) | [inline] |
If SetApplyNeummanBoundaryConditionsToVector() has been called, can call this to only apply the boundary conditions, not to assemble over the volume elements. Obviously requires CAN_ASSEMBLE_VECTOR==true and ComputeVectorSurfaceTerm to be implemented
onlyAssembleOnSurfaceElements | whether to only assemble on the surface elements (defaults to true) |
Definition at line 376 of file AbstractFeObjectAssembler.hpp.
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetMatrixToAssemble | ( | Mat & | rMatToAssemble | ) | [inline] |
Set the matrix that needs to be assembled. Requires CAN_ASSEMBLE_MATRIX==true.
rMatToAssemble | Reference to the matrix |
Definition at line 482 of file AbstractFeObjectAssembler.hpp.
References AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mMatrixToAssemble, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mOwnershipRangeHi, and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mOwnershipRangeLo.
Referenced by MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem().
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetVectorToAssemble | ( | Vec & | rVecToAssemble, | |
bool | zeroVectorBeforeAssembly | |||
) | [inline] |
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 491 of file AbstractFeObjectAssembler.hpp.
References AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mOwnershipRangeHi, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mOwnershipRangeLo, AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mVectorToAssemble, and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mZeroVectorBeforeAssembly.
Referenced by MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), and MatrixBasedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem().
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetCurrentSolution | ( | Vec | currentSolution | ) | [inline] |
Set a current solution vector the will be used in AssembleOnElement can passed up to ComputeMatrixTerm() or ComputeVectorTerm()
currentSolution | Current solution vector. |
Definition at line 502 of file AbstractFeObjectAssembler.hpp.
References GenericEventHandler< 13, HeartEventHandler >::BeginEvent(), GenericEventHandler< 13, HeartEventHandler >::EndEvent(), ReplicatableVector::GetSize(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mCurrentSolutionOrGuessReplicated, and ReplicatableVector::ReplicatePetscVector().
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::Assemble | ( | ) | [inline] |
Assemble everything that the class can assemble
Definition at line 407 of file AbstractFeObjectAssembler.hpp.
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleMatrix | ( | ) | [inline] |
Assemble the matrix. Requires CAN_ASSEMBLE_MATRIX==true and ComputeMatrixTerm() to be implemented
Definition at line 417 of file AbstractFeObjectAssembler.hpp.
Referenced by MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem().
void AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleVector | ( | ) | [inline] |
Assemble the vector. Requires CAN_ASSEMBLE_VECTOR==true and ComputeVectorTerm() to be implemented
Definition at line 428 of file AbstractFeObjectAssembler.hpp.
Referenced by MatrixBasedMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem(), and MatrixBasedBidomainSolver< ELEMENT_DIM, SPACE_DIM >::SetupLinearSystem().
Vec AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mVectorToAssemble [protected] |
The vector to be assembled (only used if CAN_ASSEMBLE_VECTOR == true)
Definition at line 92 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ApplyNeummanBoundaryConditionsToVector(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::DoAssemble(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetVectorToAssemble().
Mat AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mMatrixToAssemble [protected] |
The matrix to be assembled (only used if CAN_ASSEMBLE_MATRIX == true)
Definition at line 95 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::DoAssemble(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetMatrixToAssemble().
bool AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::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 101 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::Assemble(), AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::AssembleMatrix(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnElement(), AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::AssembleVector(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::DoAssemble().
bool AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mAssembleVector [protected] |
Whether to assembler the vector
Definition at line 104 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ApplyNeummanBoundaryConditionsToVector(), AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::Assemble(), AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::AssembleMatrix(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnElement(), AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::AssembleVector(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::DoAssemble().
bool AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mZeroVectorBeforeAssembly [protected] |
Whether to zero the given vector before assembly, or just add to it
Definition at line 107 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::DoAssemble(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetVectorToAssemble().
bool AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mApplyNeummanBoundaryConditionsToVector [protected] |
Whether to add surface integral contributions to the vector
Definition at line 110 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::DoAssemble(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetApplyNeummanBoundaryConditionsToVector().
bool AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mOnlyAssembleOnSurfaceElements [protected] |
Whether to ONLY assemble of the surface elements (defaults to false)
Definition at line 113 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::DoAssemble(), and AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::OnlyAssembleOnSurfaceElements().
PetscInt AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mOwnershipRangeLo [protected] |
Ownership range of the vector/matrix - lowest component owned
Definition at line 116 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetMatrixToAssemble(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetVectorToAssemble().
PetscInt AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mOwnershipRangeHi [protected] |
Ownership range of the vector/matrix - highest component owned +1
Definition at line 118 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetMatrixToAssemble(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetVectorToAssemble().
GaussianQuadratureRule<ELEMENT_DIM>* AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpQuadRule [protected] |
Quadrature rule for use on normal elements
Definition at line 121 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AbstractFeObjectAssembler(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnElement(), and AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::~AbstractFeObjectAssembler().
GaussianQuadratureRule<ELEMENT_DIM-1>* AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpSurfaceQuadRule [protected] |
Quadrature rule for use on boundary elements
Definition at line 124 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AbstractFeObjectAssembler(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnSurfaceElement(), and AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::~AbstractFeObjectAssembler().
ReplicatableVector AbstractFeObjectAssembler< 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 infomation is put.
Definition at line 136 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnElement(), AbstractFeObjectAssembler< DIM, DIM, 2, false, true, CARDIAC >::GetCurrentSolutionOrGuessValue(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetCurrentSolution().
AbstractTetrahedralMesh<ELEMENT_DIM, SPACE_DIM>* AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpMesh [protected] |
Mesh to be solved on
Reimplemented in AbstractNonlinearAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >, and AbstractNonlinearAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, 1 >.
Definition at line 190 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnElement(), AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnSurfaceElement(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::DoAssemble().
BoundaryConditionsContainer<ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM>* AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::mpBoundaryConditions [protected] |
A boundary conditions container saved if SetApplyNeummanBoundaryConditionsToVector() is called. Used for determining which surface elements have a Neumann bc and require integration over it
Reimplemented in AbstractNonlinearAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >, and AbstractNonlinearAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, 1 >.
Definition at line 196 of file AbstractFeObjectAssembler.hpp.
Referenced by AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::ApplyNeummanBoundaryConditionsToVector(), MonodomainAssembler< ELEMENT_DIM, SPACE_DIM >::ComputeVectorSurfaceTerm(), BidomainAssembler< ELEMENT_DIM, SPACE_DIM >::ComputeVectorSurfaceTerm(), and AbstractFeObjectAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetApplyNeummanBoundaryConditionsToVector().