Skip to content

porous_media

porous_media provides Python utilities for porous media simulation results and meshes. It connects FEBio-exported VTK data with XDMF time series, mesh zonation, and PyVista visualizations.

Start here

  1. Install the package on Python 3.13 or later.
  2. Run the quickstart with bundled simulation data.
  3. Convert and inspect XDMF, generate zonation, or render mesh data.
  4. Use the FEBio guide to prepare inputs and process solver outputs.

Workflow

Task Input Output
Convert a time series FEBio-exported legacy VTK files XDMF, HDF5, and cached limits
Interpolate a time series XDMF with a fixed mesh XDMF at requested times
Generate zonation Mesh with boundary labels and cell volumes Cell positions and zonation patterns
Render results Mesh data or an XDMF time series Image panels
Create a video Numbered images Video or GIF using FFmpeg
Prepare a parameter study Jinja2 FEBio template and contexts Rendered .feb files

The package does not run a finite element solver. FEBio, its plugins, and FFmpeg are external programs. Numerical data processing does not require a display.

Scope and reference

The API reference documents the reusable data, mesh, visualization, and FEBio modules. Scripts in research/ are research workflows with project-specific paths and data requirements. They are not a supported command-line interface or portable tutorials.

The research archive preserves historical setup and study notes separately from the current user guides.

Development uses uv, Ruff, ty, pytest, and Zensical. See contributing for bug reports and pull requests, and development for the locked environment and required checks.

Project