GemaCoreLib
The GeMA Core library
Classes | Public Member Functions | Static Public Member Functions | Static Private Member Functions | List of all members
GmXdmfFileFormat Class Reference

File format specifications for the Xdmf file format. More...

#include <gmXdmfFileFormat.h>

Inheritance diagram for GmXdmfFileFormat:
Inheritance graph
[legend]
Collaboration diagram for GmXdmfFileFormat:
Collaboration graph
[legend]

Classes

struct  SupportedTypesT
 Registered information about each element type. Needed to export said type in Xdmf format. An entry for each supported cell type should be registered by a call to registerSupportedCellType() before any attempt to save a file. More...
 

Public Member Functions

virtual const char * formatName () const
 Returns the file format name.
 
virtual bool supportsMultipleIterations () const
 Returns true if this file type supports multiple iterations (result sets)
 
virtual bool acceptsNodeDimension (int ndim) const
 Returns true if this file format accepts meshes with nodes of the given dimension.
 
virtual int acceptsCellType (GmCellType type) const
 Does the file format accepts this cell type? Returns 0 if the cell type is not accepted, 1 if it is natively accepted or 2 if it is accepted requiring standard Gema transformations for adjusting interface elements that need extra interpolated nodes to be exported.
 
virtual const QVector< int > & cellNumbering (GmCellType type) const
 Returns the node cell type numbering order in the file format view or an empty vector for unsupported types. More...
 
virtual int fileCellType (GmCellType type) const
 Returns the cell type code as seen by the file format. Currently used only by HDF5 based formats.
 
virtual const char * fileCellTypeName (GmCellType type) const
 Returns the cell type name as seen by the exported file format.
 
virtual bool acceptsDataType (const GmValueInfo *info, int nodeDim, int dimFilter=-1) const
 Returns true if this file format can save node/element data with the specified type (especially its dimension and value set kind). The nodeDim parameter provides the mesh node dimension since some file formats only accept vectors and matrices with the same size as the mesh dimension. The dimFilter parameter specifies if a dimension filter will be applied to the data or not (dimFilter == -1)
 
virtual bool acceptsMultipleGaussProfiles () const
 Does the file supports multiple Gauss points per element type?
 
virtual bool acceptsGaussRuleForElement (GmCellType type, const GmIntegrationRule *ir) const
 Does the file support exporting data at Gauss points for an element of type type with the supplied integration rule?
 
virtual bool acceptsDiscontinuitySet (GmDiscontinuitySet::DiscontinuityType type) const
 
virtual bool supportsSplitVectors () const
 Returns true if this writer prefers to split vector values into scalar values by itself.
 
virtual bool supportsMeshChanges () const
 Returns true if this writer can cope with mesh changes during the simulation.
 

Static Public Member Functions

static void registerSupportedCellType (GmCellType type, SupportedTypesT &&cellData)
 Registers the information needed about each element type to save it on the Xdmf file. An entry for each supported cell type should be registered before any attempt to save a file. More...
 

Static Private Member Functions

static SupportedTypesTsupportedTypesList ()
 Returns the vector with the definition of the GeMA supported types and their mapping to xdmf types. The vector has GM_NUM_CELL_TYPES entries. More...
 

Detailed Description

File format specifications for the Xdmf file format.

Member Function Documentation

◆ cellNumbering()

virtual const QVector<int>& GmXdmfFileFormat::cellNumbering ( GmCellType  type) const
inlinevirtual

Returns the node cell type numbering order in the file format view or an empty vector for unsupported types.

For each cell type, the exported node ordering can be different from the natural GeMA node ordering. This function returns a vector that defines the order in which the set of GeMA cell node indices should be exported. It can have a size that is different from the number of GeMA nodes. A value of -1 means that the saved node is an extra node that should have been created as the result of the set of standard Gema transformations for changing quadratic interface elements that do not have mid nodes into the "flow" side (int2dl6 and int3dl12, for example) into quadratic quad/hex elements as specified by acceptsCellType() returning 2.

Implements GmFileFormat.

◆ registerSupportedCellType()

static void GmXdmfFileFormat::registerSupportedCellType ( GmCellType  type,
SupportedTypesT &&  cellData 
)
inlinestatic

Registers the information needed about each element type to save it on the Xdmf file. An entry for each supported cell type should be registered before any attempt to save a file.

If the cell node ordering list from cellData is empty, it will be replaced with the cell's GeMA node ordering, i.e. with a list with the same number of entries as the cell type, ordered incrising from 0 to n-1.

Important: For that to work, the Geometry metadat for the cell type MUST have been aƧready initialized.

◆ supportedTypesList()

static SupportedTypesT* GmXdmfFileFormat::supportedTypesList ( )
inlinestaticprivate

Returns the vector with the definition of the GeMA supported types and their mapping to xdmf types. The vector has GM_NUM_CELL_TYPES entries.

The static supported types vectors is wrapped in this function to make sure that registerSupportedCellType() can be called from other module's dynamic initialization step without incurring in an initialization fiasco problem.


The documentation for this class was generated from the following file: