40#ifndef LM_IO_HDF5_SIMULATIONFILE_H_ 
   41#define LM_IO_HDF5_SIMULATIONFILE_H_ 
   67class FirstPassageTimes;
 
  104    static herr_t 
parseParameter(hid_t location_id, 
const char *attr_name, 
const H5A_info_t *ainfo, 
void *op_data);
 
  105    void writeParticleLattice_U8LE(
const char* path,  uint8_t *data, 
unsigned int x, 
unsigned int y, 
unsigned int z, 
unsigned int w);
 
  106    void writeParticleLattice_U32LE(hid_t handle, 
const char* path,  
unsigned int *data, 
unsigned int x, 
unsigned int y, 
unsigned int z, 
unsigned int w);
 
  107    void write3DLattice_U8LE(
const char* path,  uint8_t *data, 
unsigned int x, 
unsigned int y, 
unsigned int z);
 
  125    virtual void close();
 
  127    virtual void flush();
 
  136    virtual string getParameter(
string key, 
string defaultValue=
"");
 
  156    virtual void getDiffusionModelLattice(lm::io::DiffusionModel * diffusionModel, 
byte * lattice, 
size_t latticeMaxSize, 
byte * latticeSites, 
size_t latticeSitesMaxSize);
 
  206    virtual void appendSpeciesCounts(
unsigned int replicate, lm::io::SpeciesCounts * speciesCounts);
 
  212    virtual void appendLattice(
unsigned int replicate, lm::io::Lattice * lattice, 
byte * latticeData, 
size_t latticeDataSize);
 
  213    virtual void appendLattice_U32LE(
unsigned int replicate, lm::io::Lattice * lattice, uint32_t * latticeData, 
size_t latticeDataSize);
 
  217    virtual void appendSites(
unsigned int replicate, lm::io::Lattice * lattice, uint8_t * siteData, 
size_t siteDataSize);
 
  221    virtual void appendParameterValues(
unsigned int replicate, lm::io::ParameterValues * parameterValues);
 
  225    virtual void setFirstPassageTimes(
unsigned int replicate, lm::io::FirstPassageTimes * speciesCounts);
 
  262    std::map<uint32_t, uint> 
