![]() |
GemaCoreLib
The GeMA Core library
|
A serializer object used to save mesh data to several file formats. More...
#include <gmResultsSerializer.h>
Public Member Functions | |
~GmResultsSerializer () | |
Destructor. | |
bool | saveMeshDataToFile (const GmSimulationData *simData, GmMesh *mesh, const QStringList &nodeValues, const QList< Unit > &nodeUnits, Unit coordUnit, const QStringList &elementValues, const QList< Unit > &elementUnits, QString fileName, const QVariantMap &options) |
Saves mesh data to the specified file. More... | |
bool | prepareFile (const GmSimulationData *simData, GmMesh *mesh, const QStringList &nodeValues, const QList< Unit > &nodeUnits, Unit coordUnit, const QStringList &elementValues, const QList< Unit > &elementUnits, QString fileName, const QVariantMap &options) |
Creates the requested file and prepares the object for saving multiple node and element result sets. See saveMeshDataToFile() for a description of the parameters. More... | |
bool | addCurrentResult (double currentTime) |
Adds the current mesh data to the file. Should be called after a call to prepareFile() | |
bool | closeFile () |
Closes the file opened by prepareFile() | |
QString | tempFile () |
Returns, if any, the name of the temp file used for the operation started with prepareFile() | |
virtual bool | addStateItemsToGroup (GmStateDump *state, int groupId) |
Adds to 'state' the data items that should be saved for this serializer. | |
virtual bool | stateAboutToBeSaved (GmStateDump *state) |
Perapares the Variant map with dumped data to be saved. | |
virtual bool | stateLoaded (GmStateDump *state) |
Loads data from the loaded Variant map into the serializer. | |
![]() | |
virtual | ~GmGroupDumpItem () |
Virtual destructor. | |
virtual bool | stateSaved (GmStateDump *state) |
Virtual method called just after succesfully completing a save operation on the given state. Returning false aborts the operation. | |
virtual bool | stateAboutToBeLoaded (GmStateDump *state) |
Virtual method called just before starting a load operation on the given state. Returning false aborts the operation. | |
Static Public Member Functions | |
static GmResultsSerializer * | createInstance (QString fileType, const GmLogCategory &logger) |
Creates an instance of a GmResultsSerializer object to save files of the given type Returns NULL if fileType is an unsupported type. | |
Private Member Functions | |
GmResultsSerializer (QString fileType, GmFileWriter *ser, const GmLogCategory &logger) | |
Private constructor. Objects should be instanced by a call to createInstance(). Takes ownership of the supplied serializer. | |
bool | supportsMultipleIterations () |
Returns true if the configured file format accepts more than one result set. | |
bool | supportsSplitVectors () |
Returns true if the configured file format accepts to split vector values into scalar values. | |
bool | doPrepareFile (const GmSimulationData *simData, GmMesh *mesh, const QStringList &nodeValues, const QList< Unit > &nodeUnits, Unit coordUnit, const QStringList &elementValues, const QList< Unit > &elementUnits, QString fileName, const QVariantMap &options, bool forMultipleIterations) |
Internal function to prepare file for data saving. Saves node coordinates & element geometry. Used by both saveMeshDataToFile() and prepareFile() | |
void | fillNodeAccessorList (GmMesh *mesh, const QStringList &nodeValues, const QList< Unit > &nodeUnits, QList< GmValueAccessor * > &accList, int state) |
Fill accList with the set of (valid) accessors associated with the requested list of node values. | |
void | fillElementAccessorList (GmCellMesh *mesh, const QStringList &elementValues, const QList< Unit > &elementUnits, QList< GmCellAccessor * > &elemAccList, QList< GmGaussAccessor * > &gaussAccList, int *intRuleSet, int state, bool activeOnly) |
Fill accList with the set of (valid) accessors associated with the requested list of element values. | |
void | updateNodeAccessorList (GmMesh *mesh, QList< GmValueAccessor * > &accList, int state) |
Updates the contents of the accessor list replacing each accessor by an equivalent with the requested state. | |
void | updateElementAccessorList (GmCellMesh *mesh, QList< GmCellAccessor * > &elemAccList, QList< GmGaussAccessor * > &gaussAccList, int state) |
Updates the contents of the accessor list replacing each accessor by an equivalent with the requested state. | |
bool | cleanup (bool deleteFiles=false) |
Cleans the object state, removing accessor and cleaning lists. Returns false as a convenience for error treatment. | |
Private Attributes | |
const GmLogCategory & | _logger |
The logger object used to report errors. | |
GmFileWriter * | _serializer |
The file serializer used to save data. | |
QString | _fileType |
Serializer file type for use in error messages. | |
GmMesh * | _mesh |
The mesh whose state will be saved for a statefull operation begun with prepareFile(), NULL otherwise. | |
QList< GmValueAccessor * > | _nodeAccList |
Accessors for node results that will be saved in a statefull operation. | |
QList< GmCellAccessor * > | _elemAccList |
Accessors for element results that will be saved in a statefull operation. | |
QList< GmGaussAccessor * > | _gaussAccList |
Accessors for element results in Gauss points that will be saved in a statefull operation. | |
bool | _openFiles |
States if we have an open file or not. | |
int | _iter |
Keeps track of the number of time that addCurrentResult was called. | |
bool | _split |
States if we split vector values into scalar values or not. | |
QVariantMap | _stateMap |
Variant map used for state dumping. | |
A serializer object used to save mesh data to several file formats.
bool GmResultsSerializer::prepareFile | ( | const GmSimulationData * | simData, |
GmMesh * | mesh, | ||
const QStringList & | nodeValues, | ||
const QList< Unit > & | nodeUnits, | ||
Unit | coordUnit, | ||
const QStringList & | elementValues, | ||
const QList< Unit > & | elementUnits, | ||
QString | fileName, | ||
const QVariantMap & | options | ||
) |
Creates the requested file and prepares the object for saving multiple node and element result sets. See saveMeshDataToFile() for a description of the parameters.
Prepare the file saving node coordinates & element geometry This function should be used as part of a sequence of calls in the form:
bool GmResultsSerializer::saveMeshDataToFile | ( | const GmSimulationData * | simData, |
GmMesh * | mesh, | ||
const QStringList & | nodeValues, | ||
const QList< Unit > & | nodeUnits, | ||
Unit | coordUnit, | ||
const QStringList & | elementValues, | ||
const QList< Unit > & | elementUnits, | ||
QString | fileName, | ||
const QVariantMap & | options | ||
) |
Saves mesh data to the specified file.
simData | The simulation data object |
mesh | The mesh that will be saved. |
nodeValues | A list with the names of node state vars and attributes that should be saved. |
nodeUnits | A list with the desired unit in which node data will be saved. Should be either empty (values will be saved in their default unit) or a list with the same size as nodeValues. |
coordUnit | The unit in which coordinates will be exported. If empty, the mesh unit will be used. |
elementValues | A list with the names of element attributes that should be saved. |
elementUnits | A list with the desired unit in which element data will be saved. Should be either empty (values will be saved in their default unit) or a list with the same size as elementValues. |
fileName | The name of the file that will be created. |
options | A set of options specific to the file type |