BidomainAssembler< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <BidomainAssembler.hpp>

Inherits AbstractCardiacFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2, false, true, CARDIAC >.

Inherited by BidomainWithBathAssembler< ELEMENT_DIM, SPACE_DIM >.

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

List of all members.

Public Member Functions

 BidomainAssembler (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BidomainTissue< SPACE_DIM > *pTissue, unsigned numQuadPoints=2)
 ~BidomainAssembler ()

Protected 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)

Protected Attributes

HeartConfigmpConfig

Detailed Description

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

Assembler, used for assembling the LHS matrix of the linear system that arises when the bidomain equations are discretised, and for assembling the contribution to the RHS vector that comes from a surface integral.

The discretised bidomain equation leads to the linear system (see FEM implementations document)

[ (chi*C/dt) M + K1 K1 ] [ V^{n+1} ] = [ (chi*C/dt) M V^{n} + M F^{n} + c1_surf ] [ K1 K2 ] [ PhiE^{n+1}] [ c2_surf ]

where chi is the surface-area to volume ratio, C the capacitance, dt the timestep M the mass matrix, K1 and K2 stiffness matrices, V^{n} and PhiE^{n} the vector of voltages and phi_e at time n, F^{n} the vector of (chi*Iionic + Istim) at each node, and c1_surf and c2_surf vectors arising from any surface stimuli (usually zero).

This assembler is used to assemble the LHS matrix, ie

[ (chi*C/dt) M + K1 K1 ] [ K1 K2 ]

Hence, this class inherits from AbstractCardiacFeVolumeIntegralAssembler and implements the methods ComputeMatrixTerm()

Definition at line 63 of file BidomainAssembler.hpp.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
BidomainAssembler< ELEMENT_DIM, SPACE_DIM >::BidomainAssembler ( AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *  pMesh,
BidomainTissue< SPACE_DIM > *  pTissue,
unsigned  numQuadPoints = 2 
) [inline]

Constructor stores the mesh and pde and sets up boundary conditions.

Parameters:
pMesh pointer to the mesh
pTissue pointer to the tissue
numQuadPoints number of quadrature points in each dimension

Definition at line 95 of file BidomainAssembler.cpp.

References HeartConfig::Instance(), and BidomainAssembler< ELEMENT_DIM, SPACE_DIM >::mpConfig.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
BidomainAssembler< ELEMENT_DIM, SPACE_DIM >::~BidomainAssembler (  )  [inline]

Destructor.

Definition at line 106 of file BidomainAssembler.hpp.


Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
c_matrix< double, 2 *(ELEMENT_DIM+1), 2 *(ELEMENT_DIM+1)> BidomainAssembler< 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, protected, virtual]

ComputeMatrixTerm()

This method is called by AssembleOnElement() and tells the assembler the contribution to add to the element LHS 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 in BidomainWithBathAssembler< ELEMENT_DIM, SPACE_DIM >.

Definition at line 38 of file BidomainAssembler.cpp.

References HeartConfig::GetCapacitance(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetIndex(), PdeSimulationTime::GetPdeTimeStepInverse(), HeartConfig::GetSurfaceAreaToVolumeRatio(), AbstractCardiacFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, 2, false, true, CARDIAC >::mpCardiacTissue, and BidomainAssembler< ELEMENT_DIM, SPACE_DIM >::mpConfig.


Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
HeartConfig* BidomainAssembler< ELEMENT_DIM, SPACE_DIM >::mpConfig [protected]

Local cache of the configuration singleton instance

Definition at line 67 of file BidomainAssembler.hpp.

Referenced by BidomainAssembler< ELEMENT_DIM, SPACE_DIM >::BidomainAssembler(), and BidomainAssembler< ELEMENT_DIM, SPACE_DIM >::ComputeMatrixTerm().


The documentation for this class was generated from the following files:
Generated on Thu Dec 22 13:01:56 2011 for Chaste by  doxygen 1.6.3