A Rust-based parametric Finite Element Analysis (FEA) tool for Direct Parameterisation of Invariant Manifolds (e.g., Spectral Submanifolds, SSM) in geometrically nonlinear structural dynamics. Enables high-dimensional model order reduction (MOR) by assembling parametric matrices dependent on mesh geometry and material properties.
- Parametric FEA: Assembles stiffness/mass/damping matrices as polynomial functions of design parameters (geometry, material).
- Geometric Nonlinearity: Supports large deformations and nonlinear constitutive laws.
- SSM/MOR Integration: Compatible with spectral submanifold reduction techniques for efficient dynamics analysis.
- Rust-Powered: Memory-safe, parallelizable, and high-performance numerics via
ndarray,nalgebra, orpetgraph. - Extensible: Modular design for adding new elements, materials, or solvers.
✅ Reduced-Order Modeling (ROM): Generate low-dimensional SSMs for high-DOF systems.
✅ Structural Optimization: Sensitivity analysis via parametric matrix derivatives.
✅ Nonlinear Dynamics: Study bifurcations, instabilities, or forced responses.
git clone https://github.com/yourusername/ParametricFEA-SSM.git
cd ParametricFEA-SSM
cargo build --release use parametricfea::prelude::*;
let mesh = Mesh::from_gmsh("beam.geo"); // Load parametric mesh
let material = Steel::new(E=210e9, nu=0.3);
let fe = NonlinearBeamElement::new(quadrature=3);
// Assemble parametric stiffness matrix K(p)
let K = fe.assemble_param_matrix(&mesh, &material, |p| p[0] * p[1]^3); The tool implements:
- Parametric Assembly: Matrices are expressed as
K(p) = K₀ + ∑ p� Kᵢwherepare design parameters. - Hyper-Reduction: Integrates with SSM theory (Jain & Haller, 2022) for nonlinear MOR.
- Automatic Differentiation: For analytic sensitivity computation (optional
dfdxfeature).
src/
├── elements/ # Finite elements (beam, shell, solid)
├── materials/ # Constitutive laws
├── assembly/ # Parametric matrix assembly
├── reduction/ # SSM/MOR interfaces
└── io/ # Mesh/result handling
PRs welcome! Key needs:
- More element types (e.g., piezoelectric, composites)
- GPU acceleration via
rust-cuda.
For collaborations/questions:
- Email: your.email@example.com
- Twitter: @yourhandle
This README balances technical depth with accessibility. Adjust:
- Add a "Benchmarks" section if performance is a highlight.
- Link to papers/thesis if applicable.
- Include GIFs of nonlinear deformations/SSM projections (if visual).
Would you like me to emphasize any specific aspect (e.g., GPU support, validation cases)?