Chombo + EB
3.0
|
#include "CH_HDF5.H"
#include <iostream>
#include "LevelData.H"
#include "HDF5Portable.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 "NamespaceHeader.H"
#include "BlockWriteI.H"
Go to the source code of this file.
Macros | |
#define | _BLOCKWRITE_H_ |
Functions | |
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 setGhost) |
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 &outputGhost, const Interval &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 | 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 > | |
void | blockLocalOffsets (Vector< long long > &a_localOffsets, 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 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_localOffsets, const Vector< Box > &a_localBoxes, const long long &a_localSize) |
int | blockWriteBufferToFile (HDF5Handle &a_handle, void *a_buffer, const std::string &a_name, Vector< Box > &a_boxes, Vector< long long > &a_offsets, const Vector< hid_t > &a_types, const BoxLayout &a_layout, const long long &a_thisprocsize) |
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=Interval(), bool redefineData=true) |
read BoxLayoutData named a_name from location specified by a_handle. More... | |
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=Interval(), bool redefineData=true) |
read LevelData named a_name from location specified by a_handle. More... | |
#define _BLOCKWRITE_H_ |
int blockWrite | ( | HDF5Handle & | a_handle, |
const BoxLayoutData< T > & | a_data, | ||
const std::string & | a_name, | ||
const IntVect & | a_outputGhost, | ||
const Interval & | a_comps | ||
) |
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().
int blockWrite | ( | HDF5Handle & | a_handle, |
const LevelData< T > & | a_data, | ||
const std::string & | a_name, | ||
const IntVect & | a_outputGhost, | ||
const Interval & | a_in_comps | ||
) |
References HDF5Handle::getGroup(), LevelData< T >::ghostVect(), HDF5HeaderData::m_intvect, IntVect::min(), HDF5Handle::setGroup(), and HDF5HeaderData::writeToFile().
Referenced by blockWriteLevel().
void blockLocalOffsets | ( | Vector< long long > & | a_localOffsets, |
long long & | a_localTotalSize, | ||
Vector< Box > & | a_localBoxes, | ||
const BoxLayoutData< T > & | a_data, | ||
const Interval & | a_comps, | ||
const IntVect & | a_outputGhost | ||
) |
References LayoutData< T >::boxLayout(), BoxLayout::dataIterator(), dataSize(), MayDay::Error(), Box::grow(), and Vector< T >::resize().
Referenced by blockWrite().
void blockWriteToBuffer | ( | void * | a_buffer, |
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_localOffsets, | ||
const Vector< Box > & | a_localBoxes, | ||
const long long & | a_localSize | ||
) |
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_offsets, | ||
const Vector< hid_t > & | a_types, | ||
const BoxLayout & | a_layout, | ||
const long long & | a_thisprocsize | ||
) |
References gatherBoxesAndOffsets(), HDF5Handle::groupID(), procID(), Vector< T >::size(), and BoxLayout::size().
Referenced by blockWrite().
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 |
||
) |
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().
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 |
||
) |
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 LevelData< T >::define(), Interval::end(), MayDay::Error(), HDF5Handle::getGroup(), HDF5HeaderData::m_int, HDF5HeaderData::m_intvect, HDF5HeaderData::readFromFile(), HDF5Handle::setGroup(), Interval::size(), and MayDay::Warning().
Referenced by blockReadLevel().