Version:

salvus.mesh.algorithms.unstructured_mesh.io

salvus.mesh.algorithms.unstructured_mesh.io salvus mesh algorithms unstructured_mesh io
I/O routines for Salvus' unstructured mesh.

Functions

read_abaqus_3d()

Read unstructured mesh from abaqus file (experimental).
SIGNATURE
def read_abaqus_3d(filename: str | pathlib.Path) -> UnstructuredMesh: ...
ARGUMENTS
Required
filename
Type:str | pathlib.Path
Description:
File to open.
RETURNS
Return type: UnstructuredMesh

read_exodus()

Read unstructured mesh from exodus file.
Only supports first order quads or hexes.
SIGNATURE
def read_exodus(
    filename: str | pathlib.Path,
    attach_element_block_indices: bool = False,
    select_element_block_indices: typing.Sequence[int] | None = None,
) -> UnstructuredMesh: ...
ARGUMENTS
Required
filename
Type:str | pathlib.Path
Description:
File to open.
Optional
attach_element_block_indices
Type:bool
Default value:False
Description:
If True, attach the element block indices to the mesh.
Optional
select_element_block_indices
Type:typing.Sequence[int] | None
Default value:None
Description:
If given, read only these element blocks. Keep in mind that exodus uses 1-based indexing.
RETURNS
Return type: UnstructuredMesh

read_h5()

Read an unstructured mesh from an HDF5 Salvus mesh file.
SIGNATURE
def read_h5(
    filename: str | pathlib.Path, read_data: bool = True
) -> UnstructuredMesh: ...
ARGUMENTS
Required
filename
Type:str | pathlib.Path
Description:
File to open.
Optional
read_data
Type:bool
Default value:True
Description:
read the elemental and element nodal data
RETURNS
Return type: UnstructuredMesh

read_h5_single_elemental_field()

Read a single elemental field from an HDF5 mesh file.
SIGNATURE
def read_h5_single_elemental_field(
    filename: str | pathlib.Path, field_name: str
) -> npt.NDArray: ...
ARGUMENTS
Required
filename
Type:str | pathlib.Path
Description:
File to open.
Required
field_name
Type:str
Description:
Name of the field to read.
RETURNS
Return type: npt.NDArray

write_binary_vtk()

Write a binary VTK file.
Please note that this method currently writes the mesh without any attached material parameters. The advantage of using this output format is that ParaView can visualize high-order shapes (e.g. curved elements) in that format.
SIGNATURE
def write_binary_vtk(
    mesh: UnstructuredMesh, filename: pathlib.Path | str
) -> None: ...
ARGUMENTS
Required
mesh
Type:UnstructuredMesh
Description:
The mesh to write.
Required
filename
Type:pathlib.Path | str
Description:
Filename. Make sure it uses a .vtu extension so ParaView recognizes it.

write_exodus()

Write mesh to an Exodus (.e) file.
Since the Exodus file format heavily relies on the use of element blocks, the mesh is required to have some descriptor of element block indices. These typically correspond to discrete regions of the mesh, which share similar properties.
Meshes of 2D dimensionality are written in the XY plane, along Z = 0.
Note that this file format does not support all entity types that belong to native Salvus HDF5 meshes. The following features are written to file:
- Points and connectivity
- Element blocks
- Elemental scalar fields
- Nodal fields
- Global (float) variables
Notably, the following are not retained:
- Elemental nodal fields (e.g., where different properties are
  assigned to different nodes of an element, with allowed
  discontinuities)
