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 102 of file FieldIO.h.

Constructor & Destructor Documentation

◆ FieldDefinitions() [1/2]

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

Default constructor.

Definition at line 105 of file FieldIO.h.

107  m_homoStrips(false),
108  m_pointsDef(false),
109  m_uniOrder(true),
110  m_numPointsDef(false)
111  {
112  }
ShapeType m_shapeType
Shape type of this field data.
Definition: FieldIO.h:144
bool m_uniOrder
Define order of the element group.
Definition: FieldIO.h:168
bool m_numPointsDef
Boolean determining whether number of points has been defined.
Definition: FieldIO.h:174
bool m_homoStrips
Boolean determining whether homogeneous strips are used.
Definition: FieldIO.h:154
bool m_pointsDef
Boolean determining whether points have been defined in output.
Definition: FieldIO.h:164
int m_numHomogeneousDir
Number of homogeneous directions, in the range .
Definition: FieldIO.h:150

◆ 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 115 of file FieldIO.h.

133  : m_shapeType(shapeType), m_elementIDs(elementIDs), m_basis(basis),
134  m_numHomogeneousDir(NumHomoDir), m_homogeneousLengths(HomoLengths),
135  m_homoStrips(homoStrips), m_homogeneousSIDs(HomoSIDs),
136  m_homogeneousZIDs(HomoZIDs), m_homogeneousYIDs(HomoYIDs),
137  m_points(points), m_pointsDef(pointsDef), m_uniOrder(uniOrder),
138  m_numModes(numModes), m_numPoints(numPoints),
139  m_numPointsDef(numPointsDef), m_fields(fields)
140  {
141  }
std::vector< unsigned int > m_numPoints
Define number of points per direction.
Definition: FieldIO.h:172
std::vector< unsigned int > m_homogeneousYIDs
IDs corresponding to y-direction homogeneous IDs.
Definition: FieldIO.h:160
std::vector< NekDouble > m_homogeneousLengths
Spatial lengths of each homogeneous direction.
Definition: FieldIO.h:152
ShapeType m_shapeType
Shape type of this field data.
Definition: FieldIO.h:144
std::vector< unsigned int > m_homogeneousZIDs
IDs corresponding to z-direction homogeneous IDs.
Definition: FieldIO.h:158
bool m_uniOrder
Define order of the element group.
Definition: FieldIO.h:168
bool m_numPointsDef
Boolean determining whether number of points has been defined.
Definition: FieldIO.h:174
std::vector< unsigned int > m_homogeneousSIDs
IDs corresponding to homogeneous strip IDs.
Definition: FieldIO.h:156
std::vector< LibUtilities::BasisType > m_basis
Vector of basis types for each of the coordinate directions.
Definition: FieldIO.h:148
std::vector< unsigned int > m_numModes
Define number of modes per direction.
Definition: FieldIO.h:170
std::vector< unsigned int > m_elementIDs
Element IDs of the field data.
Definition: FieldIO.h:146
std::vector< std::string > m_fields
Vector of field names that this data encapsulates.
Definition: FieldIO.h:176
bool m_homoStrips
Boolean determining whether homogeneous strips are used.
Definition: FieldIO.h:154
std::vector< LibUtilities::PointsType > m_points
Define the type of points per direction.
Definition: FieldIO.h:162
bool m_pointsDef
Boolean determining whether points have been defined in output.
Definition: FieldIO.h:164
int m_numHomogeneousDir
Number of homogeneous directions, in the range .
Definition: FieldIO.h:150

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 148 of file FieldIO.h.

◆ m_elementIDs

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

Element IDs of the field data.

Definition at line 146 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 176 of file FieldIO.h.

◆ m_homogeneousLengths

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

Spatial lengths of each homogeneous direction.

Definition at line 152 of file FieldIO.h.

◆ m_homogeneousSIDs

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

IDs corresponding to homogeneous strip IDs.

Definition at line 156 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 160 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 158 of file FieldIO.h.

◆ m_homoStrips

bool Nektar::LibUtilities::FieldDefinitions::m_homoStrips

Boolean determining whether homogeneous strips are used.

Definition at line 154 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 150 of file FieldIO.h.

◆ m_numModes

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

Define number of modes per direction.

Definition at line 170 of file FieldIO.h.

◆ m_numPoints

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

Define number of points per direction.

Definition at line 172 of file FieldIO.h.

◆ m_numPointsDef

bool Nektar::LibUtilities::FieldDefinitions::m_numPointsDef

Boolean determining whether number of points has been defined.

Definition at line 174 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 162 of file FieldIO.h.

◆ m_pointsDef

bool Nektar::LibUtilities::FieldDefinitions::m_pointsDef

Boolean determining whether points have been defined in output.

Definition at line 164 of file FieldIO.h.

◆ m_shapeType

ShapeType Nektar::LibUtilities::FieldDefinitions::m_shapeType

Shape type of this field data.

Definition at line 144 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 168 of file FieldIO.h.