jax-fem  by deepmodeling

Differentiable FEM solver for advanced simulations and inverse design

Created 2 years ago
588 stars

Top 55.3% on SourcePulse

GitHubView on GitHub
Project Summary

Summary

Differentiable Finite Element Method with JAX. JAX-FEM is a differentiable finite element package built on JAX, designed for researchers and engineers. It leverages automatic differentiation to enable complex inverse design and mechanistic data science problems, offering a GPU-accelerated solution for simulating various physical phenomena.

How It Works

This package integrates Automatic Differentiation (AD) with the Finite Element Method (FEM) using JAX. This approach allows users to perform gradient-based optimization for inverse problems and design tasks, such as topology optimization, without the need for manual derivation of sensitivities. The use of JAX ensures GPU acceleration and enables seamless integration into modern machine learning workflows.

Quick Start & Requirements

  • Installation and user guides are available via official documentation (specific URL not provided in README).
  • Primary dependencies include JAX. Integration with PETSc is supported for advanced solver options.
  • A demo application, JAX-FEM Express, is accessible at https://www.bohrium.com/apps/jax-fem-express.

Highlighted Details

  • Supports 2D (quadrilateral/triangle) and 3D (hexahedron/tetrahedron) elements, with first and second-order options.
  • Handles diverse boundary conditions (Dirichlet, Neumann, Robin) and analysis types, including linear/nonlinear heat transfer, linear elasticity, hyperelasticity, and plasticity (macro/crystal).
  • Enables multi-physics simulations and differentiable programming for inverse design tasks like topology optimization and optimal thermal control.

Maintenance & Community

No specific details on community channels (e.g., Discord, Slack), roadmap, or notable contributors are provided in the README. A showcase application, JAX-FEM Express, and an associated video are linked.

Licensing & Compatibility

The project is licensed under the GNU General Public License v3 (GPL-3.0). Commercial use requires direct contact with Tianju Xue, indicating potential restrictions for closed-source applications due to the copyleft nature of GPL-3.0.

Limitations & Caveats

The README does not explicitly list limitations or known issues. The GPL-3.0 license may impose significant restrictions on integration into proprietary, closed-source software.

Health Check
Last Commit

2 weeks ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
1
Star History
19 stars in the last 30 days

Explore Similar Projects

Starred by Roy Frostig Roy Frostig(Coauthor of JAX; Research Scientist at Google DeepMind), Patrick von Platen Patrick von Platen(Author of Hugging Face Diffusers; Research Engineer at Mistral), and
2 more.

diffrax by patrick-kidger

0.4%
2k
JAX library for numerical differential equation solvers
Created 4 years ago
Updated 2 days ago
Starred by Edward Sun Edward Sun(Research Scientist at Meta Superintelligence Lab), Luca Antiga Luca Antiga(CTO of Lightning AI), and
2 more.

PhiFlow by tum-pbs

0.4%
2k
Differentiable PDE solving framework for ML research
Created 6 years ago
Updated 1 week ago
Feedback? Help us improve.