Engineering Internship – Differentiable Constitutive Laws: JAXMat & code_aster Interface

Internship, 6 months. Integrating JAXMat differentiable constitutive laws into code_aster, from CPU to GPU, up to a neural hyperelastic model.
Context
Simvia, a subsidiary of the EDF Group, is a key player in promoting and supporting open-source numerical simulation solutions, code_aster first and foremost.
Simulating the nonlinear behaviour of materials requires computing stresses, the evolution of internal variables and a tangent operator used to solve the structural equilibrium. Developing these constitutive laws can become complex, especially when they involve new physical models or neural networks.
JAXMat (https://erc-automatix.github.io/) is a Python library for material behaviour modelling built on JAX. It uses automatic differentiation to compute the derivatives required to integrate constitutive laws, and offers vectorised execution on CPU or GPU.
The goal of the internship is to design, develop and evaluate an interface between JAXMat and code_aster, so that these constitutive laws can be used in nonlinear finite element simulations.
Practical information
- Contract type: end-of-studies internship (internship agreement required)
- Duration: 4 to 6 months
- Start: January 2027 (exact start date to be agreed)
- Location: EDF Lab, Saclay campus (Palaiseau, France)
- Compensation: in accordance with current regulations
Working environment
You will join a small, close-knit and passionate team based at EDF Lab on the Paris-Saclay campus, one of the most stimulating research and innovation ecosystems in Europe.
We genuinely care about our team's well-being: a supportive atmosphere, open communication, everyday mutual help and the right to make mistakes.
The role
The work will follow a seven-step progression:
1. Getting started with the tools
Get familiar with code_aster and its architecture for integrating constitutive laws, as well as with JAX and JAXMat. Reproduce examples on a single material point and on simple finite element cases.
2. Developing a point-by-point CPU interface
Implement the data exchange between code_aster and JAXMat: strains, stresses, internal variables and tangent operator. Initial developments will cover elasticity and elastoplasticity under small strains.
3. Validation against a native code_aster law
Compare mechanical responses, tangent operators and the convergence of the nonlinear solution. Check the handling of states and integration failures, then analyse the overhead of the bridge.
4. Extension to batch processing
Adapt the interface to integrate several Gauss points simultaneously and take advantage of JAXMat's vectorisation capabilities.
5. CPU performance evaluation
Compare the batched interface with an equivalent native code_aster law, studying the influence of problem size and batch size.
6. GPU performance evaluation
Compare JAXMat runs on CPU and GPU with the native code_aster reference on CPU. Measurements will cover both the constitutive integration and the full simulation, taking data transfers into account.
7. Demonstration of a neural hyperelastic behaviour
Build on the JAXMat example based on a neural network representing a hyperelastic potential, trained on Treloar's experimental data. After validating the interface under finite strains with an analytical law, use the neural model in a structural simulation with code_aster.
Expected deliverables
- A documented interface
- Reproducible validation tests
- A performance analysis
- A demonstrator highlighting the possibilities offered by differentiable constitutive laws
The scope of supported finite elements and constitutive laws will be defined progressively with the supervisors.
Who we're looking for
Final-year engineering school or second-year Master's (M2) student, specialising in computational mechanics, scientific computing or scientific software.
Technical skills:
- Fundamentals of continuum mechanics and finite elements
- Solid Python practice
- Interest in software development and numerical methods
- Ability to analyse and verify simulation results
Nice to have:
- Knowledge of C++ or Fortran
- Nonlinear mechanics
- Automatic differentiation
- Parallel computing
Prior experience with JAX or code_aster is not required.
Soft skills:
- Proactive: you enjoy going beyond your initial objectives
- Curious: you like understanding how things work
- Independent: you can manage your own priorities and make progress without constant guidance
What we offer
- A modern, varied technical environment, far from routine work
- Concrete skill-building on technologies used in production
- Mentoring from an experienced, available and passionate team
- An internship project with a real deliverable, shipped to production and used by the community