Skip to main content

GPU-accelerated simulation toolbox for additive manufacturing based on JAX.

Project description

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}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jax-am-0.0.3.tar.gz (58.9 kB view details)

Uploaded Source

Built Distribution

jax_am-0.0.3-py3-none-any.whl (60.5 kB view details)

Uploaded Python 3

File details

Details for the file jax-am-0.0.3.tar.gz.

File metadata

  • Download URL: jax-am-0.0.3.tar.gz
  • Upload date:
  • Size: 58.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for jax-am-0.0.3.tar.gz
Algorithm Hash digest
SHA256 299b17cf56ac6f9a90f299c20826fc60f54479379da33a605ff9e83a9bd3a1fb
MD5 1c62371420301dcf307f27a858836dd7
BLAKE2b-256 21b25eb247e709614d4db54b44975313fde80fa4608be59b831b5d69ca84876c

See more details on using hashes here.

File details

Details for the file jax_am-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: jax_am-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 60.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for jax_am-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 306192bebb7677929361da04fd5d5fcaecb0ae0fd62bfc7f820fb09e45732be2
MD5 19e0d5635dc1a249d05594e3fd2dff53
BLAKE2b-256 40407da0c8e0a9013e5c2adc02aeb935fc63ca95566600b289aa14fc88aea936

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page