Skip to main content

Crate outram_foam_basic_lib

Crate outram_foam_basic_lib 

Source
Expand description

This is OUTRAM PARK’s independent Rust translation of selected OpenFOAM® primitive/finite-volume algorithms — it is not the official OpenFOAM® software and is not affiliated with, endorsed by, or sanctioned by OpenCFD Ltd. or the ESI Group. OpenFOAM® is a registered trademark of OpenCFD Limited. See TRADEMARKS.md (this crate’s directory, mirrored from the workspace root) for the full attribution and non-affiliation notice.

Modules§

compute
Cross-layer — where a numerical kernel runs (ComputeBackend: serial, multi-CPU via rayon, or GPU via wgpu), the worker-count policy, and the backend-selection rule. Dispatch only, no kernels. Where a numerical kernel runs — serial, multi-CPU, or GPU.
fields
Layer 2 — field containers (VolField/SurfaceField), boundary conditions, and field-level tensor algebra. Field types: the discretised quantities carried on the mesh.
fluid_thermo
Layer 4 — field-level fluid and solid thermodynamics (FluidThermo, SolidThermo, PsiThermo, RhoThermo).
fv_operators
Layer 3 — finite-volume discretisation operators (fvc explicit, fvm implicit, and adjust_phi continuity correction).
fv_options
Layer 3 — optional source terms attached to finite-volume equations, OpenFOAM’s fvOptions (Foundation fvModels) mechanism. Optional source terms added to finite-volume equations — OpenFOAM’s fvOptions mechanism.
interface
this part is extension in Rust Now under here, I want to expose the openfoam primitives to something that can be human readable
interpolation
Layer 1f — one-dimensional data interpolation (linear and spline). One-dimensional table interpolation over sorted (xs, ys) samples.
io
OpenFOAM ASCII case I/O — FoamFile dictionaries, polyMesh read/write, time-directory field read/write, and whole-case reading. OpenFOAM ASCII case I/O — read and write OpenFOAM cases the way the upstream utilities do.
krylov
Layer 2 — asymmetric Krylov iterative solvers (BiCGStab, restarted GMRES) and preconditioners (Jacobi, ILU(0)) for the sparse LduMatrix. Asymmetric Krylov iterative solvers and preconditioners for sparse A x = b.
ldu_matrix
Layer 2 — sparse LDU (lower/diagonal/upper) matrices, the assembled FvMatrix, and iterative linear solvers (CG, Gauss–Seidel, GAMG). Sparse LDU (lower-diagonal-upper) linear algebra for implicit FV solves.
limiters
TVD flux limiters — field-agnostic psi(r) functions on plain f64.
linear_operator
Layer 2 — the discretisation-agnostic LinearOperator contract and the generic Krylov drivers (cg_op, bicgstab_op, gmres_op) written against it, so a finite-element crate can reuse this solver layer without adopting the finite-volume LduMatrix layout (GitHub issue #175). Purely additive: the existing finite-volume solvers are unchanged. Discretisation-agnostic linear-algebra contract, plus Krylov solvers written against it.
math
Layer 1g — mathematical special functions (inverse error function, incomplete gamma functions and their inverse). Special mathematical functions used by the thermophysics and statistics kernels.
matrix
Layer 1b — dense SquareMatrix with direct (LU) solve. Dense square-matrix linear algebra.
mesh
Layer 2 — the finite-volume mesh: cells, faces, boundary patches, and geometric metrics. Finite-volume mesh layer: topology and geometry.
ode
Layer 1e — ordinary-differential-equation solvers (Euler, RKF45, Rosenbrock23). Ordinary differential equation solvers for systems dy/dx = f(x, y).
polynomial
Layers 1c/1d — polynomial evaluation and closed-form equation solvers (linear, quadratic, cubic). Closed-form polynomial equation solvers and a fixed-degree polynomial type.
prelude
Convenience re-exports of the most commonly used types and functions.
primitives
Layer 1a — dimensionless scalar constants and the tensor-algebra primitives (Vector3, Tensor, SymmTensor, SphericalTensor). Layer 1a — the primitive numeric types OpenFOAM builds everything on.
steady_conduction
Layer 5 (small solver) — steady heat conduction with a volumetric source, the steady form of laplacianFoam, with radial and voxel meshers, a closed-form verification reference and an energy balance (gh:#949).
thermophysics
Layer 1h — specie-level thermophysics: equations of state, thermo, and transport models. Specie-level thermophysics: mesh-independent per-species property kernels.