Chaste Commit::f2ff7ee04e70ac9d06c57344df8d017dbb12b97b
AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > Class Template Referenceabstract

#include <AbstractCardiacProblem.hpp>

+ Inheritance diagram for AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >:
+ Collaboration diagram for AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >:

Public Member Functions

 AbstractCardiacProblem (AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > *pCellFactory)
 
 AbstractCardiacProblem ()
 
virtual ~AbstractCardiacProblem ()
 
void Initialise ()
 
void SetNodesPerProcessorFilename (const std::string &rFilename)
 
void SetBoundaryConditionsContainer (BccType pBcc)
 
virtual void PreSolveChecks ()
 
virtual Vec CreateInitialCondition ()
 
void SetMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
 
void PrintOutput (bool rPrintOutput)
 
void SetWriteInfo (bool writeInfo=true)
 
Vec GetSolution ()
 
DistributedVector GetSolutionDistributedVector ()
 
double GetCurrentTime ()
 
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > & rGetMesh ()
 
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM > * GetTissue ()
 
void Solve ()
 
void CloseFilesAndPostProcess ()
 
virtual void WriteInfo (double time)=0
 
virtual void DefineWriterColumns (bool extending)
 
void DefineExtraVariablesWriterColumns (bool extending)
 
virtual void WriteOneStep (double time, Vec voltageVec)=0
 
void WriteExtraVariablesOneStep ()
 
bool InitialiseWriter ()
 
void SetUseHdf5DataWriterCache (bool useCache=true)
 
void SetHdf5DataWriterTargetChunkSizeAndAlignment (hsize_t size)
 
void SetOutputNodes (std::vector< unsigned > &rNodesToOutput)
 
Hdf5DataReader GetDataReader ()
 
virtual void AtBeginningOfTimestep (double time)
 
virtual void OnEndOfTimestep (double time)
 
virtual void SetUpAdditionalStoppingTimes (std::vector< double > &rAdditionalStoppingTimes)
 
void SetUseTimeAdaptivityController (bool useAdaptivity, AbstractTimeAdaptivityController *pController=NULL)
 
template<class Archive >
void LoadExtraArchive (Archive &archive, unsigned version)
 
virtual bool GetHasBath ()
 
virtual void SetElectrodes ()
 
void AddOutputModifier (boost::shared_ptr< AbstractOutputModifier > pOutputModifier)
 
- Public Member Functions inherited from AbstractUntemplatedCardiacProblem
virtual ~AbstractUntemplatedCardiacProblem ()
 

Protected Member Functions

virtual AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM > * CreateCardiacTissue ()=0
 
virtual AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > * CreateSolver ()=0
 
virtual void CreateMeshFromHeartConfig ()
 

Protected Attributes

std::string mMeshFilename
 
bool mAllocatedMemoryForMesh
 
bool mWriteInfo
 
bool mPrintOutput
 
std::vector< unsignedmNodesToOutput
 
unsigned mVoltageColumnId
 
std::vector< unsignedmExtraVariablesId
 
unsigned mTimeColumnId
 
unsigned mNodeColumnId
 
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM > * mpCardiacTissue
 
BccType mpBoundaryConditionsContainer
 
BccType mpDefaultBoundaryConditionsContainer
 
AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > * mpSolver
 
AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > * mpCellFactory
 
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * mpMesh
 
Vec mSolution
 
double mCurrentTime
 
AbstractTimeAdaptivityControllermpTimeAdaptivityController
 
Hdf5DataWritermpWriter
 
bool mUseHdf5DataWriterCache
 
hsize_t mHdf5DataWriterChunkSizeAndAlignment
 
std::vector< boost::shared_ptr< AbstractOutputModifier > > mOutputModifiers
 

Private Types

typedef boost::shared_ptr< BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > > BccType
 

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)
 
template<class Archive >
void SaveBoundaryConditions (Archive &archive, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BccType pBcc) const
 
