CardiacSimulationArchiver< PROBLEM_CLASS > Class Template Reference

#include <CardiacSimulationArchiver.hpp>

List of all members.

Static Public Member Functions

static void Save (PROBLEM_CLASS &simulationToArchive, const std::string &rDirectory, bool clearDirectory=true)
static PROBLEM_CLASS * Load (const std::string &rDirectory)
static PROBLEM_CLASS * Migrate (const std::string &rDirectory)

Detailed Description

template<class PROBLEM_CLASS>
class CardiacSimulationArchiver< PROBLEM_CLASS >

CardiacSimulationArchiver is a helper class for checkpointing of cardiac simulations.

The class is templated over the class defining the simulation (i.e. MonodomainProblem)

Definition at line 51 of file CardiacSimulationArchiver.hpp.


Member Function Documentation

template<class PROBLEM_CLASS >
PROBLEM_CLASS * CardiacSimulationArchiver< PROBLEM_CLASS >::Load ( const std::string &  rDirectory  )  [inline, static]

Unarchives a simulation from the directory specified.

Does a migrate if necessary (this is actually just a wrapper around the Migrate method now).

Note:
Must be called collectively, i.e. by all processes.
Parameters:
rDirectory directory where the multiple files defining the checkpoint are located (relative to CHASTE_TEST_OUTPUT)

Definition at line 150 of file CardiacSimulationArchiver.hpp.

References CardiacSimulationArchiver< PROBLEM_CLASS >::Migrate().

template<class PROBLEM_CLASS >
PROBLEM_CLASS * CardiacSimulationArchiver< PROBLEM_CLASS >::Migrate ( const std::string &  rDirectory  )  [inline, static]

Load a simulation, saved by any number of processes, into the correct number of processes for those currently launched.

Note:
Must be called collectively, i.e. by all processes.

Uses the DistributedVectorFactory saved in the process 0 archive to work out how many secondary archive files to read, and loads the cells and boundary conditions from these too.

Uses a dumb partition to work out how to distribute the mesh and cells over the processes. If we are loading on the same number of processes as the simulation was saved on, it uses exactly the same distribution as before.

Parameters:
rDirectory directory where the multiple files defining the checkpoint are located (relative to CHASTE_TEST_OUTPUT)

Definition at line 157 of file CardiacSimulationArchiver.hpp.

References ArchiveOpener< Archive, Stream >::GetCommonArchive(), DistributedVectorFactory::GetNumProcs(), PetscTools::GetNumProcs(), DistributedVectorFactory::GetOriginalFactory(), OutputFileHandler::GetOutputDirectoryFullPath(), ArchiveLocationInfo::GetProcessUniqueFilePath(), and DistributedVectorFactory::SetCheckNumberOfProcessesOnLoad().

Referenced by CardiacSimulationArchiver< PROBLEM_CLASS >::Load().

template<class PROBLEM_CLASS >
void CardiacSimulationArchiver< PROBLEM_CLASS >::Save ( PROBLEM_CLASS &  simulationToArchive,
const std::string &  rDirectory,
bool  clearDirectory = true 
) [inline, static]

Archives a simulation in the directory specified.

Note:
Must be called collectively, i.e. by all processes.
Parameters:
simulationToArchive object defining the simulation to archive
rDirectory directory where the multiple files defining the checkpoint will be stored (relative to CHASTE_TEST_OUTPUT)
clearDirectory whether the directory needs to be cleared or not.

Todo:
#1026 get a real version number!

Definition at line 103 of file CardiacSimulationArchiver.hpp.

References PetscTools::AmMaster(), PetscTools::Barrier(), ArchiveOpener< Archive, Stream >::GetCommonArchive(), PetscTools::GetNumProcs(), OutputFileHandler::GetOutputDirectoryFullPath(), and PetscTools::ReplicateBool().


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

Generated by  doxygen 1.6.2