Chaste  Release::2017.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
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(), and AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, 2 >::mSolution.

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

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

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