#include <BidomainWithBathAssembler.hpp>
Inherits BidomainDg0Assembler< ELEMENT_DIM, SPACE_DIM >.
Inherited by BidomainWithBathMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >.
Public Member Functions | |
virtual c_matrix< double, 2 *(ELEMENT_DIM+1), 2 *(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, 2 > &rU, c_matrix< double, 2, SPACE_DIM > &rGradU, Element< ELEMENT_DIM, SPACE_DIM > *pElement) |
virtual c_vector< double, 2 *(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, 2 > &rU, c_matrix< double, 2, SPACE_DIM > &rGradU, Element< ELEMENT_DIM, SPACE_DIM > *pElement) |
void | FinaliseLinearSystem (Vec existingSolutionOrGuess, double time, bool assembleVector, bool assembleMatrix) |
BidomainWithBathAssembler (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BidomainPde< SPACE_DIM > *pPde, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 2 > *pBcc, unsigned numQuadPoints=2) |
Assembler for a bidomain simulation with a perfusing bath.
Definition at line 49 of file BidomainWithBathAssembler.hpp.
BidomainWithBathAssembler< ELEMENT_DIM, SPACE_DIM >::BidomainWithBathAssembler | ( | AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * | pMesh, | |
BidomainPde< SPACE_DIM > * | pPde, | |||
BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 2 > * | pBcc, | |||
unsigned | numQuadPoints = 2 | |||
) | [inline] |
Constructor calls base constructor and creates and stores rhs-matrix.
pMesh | pointer to the mesh | |
pPde | pointer to the PDE | |
pBcc | pointer to the boundary conditions | |
numQuadPoints | number of quadrature points (defaults to 2) |
Definition at line 220 of file BidomainWithBathAssembler.cpp.
c_matrix< double, 2 *(ELEMENT_DIM+1), 2 *(ELEMENT_DIM+1)> BidomainWithBathAssembler< ELEMENT_DIM, SPACE_DIM >::ComputeMatrixTerm | ( | c_vector< double, ELEMENT_DIM+1 > & | rPhi, | |
c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > & | rGradPhi, | |||
ChastePoint< SPACE_DIM > & | rX, | |||
c_vector< double, 2 > & | rU, | |||
c_matrix< double, 2, SPACE_DIM > & | rGradU, | |||
Element< ELEMENT_DIM, SPACE_DIM > * | pElement | |||
) | [inline, virtual] |
This method is called by AssembleOnElement() and tells the assembler the contribution to add to the element stiffness matrix.
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 |
Reimplemented from BidomainDg0Assembler< ELEMENT_DIM, SPACE_DIM >.
Definition at line 39 of file BidomainWithBathAssembler.cpp.
References HeartRegionCode::BATH, HeartConfig::GetBathConductivity(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetRegion(), and HeartConfig::Instance().
c_vector< double, 2 *(ELEMENT_DIM+1)> BidomainWithBathAssembler< ELEMENT_DIM, SPACE_DIM >::ComputeVectorTerm | ( | c_vector< double, ELEMENT_DIM+1 > & | rPhi, | |
c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > & | rGradPhi, | |||
ChastePoint< SPACE_DIM > & | rX, | |||
c_vector< double, 2 > & | rU, | |||
c_matrix< double, 2, SPACE_DIM > & | rGradU, | |||
Element< ELEMENT_DIM, SPACE_DIM > * | pElement | |||
) | [inline, virtual] |
The term to be added to the element stiffness vector.
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 |
Reimplemented from BidomainDg0Assembler< ELEMENT_DIM, SPACE_DIM >.
Definition at line 89 of file BidomainWithBathAssembler.cpp.
References HeartRegionCode::BATH, and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetRegion().
void BidomainWithBathAssembler< ELEMENT_DIM, SPACE_DIM >::FinaliseLinearSystem | ( | Vec | existingSolutionOrGuess, | |
double | time, | |||
bool | assembleVector, | |||
bool | assembleMatrix | |||
) | [inline, virtual] |
This alters the linear system so that all rows and columns corresponding to bath nodes voltages are zero, except for the diagonal (set to 1). The corresponding rhs vector entry is also set to 0, so the equation for the bath node voltage is 1*V = 0.
existingSolutionOrGuess | voltages (not used) | |
time | ||
assembleVector | If set, then RHS corresponding to bath nodes are affected as described | |
assembleMatrix | If set, then matrix rows corresponding to bath nodes are affected as described |
Reimplemented from AbstractAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >.
Definition at line 118 of file BidomainWithBathAssembler.cpp.
References HeartRegionCode::BATH, AbstractAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::GetLinearSystem(), and AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, NON_HEART, BidomainDg0Assembler< ELEMENT_DIM, SPACE_DIM > >::mpMesh.