Chaste  Release::2018.1
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <AbstractCardiacTissue.hpp>

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

Public Member Functions

 AbstractCardiacTissue (AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > *pCellFactory, bool exchangeHalos=false)
 
 AbstractCardiacTissue (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
 
virtual ~AbstractCardiacTissue ()
 
bool HasPurkinje ()
 
void SetCacheReplication (bool doCacheReplication)
 
bool GetDoCacheReplication ()
 
const c_matrix< double,
SPACE_DIM, SPACE_DIM > & 
rGetIntracellularConductivityTensor (unsigned elementIndex)
 
virtual const c_matrix< double,
SPACE_DIM, SPACE_DIM > & 
rGetExtracellularConductivityTensor (unsigned elementIndex)
 
AbstractCardiacCellInterfaceGetCardiacCell (unsigned globalIndex)
 
AbstractCardiacCellInterfaceGetPurkinjeCell (unsigned globalIndex)
 
AbstractCardiacCellInterfaceGetCardiacCellOrHaloCell (unsigned globalIndex)
 
virtual void SolveCellSystems (Vec existingSolution, double time, double nextTime, bool updateVoltage=false)
 
ReplicatableVectorrGetIionicCacheReplicated ()
 
ReplicatableVectorrGetIntracellularStimulusCacheReplicated ()
 
ReplicatableVectorrGetPurkinjeIionicCacheReplicated ()
 
ReplicatableVectorrGetPurkinjeIntracellularStimulusCacheReplicated ()
 
void UpdateCaches (unsigned globalIndex, unsigned localIndex, double nextTime)
 
void UpdatePurkinjeCaches (unsigned globalIndex, unsigned localIndex, double nextTime)
 
void ReplicateCaches ()
 
const std::vector
< AbstractCardiacCellInterface * > & 
rGetCellsDistributed () const
 
const std::vector
< AbstractCardiacCellInterface * > & 
rGetPurkinjeCellsDistributed () const
 
const AbstractTetrahedralMesh
< ELEMENT_DIM, SPACE_DIM > * 
pGetMesh () const
 
void SetConductivityModifier (AbstractConductivityModifier< ELEMENT_DIM, SPACE_DIM > *pModifier)
 
template<class Archive >
void SaveCardiacCells (Archive &archive, const unsigned int version) const
 
template<class Archive >
void LoadCardiacCells (Archive &archive, const unsigned int version)
 

Protected Member Functions

void CalculateHaloNodesFromNodeExchange ()
 
void SetUpHaloCells (AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > *pCellFactory)
 

Protected Attributes

AbstractTetrahedralMesh
< ELEMENT_DIM, SPACE_DIM > * 
mpMesh
 
AbstractConductivityTensors
< ELEMENT_DIM, SPACE_DIM > * 
mpIntracellularConductivityTensors
 
std::vector
< AbstractCardiacCellInterface * > 
mCellsDistributed
 
std::vector
< AbstractCardiacCellInterface * > 
mPurkinjeCellsDistributed
 
ReplicatableVector mIionicCacheReplicated
 
ReplicatableVector mPurkinjeIionicCacheReplicated
 
ReplicatableVector mIntracellularStimulusCacheReplicated
 
ReplicatableVector mPurkinjeIntracellularStimulusCacheReplicated
 
HeartConfigmpConfig
 
DistributedVectorFactorympDistributedVectorFactory
 
std::string mFibreFilePathNoExtension
 
AbstractConductivityModifier
< ELEMENT_DIM, SPACE_DIM > * 
mpConductivityModifier
 
bool mHasPurkinje
 
bool mDoCacheReplication
 
bool mMeshUnarchived
 
bool mExchangeHalos
 
std::vector< unsignedmHaloNodes
 
std::vector
< AbstractCardiacCellInterface * > 
mHaloCellsDistributed
 
std::map< unsigned, unsignedmHaloGlobalToLocalIndexMap
 
std::vector< std::vector
< unsigned > > 
mNodesToSendPerProcess
 
std::vector< std::vector
< unsigned > > 
mNodesToReceivePerProcess
 

Private Member Functions

template<class Archive >
void save (Archive &archive, const unsigned int version) const
 
template<class Archive >
void load (Archive &archive, const unsigned int version)
 
void CreateIntracellularConductivityTensor ()
 

Friends

class boost::serialization::access
 
class TestMonodomainTissue
 

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
class AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >

Class containing "tissue-like" functionality used in monodomain and bidomain problems.

Contains the cardiac cells (ODE systems for each node of the mesh) and conductivity tensors (dependent on fibre directions).

Also contains knowledge of parallelisation in the form of the distributed vector factory. This class deals with created a distributed vector of cells, and getting the ionic current and stimuli from these cells and putting them in replicated arrays for the PDE solvers to call.

Definition at line 78 of file AbstractCardiacTissue.hpp.

Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue ( AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > *  pCellFactory,
bool  exchangeHalos = false 
)

This constructor is called from the Initialise() method of the CardiacProblem class. It creates all the cell objects, and sets up the conductivities.

Note that pCellFactory contains a pointer to the mesh

Parameters
pCellFactoryfactory to use to create cardiac cells. If this is actually an AbstractPurkinjeCellFactory it creates purkinje cells.
exchangeHalosused in state-variable interpolation. Defaults to false.

Definition at line 53 of file AbstractCardiacTissue.cpp.

References GenericEventHandler< 16, HeartEventHandler >::BeginEvent(), AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForNode(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CreateIntracellularConductivityTensor(), AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreatePurkinjeCellForNode(), GenericEventHandler< 16, HeartEventHandler >::EndEvent(), EXCEPTION, AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::FinaliseCellCreation(), AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::FinalisePurkinjeCellCreation(), DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLocalOwnership(), DistributedVectorFactory::GetLow(), AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::GetMesh(), HeartConfig::GetMeshName(), AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::GetNumberOfCells(), HeartConfig::Instance(), PetscTools::IsSequential(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mExchangeHalos, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mFibreFilePathNoExtension, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIionicCacheReplicated, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIntracellularStimulusCacheReplicated, PetscTools::ReplicateBool(), PetscTools::ReplicateException(), ReplicatableVector::Resize(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::~AbstractCardiacTissue ( )
virtual

Virtual destructor

Definition at line 197 of file AbstractCardiacTissue.cpp.

Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CalculateHaloNodesFromNodeExchange ( )
protected

If the mesh is a tetrahedral mesh then all elements and nodes are known. The halo nodes to the ones which are actually used as cardiac cells must be calculated explicitly.

Definition at line 423 of file AbstractCardiacTissue.cpp.

References PetscTools::GetNumProcs().

Referenced by AbstractCardiacTissue< SPACE_DIM >::load().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CreateIntracellularConductivityTensor ( )
private

Convenience method for intracellular conductivity tensor creation

Todo:
#1316 Create a class defining constant tensors to be used when no fibre orientation is provided.
Todo:
#1316 Create a class defining constant tensors to be used when no fibre orientation is provided.

Definition at line 240 of file AbstractCardiacTissue.cpp.

References RelativeTo::AbsoluteOrCwd, GenericEventHandler< 16, HeartEventHandler >::BeginEvent(), GenericEventHandler< 16, HeartEventHandler >::EndEvent(), FileFinder::Exists(), HeartConfig::GetConductivityHeterogeneities(), HeartConfig::Instance(), NEVER_REACHED, and PetscTools::ReplicateException().

Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacCellInterface * AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetCardiacCell ( unsigned  globalIndex)
Returns
a pointer to a cell, indexed by the global node index.
Note
Should only called by the process owning the cell - triggers an assertion otherwise.
Parameters
globalIndexglobal node index for which to retrieve a cell

Definition at line 385 of file AbstractCardiacTissue.cpp.

Referenced by CardiacSimulation::CreateAndRun().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacCellInterface * AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetCardiacCellOrHaloCell ( unsigned  globalIndex)
Returns
a pointer to a halo cell, indexed by the global node index.
Note
Should only called by the process halo owning the cell - triggers an assertion otherwise.
Parameters
globalIndexglobal node index for which to retrieve a cell

Definition at line 402 of file AbstractCardiacTissue.cpp.

References EXCEPTION, and PetscTools::GetMyRank().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetDoCacheReplication ( )

Get whether or not to replicate the caches across all processors.

Returns
mDoCacheReplication - true if the cache needs to be replicated

Definition at line 359 of file AbstractCardiacTissue.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacCellInterface * AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetPurkinjeCell ( unsigned  globalIndex)
Returns
a pointer to a Purkinje cell, indexed by the global node index.
Note
Should only called by the process owning the cell - triggers an assertion otherwise.
Parameters
globalIndexglobal node index for which to retrieve a cell

Definition at line 393 of file AbstractCardiacTissue.cpp.

References EXCEPT_IF_NOT.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::HasPurkinje ( )
Returns
whether this tissue contains Purkinje fibres.

Definition at line 234 of file AbstractCardiacTissue.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<class Archive >
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::load ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

Unarchive the member variables.

Parameters
archive
version

Definition at line 162 of file AbstractCardiacTissue.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<class Archive >
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::LoadCardiacCells ( Archive &  archive,
const unsigned int  version 
)
inline

Load our tissue from an archive.

Handles the checkpoint migration case, deleting loaded cells immediately if they are not local to this process.

Also loads halo cells if we're doing halo exchange, by using the non-local cells from the archive.

Parameters
archivethe process-specific archive to load from
versionarchive version

Definition at line 563 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::load().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::pGetMesh ( ) const
Returns
a pointer to the mesh object
pointer to mesh object

Definition at line 775 of file AbstractCardiacTissue.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::ReplicateCaches ( )

Replicate the Iionic and intracellular stimulus caches.

Definition at line 745 of file AbstractCardiacTissue.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const std::vector< AbstractCardiacCellInterface * > & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetCellsDistributed ( ) const
Returns
a reference to the vector of distributed cells. Needed for archiving.

Definition at line 762 of file AbstractCardiacTissue.cpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::SaveCardiacCells().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const c_matrix< double, SPACE_DIM, SPACE_DIM > & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetExtracellularConductivityTensor ( unsigned  elementIndex)
virtual
Returns
the extracellular conductivity tensor for the given element (this throws an exception in this abstract class since monodomain don't have extracellular ones) it is overridden in the BidomainTissue.
Parameters
elementIndexindex of the element of interest

Reimplemented in ExtendedBidomainTissue< SPACE_DIM >, ExtendedBidomainTissue< DIM >, BidomainTissue< SPACE_DIM >, and BidomainTissue< DIM >.

Definition at line 379 of file AbstractCardiacTissue.cpp.

References EXCEPTION.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIionicCacheReplicated ( )
Returns
the entire ionic current cache

Definition at line 704 of file AbstractCardiacTissue.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const c_matrix< double, SPACE_DIM, SPACE_DIM > & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIntracellularConductivityTensor ( unsigned  elementIndex)
Returns
the intracellular conductivity tensor for the given element
Parameters
elementIndexindex of the element of interest

Definition at line 365 of file AbstractCardiacTissue.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIntracellularStimulusCacheReplicated ( )
Returns
the entire stimulus current cache

Definition at line 710 of file AbstractCardiacTissue.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const std::vector< AbstractCardiacCellInterface * > & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeCellsDistributed ( ) const
Returns
a reference to the vector of distributed Purkinje cells. Needed for archiving.

Definition at line 768 of file AbstractCardiacTissue.cpp.

References EXCEPT_IF_NOT.

Referenced by AbstractCardiacTissue< SPACE_DIM >::SaveCardiacCells().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeIionicCacheReplicated ( )
Returns
the entire Purkinje ionic current cache

Definition at line 716 of file AbstractCardiacTissue.cpp.

References EXCEPT_IF_NOT.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeIntracellularStimulusCacheReplicated ( )
Returns
the entire Purkinje stimulus current cache

Definition at line 723 of file AbstractCardiacTissue.cpp.

References EXCEPT_IF_NOT.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<class Archive >
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::save ( Archive &  archive,
const unsigned int  version 
) const
inlineprivate

Archive the member variables.

Parameters
archive
version

Definition at line 93 of file AbstractCardiacTissue.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<class Archive >
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SaveCardiacCells ( Archive &  archive,
const unsigned int  version 
) const
inline

Save our tissue to an archive.

Writes:

  1. mpDistributedVectorFactory
  2. number of cells on this process
  3. each cell pointer in turn, interleaved with Purkinje cells if present
Parameters
archivethe process-specific archive to write cells to.
version

Definition at line 521 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::save().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetCacheReplication ( bool  doCacheReplication)

Set whether or not to replicate the caches across all processors.

See also mDoCacheReplication.

Parameters
doCacheReplication- true if the cache needs to be replicated

Definition at line 353 of file AbstractCardiacTissue.cpp.

Referenced by MonodomainPurkinjeSolver< ELEMENT_DIM, SPACE_DIM >::MonodomainPurkinjeSolver(), MonodomainSolver< ELEMENT_DIM, SPACE_DIM >::MonodomainSolver(), and OperatorSplittingMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::OperatorSplittingMonodomainSolver().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetConductivityModifier ( AbstractConductivityModifier< ELEMENT_DIM, SPACE_DIM > *  pModifier)

Set a modifier class which will be used to modifier a conductivity obtained from mpIntracellularConductivityTensors when rGetIntracellularConductivityTensor() is called. For example, it is required when conductivities become deformation-dependent.

Parameters
pModifierPointer to the concrete modifier class

Definition at line 781 of file AbstractCardiacTissue.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells ( AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > *  pCellFactory)
protected

If mExchangeHalos is true, this method calls CalculateHaloNodesFromNodeExchange and sets up the halo cell data structures mHaloCellsDistributed and mHaloGlobalToLocalIndexMap.

Parameters
pCellFactorycell factory to use to create halo cells

Definition at line 436 of file AbstractCardiacTissue.cpp.

References AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForNode(), and AbstractCardiacCellInterface::SetUsedInTissueSimulation().

Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems ( Vec  existingSolution,
double  time,
double  nextTime,
bool  updateVoltage = false 
)
virtual

Integrate the cell ODEs and update ionic current etc for each of the cells, between the two times provided.

Parameters
existingSolutionthe current voltage solution vector
timethe current simulation time
nextTimewhen to simulate the cells until
updateVoltagewhether to also solve for the voltage (generally false, true for operator splitting methods). Defaults to false
Todo:
This may want to go to std::cerr ??
Todo:
#2017 This code will be needed in the future, not being covered now. Add a test which covers this, e.g. by doing a simulation with a bad stimulus for one of the Purkinje cells - stimulating with the wrong choice of sign say.

Reimplemented in ExtendedBidomainTissue< SPACE_DIM >, and ExtendedBidomainTissue< DIM >.

Definition at line 464 of file AbstractCardiacTissue.cpp.

References DistributedVector::Begin(), GenericEventHandler< 16, HeartEventHandler >::BeginEvent(), AbstractCvodeCell::ComputeExceptVoltage(), DistributedVector::End(), GenericEventHandler< 16, HeartEventHandler >::EndEvent(), PetscTools::GetMyRank(), AbstractCardiacCellInterface::GetNumberOfStateVariables(), PetscTools::GetNumProcs(), PetscVecTools::GetSize(), AbstractCardiacCellInterface::GetStdVecStateVariables(), NEVER_REACHED, PetscTools::ReplicateException(), DistributedVector::Restore(), AbstractUntemplatedParameterisedSystem::rGetStateVariableNames(), AbstractCardiacCellInterface::SetStateVariables(), and UNUSED_OPT.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdateCaches ( unsigned  globalIndex,
unsigned  localIndex,
double  nextTime 
)

Update the Iionic and intracellular stimulus caches.

Parameters
globalIndexglobal index of the entry to update
localIndexlocal index of the entry to update
nextTimethe next PDE time point, at which to evaluate the stimulus current

Definition at line 730 of file AbstractCardiacTissue.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdatePurkinjeCaches ( unsigned  globalIndex,
unsigned  localIndex,
double  nextTime 
)

Update the Iionic and intracellular stimulus caches for Purkinje cells.

Parameters
globalIndexglobal index of the entry to update
localIndexlocal index of the entry to update
nextTimethe next PDE time point, at which to evaluate the stimulus current

Definition at line 737 of file AbstractCardiacTissue.cpp.

Friends And Related Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
friend class boost::serialization::access
friend

Needed for serialization.

Definition at line 83 of file AbstractCardiacTissue.hpp.

Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector< AbstractCardiacCellInterface* > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mDoCacheReplication
protected

Whether we need to replicate the caches.

When doing matrix-based RHS assembly, we only actually need information from cells/nodes local to the processor, so replicating the caches is an unnecessary communication overhead.

Defaults to true.

Definition at line 303 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::load(), and AbstractCardiacTissue< SPACE_DIM >::save().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mExchangeHalos
protected

Whether to exchange cell models across the halo boundaries. Used in state variable interpolation.

Definition at line 314 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< SPACE_DIM >::load(), and AbstractCardiacTissue< SPACE_DIM >::save().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::string AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mFibreFilePathNoExtension
protected

Path to the location of the fibre file without extension.

Definition at line 282 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), and AbstractCardiacTissue< SPACE_DIM >::save().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector< AbstractCardiacCellInterface* > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloCellsDistributed
protected

The vector of halo cells. Distributed.

Definition at line 320 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::load(), and AbstractCardiacTissue< SPACE_DIM >::LoadCardiacCells().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::map<unsigned, unsigned> AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloGlobalToLocalIndexMap
protected

Map of global to local indices for halo nodes.

Definition at line 323 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::load(), and AbstractCardiacTissue< SPACE_DIM >::LoadCardiacCells().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector<unsigned> AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloNodes
protected

Vector of halo node indices for current process

Definition at line 317 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::load().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated
protected

Cache containing all the ionic currents for each node, replicated over all processes.

Definition at line 246 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated
protected

Cache containing all the stimulus currents for each node, replicated over all processes.

Definition at line 258 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mMeshUnarchived
protected

Whether the mesh was unarchived or got from elsewhere.

Definition at line 308 of file AbstractCardiacTissue.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector<std::vector<unsigned> > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToReceivePerProcess
protected

A vector which will be of size GetNumProcs() for information to receive for process i.

Definition at line 336 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::load().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector<std::vector<unsigned> > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToSendPerProcess
protected

A vector which will be of size GetNumProcs() where each internal vector except i=GetMyRank() contains an ordered list of indices of nodes to send to process i during data exchange

Definition at line 330 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::load().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
AbstractConductivityModifier<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpConductivityModifier
protected

This class, if not NULL, will be used to modify the conductivity that is obtained from mpIntracellularConductivityTensors when rGetIntracellularConductivityTensor() is called. For example, it is required when conductivities become deformation dependent.

Definition at line 289 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::load().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
HeartConfig* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpConfig
protected

Local pointer to the HeartConfig singleton instance, for convenience.

Definition at line 267 of file AbstractCardiacTissue.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
DistributedVectorFactory* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory
protected

Local pointer to the distributed vector factory associated with the mesh object used.

Used to retrieve node ownership range when needed.

NB: This is set from mpMesh->GetDistributedVectorFactory() and thus always equal to that. We never assume ownership of the object.

Definition at line 277 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< SPACE_DIM >::save(), and AbstractCardiacTissue< SPACE_DIM >::SaveCardiacCells().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
AbstractConductivityTensors<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpIntracellularConductivityTensors
protected

Intracellular conductivity tensors. Not archived, since it's loaded from the HeartConfig singleton.

Definition at line 233 of file AbstractCardiacTissue.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
AbstractTetrahedralMesh<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector< AbstractCardiacCellInterface* > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed
protected

The vector of the purkinje cells. Distributed. Empty unless a AbstractPurkinjeCellFactory is given to the constructor.

Definition at line 240 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), and AbstractCardiacTissue< SPACE_DIM >::LoadCardiacCells().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIionicCacheReplicated
protected

Cache containing all the ionic currents for each purkinje node, replicated over all processes.

Definition at line 252 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), and AbstractCardiacTissue< SPACE_DIM >::load().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIntracellularStimulusCacheReplicated
protected

Cache containing all the stimulus currents for each Purkinje node, replicated over all processes.

Definition at line 264 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue().


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