Skip to content

tiagomrns/femrs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ParametricFEA-SSM: Geometric Nonlinear FEA for Spectral Submanifolds (SSM)

Rust

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.


🔥 Features

  • 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, or petgraph.
  • Extensible: Modular design for adding new elements, materials, or solvers.

📦 Use Cases

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.


🚀 Quick Start

Installation

git clone https://github.com/yourusername/ParametricFEA-SSM.git  
cd ParametricFEA-SSM  
cargo build --release  

Example: Parametric Beam Assembly

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);  

📚 Theory

The tool implements:

  1. Parametric Assembly: Matrices are expressed as K(p) = K₀ + ∑ p� Kᵢ where p are design parameters.
  2. Hyper-Reduction: Integrates with SSM theory (Jain & Haller, 2022) for nonlinear MOR.
  3. Automatic Differentiation: For analytic sensitivity computation (optional dfdx feature).

📂 Project Structure

src/  
├── elements/         # Finite elements (beam, shell, solid)  
├── materials/        # Constitutive laws  
├── assembly/        # Parametric matrix assembly  
├── reduction/       # SSM/MOR interfaces  
└── io/              # Mesh/result handling  

🤝 Contributing

PRs welcome! Key needs:

  • More element types (e.g., piezoelectric, composites)
  • GPU acceleration via rust-cuda.

✉️ Contact

For collaborations/questions:


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)?

About

A Rust-based parametric Finite Element Analysis tool for Direct Parameterisation of Invariant Manifolds (e.g., Spectral Submanifolds) in geometrically nonlinear structural dynamics. Enables high-dimensional model order reduction by assembling matrices polynomially parameterised by mesh geometry and material properties.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages