Skip to main content

A GPU-accelerated differentiable simulation toolbox for additive manufacturing (AM) based on JAX.

JAX-AM

Doc PyPI Github Star Github Fork License

JAX-AM is a collection of several numerical tools, currently including Discrete Element Method (DEM), Lattice Boltzmann Methods (LBM), Computational Fluid Dynamics (CFD), Phase Field Method (PFM) and Finite Element Method (FEM), that cover the analysis of the Process-Structure-Property relationship in AM.

Our vision is to share with the AM community a free, open-source (under the GPL-3.0 License) software that facilitates the relevant computational research. In the JAX ecosystem, we hope to emphasize the potential of JAX for scientific computing. At the same time, AI-enabled research in AM can be made easy with JAX-AM.

Authors:

:fire: Join us for the development of JAX-AM! :rocket:

Discrete Element Method (DEM)

DEM simulation can be used for simulating powder dynamics in metal AM.

Free falling of 64,000 spherical particles.

Lattice Boltzmann Methods (LBM)

LBM can simulate melt pool dynamics with a free-surface model.

A powder bed fusion process considering surface tension, Marangoni effect and recoil pressure.

Computational Fluid Dynamics (CFD)

CFD helps to understand the AM process by solving the (incompressible) Navier-Stokes equations for velocity, pressure and temperature.

Melt pool dynamics.

Phase Field Method (PFM)

PFM models the grain development that is critical to form the structure of the as-built sample.

Microstructure evolution.

Directional solidification with isotropic (left) and anisotropic (right) grain growth.

Finite Element Method (FEM)

FEM is a powerful tool for thermal-mechanical analysis in AM. We support the following features

  • 2D quadrilateral/triangle elements
  • 3D hexahedron/tetrahedron elements
  • First and second order elements
  • Dirichlet/Neumann/Cauchy/periodic boundary conditions
  • Linear and nonlinear analysis including
    • Heat equation
    • Linear elasticity
    • Hyperelasticity
    • Plasticity (macro and crystal plasticity)
  • Differentiable simulation for solving inverse/design problems without human deriving sensitivities, e.g.,
    • Toplogy optimization
    • Optimal thermal control

Thermal profile in direct energy deposition.

Linear static analysis of a bracket.

Crystal plasticity: grain structure (left) and stress-xx (right).

Topology optimization with differentiable simulation.

Documentation

Please see the web documentation for the installation and use of this project.

License

This project is licensed under the GNU General Public License v3 - see the LICENSE for details.

Citations

If you found this library useful in academic or industry work, we appreciate your support if you consider 1) starring the project on Github, and 2) citing relevant papers:

@article{xue2023jax,
  title={JAX-FEM: A differentiable GPU-accelerated 3D finite element solver for automatic inverse design and mechanistic data science},
  author={Xue, Tianju and Liao, Shuheng and Gan, Zhengtao and Park, Chanwook and Xie, Xiaoyu and Liu, Wing Kam and Cao, Jian},
  journal={Computer Physics Communications},
  pages={108802},
  year={2023},
  publisher={Elsevier}
}
@article{xue2022physics,
  title={Physics-embedded graph network for accelerating phase-field simulation of microstructure evolution in additive manufacturing},
  author={Xue, Tianju and Gan, Zhengtao and Liao, Shuheng and Cao, Jian},
  journal={npj Computational Materials},
  volume={8},
  number={1},
  pages={201},
  year={2022},
  publisher={Nature Publishing Group UK London}
}

Release files for jax-am 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jax-am 0.0.3
File Size Uploaded
jax-am-0.0.3.tar.gz 58.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jax-am 0.0.3
File Interpreter ABI Platform
jax_am-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 119.4 kB

Release files / jax-am-0.0.3.tar.gz

Download URL jax-am-0.0.3.tar.gz
Size 58.9 kB
Tags Source
SHA-256 checksum
How to use checksums
299b17cf56ac6f9a90f299c20826fc60f54479379da33a605ff9e83a9bd3a1fb
BLAKE2b-256 checksum
How to use checksums
21b25eb247e709614d4db54b44975313fde80fa4608be59b831b5d69ca84876c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.16

Release files / jax_am-0.0.3-py3-none-any.whl

Download URL jax_am-0.0.3-py3-none-any.whl
Size 60.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
306192bebb7677929361da04fd5d5fcaecb0ae0fd62bfc7f820fb09e45732be2
BLAKE2b-256 checksum
How to use checksums
40407da0c8e0a9013e5c2adc02aeb935fc63ca95566600b289aa14fc88aea936
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.16

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page