pyfebiopt.visualization.plotter

Helpers for translating FEBio meshes to PyVista geometries and fields.

Classes

PVBridge

Build per-domain grids and attach pre-sliced results to PyVista.

Module Contents

class pyfebiopt.visualization.plotter.PVBridge

Build per-domain grids and attach pre-sliced results to PyVista.

mesh: pyfebiopt.mesh.mesh.Mesh
domain_grid(domain: str) Any

Build the unstructured grid for the requested domain.

Parameters:

domain – Domain/part name from the mesh.

Returns:

PyVista UnstructuredGrid for the domain.

Return type:

Any

Example

grid = PVBridge(mesh).domain_grid("artery")

surface_mesh(surface: str) Any

Build the surface mesh for the requested surface.

Parameters:

surface – Surface name from the mesh.

Returns:

PyVista PolyData for the surface.

Return type:

Any

add_node_result_array(ds: pyvista.DataSet, *, view: pyfebiopt.xplt.views.NodeResultView, data: numpy.ndarray, name: str | None = None, set_active: bool = True) str

Attach nodal results to the dataset with appropriate structure.

Parameters:
  • ds – Target PyVista dataset.

  • view – Source view that describes the nodal result.

  • data – Nodal array (N or N x C).

  • name – Optional field name override.

  • set_active – Whether to set scalars/vectors/tensors active.

Returns:

Name of the attached field.

Return type:

str

Example

bridge.add_node_result_array(grid, view=U_view, data=U, name="U")

add_elem_item_array(ds: pyvista.UnstructuredGrid, *, view: pyfebiopt.xplt.views.ItemResultView, domain: str, data: numpy.ndarray, name: str | None = None, set_active: bool = True) str

Attach the provided element array to the cell data.

Parameters:
  • ds – Target unstructured grid.

  • view – Item view describing the result.

  • domain – Domain label (unused; kept for symmetry with callers).

  • data – Element result array.

  • name – Optional field name override.

  • set_active – Whether to set the field active.

Returns:

Name of the attached field.

Return type:

str

add_element_state(ds: pyvista.UnstructuredGrid, *, state: pyfebiopt.xplt.element_state.ElementStateView, domain: str, time: int = -1, status_name: str = 'element_status', active_name: str = 'element_active', hide_inactive: bool = True) None

Attach FEBio element flags and optionally hide inactive cells.

PyVista does not interpret FEBio status flags directly. Inactive cells are hidden with VTK’s standard HIDDENCELL ghost bit when requested.

add_face_item_array(ds: pyvista.PolyData | pyvista.UnstructuredGrid, *, view: pyfebiopt.xplt.views.ItemResultView, surface: str, data: numpy.ndarray, name: str | None = None, set_active: bool = True) str

Attach the provided face array to the surface or cell data.

Parameters:
  • ds – Target polydata or unstructured grid.

  • view – Item view describing the result.

  • surface – Surface name (unused; for API symmetry).

  • data – Face result array.

  • name – Optional field name override.

  • set_active – Whether to set the field active.

Returns:

Name of the attached field.

Return type:

str

add_elem_mult_reduced_array(ds: pyvista.UnstructuredGrid, *, view: pyfebiopt.xplt.views.MultResultView, domain: str, data: numpy.ndarray, reducer: str = 'mean', name: str | None = None, set_active: bool = True) str

Reduce node-wise element arrays to one value per cell then attach.

Parameters:
  • ds – Target unstructured grid.

  • view – Mult result view.

  • domain – Domain label (unused; for API symmetry).

  • data – Block array shaped (R, Kmax[, C]).

  • reducer – Reduction method (mean, max, min, first).

  • name – Optional field name override.

  • set_active – Whether to set the field active.

Returns:

Name of the attached field.

Return type:

str

region_series_array(*, data: numpy.ndarray) numpy.ndarray

Normalize region time series data to float32 arrays.

Parameters:

data – Array shaped (T, C…) to be flattened on the last axes.

Returns:

Array shaped (T, -1) in float32.

Return type:

np.ndarray

Usage:

flattened = bridge.region_series_array(data=series_block)