DOLFINx
0.3.0
DOLFINx C++ interface
|
Read and write mesh::Mesh, fem::Function and other objects in XDMF. More...
#include <XDMFFile.h>
Public Types | |
enum class | Encoding { HDF5 , ASCII } |
File encoding type. | |
Public Member Functions | |
XDMFFile (MPI_Comm comm, const std::string filename, const std::string file_mode, const Encoding encoding=default_encoding) | |
Constructor. | |
~XDMFFile () | |
Destructor. | |
void | close () |
Close the file. More... | |
void | write_mesh (const mesh::Mesh &mesh, const std::string xpath="/Xdmf/Domain") |
Save Mesh. More... | |
void | write_geometry (const mesh::Geometry &geometry, const std::string name, const std::string xpath="/Xdmf/Domain") |
Save Geometry. More... | |
mesh::Mesh | read_mesh (const fem::CoordinateElement &element, const mesh::GhostMode &mode, const std::string name, const std::string xpath="/Xdmf/Domain") const |
Read in Mesh. More... | |
xt::xtensor< std::int64_t, 2 > | read_topology_data (const std::string name, const std::string xpath="/Xdmf/Domain") const |
Read Topology data for Mesh. More... | |
xt::xtensor< double, 2 > | read_geometry_data (const std::string name, const std::string xpath="/Xdmf/Domain") const |
Read Geometry data for Mesh. More... | |
std::pair< mesh::CellType, int > | read_cell_type (const std::string grid_name, const std::string xpath="/Xdmf/Domain") |
Read information about cell type. More... | |
void | write_function (const fem::Function< double > &u, double t, const std::string &mesh_xpath="/Xdmf/Domain/Grid[@GridType='Uniform'][1]") |
Write Function. More... | |
void | write_function (const fem::Function< std::complex< double >> &u, double t, const std::string &mesh_xpath="/Xdmf/Domain/Grid[@GridType='Uniform'][1]") |
Write Function. More... | |
void | write_meshtags (const mesh::MeshTags< std::int32_t > &meshtags, const std::string &geometry_xpath, const std::string &xpath="/Xdmf/Domain") |
Write MeshTags. More... | |
mesh::MeshTags< std::int32_t > | read_meshtags (const std::shared_ptr< const mesh::Mesh > &mesh, const std::string name, const std::string xpath="/Xdmf/Domain") |
Read MeshTags. More... | |
void | write_information (const std::string name, const std::string value, const std::string xpath="/Xdmf/Domain/") |
Write Information. More... | |
std::string | read_information (const std::string name, const std::string xpath="/Xdmf/Domain/") |
Read Information. More... | |
MPI_Comm | comm () const |
Get the MPI communicator. More... | |
Static Public Attributes | |
static const Encoding | default_encoding = Encoding::HDF5 |
Default encoding type. | |
Read and write mesh::Mesh, fem::Function and other objects in XDMF.
This class supports the output of meshes and functions in XDMF (http://www.xdmf.org) format. It creates an XML file that describes the data and points to a HDF5 file that stores the actual problem data. Output of data in parallel is supported.
XDMF is not suitable for higher order geometries, as their currently only supports 1st and 2nd order geometries.
void XDMFFile::close | ( | ) |
Close the file.
This closes open underlying HDF5 file. In ASCII mode the XML file is closed each time it is written to or read from, so close() has no effect.
MPI_Comm XDMFFile::comm | ( | ) | const |
std::pair< mesh::CellType, int > XDMFFile::read_cell_type | ( | const std::string | grid_name, |
const std::string | xpath = "/Xdmf/Domain" |
||
) |
Read information about cell type.
[in] | grid_name | Name of Grid for which cell type is needed |
[in] | xpath | XPath where Grid is stored |
xt::xtensor< double, 2 > XDMFFile::read_geometry_data | ( | const std::string | name, |
const std::string | xpath = "/Xdmf/Domain" |
||
) | const |
Read Geometry data for Mesh.
[in] | name | Name of the mesh (Grid) |
[in] | xpath | XPath where Mesh Grid data is located |
std::string XDMFFile::read_information | ( | const std::string | name, |
const std::string | xpath = "/Xdmf/Domain/" |
||
) |
Read Information.
[in] | name | |
[in] | xpath | XPath where Information is stored in file |
mesh::Mesh XDMFFile::read_mesh | ( | const fem::CoordinateElement & | element, |
const mesh::GhostMode & | mode, | ||
const std::string | name, | ||
const std::string | xpath = "/Xdmf/Domain" |
||
) | const |
Read in Mesh.
[in] | element | Element that describes the geometry of a cell |
[in] | mode | The type of ghosting/halo to use for the mesh when distributed in parallel |
[in] | name | |
[in] | xpath | XPath where Mesh Grid is located |
mesh::MeshTags< std::int32_t > XDMFFile::read_meshtags | ( | const std::shared_ptr< const mesh::Mesh > & | mesh, |
const std::string | name, | ||
const std::string | xpath = "/Xdmf/Domain" |
||
) |
Read MeshTags.
[in] | mesh | The Mesh that the data is defined on |
[in] | name | |
[in] | xpath | XPath where MeshTags Grid is stored in file |
xt::xtensor< std::int64_t, 2 > XDMFFile::read_topology_data | ( | const std::string | name, |
const std::string | xpath = "/Xdmf/Domain" |
||
) | const |
Read Topology data for Mesh.
[in] | name | Name of the mesh (Grid) |
[in] | xpath | XPath where Mesh Grid data is located |
void XDMFFile::write_function | ( | const fem::Function< double > & | u, |
double | t, | ||
const std::string & | mesh_xpath = "/Xdmf/Domain/Grid[@GridType='Uniform'][1]" |
||
) |
Write Function.
[in] | u | The Function to write to file |
[in] | t | The time stamp to associate with the Function |
[in] | mesh_xpath | XPath for a Grid under which Function will be inserted |
void XDMFFile::write_function | ( | const fem::Function< std::complex< double >> & | u, |
double | t, | ||
const std::string & | mesh_xpath = "/Xdmf/Domain/Grid[@GridType='Uniform'][1]" |
||
) |
Write Function.
[in] | u | The Function to write to file |
[in] | t | The time stamp to associate with the Function |
[in] | mesh_xpath | XPath for a Grid under which Function will be inserted |
void XDMFFile::write_geometry | ( | const mesh::Geometry & | geometry, |
const std::string | name, | ||
const std::string | xpath = "/Xdmf/Domain" |
||
) |
Save Geometry.
[in] | geometry | |
[in] | name | |
[in] | xpath | XPath of a node where Geometry will be inserted |
void XDMFFile::write_information | ( | const std::string | name, |
const std::string | value, | ||
const std::string | xpath = "/Xdmf/Domain/" |
||
) |
Write Information.
[in] | name | |
[in] | value | String to store into Information tag |
[in] | xpath | XPath where Information will be inserted |
void XDMFFile::write_mesh | ( | const mesh::Mesh & | mesh, |
const std::string | xpath = "/Xdmf/Domain" |
||
) |
Save Mesh.
[in] | mesh | |
[in] | xpath | XPath where Mesh Grid will be written |
void XDMFFile::write_meshtags | ( | const mesh::MeshTags< std::int32_t > & | meshtags, |
const std::string & | geometry_xpath, | ||
const std::string & | xpath = "/Xdmf/Domain" |
||
) |
Write MeshTags.
[in] | meshtags | |
[in] | geometry_xpath | XPath where Geometry is already stored in file |
[in] | xpath | XPath where MeshTags Grid will be inserted |