template<class Archive >
BccType LoadBoundaryConditions (Archive &archive, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
 

Friends

class TestBidomainWithBath
 
class TestMonodomainProblem
 
class TestCardiacSimulationArchiver
 
class boost::serialization::access
 
template<unsigned DIM, unsigned ELEC_PROB_DIM>
class CardiacElectroMechanicsProblem
 

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
class AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >

Base class for cardiac problems; contains code generic to mono-/bi-domain and bidomain-with-bath.

This class contains the tissue (PDEs and 'cells' ODEs), boundary conditions, and postprocessing/results writers.

It is called by CardiacSimulation, which is the outer wrapper class for running a cardiac simulation, used by the executable.

Many non-standard simulations will use this class directly, and this is the preferred method for non-executable users. See tutorials for usage.

Definition at line 113 of file AbstractCardiacProblem.hpp.

Member Typedef Documentation

◆ BccType

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
typedef boost::shared_ptr<BoundaryConditionsContainer<ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM> > AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::BccType
private

To save typing

Definition at line 121 of file AbstractCardiacProblem.hpp.

Constructor & Destructor Documentation

◆ AbstractCardiacProblem() [1/2]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::AbstractCardiacProblem ( AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > *  pCellFactory)

◆ AbstractCardiacProblem() [2/2]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::AbstractCardiacProblem ( )

Constructor used by archiving.

Definition at line 78 of file AbstractCardiacProblem.cpp.

◆ ~AbstractCardiacProblem()

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

Destructor

Definition at line 102 of file AbstractCardiacProblem.cpp.

References PetscTools::Destroy().

Member Function Documentation

◆ AddOutputModifier()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::AddOutputModifier ( boost::shared_ptr< AbstractOutputModifier pOutputModifier)
inline

Add an output modifier onto a list of such objects. These will be processed in the order in which they have been given. The modifier should not be destroyed before the solve loop has completed

Parameters
pOutputModifierPointer to the modifier to be added

Definition at line 799 of file AbstractCardiacProblem.hpp.

References AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mOutputModifiers.

◆ AtBeginningOfTimestep()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
virtual void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::AtBeginningOfTimestep ( double  time)
inlinevirtual

Called at beginning of each time step in the main time-loop in Solve(). Empty implementation but can be overloaded by child classes.

Parameters
timethe current time

Reimplemented in BidomainProblem< DIM >.

Definition at line 726 of file AbstractCardiacProblem.hpp.

◆ CloseFilesAndPostProcess()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::CloseFilesAndPostProcess ( )

Closes the files where the solution is stored and, if specified so (as it is by default), converts the output to Meshalyzer format by calling the WriteFilesUsingMesh method in the MeshalyzerWriter class.

Note
This method is collective, and hence must be called by all processes.

Definition at line 587 of file AbstractCardiacProblem.cpp.

◆ CreateCardiacTissue()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
virtual AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM > * AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::CreateCardiacTissue ( )
protectedpure virtual

Subclasses must override this method to create a PDE object of the appropriate type.

This class will take responsibility for freeing the object when it is finished with.

Returns
a pointer to the newly created tissue

Implemented in BidomainProblem< DIM >, ExtendedBidomainProblem< DIM >, MonodomainProblem< ELEMENT_DIM, SPACE_DIM >, and MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >.

◆ CreateInitialCondition()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
Vec AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::CreateInitialCondition ( )
virtual

This method sets the initial condition for the PDE by getting the voltages (V) from the cell models at the nodes.

If the problem dimension is two (Bidomain) the second variable (phi_e) is set to zero.

This is virtual so BidomainProblem can overwrite V to zero for bath nodes, if there are any.

Returns
the newly created intial conditions vector
Todo:
Perhaps this should be a method of AbstractCardiacTissue??

Reimplemented in BidomainProblem< DIM >, ExtendedBidomainProblem< DIM >, and MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >.

Definition at line 265 of file AbstractCardiacProblem.cpp.

References DistributedVector::Begin(), DistributedVectorFactory::CreateDistributedVector(), DistributedVectorFactory::CreateVec(), DistributedVector::End(), and DistributedVector::Restore().

Referenced by BidomainProblem< DIM >::CreateInitialCondition(), and MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >::CreateInitialCondition().

◆ CreateMeshFromHeartConfig()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::CreateMeshFromHeartConfig ( )
protectedvirtual

Subclasses must override this method to create a suitable mesh object.

Only needed if the subclass needs something other than a DistributedTetrahedralMesh.

This class will take responsibility for freeing the object when it is finished with.

Reimplemented in MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >.

Definition at line 217 of file AbstractCardiacProblem.cpp.

References HeartConfig::Instance().

◆ CreateSolver()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
virtual AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > * AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::CreateSolver ( )
protectedpure virtual

Subclasses must override this method to create a suitable solver object.

This class will take responsibility for freeing the object when it is finished with.

Returns
pointer to newly created PDE solver

Implemented in BidomainProblem< DIM >, ExtendedBidomainProblem< DIM >, MonodomainProblem< ELEMENT_DIM, SPACE_DIM >, and MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >.

◆ DefineExtraVariablesWriterColumns()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineExtraVariablesWriterColumns ( bool  extending)

Define the user specified variables to be written to the primary results file

Parameters
extendingwhether we are extending an existing results file

Definition at line 730 of file AbstractCardiacProblem.cpp.

References HeartConfig::GetOutputVariables(), and HeartConfig::Instance().

Referenced by BidomainProblem< DIM >::DefineWriterColumns(), ExtendedBidomainProblem< DIM >::DefineWriterColumns(), MonodomainProblem< ELEMENT_DIM, SPACE_DIM >::DefineWriterColumns(), and MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >::DefineWriterColumns().

◆ DefineWriterColumns()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineWriterColumns ( bool  extending)
virtual

◆ GetCurrentTime()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
double AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::GetCurrentTime ( )
Returns
the current time of the simulation

Definition at line 332 of file AbstractCardiacProblem.cpp.

◆ GetDataReader()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
Hdf5DataReader AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::GetDataReader ( )
Returns
a newly created data reader configured to read the results we've been outputting.

Definition at line 911 of file AbstractCardiacProblem.cpp.

References EXCEPTION, and HeartConfig::Instance().

◆ GetHasBath()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
bool AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::GetHasBath ( )
virtual
Returns
whether there's bath defined in this problem

Reimplemented in BidomainProblem< DIM >, and ExtendedBidomainProblem< DIM >.

Definition at line 921 of file AbstractCardiacProblem.cpp.

◆ GetSolution()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
Vec AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::GetSolution ( )
Returns
the final solution vector. This vector is distributed over all processes.

In case of Bidomain, this is of length 2*numNodes, and of the form (V_1, phi_1, V_2, phi_2, ......, V_N, phi_N). where V_j is the voltage at node j and phi_j is the extracellular potential at node j.

Use with caution since we don't want to alter the state of the PETSc vector.

Definition at line 320 of file AbstractCardiacProblem.cpp.

◆ GetSolutionDistributedVector()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
DistributedVector AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::GetSolutionDistributedVector ( )
Returns
the solution vector, wrapped in a DistributedVector.

See also GetSolution.

Definition at line 326 of file AbstractCardiacProblem.cpp.

◆ GetTissue()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM > * AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::GetTissue ( )
Returns
the cardiac tissue object used

Definition at line 345 of file AbstractCardiacProblem.cpp.

References EXCEPTION.

◆ Initialise()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Initialise ( )

Initialise the system, once parameters have been set up.

Must be called before first calling Solve(). If loading from a checkpoint, do NOT call this method, as it can also be used to reset the problem to perform another simulation from time 0.

Definition at line 117 of file AbstractCardiacProblem.cpp.

References GenericEventHandler< 16, HeartEventHandler >::BeginEvent(), PetscTools::Destroy(), GenericEventHandler< 16, HeartEventHandler >::EndEvent(), EXCEPTION, HeartConfig::GetFibreLength(), HeartConfig::GetInterNodeSpace(), HeartConfig::GetSheetDimensions(), HeartConfig::GetSlabDimensions(), HeartConfig::Instance(), PetscTools::IsParallel(), and NEVER_REACHED.

◆ InitialiseWriter()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
bool AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::InitialiseWriter ( )

It creates and initialises the hdf writer from the Hdf5DataWriter class. It passes the output directory and file name to it. It is called by Solve(), if the output needs to be generated.

This method will try to open an existing .h5 file for extension if we are loading from an archive and one is present.

Returns
whether the writer is outputting to an existing file.

Definition at line 814 of file AbstractCardiacProblem.cpp.

References RelativeTo::Absolute, PetscTools::Barrier(), EXCEPTION, FileFinder::Exists(), FileFinder::GetAbsolutePath(), OutputFileHandler::GetChasteTestOutputDirectory(), HeartConfig::GetOutputDirectory(), HeartConfig::GetOutputFilenamePrefix(), Hdf5DataReader::GetUnlimitedDimensionValues(), HeartConfig::Instance(), and HeartConfig::SetOutputUsingOriginalNodeOrdering().

◆ load()

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

Load the member variables.

Parameters
archive
version
Todo:
#1317 code for saving/loading mSolution is PROBLEM_DIM specific, move it into the save/load methods for Mono and BidomainProblem. (ExtendedBidomain has its own already.)
Todo:
Todo:
#1317 is there a reason we can't use PETSc's load/save vector functionality?

Definition at line 224 of file AbstractCardiacProblem.hpp.

References DistributedVector::Begin(), PetscTools::Destroy(), DistributedVector::End(), EXCEPTION, ArchiveLocationInfo::GetArchiveRelativePath(), Hdf5DataReader::GetVariableOverNodes(), FileFinder::IsAbsolutePath(), AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::LoadBoundaryConditions(), AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mCurrentTime, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mHdf5DataWriterChunkSizeAndAlignment, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mMeshFilename, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mNodesToOutput, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mOutputModifiers, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpBoundaryConditionsContainer, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpCardiacTissue, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpDefaultBoundaryConditionsContainer, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpMesh, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mPrintOutput, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mSolution, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mUseHdf5DataWriterCache, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mWriteInfo, and DistributedVector::Restore().

◆ LoadBoundaryConditions()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
template<class Archive >
BccType AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::LoadBoundaryConditions ( Archive &  archive,
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *  pMesh 
)
inlineprivate

Serialization helper method to load a boundary conditions container.

Parameters
archivethe archive to load from
pMeshthe mesh boundary conditions are to be defined on
Returns
the loaded container

Definition at line 367 of file AbstractCardiacProblem.hpp.

References ProcessSpecificArchive< Archive >::Get().

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

◆ LoadExtraArchive()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
template<class Archive >
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::LoadExtraArchive ( Archive &  archive,
unsigned  version 
)

Used when loading a set of archives written by a parallel simulation onto a single process. Loads data from the given process-specific archive (written by a non-master process) and merges it into our data.

Parameters
archivethe archive to load
versionthe archive file version
Note
The process-specific archives currently contain the following data. If the layout changes, then this method will need to be altered, since it hard-codes knowledge of the order in which things are archived.
  1. (via mpMesh) DistributedVectorFactory*
  2. (via mpCardiacTissue LoadCardiacCells) DistributedVectorFactory*
  3. (via mpCardiacTissue LoadCardiacCells) number_of_cells and sequence of AbstractCardiacCell*, possibly with Purkinje interleaved
  4. (via mpCardiacTissue) DistributedVectorFactory*
  5. mpBoundaryConditionsContainer
  6. mpDefaultBoundaryConditionsContainer
  7. (if we're a BidomainProblem) stuff in BidomainProblem::LoadExtraArchiveForBidomain

Definition at line 813 of file AbstractCardiacProblem.hpp.

References DistributedVectorFactory::GetNumProcs(), DistributedVectorFactory::GetOriginalFactory(), BidomainProblem< DIM >::LoadExtraArchiveForBidomain(), AbstractCardiacProblem< DIM, DIM, 2 >::mpBoundaryConditionsContainer, AbstractCardiacProblem< DIM, DIM, 2 >::mpCardiacTissue, and AbstractCardiacProblem< DIM, DIM, 2 >::mpMesh.

◆ OnEndOfTimestep()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
virtual void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::OnEndOfTimestep ( double  time)
inlinevirtual

Called at end of each time step in the main time-loop in Solve(). Empty implementation but can be overloaded by child classes.

Parameters
timethe current time

Reimplemented in BidomainProblem< DIM >.

Definition at line 736 of file AbstractCardiacProblem.hpp.

◆ PreSolveChecks()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::PreSolveChecks ( )
virtual

Performs a series of checks before solving. It checks whether the cardiac pde has been defined, whether the simulation time is greater than zero and whether the output directory is specified (or the output is set not to be produced). It throws exceptions if any of the above checks fails.

Todo:
remove magic number? (#1884)

Reimplemented in BidomainProblem< DIM >, and ExtendedBidomainProblem< DIM >.

Definition at line 229 of file AbstractCardiacProblem.cpp.

References EXCEPTION, HeartConfig::GetPdeTimeStep(), HeartConfig::GetSimulationDuration(), and HeartConfig::Instance().

Referenced by BidomainProblem< DIM >::PreSolveChecks(), and ExtendedBidomainProblem< DIM >::PreSolveChecks().

◆ PrintOutput()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::PrintOutput ( bool  rPrintOutput)

Set whether the simulation will generate results files.

Parameters
rPrintOutput

Definition at line 308 of file AbstractCardiacProblem.cpp.

◆ rGetMesh()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > & AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::rGetMesh ( )
Returns
the mesh used

Definition at line 338 of file AbstractCardiacProblem.cpp.

◆ save()

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

Save the member variables.

Parameters
archive
version
Todo:
#1317 code for saving/loading mSolution is PROBLEM_DIM specific, move it into the save/load methods for Mono and BidomainProblem. Note that extended_bidomain has its own version of this code.

Definition at line 134 of file AbstractCardiacProblem.hpp.

References Hdf5DataWriter::Close(), Hdf5DataWriter::DefineFixedDimension(), Hdf5DataWriter::DefineUnlimitedDimension(), Hdf5DataWriter::DefineVariable(), Hdf5DataWriter::EndDefineMode(), ArchiveLocationInfo::GetArchiveRelativePath(), AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mCurrentTime, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mHdf5DataWriterChunkSizeAndAlignment, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mMeshFilename, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mNodesToOutput, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mOutputModifiers, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpBoundaryConditionsContainer, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpCardiacTissue, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpDefaultBoundaryConditionsContainer, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpMesh, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mPrintOutput, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mSolution, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mUseHdf5DataWriterCache, AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mWriteInfo, Hdf5DataWriter::PutStripedVector(), Hdf5DataWriter::PutUnlimitedVariable(), Hdf5DataWriter::PutVector(), and AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SaveBoundaryConditions().

◆ SaveBoundaryConditions()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
template<class Archive >
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SaveBoundaryConditions ( Archive &  archive,
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *  pMesh,
BccType  pBcc 
) const
inlineprivate

Serialization helper method to save a boundary conditions container.

Parameters
archivethe archive to save to
pMeshthe mesh boundary conditions are defined on
pBccthe container to save

Definition at line 352 of file AbstractCardiacProblem.hpp.

References ProcessSpecificArchive< Archive >::Get().

Referenced by AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::save().

◆ SetBoundaryConditionsContainer()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetBoundaryConditionsContainer ( BccType  pBcc)

Set the boundary conditions container.

Parameters
pBccis a pointer to a boundary conditions container

Definition at line 223 of file AbstractCardiacProblem.cpp.

◆ SetElectrodes()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetElectrodes ( )
virtual

Set an electrode object (which provides boundary conditions). Only valid if there is a bath.

Reimplemented in BidomainProblem< DIM >.

Definition at line 927 of file AbstractCardiacProblem.cpp.

◆ SetHdf5DataWriterTargetChunkSizeAndAlignment()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetHdf5DataWriterTargetChunkSizeAndAlignment ( hsize_t  size)

Set Hdf5DataWriter target chunk size and alignment parameters.

The most likely use case for this is setting it to the stripe size on a striped filesystem. This results in the writer choosing chunk dimensions that should efficiently fit within a stripe, AND padding the chunks so each chunk fits in one stripe.

For example, if your filesystem uses 1 M stripes, call this method with argument 1048576 (or 0x100000 if you like round numbers).

NOTE: The alignment parameter is only used for NEW HDF5 files. The chunk size is only used for NEW datasets (e.g. results or postprocessing) and NOT when EXTENDING a dataset. In other words, when adding a dataset to a file the alignment parameter will be ignored. When adding to a dataset, both will be ignored. etc.

Parameters
sizesize in bytes to use for target chunk size and alignment

Definition at line 899 of file AbstractCardiacProblem.cpp.

◆ SetMesh()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetMesh ( AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *  pMesh)

This only needs to be called if a mesh filename has not been set.

Parameters
pMeshthe mesh object to use

Definition at line 295 of file AbstractCardiacProblem.cpp.

◆ SetNodesPerProcessorFilename()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetNodesPerProcessorFilename ( const std::string &  rFilename)

Set a file from which the nodes for each processor are read

Parameters
rFilename

◆ SetOutputNodes()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetOutputNodes ( std::vector< unsigned > &  rNodesToOutput)

Specifies which nodes in the mesh to output. This method must be called before InitialiseWriter, otherwise all nodes will still be output. If this method is called when extending an existing HDF5 file, it will be ignored.

Parameters
rNodesToOutputis a reference to a vector with the indexes of the nodes where the output is desired. If empty, the output will be for all the nodes in the mesh.

Definition at line 905 of file AbstractCardiacProblem.cpp.

◆ SetUpAdditionalStoppingTimes()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
virtual void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetUpAdditionalStoppingTimes ( std::vector< double > &  rAdditionalStoppingTimes)
inlinevirtual

Allow subclasses to define additional 'stopping times' for the printing time step loop. This allows bidomain simulations to specify exactly when the Electrodes should be turned on or off.

Parameters
rAdditionalStoppingTimesto be filled in with the additional stopping times

Reimplemented in BidomainProblem< DIM >.

Definition at line 746 of file AbstractCardiacProblem.hpp.

◆ SetUseHdf5DataWriterCache()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetUseHdf5DataWriterCache ( bool  useCache = true)

Set whether to use caching in the Hdf5DataWriter. This tells the Hdf5DataWriter to write only whole chunks to disk, rather than every print timestep, which is much faster when running with many processes.

Parameters
useCacheWhether to use the cache

Definition at line 893 of file AbstractCardiacProblem.cpp.

◆ SetUseTimeAdaptivityController()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetUseTimeAdaptivityController ( bool  useAdaptivity,
AbstractTimeAdaptivityController pController = NULL 
)
Todo:
#1704 add default adaptivity controller and allow the user just to call with true

Set whether (or not) to use a time adaptivity controller

Parameters
useAdaptivitywhether to use adaptivity
pControllerThe controller (only relevant if useAdaptivity==true)

Definition at line 355 of file AbstractCardiacProblem.cpp.

◆ SetWriteInfo()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetWriteInfo ( bool  writeInfo = true)

Set whether extra info will be written to stdout during computation.

Parameters
writeInfo

Definition at line 314 of file AbstractCardiacProblem.cpp.

◆ Solve()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Solve ( )

First performs some checks by calling the PreSolveChecks method. It creates an solver to which it passes the boundary conditions specified by the user (otherwise it passes the defauls bcc). It then calls the Solve method on the solver class. It also handles the output, if necessary.

Note
This method is collective, and hence must be called by all processes.

Definition at line 371 of file AbstractCardiacProblem.cpp.

References GenericEventHandler< 16, HeartEventHandler >::BeginEvent(), PetscTools::Destroy(), GenericEventHandler< 16, HeartEventHandler >::EndEvent(), HeartConfig::GetOutputDirectory(), TimeStepper::GetTime(), and HeartConfig::Instance().

◆ WriteExtraVariablesOneStep()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::WriteExtraVariablesOneStep ( )

◆ WriteInfo()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
virtual void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::WriteInfo ( double  time)
pure virtual

Write informative details about the progress of the simulation to standard output.

Implemented only in subclasses.

Parameters
timethe current time

Implemented in BidomainProblem< DIM >, ExtendedBidomainProblem< DIM >, MonodomainProblem< ELEMENT_DIM, SPACE_DIM >, and MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >.

◆ WriteOneStep()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
virtual void AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::WriteOneStep ( double  time,
Vec  voltageVec 
)
pure virtual

Write one timestep of output data to the primary results file.

Parameters
timethe current time
voltageVecthe solution vector to write

Implemented in BidomainProblem< DIM >, ExtendedBidomainProblem< DIM >, MonodomainProblem< ELEMENT_DIM, SPACE_DIM >, and MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >.

Friends And Related Symbol Documentation

◆ boost::serialization::access

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

Needed for serialization.

Definition at line 125 of file AbstractCardiacProblem.hpp.

◆ CardiacElectroMechanicsProblem

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
template<unsigned DIM, unsigned ELEC_PROB_DIM>
friend class CardiacElectroMechanicsProblem
friend

CardiacElectroMechanicsProblem needs access to mpWriter.

Definition at line 467 of file AbstractCardiacProblem.hpp.

◆ TestBidomainWithBath

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
friend class TestBidomainWithBath
friend

Definition at line 115 of file AbstractCardiacProblem.hpp.

◆ TestCardiacSimulationArchiver

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
friend class TestCardiacSimulationArchiver
friend

Definition at line 117 of file AbstractCardiacProblem.hpp.

◆ TestMonodomainProblem

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
friend class TestMonodomainProblem
friend

Definition at line 116 of file AbstractCardiacProblem.hpp.

Member Data Documentation

◆ mAllocatedMemoryForMesh

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
bool AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mAllocatedMemoryForMesh
protected

Whether this problem class has created the mesh itself, as opposed to being given it

Definition at line 390 of file AbstractCardiacProblem.hpp.

◆ mCurrentTime

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
double AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mCurrentTime
protected

The current simulation time.

This is used to be able to restart simulations at a point other than time zero, either because of repeated calls to Solve (with increased simulation duration) or because of restarting from a checkpoint.

Definition at line 433 of file AbstractCardiacProblem.hpp.

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

◆ mExtraVariablesId

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
std::vector<unsigned> AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mExtraVariablesId
protected

List of extra variables to be written to HDF5 file

Definition at line 402 of file AbstractCardiacProblem.hpp.

◆ mHdf5DataWriterChunkSizeAndAlignment

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
hsize_t AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mHdf5DataWriterChunkSizeAndAlignment
protected

◆ mMeshFilename

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
std::string AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mMeshFilename
protected

Meshes can be read from file or instantiated and passed directly to this class, this is for the former

Definition at line 387 of file AbstractCardiacProblem.hpp.

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

◆ mNodeColumnId

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
unsigned AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mNodeColumnId
protected

Used by the writer

Definition at line 406 of file AbstractCardiacProblem.hpp.

◆ mNodesToOutput

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
std::vector<unsigned> AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mNodesToOutput
protected

◆ mOutputModifiers

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
std::vector<boost::shared_ptr<AbstractOutputModifier> > AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mOutputModifiers
protected

◆ mpBoundaryConditionsContainer

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
BccType AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpBoundaryConditionsContainer
protected

◆ mpCardiacTissue

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
AbstractCardiacTissue<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpCardiacTissue
protected

◆ mpCellFactory

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
AbstractCardiacCellFactory<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpCellFactory
protected

The cell factory creates the cells for each node

Definition at line 418 of file AbstractCardiacProblem.hpp.

Referenced by AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::AbstractCardiacProblem().

◆ mpDefaultBoundaryConditionsContainer

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
BccType AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpDefaultBoundaryConditionsContainer
protected

It is convenient to also have a separate variable for default (zero-Neumann) boundary conditions

Definition at line 414 of file AbstractCardiacProblem.hpp.

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

◆ mpMesh

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
AbstractTetrahedralMesh<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpMesh
protected

The mesh. Can either by passed in, or the mesh filename can be set

Definition at line 420 of file AbstractCardiacProblem.hpp.

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

◆ mPrintOutput

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
bool AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mPrintOutput
protected

◆ mpSolver

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
AbstractDynamicLinearPdeSolver<ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM>* AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpSolver
protected

The PDE solver

Definition at line 416 of file AbstractCardiacProblem.hpp.

◆ mpTimeAdaptivityController

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
AbstractTimeAdaptivityController* AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpTimeAdaptivityController
protected

Adaptivity controller (defaults to NULL).

Definition at line 436 of file AbstractCardiacProblem.hpp.

◆ mpWriter

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
Hdf5DataWriter* AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpWriter
protected

The object to use to write results to disk.

Definition at line 472 of file AbstractCardiacProblem.hpp.

◆ mSolution

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
Vec AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mSolution
protected

The current solution vector, of the form [V_0 .. V_N ] for monodomain and [V_0 phi_0 .. V_N phi_N] for bidomain

Definition at line 424 of file AbstractCardiacProblem.hpp.

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

◆ mTimeColumnId

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
unsigned AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mTimeColumnId
protected

Used by the writer

Definition at line 404 of file AbstractCardiacProblem.hpp.

◆ mUseHdf5DataWriterCache

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
bool AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mUseHdf5DataWriterCache
protected

◆ mVoltageColumnId

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
unsigned AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mVoltageColumnId
protected

Used by the writer

Definition at line 400 of file AbstractCardiacProblem.hpp.

◆ mWriteInfo

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM>
bool AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mWriteInfo
protected

Whether to print some statistics (max/min voltage) to screen during the simulation

Definition at line 392 of file AbstractCardiacProblem.hpp.

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


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