Chaste Commit::f2ff7ee04e70ac9d06c57344df8d017dbb12b97b
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>
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.

Template Parameters
ELEMENT_DIMDimension of the elements.
SPACE_DIMDimension of the space. If not specified, it defaults to ELEMENT_DIM.

Definition at line 85 of file AbstractCardiacTissue.hpp.

Constructor & Destructor Documentation

◆ AbstractCardiacTissue() [1/2]

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(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells(), and AbstractCardiacCellInterface::SetUsedInTissueSimulation().

◆ AbstractCardiacTissue() [2/2]

◆ ~AbstractCardiacTissue()

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

◆ CalculateHaloNodesFromNodeExchange()

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< ELEMENT_DIM, SPACE_DIM >::load().

◆ CreateIntracellularConductivityTensor()

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(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue().

◆ GetCardiacCell()

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

◆ GetCardiacCellOrHaloCell()

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.

◆ GetDoCacheReplication()

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.

◆ GetPurkinjeCell()

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.

◆ HasPurkinje()

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.

◆ load()

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

◆ LoadCardiacCells()

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

◆ pGetMesh()

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.

◆ ReplicateCaches()

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.

◆ rGetCellsDistributed()

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< ELEMENT_DIM, SPACE_DIM >::SaveCardiacCells().

◆ rGetExtracellularConductivityTensor()

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 BidomainTissue< SPACE_DIM >, BidomainTissue< DIM >, ExtendedBidomainTissue< SPACE_DIM >, and ExtendedBidomainTissue< DIM >.

Definition at line 379 of file AbstractCardiacTissue.cpp.

◆ rGetIionicCacheReplicated()

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.

◆ rGetIntracellularConductivityTensor()

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.

◆ rGetIntracellularStimulusCacheReplicated()

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.

◆ rGetPurkinjeCellsDistributed()

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< ELEMENT_DIM, SPACE_DIM >::SaveCardiacCells().

◆ rGetPurkinjeIionicCacheReplicated()

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.

◆ rGetPurkinjeIntracellularStimulusCacheReplicated()

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.

◆ save()

◆ SaveCardiacCells()

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

◆ SetCacheReplication()

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

◆ SetConductivityModifier()

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.

◆ SetUpHaloCells()

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.

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

◆ SolveCellSystems()

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.

◆ UpdateCaches()

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.

◆ UpdatePurkinjeCaches()

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 Symbol Documentation

◆ boost::serialization::access

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

Needed for serialization.

Definition at line 90 of file AbstractCardiacTissue.hpp.

◆ TestMonodomainTissue

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
friend class TestMonodomainTissue
friend

Definition at line 91 of file AbstractCardiacTissue.hpp.

Member Data Documentation

◆ mCellsDistributed

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

◆ mDoCacheReplication

template<unsigned ELEMENT_DIM, unsigned SPACE_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 310 of file AbstractCardiacTissue.hpp.

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

◆ mExchangeHalos

template<unsigned ELEMENT_DIM, unsigned SPACE_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 321 of file AbstractCardiacTissue.hpp.

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

◆ mFibreFilePathNoExtension

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

◆ mHaloCellsDistributed

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

◆ mHaloGlobalToLocalIndexMap

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

Map of global to local indices for halo nodes.

Definition at line 330 of file AbstractCardiacTissue.hpp.

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

◆ mHaloNodes

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

Vector of halo node indices for current process

Definition at line 324 of file AbstractCardiacTissue.hpp.

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

◆ mHasPurkinje

◆ mIionicCacheReplicated

template<unsigned ELEMENT_DIM, unsigned SPACE_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 253 of file AbstractCardiacTissue.hpp.

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

◆ mIntracellularStimulusCacheReplicated

template<unsigned ELEMENT_DIM, unsigned SPACE_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 265 of file AbstractCardiacTissue.hpp.

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

◆ mMeshUnarchived

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

Whether the mesh was unarchived or got from elsewhere.

Definition at line 315 of file AbstractCardiacTissue.hpp.

◆ mNodesToReceivePerProcess

template<unsigned ELEMENT_DIM, unsigned SPACE_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 343 of file AbstractCardiacTissue.hpp.

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

◆ mNodesToSendPerProcess

template<unsigned ELEMENT_DIM, unsigned SPACE_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 337 of file AbstractCardiacTissue.hpp.

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

◆ mpConductivityModifier

template<unsigned ELEMENT_DIM, unsigned SPACE_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 296 of file AbstractCardiacTissue.hpp.

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

◆ mpConfig

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

Local pointer to the HeartConfig singleton instance, for convenience.

Definition at line 274 of file AbstractCardiacTissue.hpp.

◆ mpDistributedVectorFactory

template<unsigned ELEMENT_DIM, unsigned SPACE_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 284 of file AbstractCardiacTissue.hpp.

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

◆ mpIntracellularConductivityTensors

template<unsigned ELEMENT_DIM, unsigned SPACE_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 240 of file AbstractCardiacTissue.hpp.

◆ mpMesh

◆ mPurkinjeCellsDistributed

template<unsigned ELEMENT_DIM, unsigned SPACE_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 247 of file AbstractCardiacTissue.hpp.

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

◆ mPurkinjeIionicCacheReplicated

template<unsigned ELEMENT_DIM, unsigned SPACE_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 259 of file AbstractCardiacTissue.hpp.

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

◆ mPurkinjeIntracellularStimulusCacheReplicated

template<unsigned ELEMENT_DIM, unsigned SPACE_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 271 of file AbstractCardiacTissue.hpp.

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


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