getParticleCounts(
unsigned int replicate, 
unsigned int latticeIndex);
 
 
unsigned int uint
Definition Types.h:52
std::map< uint32_t, uint > getParticleCounts(unsigned int replicate, unsigned int latticeIndex)
Definition SimulationFile.cpp:2052
virtual void closeReplicateHandles(ReplicateHandles *handles)
Definition SimulationFile.cpp:2232
virtual void flush()
Flush the current buffered data to the file.
Definition SimulationFile.cpp:149
virtual void setDiffusionModelLattice(lm::io::DiffusionModel *m, uint8_t *lattice, uint8_t *latticeSites)
Pushes the diffusion lattice into the HDF5 file.
Definition SimulationFile.cpp:833
static const uint MAX_SHAPE_PARAMETERS
Definition SimulationFile.h:85
map< string, string > parameterMap
Definition SimulationFile.h:303
bool modelLoaded
Definition SimulationFile.h:306
static const uint MIN_VERSION
Definition SimulationFile.h:82
std::map< double, vector< int > > getSpeciesCounts(unsigned int replicate)
Definition SimulationFile.cpp:1973
vector< double > getSpeciesCountTimes(unsigned int replicate)
Definition SimulationFile.cpp:1951
virtual void appendParameterValues(unsigned int replicate, lm::io::ParameterValues *parameterValues)
Adds all the parameter values to the replicate.
Definition SimulationFile.cpp:1446
std::map< uint, string > getSiteTypeNames()
Definition SimulationFile.cpp:2264
hid_t file
Definition SimulationFile.h:296
virtual bool replicateExists(unsigned int replicate)
Checks if the specified replicate exists.
Definition SimulationFile.cpp:1077
virtual ReplicateHandles * openReplicateHandles(unsigned int replicate)
Definition SimulationFile.cpp:2138
static herr_t parseParameter(hid_t location_id, const char *attr_name, const H5A_info_t *ainfo, void *op_data)
Definition SimulationFile.cpp:260
map< unsigned int, ReplicateHandles * > openReplicates
Definition SimulationFile.h:310
unsigned int numberSpecies
Definition SimulationFile.h:307
virtual vector< double > getLatticeTimes(unsigned int replicate)
Get the timestep times for the replicate.
Definition SimulationFile.cpp:1929
virtual void closeAllReplicates()
Close all the replicates.
Definition SimulationFile.cpp:2126
virtual void getSpatialModel(lm::io::SpatialModel *model)
Pops the spacial model (i.e. obstacles) from the HDF5 file.
Definition SimulationFile.cpp:875
static bool isValidFile(const string filename)
Check that the HDF5 file is valid.
Definition SimulationFile.cpp:225
void readAttr(H5Lookup *req, byte *&data, size_t &sz)
Definition SimulationFile.cpp:2449
virtual void openReplicate(unsigned int replicate)
Opens the specified replicate for reading.
Definition SimulationFile.cpp:1085
virtual void setFirstPassageTimes(unsigned int replicate, lm::io::FirstPassageTimes *speciesCounts)
Adds all the first passage times to the replicate.
Definition SimulationFile.cpp:1523
virtual void getLattice(unsigned int replicate, unsigned int latticeIndex, lm::rdme::Lattice *lattice)
Get the lattice for the replicate.
Definition SimulationFile.cpp:2010
virtual ReplicateHandles * createReplicateHandles(string replicateString)
Definition SimulationFile.cpp:2184
virtual map< string, string > getParameters()
Get all the parameters from the current replicate.
Definition SimulationFile.cpp:308
virtual void appendLattice(unsigned int replicate, lm::io::Lattice *lattice, byte *latticeData, size_t latticeDataSize)
Appends the lattice to the current replicate.
Definition SimulationFile.cpp:1166
unsigned int version
Definition SimulationFile.h:297
static void create(const string filename)
Create an HDF5 file.
Definition SimulationFile_create.cpp:56
void writeParticleLattice_U32LE(hid_t handle, const char *path, unsigned int *data, unsigned int x, unsigned int y, unsigned int z, unsigned int w)
Definition SimulationFile.cpp:787
void makeNewDataset(H5MetaData *header, byte *data)
Definition SimulationFile.cpp:2368
hid_t modelGroup
Definition SimulationFile.h:300
virtual void getDiffusionModel(lm::io::DiffusionModel *diffusionModel)
Pops the diffusion model from the HDF5 file.
Definition SimulationFile.cpp:557
virtual void getReactionModel(lm::io::ReactionModel *reactionModel)
Pops the reaction model from the HDF5 file.
Definition SimulationFile.cpp:363
virtual void open()
Definition SimulationFile.cpp:94
SimulationFile(const string filename)
Create a SimulationFile with the specified filename.
Definition SimulationFile.cpp:82
virtual void arbitraryH5Lookup(byte *in, byte *&out, size_t &out_sz)
Definition SimulationFile.cpp:2434
std::map< uint, string > getSpeciesNames()
Definition SimulationFile.cpp:2242
hid_t simulationsGroup
Definition SimulationFile.h:300
void appendToDataset(H5MetaData *header, byte *data)
Definition SimulationFile.cpp:2307
virtual void getDiffusionModelLattice(lm::io::DiffusionModel *diffusionModel, byte *lattice, size_t latticeMaxSize, byte *latticeSites, size_t latticeSitesMaxSize)
Pops the diffusion lattice from the HDF5 file.
Definition SimulationFile.cpp:619
virtual string getParameter(string key, string defaultValue="")
Get the specified parameter from the current replicate.
Definition SimulationFile.cpp:313
hid_t parametersGroup
Definition SimulationFile.h:300
static const uint CURRENT_VERSION
Definition SimulationFile.h:83
virtual void close()
Close the file.
Definition SimulationFile.cpp:189
void readDataset(H5Lookup *req, byte *&data, size_t &sz)
Definition SimulationFile.cpp:2489
virtual void loadParameters()
Definition SimulationFile.cpp:254
virtual void appendSpeciesCounts(unsigned int replicate, lm::io::SpeciesCounts *speciesCounts)
Appends the species counts in the various sites into the replicate.
Definition SimulationFile.cpp:1090
virtual void appendLattice_U32LE(unsigned int replicate, lm::io::Lattice *lattice, uint32_t *latticeData, size_t latticeDataSize)
Definition SimulationFile.cpp:1267
virtual string checkpoint()
Create the current checkpoint to the HDF5 file.
Definition SimulationFile.cpp:158
void writeParticleLattice_U8LE(const char *path, uint8_t *data, unsigned int x, unsigned int y, unsigned int z, unsigned int w)
Definition SimulationFile.cpp:763
void write3DLattice_U8LE(const char *path, uint8_t *data, unsigned int x, unsigned int y, unsigned int z)
Definition SimulationFile.cpp:811
virtual void setDiffusionModel(lm::io::DiffusionModel *diffusionModel)
Pushes the diffusion model into the HDF5 file.
Definition SimulationFile.cpp:696
virtual void arbitraryH5(byte *ptr)
Definition SimulationFile.cpp:2287
virtual void closeReplicate(unsigned int replicate)
Close the specified replicate.
Definition SimulationFile.cpp:2114
virtual void appendSites(unsigned int replicate, lm::io::Lattice *lattice, uint8_t *siteData, size_t siteDataSize)
Definition SimulationFile.cpp:1347
virtual void setParameter(string key, string value)
Set the specified parameter to the value.
Definition SimulationFile.cpp:322
static const uint MAX_REACTION_RATE_CONSTANTS
Definition SimulationFile.h:84
virtual void openGroups()
Definition SimulationFile.cpp:136
virtual void setSpatialModel(lm::io::SpatialModel *model)
Pushes the spacial model (i.e. obstacles) into the HDF5 file.
Definition SimulationFile.cpp:970
string filename
Definition SimulationFile.h:295
virtual void setReactionModel(lm::io::ReactionModel *reactionModel)
Pushes the reaction model into the HDF5 file.
Definition SimulationFile.cpp:472
virtual ~SimulationFile()
Destroy the SimulationFile.
Definition SimulationFile.cpp:143
void appendDsToGroup(H5MetaData *header, byte *data)
Definition SimulationFile.cpp:2396
virtual void loadModel()
Definition SimulationFile.cpp:339
A Lattice that is based on packed bytes of memory, i.e. one byte per lattice site to hold particles.
Definition ByteLattice.h:53
A Lattice that is based on one particle per word, with sites strided per particle.
Definition IntLattice.h:53
Base class for lattice type objects.
Definition Lattice.h:132
Definition LatticeBuilder.h:56
Definition LatticeBuilder.h:60
Definition Capsule.cpp:46
Definition ArbitraryH5.h:56
hid_t speciesCountsDataset
Definition SimulationFile.h:276
hid_t group
Definition SimulationFile.h:275
hid_t speciesCountTimesDataset
Definition SimulationFile.h:277
ReplicateHandles()
Set up the ReplicateHandles.
Definition SimulationFile.h:280