BidomainWithBathAssembler< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <BidomainWithBathAssembler.hpp>

Inherits BidomainDg0Assembler< ELEMENT_DIM, SPACE_DIM >.

Inherited by BidomainWithBathMatrixBasedAssembler< ELEMENT_DIM, SPACE_DIM >.

Collaboration diagram for BidomainWithBathAssembler< ELEMENT_DIM, SPACE_DIM >:
Collaboration graph
[legend]

List of all members.

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)

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
class BidomainWithBathAssembler< ELEMENT_DIM, SPACE_DIM >

Assembler for a bidomain simulation with a perfusing bath.

Definition at line 49 of file BidomainWithBathAssembler.hpp.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.

Parameters:
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.


Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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]

ComputeMatrixTerm()

This method is called by AssembleOnElement() and tells the assembler the contribution to add to the element stiffness matrix.

Parameters:
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.

Parameters:
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.

Parameters:
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

Todo:
: #1215 #1328 this seems not to be an issue anymore. Document and remove code.
Todo:
#1328 This code may no longer be needed since all the operations in the following loop may apply only to local elements. MatSetValue and VecSetValue are not collective...

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.


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

Generated by  doxygen 1.6.2