Skip to main content

Automated material constitutive modeling in JAX

Project description

jaxmat: Automated material constitutive modeling in JAX

jaxmat is an open-source library for implementing material constitutive models in a way that integrates seamlessly with modern machine learning frameworks and existing finite element software.

Aim and scope

The library is implemented in JAX and heavily relies on additional features provided by the JAX ecosystem, in particular the equinox, diffrax, and optimistix libraries. The design choices are based on the following premises:

  1. User-friendliness: jaxmat provides domain-specific abstractions that simplify the definition of complex material models. It is not a database of hard-coded material behaviors with fixed parameters. Instead, it offers a generic and extensible framework for users to define, compose, and calibrate their own constitutive models with minimal boilerplate.

  2. Differentiability: We fully exploit JAX’s Automatic Differentiation (AD) capabilities to eliminate the need for manually deriving consistent tangent operators, Jacobians of implicit systems, normal vectors to plastic surfaces, hyperelastic stress expressions, and more. In jaxmat, every input and parameter of a constitutive model is differentiable, making it easy to compute sensitivities with respect to material or even algorithmic parameters! These features are essential for tasks such as material parameter identification, solving inverse problems, and performing uncertainty quantification.

  3. Modularity: The library is designed to be highly modular, allowing users to easily mix and match modeling components. For example, in a generic elastoviscoplastic model, you can independently swap out the plastic yield surface, the hardening laws or the viscous flow, independently. Each component can also be replaced with a data-driven alternative, such as a neural network, without disrupting the overall structure.

  4. Efficiency: jaxmat makes full use of JAX features such as Just-In-Time compilation (jax.jit), automatic vectorization (jax.vmap) and hardware acceleration (CPU or GPU through the XLA compiler). Constitutive models can be evaluated extremely efficiently and in parallel across batches of material points. Additionally, we have designed and selected algorithms specifically suited to the needs of computational mechanics for maximum performance, robustness, and generality, see the section.

Installation

Simply run a pip install and update nvidia-cublas-cu12 as there are some issues with the version currently shipped with jax-0.6.1.

pip install .
pip install --upgrade nvidia-cublas-cu12

About the author

Jeremy Bleyer is a researcher in Solid and Structural Mechanics at Laboratoire Navier, a joint research (UMR 8205) of Ecole Nationale des Ponts et Chaussées - IP Paris, Université Gustave Eiffel and CNRS.

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

jaxmat-0.0.1.tar.gz (132.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jaxmat-0.0.1-py3-none-any.whl (175.0 kB view details)

Uploaded Python 3

File details

Details for the file jaxmat-0.0.1.tar.gz.

File metadata

  • Download URL: jaxmat-0.0.1.tar.gz
  • Upload date:
  • Size: 132.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for jaxmat-0.0.1.tar.gz
Algorithm Hash digest
SHA256 d185afef939da9f42d73b3266a173d8527ff2d0116f5066586047d859e6ea8ab
MD5 68a6fbf82178dc457bf1c66bed41f2f2
BLAKE2b-256 bacc251d23f0e7a5d534733872e2d2efe50b9439102bb974bddfcb8b8a7594a6

See more details on using hashes here.

File details

Details for the file jaxmat-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: jaxmat-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 175.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for jaxmat-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dccb47cc7c0682aa4fe9a9b6e8fddbcc74490e429aa2aff2dd9ec7fbbbdfabdc
MD5 28bcd5a7b8c3b490b2b7714c5ac00f7f
BLAKE2b-256 7a5d15ecc16421f36f05d3a0d1f1e12f5b48a999730f1e0f39a8bb126f9a36e8

See more details on using hashes here.

Supported by

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