#include "LevelData.H"
#include "HDF5Portable.H"
#include "CH_HDF5.H"
#include <string>
#include <map>
#include "RealVect.H"
#include "CH_Timer.H"
#include "LoadBalance.H"
#include "LayoutIterator.H"
#include "Vector.H"
#include "memtrack.H"
#include "FluxBox.H"
#include "SPMD.H"
Go to the source code of this file.
Functions | |
template<class T> | |
void | blockLocalOffsets (Vector< long long > &a_localSizes, long long &a_localTotalSize, Vector< Box > &a_localBoxes, const BoxLayoutData< T > &a_data, const Interval &a_comps, const IntVect &a_outputGhost) |
template<class T> | |
void | blockWriteToBuffer (void *a_buffer, const Vector< long long > &a_sizes, const BoxLayoutData< T > &a_data, const Interval &a_comps, const IntVect &a_outputGhost) |
int | gatherBoxesAndOffsets (long long &a_offsetThisProc, long long &a_allProcSize, Vector< long long > &a_globalOffsets, Vector< Box > &a_globalBoxes, const Vector< long long > &a_localBoxSizes, const Vector< Box > &a_localBoxes, const long long &a_localAllBoxSize) |
int | blockWriteBufferToFile (HDF5Handle &a_handle, void *a_buffer, const std::string &a_name, Vector< Box > &a_boxes, Vector< long long > &a_sizes, const Vector< hid_t > &a_types, const BoxLayout &a_layout, const long long &a_thisprocsize) |
template<class T> | |
int | blockWrite (HDF5Handle &a_handle, const LevelData< T > &a_data, const std::string &a_name, const IntVect &a_outputGhost, const Interval &a_in_comps) |
template<class T> | |
int | blockWrite (HDF5Handle &a_handle, const BoxLayoutData< T > &a_data, const std::string &a_name, const IntVect &a_outputGhost, const Interval &a_comps) |
template<class T> | |
int | blockWriteLevel (HDF5Handle &a_handle, const int &a_level, const LevelData< T > &a_data, const Real &a_dx, const Real &a_dt, const Real &a_time, const Box &a_domain, const int &a_refRatio, const IntVect &a_outputGhost, const Interval &a_comps) |
template<class T> | |
int | blockReadLevel (HDF5Handle &a_handle, const int &a_level, LevelData< T > &a_data, Real &a_dx, Real &a_dt, Real &a_time, Box &a_domain, int &a_refRatio, const Interval &a_comps, bool a_setGhost) |
template<class T> | |
int | blockRead (HDF5Handle &a_handle, LevelData< T > &a_data, const std::string &a_name, const DisjointBoxLayout &a_layout, const Interval &a_comps, bool a_redefineData) |
read LevelData named a_name from location specified by a_handle. | |
template<class T> | |
int | blockRead (HDF5Handle &a_handle, BoxLayoutData< T > &a_data, const std::string &a_name, const BoxLayout &a_layout, const Interval &a_comps, bool a_redefineData) |
read BoxLayoutData named a_name from location specified by a_handle. |
void blockLocalOffsets | ( | Vector< long long > & | a_localSizes, | |
long long & | a_localTotalSize, | |||
Vector< Box > & | a_localBoxes, | |||
const BoxLayoutData< T > & | a_data, | |||
const Interval & | a_comps, | |||
const IntVect & | a_outputGhost | |||
) | [inline] |
References LayoutData< T >::boxLayout(), BoxLayout::dataIterator(), dataSize(), MayDay::Error(), Box::grow(), and Vector< T >::resize().
Referenced by blockWrite().
void blockWriteToBuffer | ( | void * | a_buffer, | |
const Vector< long long > & | a_sizes, | |||
const BoxLayoutData< T > & | a_data, | |||
const Interval & | a_comps, | |||
const IntVect & | a_outputGhost | |||
) | [inline] |
References LayoutData< T >::box(), LayoutData< T >::dataIterator(), Box::grow(), LayoutIterator::ok(), and write().
int gatherBoxesAndOffsets | ( | long long & | a_offsetThisProc, | |
long long & | a_allProcSize, | |||
Vector< long long > & | a_globalOffsets, | |||
Vector< Box > & | a_globalBoxes, | |||
const Vector< long long > & | a_localBoxSizes, | |||
const Vector< Box > & | a_localBoxes, | |||
const long long & | a_localAllBoxSize | |||
) |
References broadcast(), gather(), numProc(), procID(), Vector< T >::resize(), and Vector< T >::size().
Referenced by blockWriteBufferToFile().
int blockWriteBufferToFile | ( | HDF5Handle & | a_handle, | |
void * | a_buffer, | |||
const std::string & | a_name, | |||
Vector< Box > & | a_boxes, | |||
Vector< long long > & | a_sizes, | |||
const Vector< hid_t > & | a_types, | |||
const BoxLayout & | a_layout, | |||
const long long & | a_thisprocsize | |||
) |
References gatherBoxesAndOffsets(), HDF5Handle::groupID(), procID(), BoxLayout::size(), and Vector< T >::size().
Referenced by blockWrite().
int blockWrite | ( | HDF5Handle & | a_handle, | |
const LevelData< T > & | a_data, | |||
const std::string & | a_name, | |||
const IntVect & | a_outputGhost, | |||
const Interval & | a_in_comps | |||
) | [inline] |
int blockWrite | ( | HDF5Handle & | a_handle, | |
const BoxLayoutData< T > & | a_data, | |||
const std::string & | a_name, | |||
const IntVect & | a_outputGhost, | |||
const Interval & | a_comps | |||
) | [inline] |
References blockLocalOffsets(), blockWriteBufferToFile(), blockWriteToBuffer(), LayoutData< T >::boxLayout(), CH_TIME, dataTypes(), MayDay::Error(), freeMT, HDF5Handle::getGroup(), HDF5HeaderData::m_int, HDF5HeaderData::m_string, mallocMT, name(), HDF5Handle::setGroup(), Interval::size(), Vector< T >::size(), and HDF5HeaderData::writeToFile().
Referenced by blockWrite(), and blockWriteLevel().
int blockRead | ( | HDF5Handle & | a_handle, | |
LevelData< T > & | a_data, | |||
const std::string & | a_name, | |||
const DisjointBoxLayout & | a_layout, | |||
const Interval & | a_comps = Interval() , |
|||
bool | redefineData = true | |||
) | [inline] |
read LevelData named a_name from location specified by a_handle.
Read LevelData named a_name from location specified by a_handle. User must supply the correct BoxLayout for this function.
Arg a_name is significant: the HDF5 group to which a_handle is set is is assumed to contain a dataset called <a_name>:datatype=<some integer>="">, a dataset called <a_name>:offsets=<some integer>="">, and a subgroup named <a_name>_attributes. You will have all these items if you dumped your LevelData out using the corresponding write() function defined here.
If arg redefineData==false, then the user must pass in a valid LevelData. Otherwise, this function figures out how many components and ghost cells there are, and allocates the correct amount of space. The actual FArray data held by the LevelData gets filled in here, regardless of redefineData; "redefine" alludes to the family of define() functions.
returns: success: 0\ bad location: 1\ HDF5 error: negative error code.\
References blockRead(), LevelData< T >::define(), Interval::end(), MayDay::Error(), HDF5Handle::getGroup(), HDF5HeaderData::m_int, HDF5HeaderData::m_intvect, HDF5HeaderData::readFromFile(), HDF5Handle::setGroup(), Interval::size(), and MayDay::Warning().
int blockRead | ( | HDF5Handle & | a_handle, | |
BoxLayoutData< T > & | a_data, | |||
const std::string & | a_name, | |||
const BoxLayout & | a_layout, | |||
const Interval & | a_comps = Interval() , |
|||
bool | redefineData = true | |||
) | [inline] |
read BoxLayoutData named a_name from location specified by a_handle.
Read BoxLayoutData named a_name from location specified by a_handle. User must supply the correct BoxLayout for this function if redefineData == true. \ returns: success: 0\ bad location: 1\ HDF5 error: negative error code.\
References read().
Referenced by blockRead(), and blockReadLevel().