- Global strings and arrays
SIGNATURE
def write_exodus(
    mesh: UnstructuredMesh,
    filename: str | pathlib.Path,
    element_block_indices: str = "element_block_index",
    compression: tuple[str, int] | None = None,
    io_size: int = 0,
    overwrite: bool = True,
) -> None: ...
ARGUMENTS
Required
mesh
Type:UnstructuredMesh
Description:
Mesh to save.
Required
filename
Type:str | pathlib.Path
Description:
Location to save the file to. Must end with .e.
Optional
element_block_indices
Type:str
Default value:'element_block_index'
Description:
Name of the elemental field that contains element block indices.
Optional
compression
Type:tuple[str, int] | None
Default value:None
Description:
Compression settings. Pass a tuple of (method, option), e.g. ("gzip", 2). Slows down writing a lot but the resulting files are potentially much smaller.
Optional
io_size
Type:int
Default value:0
Description:
Determines how floating point variables are stored in the file. Inputs will be converted if required. Possible options include 0 for machine precision, 4 for single precision, and 8 for double precision.
Optional
overwrite
Type:bool
Default value:True
Description:
Whether to overwrite existing file.
EXCEPTIONS
ValueError
Filename must end with .e.
KeyError
Element block indices field must already be present in the mesh.
ValueError
Currently only first-order meshes are supported.

write_h5()

Write the mesh to an h5 file with xdmf descriptor.
SIGNATURE
def write_h5(
    mesh: UnstructuredMesh,
    filename: str | pathlib.Path,
    datatype: type[np.number] | None = numpy.float64,
    compression: tuple[str, int] | None = None,
    mode: str = "model",
    write_chunk_size: int = 10000,
    overwrite: bool = True,
    periodic_axes: str | list[str] | None = None,
    periodic_atol: float = 1e-08,
) -> None: ...
ARGUMENTS
Required
mesh
Type:UnstructuredMesh
Description:
The mesh to write.
Required
filename
Type:str | pathlib.Path
Description:
Filename.
Optional
datatype
Type:type[np.number] | None
Default value:numpy.float64
Description:
Datatype to write. Only applies to the elemental field data, coordinates will always be written in double precision. If not set, a suitable data type will be chosen automatically.
Optional
compression
Type:tuple[str, int] | None
Default value:None
Description:
Turn on compression. Pass a tuple of (method, option), e.g. ("gzip", 2). Slows down writing a lot but the resulting files are potentially much smaller.
Optional
mode
Type:str
Default value:'model'
Description:
one of "all", "model","skeleton", "minimal" or "minimal_fast". Controls the content of the mesh file and whether an xdmf file is added. 'all': largest file size, multiple block xdmf file and faster reading from file with UnstructuredMesh.from_h5() 'model': all data to view the model, single block xdmf file for easy opening in paraview 'skeleton': only the first order connectivity can be viewed 'minimal': smallest file size, no xdmf. 'minimal_fast': Same as minimal, but slightly larger file size for faster reading from file with UnstructuredMesh.from_h5()
Optional
write_chunk_size
Type:int
Default value:10000
Description:
HDF5 chunk size in bytes.
Optional
overwrite
Type:bool
Default value:True
Description:
Potentially overwrite an existing file.
Optional
periodic_axes
Type:str | list[str] | None
Default value:None
Description:
Pass a coordinate or list of coordinates that you would like to make periodic. For example: x or [x, y]. This is an experimental feature, and should be considered unstable.
Optional
periodic_atol
Type:float
Default value:1e-08
Description:
Allow for flexibility on the tolerance for coordinate matching when considering periodic boundary conditions. This is an experimental feature, and should be considered unstable.

write_vtp()

Write the mesh to a vtp file, meant for visualization with the GUI.
In 3D, it only writes the hull.
SIGNATURE
def write_vtp(
    mesh: UnstructuredMesh,
    filename: pathlib.Path | str,
    side_sets: typing.Sequence[str] = ("x0", "x1", "y0", "y1", "z0", "z1"),
) -> None: ...
ARGUMENTS
Required
mesh
Type:UnstructuredMesh
Description:
The mesh to write.
Required
filename
Type:pathlib.Path | str
Description:
filename
Optional
side_sets
Type:typing.Sequence[str]
Default value:('x0', 'x1', 'y0', 'y1', 'z0', 'z1')
Description:
Side sets to write.
PAGE CONTENTS