Nektar++
Public Member Functions | Public Attributes | List of all members
Nektar::LibUtilities::FieldDefinitions Struct Reference

Metadata that describes the storage properties of field output. More...

#include <FieldIO.h>

Public Member Functions

 FieldDefinitions ()
 Default constructor. More...
 
 FieldDefinitions (ShapeType shapeType, const std::vector< unsigned int > &elementIDs, const std::vector< LibUtilities::BasisType > &basis, bool uniOrder, const std::vector< unsigned int > &numModes, const std::vector< std::string > &fields, int NumHomoDir=0, const std::vector< NekDouble > &HomoLengths=NullNekDoubleVector, bool homoStrips=false, const std::vector< unsigned int > &HomoSIDs=NullUnsignedIntVector, const std::vector< unsigned int > &HomoZIDs=NullUnsignedIntVector, const std::vector< unsigned int > &HomoYIDs=NullUnsignedIntVector, const std::vector< LibUtilities::PointsType > &points=NullPointsTypeVector, bool pointsDef=false, const std::vector< unsigned int > &numPoints=NullUnsignedIntVector, bool numPointsDef=false)
 Simple constructor to allocate all internal properties. More...
 

Public Attributes

ShapeType m_shapeType
 Shape type of this field data. More...
 
std::vector< unsigned int > m_elementIDs
 Element IDs of the field data. More...
 
std::vector< LibUtilities::BasisTypem_basis
 Vector of basis types for each of the coordinate directions. More...
 
int m_numHomogeneousDir
 Number of homogeneous directions, in the range \( 0\leq d \leq 3 \). More...
 
std::vector< NekDoublem_homogeneousLengths
 Spatial lengths of each homogeneous direction. More...
 
bool m_homoStrips
 Boolean determining whether homogeneous strips are used. More...
 
std::vector< unsigned int > m_homogeneousSIDs
 IDs corresponding to homogeneous strip IDs. More...
 
std::vector< unsigned int > m_homogeneousZIDs
 IDs corresponding to z-direction homogeneous IDs. More...
 
std::vector< unsigned int > m_homogeneousYIDs
 IDs corresponding to y-direction homogeneous IDs. More...
 
std::vector< LibUtilities::PointsTypem_points
 Define the type of points per direction. More...
 
bool m_pointsDef
 Boolean determining whether points have been defined in output. More...
 
bool m_uniOrder
 Define order of the element group. More...
 
std::vector< unsigned int > m_numModes
 Define number of modes per direction. More...
 
std::vector< unsigned int > m_numPoints
 Define number of points per direction. More...
 
bool m_numPointsDef
 Boolean determining whether number of points has been defined. More...
 
std::vector< std::string > m_fields
 Vector of field names that this data encapsulates. More...
 

Detailed Description

Metadata that describes the storage properties of field output.

The purpose of this struct is to describe the format of binary field data. This can then be used in the library to determine appropriate actions. For example, when restarting a simulation, the information this struct encapsulates can be used to determine whether interpolation is required to a different polynomial order depending on the order of the simulation versus the order of the restart file.

We note that some of the parameters here include:

Definition at line 111 of file FieldIO.h.

Constructor & Destructor Documentation

◆ FieldDefinitions() [1/2]

Nektar::LibUtilities::FieldDefinitions::FieldDefinitions ( )
inline

Default constructor.

Definition at line 114 of file FieldIO.h.

116 m_homoStrips(false), m_pointsDef(false), m_uniOrder(true),
117 m_numPointsDef(false)
118 {
119 }
int m_numHomogeneousDir
Number of homogeneous directions, in the range .
Definition: FieldIO.h:155
bool m_pointsDef
Boolean determining whether points have been defined in output.
Definition: FieldIO.h:169
bool m_uniOrder
Define order of the element group.
Definition: FieldIO.h:173
ShapeType m_shapeType
Shape type of this field data.
Definition: FieldIO.h:149
bool m_homoStrips
Boolean determining whether homogeneous strips are used.
Definition: FieldIO.h:159
bool m_numPointsDef
Boolean determining whether number of points has been defined.
Definition: FieldIO.h:179

◆ FieldDefinitions() [2/2]

Nektar::LibUtilities::FieldDefinitions::FieldDefinitions ( ShapeType  shapeType,
const std::vector< unsigned int > &  elementIDs,
const std::vector< LibUtilities::BasisType > &  basis,
bool  uniOrder,
const std::vector< unsigned int > &  numModes,
const std::vector< std::string > &  fields,
int  NumHomoDir = 0,
const std::vector< NekDouble > &  HomoLengths = NullNekDoubleVector,
bool  homoStrips = false,
const std::vector< unsigned int > &  HomoSIDs = NullUnsignedIntVector,
const std::vector< unsigned int > &  HomoZIDs = NullUnsignedIntVector,
const std::vector< unsigned int > &  HomoYIDs = NullUnsignedIntVector,
const std::vector< LibUtilities::PointsType > &  points = NullPointsTypeVector,
bool  pointsDef = false,
const std::vector< unsigned int > &  numPoints = NullUnsignedIntVector,
bool  numPointsDef = false 
)
inline

Simple constructor to allocate all internal properties.

Definition at line 122 of file FieldIO.h.

