# NEML: the Nuclear Engineering material Model Library
[](https://neml.readthedocs.io/en/dev/) 
NEML (the Nuclear Engineering Material model Library) is a tool for creating
and running structural material models.
While it was originally developed to model high temperature nuclear reactors,
the tool is general enough to apply to most types of structural materials.
The focus of NEML is on modularity and extensibility.
The library is structured so that adding a new feature to an existing material
model should be as simple as possible and require as little code as possible.
NEML material models are modular -- they are built up from smaller pieces into
a complete model.
For example, a model might piece together a temperature-dependent elasticity
model, a yield surface, a flow rule, and several hardening rules.
Each of these submodels is independent of the other objects
so that, for example, switching from conventional J2 plasticity
to a non-J2 theory requires only a one line change in an input file,
if the model is already implemented, or a relatively small amount of coding
to add the new yield surface if it has not been implemented.
All of these objects are interchangeable.
For example, the damage, viscoplastic, and rate-independent plasticity
models all use the same yield (flow) surfaces, hardening rules, elasticity
models, and so on.
As part of this philosophy, the library only requires new components
provide a few partial derivatives and NEML uses this information to assemble
the Jacobian needed to do a fully implement, backward Euler integration of the
ordinary differential equations comprising the model form and to provide
the algorithmic tangent needed to integrate the model into an implicit
finite element framework.
Documentation and tutorials are available [here](https://neml.readthedocs.io).
## License
The library is provided under an MIT license found in the
[LICENSE](LICENSE) file.
The NEML distribution contains a copy of
the [pybind11](https://github.com/pybind/pybind11) header library, which
has its own license contained in the pybind11 subdirectory.
The NEML distribution contains a copy of
the [rapidxml](http://rapidxml.sourceforge.net) header library, which
has its own license contained in the rapidxml subdirectory.
## Python package
The python package version of the software available on PiPy requires:
1. A working C++ compiler.
2. Linkable version of [BLAS](http://www.netlib.org/blas/) and [LAPACK](http://www.netlib.org/lapack/).
This version does not support multithreading or linking with external C/C++/Fortran codes.
Raw data
{
"_id": null,
"home_page": "https://github.com/Argonne-National-Laboratory/neml",
"name": "neml",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "materials structures modeling",
"author": "Argonne National Laboratory",
"author_email": "messner@anl.gov",
"download_url": "https://files.pythonhosted.org/packages/c6/9f/f514408c1d7d981807b6822897679bb51b5c41dbbeee2380b8a16206697c/neml-1.5.4.tar.gz",
"platform": null,
"description": "# NEML: the Nuclear Engineering material Model Library\n\n[](https://neml.readthedocs.io/en/dev/) \n\nNEML (the Nuclear Engineering Material model Library) is a tool for creating\nand running structural material models.\nWhile it was originally developed to model high temperature nuclear reactors,\nthe tool is general enough to apply to most types of structural materials.\n\nThe focus of NEML is on modularity and extensibility.\nThe library is structured so that adding a new feature to an existing material\nmodel should be as simple as possible and require as little code as possible.\n\nNEML material models are modular -- they are built up from smaller pieces into\na complete model.\nFor example, a model might piece together a temperature-dependent elasticity\nmodel, a yield surface, a flow rule, and several hardening rules.\nEach of these submodels is independent of the other objects\nso that, for example, switching from conventional J2 plasticity\nto a non-J2 theory requires only a one line change in an input file,\nif the model is already implemented, or a relatively small amount of coding\nto add the new yield surface if it has not been implemented.\nAll of these objects are interchangeable.\nFor example, the damage, viscoplastic, and rate-independent plasticity\nmodels all use the same yield (flow) surfaces, hardening rules, elasticity\nmodels, and so on.\n\nAs part of this philosophy, the library only requires new components\nprovide a few partial derivatives and NEML uses this information to assemble\nthe Jacobian needed to do a fully implement, backward Euler integration of the\nordinary differential equations comprising the model form and to provide \nthe algorithmic tangent needed to integrate the model into an implicit\nfinite element framework.\n\nDocumentation and tutorials are available [here](https://neml.readthedocs.io).\n\n## License\n\nThe library is provided under an MIT license found in the\n[LICENSE](LICENSE) file.\n\nThe NEML distribution contains a copy of\nthe [pybind11](https://github.com/pybind/pybind11) header library, which\nhas its own license contained in the pybind11 subdirectory.\n\nThe NEML distribution contains a copy of\nthe [rapidxml](http://rapidxml.sourceforge.net) header library, which\nhas its own license contained in the rapidxml subdirectory.\n\n## Python package\n\nThe python package version of the software available on PiPy requires:\n\n1. A working C++ compiler.\n2. Linkable version of [BLAS](http://www.netlib.org/blas/) and [LAPACK](http://www.netlib.org/lapack/).\n\nThis version does not support multithreading or linking with external C/C++/Fortran codes.\n",
"bugtrack_url": null,
"license": null,
"summary": "Nuclear Engineering Material model Library",
"version": "1.5.4",
"project_urls": {
"Homepage": "https://github.com/Argonne-National-Laboratory/neml"
},
"split_keywords": [
"materials",
"structures",
"modeling"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5e4f78d9bcf7c4a4e8b169a01da489bad4e512b8f2fab0e624b3cd9391f8d453",
"md5": "c8fff7f88302a8d0bcddf69a11ba61ba",
"sha256": "2e630e993237b8f42e124a858993d0f87ac8a227d3b39f6bdd8ab33893d7a25b"
},
"downloads": -1,
"filename": "neml-1.5.4-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "c8fff7f88302a8d0bcddf69a11ba61ba",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 5068463,
"upload_time": "2024-11-21T14:56:44",
"upload_time_iso_8601": "2024-11-21T14:56:44.581768Z",
"url": "https://files.pythonhosted.org/packages/5e/4f/78d9bcf7c4a4e8b169a01da489bad4e512b8f2fab0e624b3cd9391f8d453/neml-1.5.4-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d1f33b7ecef52d83b7146fb62bc69a5173ce192bbef8c762e29cb86c4b855688",
"md5": "9261ce1292644618d29eab7c73df1f82",
"sha256": "bfbc419680cb57e0e4645a7a79de9612ea379bf57aea8871e963e3ff46920c51"
},
"downloads": -1,
"filename": "neml-1.5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "9261ce1292644618d29eab7c73df1f82",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 10027586,
"upload_time": "2024-11-21T14:56:49",
"upload_time_iso_8601": "2024-11-21T14:56:49.923139Z",
"url": "https://files.pythonhosted.org/packages/d1/f3/3b7ecef52d83b7146fb62bc69a5173ce192bbef8c762e29cb86c4b855688/neml-1.5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "27f539d2527f0a9f7596e14512461a00caa03b1ab8a358196fa719b6322b5027",
"md5": "01aeadd435dc82164d38397fd4d18158",
"sha256": "8901881b90019dcad067050b31f3e5b1cb9fffa33076e2f2edbb4d78cfee03f2"
},
"downloads": -1,
"filename": "neml-1.5.4-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "01aeadd435dc82164d38397fd4d18158",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 5123799,
"upload_time": "2024-11-21T14:56:46",
"upload_time_iso_8601": "2024-11-21T14:56:46.074413Z",
"url": "https://files.pythonhosted.org/packages/27/f5/39d2527f0a9f7596e14512461a00caa03b1ab8a358196fa719b6322b5027/neml-1.5.4-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "acee1eb8bf8563876d02f5050c1d7fd236ad67c93a0c21a302192334528e2d63",
"md5": "12f6e4578c573e117d9fd90b80f397a4",
"sha256": "70738881a119bc829ac3ee38c46f890d0af3c385cf39b2ceaab9882305d4f462"
},
"downloads": -1,
"filename": "neml-1.5.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "12f6e4578c573e117d9fd90b80f397a4",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 10080864,
"upload_time": "2024-11-21T14:56:53",
"upload_time_iso_8601": "2024-11-21T14:56:53.418605Z",
"url": "https://files.pythonhosted.org/packages/ac/ee/1eb8bf8563876d02f5050c1d7fd236ad67c93a0c21a302192334528e2d63/neml-1.5.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b2ebb50224cfca45b734c18d46183a1d2659fa6a586e30ffa28a83e5759c2ed0",
"md5": "3939aaf5ec183ff095b41465b6dd6b92",
"sha256": "8544ff998b6c3d9a85b9f9cef57a9aa0580027fcbdc9f94e3195d6b217d2ea42"
},
"downloads": -1,
"filename": "neml-1.5.4-cp38-cp38-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "3939aaf5ec183ff095b41465b6dd6b92",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 5062686,
"upload_time": "2024-11-21T14:56:47",
"upload_time_iso_8601": "2024-11-21T14:56:47.407784Z",
"url": "https://files.pythonhosted.org/packages/b2/eb/b50224cfca45b734c18d46183a1d2659fa6a586e30ffa28a83e5759c2ed0/neml-1.5.4-cp38-cp38-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ca0daf75de48ed087e5734f6536a21a3a23252151cb87c827ee4133e9f19aa12",
"md5": "60f6be25efae46e426bf4cf8e128c9dd",
"sha256": "da829c98432ce3419fd3b6e62dd9aea639316adde8278a7eb38a828a44d3b022"
},
"downloads": -1,
"filename": "neml-1.5.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "60f6be25efae46e426bf4cf8e128c9dd",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 10025670,
"upload_time": "2024-11-21T14:56:56",
"upload_time_iso_8601": "2024-11-21T14:56:56.485204Z",
"url": "https://files.pythonhosted.org/packages/ca/0d/af75de48ed087e5734f6536a21a3a23252151cb87c827ee4133e9f19aa12/neml-1.5.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3cf1c89f69a25309201d7a34ef2a490f49d58bc1f0059dd2b187280696697cd9",
"md5": "2cbb6363047a9644539c7509c9afebd5",
"sha256": "0882a979bf0ac2153a03c49fb7b229c492d72c0c196b4a5a74bde9367c317865"
},
"downloads": -1,
"filename": "neml-1.5.4-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "2cbb6363047a9644539c7509c9afebd5",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 5071232,
"upload_time": "2024-11-21T14:56:50",
"upload_time_iso_8601": "2024-11-21T14:56:50.206086Z",
"url": "https://files.pythonhosted.org/packages/3c/f1/c89f69a25309201d7a34ef2a490f49d58bc1f0059dd2b187280696697cd9/neml-1.5.4-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "011617abc96886d66c88a7b0e3a92a93c4ed14ee0a80ced87a811e2d0532eb4d",
"md5": "eda71bda12b73ead9b1b969950897ccf",
"sha256": "65bdf9346ea9920df08ac548a6ef231062a69a8a9471093e5f330de66dec3769"
},
"downloads": -1,
"filename": "neml-1.5.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "eda71bda12b73ead9b1b969950897ccf",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 10034640,
"upload_time": "2024-11-21T14:56:58",
"upload_time_iso_8601": "2024-11-21T14:56:58.830418Z",
"url": "https://files.pythonhosted.org/packages/01/16/17abc96886d66c88a7b0e3a92a93c4ed14ee0a80ced87a811e2d0532eb4d/neml-1.5.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c69ff514408c1d7d981807b6822897679bb51b5c41dbbeee2380b8a16206697c",
"md5": "1b2857ee9d54720c20559161947279ed",
"sha256": "73be1250cb57179b3e5dbd1ce3fd5e112f227c8e0847917d1f801ba77c413a09"
},
"downloads": -1,
"filename": "neml-1.5.4.tar.gz",
"has_sig": false,
"md5_digest": "1b2857ee9d54720c20559161947279ed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 1128089,
"upload_time": "2024-11-21T14:56:48",
"upload_time_iso_8601": "2024-11-21T14:56:48.069913Z",
"url": "https://files.pythonhosted.org/packages/c6/9f/f514408c1d7d981807b6822897679bb51b5c41dbbeee2380b8a16206697c/neml-1.5.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-21 14:56:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Argonne-National-Laboratory",
"github_project": "neml",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "neml"
}