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:
-
User-friendliness:
jaxmatprovides 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. -
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. -
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.
-
Efficiency:
jaxmatmakes 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 pip install. Use jaxmat[gpu] for GPU support.
pip install jaxmat
Citing
The project can be cited from Zenodo:
Acknowledgements
Funded by the European Union (ERC, Automatix, CoG project no 101229452). Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Research Council. Neither the European Union nor the granting authority can be held responsible for them.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jaxmat-0.0.3.tar.gz.
File metadata
- Download URL: jaxmat-0.0.3.tar.gz
- Upload date:
- Size: 113.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c26fa04c4e06a3b4970841778720effcd949e518c84538f4559ffa7af9205577
|
|
| MD5 |
918fa857e7b1a2853bbabc89a0e861a5
|
|
| BLAKE2b-256 |
27ea0704ca07160b9b8da2fa75056c8da96f2715a06914cc1a6e3d5e474bdacb
|
File details
Details for the file jaxmat-0.0.3-py3-none-any.whl.
File metadata
- Download URL: jaxmat-0.0.3-py3-none-any.whl
- Upload date:
- Size: 138.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ecc72affcc1dc42324e3905e11ff1be8dee35547d8cc84844f3da5078756abc
|
|
| MD5 |
76b4e79fee01a1b8cf9374c4b78eebe2
|
|
| BLAKE2b-256 |
f2df0f6b2e5ee936bef2d0f8fdbe91e27a5293164490835ce94fcc1cf21e86fa
|