138 : m_shapeType(shapeType), m_elementIDs(elementIDs), m_basis(basis),
139 m_numHomogeneousDir(NumHomoDir), m_homogeneousLengths(HomoLengths),
140 m_homoStrips(homoStrips), m_homogeneousSIDs(HomoSIDs),
141 m_homogeneousZIDs(HomoZIDs), m_homogeneousYIDs(HomoYIDs),
142 m_points(points), m_pointsDef(pointsDef), m_uniOrder(uniOrder),
143 m_numModes(numModes), m_numPoints(numPoints),
144 m_numPointsDef(numPointsDef), m_fields(fields)
145 {
146 }
std::vector< NekDouble > m_homogeneousLengths
Spatial lengths of each homogeneous direction.
Definition: FieldIO.h:157
std::vector< LibUtilities::BasisType > m_basis
Vector of basis types for each of the coordinate directions.
Definition: FieldIO.h:153
std::vector< std::string > m_fields
Vector of field names that this data encapsulates.
Definition: FieldIO.h:181
std::vector< unsigned int > m_homogeneousSIDs
IDs corresponding to homogeneous strip IDs.
Definition: FieldIO.h:161
std::vector< unsigned int > m_numPoints
Define number of points per direction.
Definition: FieldIO.h:177
std::vector< LibUtilities::PointsType > m_points
Define the type of points per direction.
Definition: FieldIO.h:167
std::vector< unsigned int > m_homogeneousYIDs
IDs corresponding to y-direction homogeneous IDs.
Definition: FieldIO.h:165
std::vector< unsigned int > m_homogeneousZIDs
IDs corresponding to z-direction homogeneous IDs.
Definition: FieldIO.h:163
std::vector< unsigned int > m_numModes
Define number of modes per direction.
Definition: FieldIO.h:175
std::vector< unsigned int > m_elementIDs
Element IDs of the field data.
Definition: FieldIO.h:151

Member Data Documentation

◆ m_basis

std::vector<LibUtilities::BasisType> Nektar::LibUtilities::FieldDefinitions::m_basis

Vector of basis types for each of the coordinate directions.

Definition at line 153 of file FieldIO.h.

◆ m_elementIDs

std::vector<unsigned int> Nektar::LibUtilities::FieldDefinitions::m_elementIDs

Element IDs of the field data.

Definition at line 151 of file FieldIO.h.

◆ m_fields

std::vector<std::string> Nektar::LibUtilities::FieldDefinitions::m_fields

Vector of field names that this data encapsulates.

Definition at line 181 of file FieldIO.h.

◆ m_homogeneousLengths

std::vector<NekDouble> Nektar::LibUtilities::FieldDefinitions::m_homogeneousLengths

Spatial lengths of each homogeneous direction.

Definition at line 157 of file FieldIO.h.

◆ m_homogeneousSIDs

std::vector<unsigned int> Nektar::LibUtilities::FieldDefinitions::m_homogeneousSIDs

IDs corresponding to homogeneous strip IDs.

Definition at line 161 of file FieldIO.h.

◆ m_homogeneousYIDs

std::vector<unsigned int> Nektar::LibUtilities::FieldDefinitions::m_homogeneousYIDs

IDs corresponding to y-direction homogeneous IDs.

Definition at line 165 of file FieldIO.h.

◆ m_homogeneousZIDs

std::vector<unsigned int> Nektar::LibUtilities::FieldDefinitions::m_homogeneousZIDs

IDs corresponding to z-direction homogeneous IDs.

Definition at line 163 of file FieldIO.h.

◆ m_homoStrips

bool Nektar::LibUtilities::FieldDefinitions::m_homoStrips

Boolean determining whether homogeneous strips are used.

Definition at line 159 of file FieldIO.h.

◆ m_numHomogeneousDir

int Nektar::LibUtilities::FieldDefinitions::m_numHomogeneousDir

Number of homogeneous directions, in the range \( 0\leq d \leq 3 \).

Definition at line 155 of file FieldIO.h.

◆ m_numModes

std::vector<unsigned int> Nektar::LibUtilities::FieldDefinitions::m_numModes

Define number of modes per direction.

Definition at line 175 of file FieldIO.h.

◆ m_numPoints

std::vector<unsigned int> Nektar::LibUtilities::FieldDefinitions::m_numPoints

Define number of points per direction.

Definition at line 177 of file FieldIO.h.

◆ m_numPointsDef

bool Nektar::LibUtilities::FieldDefinitions::m_numPointsDef

Boolean determining whether number of points has been defined.

Definition at line 179 of file FieldIO.h.

◆ m_points

std::vector<LibUtilities::PointsType> Nektar::LibUtilities::FieldDefinitions::m_points

Define the type of points per direction.

Definition at line 167 of file FieldIO.h.

◆ m_pointsDef

bool Nektar::LibUtilities::FieldDefinitions::m_pointsDef

Boolean determining whether points have been defined in output.

Definition at line 169 of file FieldIO.h.

◆ m_shapeType

ShapeType Nektar::LibUtilities::FieldDefinitions::m_shapeType

Shape type of this field data.

Definition at line 149 of file FieldIO.h.

◆ m_uniOrder

bool Nektar::LibUtilities::FieldDefinitions::m_uniOrder

Define order of the element group.

  • UniOrder: same order for each element
  • MixOrder: definition of a different order for each element.

Definition at line 173 of file FieldIO.h.