Chaste  Release::2017.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().

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

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

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.

References DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLow(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory.

Referenced by CardiacSimulation::CreateAndRun(), and ExtendedBidomainProblem< DIM >::CreateInitialCondition().

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, DistributedVectorFactory::GetLow(), PetscTools::GetMyRank(), DistributedVectorFactory::IsGlobalIndexLocal(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloGlobalToLocalIndexMap, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory.

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.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mDoCacheReplication.

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, DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLow(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed.

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.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje.

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.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh.

Referenced by MonodomainTissue< ELEMENT_DIM, SPACE_DIM >::serialize().

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.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed.

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.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated.

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.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpConductivityModifier, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpIntracellularConductivityTensors.

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.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated.

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, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed.

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeIionicCacheReplicated ( )
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeIntracellularStimulusCacheReplicated ( )
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.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mDoCacheReplication.

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.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpConductivityModifier.

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(), DistributedVectorFactory::CreateDistributedVector(), DistributedVector::End(), GenericEventHandler< 16, HeartEventHandler >::EndEvent(), DistributedVectorFactory::GetLow(), PetscTools::GetMyRank(), AbstractCardiacCellInterface::GetNumberOfStateVariables(), PetscTools::GetNumProcs(), PetscVecTools::GetSize(), AbstractCardiacCellInterface::GetStdVecStateVariables(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mDoCacheReplication, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mExchangeHalos, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloGlobalToLocalIndexMap, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToReceivePerProcess, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToSendPerProcess, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed, NEVER_REACHED, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::ReplicateCaches(), PetscTools::ReplicateException(), DistributedVector::Restore(), AbstractCardiacCellInterface::SetStateVariables(), UNUSED_OPT, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdateCaches(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdatePurkinjeCaches().

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.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated.

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

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.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIionicCacheReplicated, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIntracellularStimulusCacheReplicated.

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

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>
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< ELEMENT_DIM, SPACE_DIM >::GetDoCacheReplication(), AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< SPACE_DIM >::save(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetCacheReplication(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mExchangeHalos
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::string AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mFibreFilePathNoExtension
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::map<unsigned, unsigned> AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloGlobalToLocalIndexMap
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector<unsigned> AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloNodes
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated
protected
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.

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector<std::vector<unsigned> > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToReceivePerProcess
protected
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(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems().

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

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.

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
DistributedVectorFactory* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
AbstractConductivityTensors<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpIntracellularConductivityTensors
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIionicCacheReplicated
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIntracellularStimulusCacheReplicated
protected

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