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

#include <MonodomainPurkinjeProblem.hpp>

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

Public Member Functions

 MonodomainPurkinjeProblem (AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM > *pCellFactory)
 
 MonodomainPurkinjeProblem ()
 
virtual ~MonodomainPurkinjeProblem ()
 
void WriteInfo (double time)
 
virtual void DefineWriterColumns (bool extending)
 
virtual void WriteOneStep (double time, Vec voltageVec)
 
- Public Member Functions inherited from AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, 2 >
 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 ()
 
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 ()
 
void DefineExtraVariablesWriterColumns (bool extending)
 
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)
 
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

AbstractCardiacTissue
< ELEMENT_DIM, SPACE_DIM > * 
CreateCardiacTissue ()
 
AbstractDynamicLinearPdeSolver
< ELEMENT_DIM, SPACE_DIM, 2 > * 
CreateSolver ()
 
virtual void CreateMeshFromHeartConfig ()
 
Vec CreateInitialCondition ()
 

Protected Attributes

unsigned mPurkinjeVoltageColumnId
 
- Protected Attributes inherited from AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, 2 >
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 Member Functions

template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 

Friends

class boost::serialization::access
 

Detailed Description

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

Class which specifies and solves a monodomain problem with Purkinje fibres.

Definition at line 51 of file MonodomainPurkinjeProblem.hpp.

Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >::MonodomainPurkinjeProblem ( AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM > *  pCellFactory)

Constructor

Parameters
pCellFactoryuser defined cell factory which shows how the tissue should create cells.

Definition at line 93 of file MonodomainPurkinjeProblem.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >::MonodomainPurkinjeProblem ( )

Constructor just used for archiving

Definition at line 102 of file MonodomainPurkinjeProblem.cpp.

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

Destructor

Definition at line 110 of file MonodomainPurkinjeProblem.cpp.

Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM > * MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >::CreateCardiacTissue ( )
protectedvirtual
Returns
newly created our tissue object.

Implements AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, 2 >.

Definition at line 43 of file MonodomainPurkinjeProblem.cpp.

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
Vec MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >::CreateInitialCondition ( )
protectedvirtual

Overridden method which creates initial condition using Purkinje initial voltages as well.

Returns
newly created initial condition

Reimplemented from AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, 2 >.

Definition at line 70 of file MonodomainPurkinjeProblem.cpp.

References DistributedVector::Begin(), AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::CreateInitialCondition(), DistributedVector::End(), and DistributedVector::Restore().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >::CreateMeshFromHeartConfig ( )
protectedvirtual
Returns
newly created suitable (MixedDimensionMesh) mesh for monodomain problems with Purkinje.

Reimplemented from AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, 2 >.

Definition at line 63 of file MonodomainPurkinjeProblem.cpp.

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, 2 > * MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >::CreateSolver ( )
protectedvirtual
Returns
newly created suitable solver for monodomain problems with Purkinje.
Todo:
#2017 give a nice error

Implements AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, 2 >.

Definition at line 50 of file MonodomainPurkinjeProblem.cpp.

References EXCEPT_IF_NOT, and HeartConfig::Instance().

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

Define what variables are written to the primary results file.

Parameters
extendingwhether we are extending an existing results file

Reimplemented from AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, 2 >.

Definition at line 153 of file MonodomainPurkinjeProblem.cpp.

References AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineExtraVariablesWriterColumns(), and AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineWriterColumns().

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

Archive the member variables.

Parameters
archive
version
Todo:
Serialization of Purkinje problems is untested

Definition at line 63 of file MonodomainPurkinjeProblem.hpp.

References NEVER_REACHED.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >::WriteInfo ( double  time)
virtual

Print out time and max/min voltage values at current time.

Parameters
timethe current time

Implements AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, 2 >.

Definition at line 116 of file MonodomainPurkinjeProblem.cpp.

References PetscTools::AmMaster().

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

Write one timestep of output data to the primary results file. Adds the Purkinje transmembrane potential to the results.

Parameters
timethe current time
voltageVecthe solution vector to write

Implements AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, 2 >.

Definition at line 169 of file MonodomainPurkinjeProblem.cpp.

References AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::WriteExtraVariablesOneStep().

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 55 of file MonodomainPurkinjeProblem.hpp.

Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
unsigned MonodomainPurkinjeProblem< ELEMENT_DIM, SPACE_DIM >::mPurkinjeVoltageColumnId
protected

Used by the writer.

Definition at line 75 of file MonodomainPurkinjeProblem.hpp.


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