MDAL
|
The XdmfFunctionDataset is a function that references two or three scalar XdmfDatasets to create a vector or scalar dataset based on referenced datasets. More...
#include <mdal_xdmf.hpp>
Public Types | |
enum | FunctionType { Join = 1 , Subtract , Flow } |
Public Member Functions | |
XdmfFunctionDataset (DatasetGroup *grp, FunctionType type, const RelativeTimestamp &time) | |
void | addReferenceDataset (const HyperSlab &slab, const HdfDataset &hdfDataset, const RelativeTimestamp &time) |
Adds reference XMDF dataset. | |
void | swap () |
Swaps first and second reference dataset. | |
size_t | scalarData (size_t indexStart, size_t count, double *buffer) override |
For DataOnVertices or DataOnFaces. | |
size_t | vectorData (size_t indexStart, size_t count, double *buffer) override |
For DataOnVertices or DataOnFaces. | |
![]() | |
Dataset2D (DatasetGroup *parent) | |
size_t | verticalLevelCountData (size_t indexStart, size_t count, int *buffer) override |
For DataOnVolumes. | |
size_t | verticalLevelData (size_t indexStart, size_t count, double *buffer) override |
For DataOnVolumes. | |
size_t | faceToVolumeData (size_t indexStart, size_t count, int *buffer) override |
For DataOnVolumes. | |
size_t | scalarVolumesData (size_t indexStart, size_t count, double *buffer) override |
For DataOnVolumes. | |
size_t | vectorVolumesData (size_t indexStart, size_t count, double *buffer) override |
For DataOnVolumes. | |
size_t | volumesCount () const override |
size_t | maximumVerticalLevelsCount () const override |
![]() | |
Dataset (DatasetGroup *parent) | |
size_t | valuesCount () const |
virtual size_t | activeData (size_t indexStart, size_t count, int *buffer) |
For drivers that supports it, see supportsActiveFlag() | |
Statistics | statistics () const |
void | setStatistics (const Statistics &statistics) |
bool | isValid () const |
DatasetGroup * | group () const |
Mesh * | mesh () const |
double | time (RelativeTimestamp::Unit unit) const |
RelativeTimestamp | timestamp () const |
void | setTime (double time, RelativeTimestamp::Unit unit=RelativeTimestamp::hours) |
void | setTime (const RelativeTimestamp &time) |
bool | supportsActiveFlag () const |
void | setSupportsActiveFlag (bool value) |
The XdmfFunctionDataset is a function that references two or three scalar XdmfDatasets to create a vector or scalar dataset based on referenced datasets.
Active flag is always ON.
Currently we do not use any fancy bison/flex based expression parsing, just supporting few types of most common function types:
The definition is stored in XML file in format:
<Attribute Name="..." AttributeType="Scalar" Center="Cell"> <DataItem ItemType="Function" Function="$0 - $1" Dimensions="9" > <DataItem ItemType="HyperSlab" Type="HyperSlab">...</DataItem> <DataItem ItemType="HyperSlab" Type="HyperSlab">...</DataItem> </DataItem> </Attribute>