#include <DataFileIF.H>
The data can be read from standard input or a named file. The data can have no header, an ASCII header containing the number of grid points in each direction:
numX numY [numZ]or an ASCII header containing the above information followed by the data spacing in each direction and the origin of the data - both in physical coordinates:
deltaX deltaY [deltaZ] originX originY [originZ]Following any header is the data either in ASCII or binary. The data is assumed to vary most rapidly in the x coordinate, then the y coordinate, and, finally, in the z coordinate (for 3D data).
Public Types | |
enum | DataType { Invalid = -1, ASCII = 0, Binary, NUMDATATYPES } |
Public Member Functions | |
DataFileIF (const DataFileIF::DataType &a_dataType, const Real &a_value, const bool &a_inside, const bool &a_useCubicInterp=false) | |
DataFileIF (const char *const a_filename, const DataFileIF::DataType &a_dataType, const Real &a_value, const bool &a_inside, const bool &a_useCubicInterp=false) | |
DataFileIF (const DataFileIF::DataType &a_dataType, const RealVect &a_spacing, const RealVect &a_origin, const Real &a_value, const bool &a_inside, const bool &a_useCubicInterp=false) | |
DataFileIF (const char *const a_filename, const DataFileIF::DataType &a_dataType, const RealVect &a_spacing, const RealVect &a_origin, const Real &a_value, const bool &a_inside, const bool &a_useCubicInterp=false) | |
DataFileIF (const DataFileIF::DataType &a_dataType, const IntVect &a_num, const RealVect &a_spacing, const RealVect &a_origin, const Real &a_value, const bool &a_inside, const bool &a_useCubicInterp=false) | |
DataFileIF (const char *const a_filename, const DataFileIF::DataType &a_dataType, const IntVect &a_num, const RealVect &a_spacing, const RealVect &a_origin, const Real &a_value, const bool &a_inside, const bool &a_useCubicInterp=false) | |
DataFileIF (const DataFileIF &a_inputIF) | |
Copy constructor. | |
DataFileIF (const RefCountedPtr< FArrayBox > a_ascii_data, const RefCountedPtr< BaseFab< unsigned char > > a_binary_data, const Real &a_noDataValue, const IntVect &a_num, const RealVect &a_spacing, const RealVect &a_origin, const Real &a_value, const bool &a_inside, const bool &a_useCubicInterp=false) | |
virtual | ~DataFileIF () |
Destructor. | |
virtual void | GetHeader (IntVect &a_num, RealVect &a_spacing, RealVect &a_origin) const |
virtual void | GetParams (Real &a_value, bool &a_inside, bool &a_useCubicInterp) const |
virtual void | SetParams (const Real &a_value, const bool &a_inside, const bool &a_useCubicInterp=false) |
virtual void | SetNoDataValue (const Real &a_value) |
virtual Real | value (const RealVect &a_point) const |
virtual Real | value (const IndexTM< Real, GLOBALDIM > &a_point) const |
virtual Real | value (const IndexTM< int, GLOBALDIM > &a_partialDerivative, const IndexTM< Real, GLOBALDIM > &a_point) const |
virtual BaseIF * | newImplicitFunction () const |
void | GetFullHeader (IntVect &a_num, RealVect &a_spacing, RealVect &a_origin) |
RefCountedPtr< FArrayBox > | GetAsciiData (void) |
RefCountedPtr< BaseFab < unsigned char > > | GetBinaryData (void) |
Protected Member Functions | |
void | OpenFile (ifstream &a_file, const char *const a_filename) |
void | CloseFile (ifstream &a_file) |
void | ReadMinHeader (IntVect &a_num, istream &a_file) |
void | ReadFullHeader (IntVect &a_num, RealVect &a_spacing, RealVect &a_origin, istream &a_file) |
void | ReadData (Real &a_maxValue, istream &a_file, const DataFileIF::DataType &a_dataType, const IntVect &a_num) |
void | MakeCorners (void) |
Protected Attributes | |
IntVect | m_num |
RealVect | m_spacing |
RealVect | m_origin |
Real | m_value |
bool | m_inside |
RefCountedPtr< FArrayBox > | m_ascii_data |
RefCountedPtr< BaseFab < unsigned char > > | m_binary_data |
Real | m_noDataValue |
IntVectSet | m_cornersLinear |
IntVectSet | m_cornersCubic |
bool | m_useCubicInterp |
Private Member Functions | |
DataFileIF () | |
void | operator= (const DataFileIF &a_inputIF) |
enum DataFileIF::DataType |
DataFileIF::DataFileIF | ( | const DataFileIF::DataType & | a_dataType, | |
const Real & | a_value, | |||
const bool & | a_inside, | |||
const bool & | a_useCubicInterp = false | |||
) |
Constructor specifying the form of the data (a_dataType - ASCII or Binary), a level set value (a_value), and whether inside the domain is where data is less than the level set value (a_inside). Data is read from standard input and a complete ASCII header (see above) is excepted.
DataFileIF::DataFileIF | ( | const char *const | a_filename, | |
const DataFileIF::DataType & | a_dataType, | |||
const Real & | a_value, | |||
const bool & | a_inside, | |||
const bool & | a_useCubicInterp = false | |||
) |
Constructor specifying filename (a_filename), the form of the data (a_dataType - ASCII or Binary), level set value (a_value), and whether inside the domain is where data is less than the level set value (a_inside). Data is read from the file named and a complete ASCII header (see above) is expected.
DataFileIF::DataFileIF | ( | const DataFileIF::DataType & | a_dataType, | |
const RealVect & | a_spacing, | |||
const RealVect & | a_origin, | |||
const Real & | a_value, | |||
const bool & | a_inside, | |||
const bool & | a_useCubicInterp = false | |||
) |
Constructor specifying the form of the data (a_dataType - ASCII or Binary), the spacing (a_spacing), the physical origin (a_origin), a level set value (a_value), and whether inside the domain is where data is less than the level set value (a_inside). Data is read from standard input and an ASCII header (see above) containing the number of grid points in each direction is excepted.
DataFileIF::DataFileIF | ( | const char *const | a_filename, | |
const DataFileIF::DataType & | a_dataType, | |||
const RealVect & | a_spacing, | |||
const RealVect & | a_origin, | |||
const Real & | a_value, | |||
const bool & | a_inside, | |||
const bool & | a_useCubicInterp = false | |||
) |
Constructor specifying filename (a_filename), the form of the data (a_dataType - ASCII or Binary), the spacing (a_spacing), the physical origin (a_origin), a level set value (a_value), and whether inside the domain is where data is less than the level set value (a_inside). Data is read from the file named and an ASCII header (see above) containing the number of grid points in each direction is excepted.
DataFileIF::DataFileIF | ( | const DataFileIF::DataType & | a_dataType, | |
const IntVect & | a_num, | |||
const RealVect & | a_spacing, | |||
const RealVect & | a_origin, | |||
const Real & | a_value, | |||
const bool & | a_inside, | |||
const bool & | a_useCubicInterp = false | |||
) |
Constructor specifying the form of the data (a_dataType - ASCII or Binary), the spacing (a_spacing), the physical origin (a_origin), the number of grid points in each direction (a_num), a level set value (a_value), and whether inside the domain is where data is less than the level set value (a_inside). Data is read from standard input and no ASCII header (see above) is excepted.
DataFileIF::DataFileIF | ( | const char *const | a_filename, | |
const DataFileIF::DataType & | a_dataType, | |||
const IntVect & | a_num, | |||
const RealVect & | a_spacing, | |||
const RealVect & | a_origin, | |||
const Real & | a_value, | |||
const bool & | a_inside, | |||
const bool & | a_useCubicInterp = false | |||
) |
Constructor specifying filename (a_filename), the form of the data (a_dataType - ASCII or Binary), the spacing (a_spacing), the physical origin (a_origin), the number of grid points in each direction (a_num), a level set value (a_value), and whether inside the domain is where data is less than the level set value (a_inside). Data is read from the file named and no ASCII header (see above) is excepted.
DataFileIF::DataFileIF | ( | const DataFileIF & | a_inputIF | ) |
Copy constructor.
DataFileIF::DataFileIF | ( | const RefCountedPtr< FArrayBox > | a_ascii_data, | |
const RefCountedPtr< BaseFab< unsigned char > > | a_binary_data, | |||
const Real & | a_noDataValue, | |||
const IntVect & | a_num, | |||
const RealVect & | a_spacing, | |||
const RealVect & | a_origin, | |||
const Real & | a_value, | |||
const bool & | a_inside, | |||
const bool & | a_useCubicInterp = false | |||
) |
This is used by the factory (see below) to create a new object. All objects created in this way share a refcounted pointer to their data.
Constructor specifying a refcounted pointer to the data (a_ascii_data or a_binary_data), the no data value (a_noDataValue), the spacing (a_spacing), the physical origin (a_origin), the number of grid points in each direction (a_num), a level set value (a_value), and whether inside the domain is where data is less than the level set value (a_inside).
virtual DataFileIF::~DataFileIF | ( | ) | [virtual] |
Destructor.
DataFileIF::DataFileIF | ( | ) | [inline, private] |
References MayDay::Abort().
virtual void DataFileIF::GetHeader | ( | IntVect & | a_num, | |
RealVect & | a_spacing, | |||
RealVect & | a_origin | |||
) | const [virtual] |
Return the header information
virtual void DataFileIF::GetParams | ( | Real & | a_value, | |
bool & | a_inside, | |||
bool & | a_useCubicInterp | |||
) | const [virtual] |
Return the parameter information
virtual void DataFileIF::SetParams | ( | const Real & | a_value, | |
const bool & | a_inside, | |||
const bool & | a_useCubicInterp = false | |||
) | [virtual] |
Set the parameter information
virtual void DataFileIF::SetNoDataValue | ( | const Real & | a_value | ) | [virtual] |
value to use when we are outside
Return the value of the function at a_point using trilinear interpolation of the data. If a_point is outside the data then return the maximum data value.
Implements BaseIF.
Return the value of the function at a_point (of type INdexTM).
Reimplemented from BaseIF.
virtual Real DataFileIF::value | ( | const IndexTM< int, GLOBALDIM > & | a_partialDerivative, | |
const IndexTM< Real, GLOBALDIM > & | a_point | |||
) | const [virtual] |
Reimplemented from BaseIF.
virtual BaseIF* DataFileIF::newImplicitFunction | ( | ) | const [virtual] |
Return a newly allocated derived class. The responsibility for deleting the memory is left to the calling function.
Implements BaseIF.
RefCountedPtr<FArrayBox> DataFileIF::GetAsciiData | ( | void | ) | [inline] |
References m_ascii_data.
RefCountedPtr<BaseFab<unsigned char> > DataFileIF::GetBinaryData | ( | void | ) | [inline] |
References m_binary_data.
void DataFileIF::OpenFile | ( | ifstream & | a_file, | |
const char *const | a_filename | |||
) | [protected] |
void DataFileIF::CloseFile | ( | ifstream & | a_file | ) | [protected] |
void DataFileIF::ReadMinHeader | ( | IntVect & | a_num, | |
istream & | a_file | |||
) | [protected] |
void DataFileIF::ReadFullHeader | ( | IntVect & | a_num, | |
RealVect & | a_spacing, | |||
RealVect & | a_origin, | |||
istream & | a_file | |||
) | [protected] |
void DataFileIF::ReadData | ( | Real & | a_maxValue, | |
istream & | a_file, | |||
const DataFileIF::DataType & | a_dataType, | |||
const IntVect & | a_num | |||
) | [protected] |
void DataFileIF::MakeCorners | ( | void | ) | [protected] |
void DataFileIF::operator= | ( | const DataFileIF & | a_inputIF | ) | [inline, private] |
References MayDay::Abort().
IntVect DataFileIF::m_num [protected] |
Referenced by GetFullHeader().
RealVect DataFileIF::m_spacing [protected] |
Referenced by GetFullHeader().
RealVect DataFileIF::m_origin [protected] |
Referenced by GetFullHeader().
Real DataFileIF::m_value [protected] |
bool DataFileIF::m_inside [protected] |
RefCountedPtr<FArrayBox> DataFileIF::m_ascii_data [protected] |
Referenced by GetAsciiData().
RefCountedPtr<BaseFab<unsigned char> > DataFileIF::m_binary_data [protected] |
Referenced by GetBinaryData().
Real DataFileIF::m_noDataValue [protected] |
IntVectSet DataFileIF::m_cornersLinear [protected] |
IntVectSet DataFileIF::m_cornersCubic [protected] |
bool DataFileIF::m_useCubicInterp [protected] |