tk::ExodusIIMeshWriter class

ExodusII mesh-based data writer

Mesh writer class facilitating writing a mesh and associated mesh-based field data to a file in ExodusII format.

Constructors, destructors, conversion operators

ExodusIIMeshWriter(const std::string& filename, ExoWriter mode, int cpuwordsize = sizeof(double), int iowordsize = sizeof(double)) explicit
Constructor: create/open ExodusII file.
~ExodusIIMeshWriter() noexcept
Destructor.

Public functions

void writeMesh(const UnsMesh& mesh) const
Write ExodusII mesh file taking a tk::UnsMesh object.
template<std::size_t nnode>
void writeMesh(const std::vector<std::size_t>& inpoel, const UnsMesh::Coords& coord) const
void writeTimeStamp(uint64_t it, tk::real time) const
Write time stamp to ExodusII file.
void writeTimeValues(const std::vector<tk::real>& tv) const
Write time values to ExodusII file.
void writeNodeVarNames(const std::vector<std::string>& nv) const
Write the names of nodal output variables to ExodusII file.
void writeElemVarNames(const std::vector<std::string>& ev) const
Write the names of element output variables to ExodusII file.
void writeNodeScalars(const std::vector<std::vector<std::vector<tk::real>>>& var) const
Write multiple node scalar fields to ExodusII file at multiple time steps.
void writeNodeScalar(uint64_t it, int varid, const std::vector<tk::real>& var) const
Write node scalar field to ExodusII file.
void writeElemScalar(uint64_t it, int varid, const std::vector<tk::real>& var) const
Write elem scalar field to ExodusII file.
void writeElemBlock(int& elclass, int64_t nnpe, const std::string& eltype, const std::vector<std::size_t>& inpoel) const
Write element block to ExodusII file.

Function documentation

tk::ExodusIIMeshWriter::ExodusIIMeshWriter(const std::string& filename, ExoWriter mode, int cpuwordsize = sizeof(double), int iowordsize = sizeof(double)) explicit

Constructor: create/open ExodusII file.

Parameters
filename in File to open as ExodusII file
mode in ExodusII writer constructor mode: ExoWriter::CREATE for creating a new file, ExoWriter::OPEN for opening an existing file for appending
cpuwordsize in Set CPU word size, see ExodusII documentation
iowordsize in Set I/O word size, see ExodusII documentation

void tk::ExodusIIMeshWriter::writeMesh(const UnsMesh& mesh) const

Write ExodusII mesh file taking a tk::UnsMesh object.

Parameters
mesh in Unstructured mesh object

template<std::size_t nnode>
void tk::ExodusIIMeshWriter::writeMesh(const std::vector<std::size_t>& inpoel, const UnsMesh::Coords& coord) const

Template parameters
nnode 3 or 4, indicating a triangle or tetrahedron mesh
Parameters
inpoel in Element connectivity
coord in Node coordinates

Write ExodusII mesh file taking inputs to a tk::UnsMesh object

void tk::ExodusIIMeshWriter::writeTimeStamp(uint64_t it, tk::real time) const

Write time stamp to ExodusII file.

Parameters
it in Iteration number
time in Time

void tk::ExodusIIMeshWriter::writeTimeValues(const std::vector<tk::real>& tv) const

Write time values to ExodusII file.

Parameters
tv in Time values for all time steps

void tk::ExodusIIMeshWriter::writeNodeVarNames(const std::vector<std::string>& nv) const

Write the names of nodal output variables to ExodusII file.

Parameters
nv in Nodal variable names

void tk::ExodusIIMeshWriter::writeElemVarNames(const std::vector<std::string>& ev) const

Write the names of element output variables to ExodusII file.

Parameters
ev in Elem variable names

void tk::ExodusIIMeshWriter::writeNodeScalars(const std::vector<std::vector<std::vector<tk::real>>>& var) const

Write multiple node scalar fields to ExodusII file at multiple time steps.

Parameters
var in Vector of nodal variables to write: inner vector: nodes, middle vector: (physics) variable, outer vector: time step

void tk::ExodusIIMeshWriter::writeNodeScalar(uint64_t it, int varid, const std::vector<tk::real>& var) const

Write node scalar field to ExodusII file.

Parameters
it in Iteration number
varid in Variable id
var in Vector of variable to output

void tk::ExodusIIMeshWriter::writeElemScalar(uint64_t it, int varid, const std::vector<tk::real>& var) const

Write elem scalar field to ExodusII file.

Parameters
it in Iteration number
varid in Variable id
var in Vector of variable to output

void tk::ExodusIIMeshWriter::writeElemBlock(int& elclass, int64_t nnpe, const std::string& eltype, const std::vector<std::size_t>& inpoel) const

Write element block to ExodusII file.

Parameters
elclass in/out Count element class ids in file
nnpe in Number of nodes per element for block
eltype in String describing element type
inpoel in Element connectivity