Chaste Commit::baa90ac2819b962188b7562f2326be23c47859a7
BidomainNeumannSurfaceTermAssembler< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <BidomainNeumannSurfaceTermAssembler.hpp>

+ Inheritance diagram for BidomainNeumannSurfaceTermAssembler< ELEMENT_DIM, SPACE_DIM >:
+ Collaboration diagram for BidomainNeumannSurfaceTermAssembler< ELEMENT_DIM, SPACE_DIM >:

Public Member Functions

 BidomainNeumannSurfaceTermAssembler (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 2 > *pBoundaryConditions)
 
- Public Member Functions inherited from AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2 >
 AbstractFeSurfaceIntegralAssembler (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > *pBoundaryConditions)
 
virtual ~AbstractFeSurfaceIntegralAssembler ()
 
void ResetBoundaryConditionsContainer (BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > *pBoundaryConditions)
 
- Public Member Functions inherited from AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, true, false, NORMAL >
 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 c_vector< double, 2 *ELEMENT_DIM > ComputeVectorSurfaceTerm (const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > &rSurfaceElement, c_vector< double, ELEMENT_DIM > &rPhi, ChastePoint< SPACE_DIM > &rX)
 
- Protected Member Functions inherited from AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2 >
virtual void AssembleOnSurfaceElement (const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > &rSurfaceElement, c_vector< double, PROBLEM_DIM *ELEMENT_DIM > &rBSurfElem)
 
void DoAssemble ()
 
- Protected Member Functions inherited from AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, true, false, NORMAL >
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)
 

Additional Inherited Members

- Protected Types inherited from AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2 >
typedef LinearBasisFunction< ELEMENT_DIM-1 > SurfaceBasisFunction
 
- Protected Attributes inherited from AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2 >
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * mpMesh
 
BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > * mpBoundaryConditions
 
GaussianQuadratureRule< ELEMENT_DIM-1 > * mpSurfaceQuadRule
 
- Protected Attributes inherited from AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, true, false, NORMAL >
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>
class BidomainNeumannSurfaceTermAssembler< ELEMENT_DIM, SPACE_DIM >

Assembler which sets up the surface integral integrals for the bidomain equations, assuming that the boundary conditions are written: div(sigma_i grad phi_i) . n = g1 and div(sigma_e grad phi_e) dot n = g2.

These are not 'natural' boundary conditions for the para-elliptic bidomain equations (natural BCs for the second

Hence we don't use the NaturalNeumannSurfaceTermAssembler and have a special class here. It means that any BCs specified for bidomain and put in a BoundaryConditionsContainer should be for div(sigma_i grad phi_i) . n and div(sigma_e grad phi_e) . n.

Definition at line 54 of file BidomainNeumannSurfaceTermAssembler.hpp.

Constructor & Destructor Documentation

◆ BidomainNeumannSurfaceTermAssembler()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
BidomainNeumannSurfaceTermAssembler< ELEMENT_DIM, SPACE_DIM >::BidomainNeumannSurfaceTermAssembler ( AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *  pMesh,
BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 2 > *  pBoundaryConditions 
)
inline

Constructor

Parameters
pMeshThe mesh
pBoundaryConditionsThe boundary conditions container

Definition at line 81 of file BidomainNeumannSurfaceTermAssembler.hpp.

Member Function Documentation

◆ ComputeVectorSurfaceTerm()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
c_vector< double, 2 *ELEMENT_DIM > BidomainNeumannSurfaceTermAssembler< ELEMENT_DIM, SPACE_DIM >::ComputeVectorSurfaceTerm ( const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > &  rSurfaceElement,
c_vector< double, ELEMENT_DIM > &  rPhi,
ChastePoint< SPACE_DIM > &  rX 
)
protectedvirtual

This method returns the vector to be added to full vector for a given Gauss point in BoundaryElement, ie, essentially the INTEGRAND 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.

Parameters
rSurfaceElementthe element which is being considered.
rPhiThe basis functions, rPhi(i) = phi_i, i=1..numBases
rXThe point in space
Returns
stencil vector

Reimplemented from AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2 >.

Definition at line 89 of file BidomainNeumannSurfaceTermAssembler.hpp.


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