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

#include <ExtendedBidomainNeumannSurfaceTermAssembler.hpp>

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

Public Member Functions

 ExtendedBidomainNeumannSurfaceTermAssembler (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 3 > *pBoundaryConditions)
 
- Public Member Functions inherited from AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 3 >
 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, 3 *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, 3 >
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, 3 >
typedef LinearBasisFunction< ELEMENT_DIM-1 > SurfaceBasisFunction
 
- Protected Attributes inherited from AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 3 >
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 ExtendedBidomainNeumannSurfaceTermAssembler< ELEMENT_DIM, SPACE_DIM >

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

Definition at line 50 of file ExtendedBidomainNeumannSurfaceTermAssembler.hpp.

Constructor & Destructor Documentation

◆ ExtendedBidomainNeumannSurfaceTermAssembler()

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

Constructor

Parameters
pMeshThe mesh
pBoundaryConditionsThe boundary conditions container

Definition at line 83 of file ExtendedBidomainNeumannSurfaceTermAssembler.hpp.

Member Function Documentation

◆ ComputeVectorSurfaceTerm()

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

ComputeVectorSurfaceTerm()

This method is called by AssembleOnSurfaceElement() and tells the assembler what to add to the element stiffness matrix arising from surface element contributions.

NOTE: this method has to be implemented but shouldn't ever be called - because all bidomain problems (currently) just have zero Neumann boundary conditions and the AbstractLinearAssmebler::AssembleSystem() method will realise this and not loop over surface elements.

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, 3 >.

Definition at line 93 of file ExtendedBidomainNeumannSurfaceTermAssembler.hpp.


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