{"id":35393931,"url":"https://github.com/bleyerj/dolfinx_materials","last_synced_at":"2026-01-02T09:03:36.715Z","repository":{"id":243067091,"uuid":"748589697","full_name":"bleyerj/dolfinx_materials","owner":"bleyerj","description":"dolfinx_materials is a Python add-on package to the dolfinx interface to the FEniCSx project. It enables the user to define complex material constitutive behaviors which are not expressible using classical UFL operators.","archived":false,"fork":false,"pushed_at":"2025-11-20T21:53:52.000Z","size":20272,"stargazers_count":24,"open_issues_count":3,"forks_count":9,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-20T23:28:53.321Z","etag":null,"topics":["automatic-differentiation","constitutive-behavior","material-model","plasticity","solid-mechanics"],"latest_commit_sha":null,"homepage":"https://bleyerj.github.io/dolfinx_materials/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bleyerj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-26T10:18:50.000Z","updated_at":"2025-11-20T21:28:09.000Z","dependencies_parsed_at":"2024-06-06T15:04:13.729Z","dependency_job_id":"d0f60c4c-0477-4aa6-bd7b-24331f931bf6","html_url":"https://github.com/bleyerj/dolfinx_materials","commit_stats":null,"previous_names":["bleyerj/dolfinx_materials"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/bleyerj/dolfinx_materials","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleyerj%2Fdolfinx_materials","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleyerj%2Fdolfinx_materials/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleyerj%2Fdolfinx_materials/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleyerj%2Fdolfinx_materials/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bleyerj","download_url":"https://codeload.github.com/bleyerj/dolfinx_materials/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleyerj%2Fdolfinx_materials/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28171605,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2026-01-02T02:00:06.235Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automatic-differentiation","constitutive-behavior","material-model","plasticity","solid-mechanics"],"created_at":"2026-01-02T09:03:05.117Z","updated_at":"2026-01-02T09:03:36.710Z","avatar_url":"https://github.com/bleyerj.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `dolfinx_materials` : A Python package for advanced material modelling\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"./docs/images/logo.png\" alt=\"Description\" width=\"500\"\u003e\n\u003c/p\u003e\n\n`dolfinx_materials` is a Python add-on package to the `dolfinx` interface to the [FEniCSx project](https://fenicsproject.org/).\nIt enables the user to define **complex material constitutive behaviors** which are not expressible using classical [UFL](https://fenics.readthedocs.io/projects/ufl/en/latest/) operators.\n\n\n* Github repository: https://github.com/bleyerj/dolfinx_materials\n* Online documentation: https://bleyerj.github.io/dolfinx_materials/\n\n## Features\n\nCurrent version supports FEniCSx version `0.10.0`.\n\nThe library supports in particular:\n\n- [JAX](https://jax.readthedocs.io)-based implementations of constitutive relations using the `jaxmat` library: https://github.com/bleyerj/jaxmat\n- Python-based constitutive relations, using `numpy/scipy` (*slow*)\n- [MFront](https://tfel.sourceforge.net/) constitutive behaviors compiled with the `generic` interface, relying on the [MFrontGenericInterfaceSupport](https://github.com/thelfer/MFrontGenericInterfaceSupport) project\n- constitutive relations based on inference of trained Neural Networks\n- constitutive relations solved using external libraries including convex optimization libraries such as [cvxpy](http://cvxpy.org/)\n\n*Disclaimer: The following functionalities are not currently available but should in theory be possible to implement relatively easily. Contributions are most welcome!*\n\nThis library should also help you in:\n\n- writing additional interface to other material libraries such as UMATs of Abaqus for instance\n- performing multi-scale simulations (FE²) where constitutive update is obtained from the solution of a problem formulated on a RVE.\n- implementing data-driven constitutive models\n\n\n## Prerequisites\n\n**dolfinx_materials** requires: \n* **FEniCSx** (v.0.10), see [installation instructions here](https://fenicsproject.org/download/).\n* **jax** and `jaxmat` for  JAX-based materials. `jaxmat` can be simply installed via `pip`:\n\n```\npip install jaxmat[gpu] --user\n```\n\nSee also [JAX installation instructions](https://jax.readthedocs.io/en/latest/installation.html) for more details about GPU acceleration.\n\n### Optional for MFront behaviors\n\n- You must install the [TFEL project](https://github.com/thelfer/tfel) to be able to compile MFront behaviors (`.mfront` files). In particular, the project requires Boost and Boost-Python libraries.\n\n- The [MFrontGenericInterfaceSupport](https://github.com/thelfer/MFrontGenericInterfaceSupport/) (`mgis`) package with Python binding must then be installed to load such compiled behaviors within `dolfinx`.\n\n## Installation and usage\nSimply clone the [`dolfinx_materials` public repository](https://github.com/bleyerj/dolfinx_materials)\n```\nhttps://github.com/bleyerj/dolfinx_materials\n```\nand install the package by typing\n```\npip install dolfinx_materials/ --user\n```\n\n\n## License\n\nAll this work is licensed under the [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/\u003e) ![license](https://i.creativecommons.org/l/by-sa/4.0/88x31.png).\n\n## Citing\n\nThe project can be cited from Zenodo:\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.13882183.svg)](https://doi.org/10.5281/zenodo.13882183)\n```\n@software{bleyer2024dolfinx_materials,\n  author       = {Bleyer, Jeremy},\n  title        = {{dolfinx\\_materials: A Python package for advanced \n                   material modelling}},\n  month        = oct,\n  year         = 2024,\n  publisher    = {Zenodo},\n  version      = {v0.3.0},\n  doi          = {10.5281/zenodo.13882183},\n  url          = {https://doi.org/10.5281/zenodo.13882183}\n}\n```\n\n\nPapers related to the MFront and MGIS projects can be cited as:\n\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.02003/status.svg)](https://doi.org/10.21105/joss.02003)\n```\n@article{helfer2020mfrontgenericinterfacesupport,\n  title={The MFrontGenericInterfaceSupport project},\n  author={Helfer, Thomas and Bleyer, Jeremy and Frondelius, Tero and Yashchuk, Ivan and Nagel, Thomas and Naumov, Dmitri},\n  journal={Journal of Open Source Software},\n  volume={5},\n  number={48},\n  pages={1--8},\n  year={2020},\n  publisher={Open Journals}\n}\n\n@article{helfer2015introducing,\n  title={Introducing the open-source mfront code generator: Application to mechanical behaviours and material knowledge management within the PLEIADES fuel element modelling platform},\n  author={Helfer, Thomas and Michel, Bruno and Proix, Jean-Michel and Salvo, Maxime and Sercombe, J{\\'e}r{\\^o}me and Casella, Michel},\n  journal={Computers \\\u0026 Mathematics with Applications},\n  volume={70},\n  number={5},\n  pages={994--1023},\n  year={2015},\n  publisher={Elsevier}\n}\n```\n\n## About the author\n\n[Jeremy Bleyer](https://bleyerj.github.io/) is a researcher in Solid and Structural Mechanics at [Laboratoire Navier](https://navier-lab.fr), a joint research  (UMR 8205) of [Ecole Nationale des Ponts et Chaussées](http://www.enpc.fr), [IP Paris](https://www.ip-paris.fr/),\n[Université Gustave Eiffel](https://www.univ-gustave-eiffel.fr/) and [CNRS](http://www.cnrs.fr).\n\n[{fas}`at` jeremy.bleyer@enpc.fr](mailto:jeremy.bleyer@enpc.fr)\n\n[{fab}`linkedin` jeremy-bleyer](http://www.linkedin.com/in/jérémy-bleyer-0aabb531)\n\n\u003ca href=\"https://orcid.org/0000-0001-8212-9921\"\u003e\n\u003cimg alt=\"ORCID logo\" src=\"https://info.orcid.org/wp-content/uploads/2019/11/orcid_32x32.png\" width=\"16\" height=\"16\" /\u003e\n 0000-0001-8212-9921\n\u003c/a\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbleyerj%2Fdolfinx_materials","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbleyerj%2Fdolfinx_materials","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbleyerj%2Fdolfinx_materials/lists"}