caexfer
Transfer finite-element meshes and results across formats.
caexfer reads and writes supported subsets of STL, SU2, UNV, Exodus II,
VTU, legacy VTK, Gmsh MSH 4.1/2.2, Abaqus/CalculiX INP, CalculiX FRD,
Nastran BDF, and Nastran OP2. It also reads PCH displacement results when
given a matching mesh. Each conversion reports omissions and assumptions.
Get started
Requires Rust 1.86 or newer. Install the published CLI from crates.io:
Add the published library to your Rust project:
The CLI and library support the same format routes. The examples below use fixtures from a repository checkout; run them from its root. This sequence carries nodal results from FRD through VTU to Gmsh MSH 2.2, then reads PCH results with a matching BDF mesh.
CLI
These commands create new files; choose fresh output names when rerunning them.
Rust library
use ;
convert lists reported losses and assumptions before asking for confirmation.
For scripts, pass the specific --accept-... flags named in that list, or use
--accept-all to accept every reported change.
Conversion routes
caexfer --formats lists the current readers and writers. Mesh sources can be
converted when the destination supports their cell types and data. VTU, legacy
VTK, MSH, and classic Exodus carry numeric fields within their documented
subsets; FRD carries nodal fields. BDF, INP, STL, SU2, and UNV provide narrower
geometry routes. MSH physical groups become named selections, and SU2 carries
named boundary markers. OP2 and PCH displacement results require a companion
mesh with original node IDs; OP2 can write a selected displacement table, while
PCH is read-only.
Documentation
- CLI guide covers options, confirmation, output replacement, and JSON receipts.
- Library guide shows the typed API and acceptance options.
- Format support lists the exact readable and writable subsets and their limits.
- Coverage explains what the badge measures.