{"id":45316768,"url":"https://github.com/evalf/nutils","last_synced_at":"2026-02-21T07:52:15.084Z","repository":{"id":3795401,"uuid":"13886623","full_name":"evalf/nutils","owner":"evalf","description":"The nutils project","archived":false,"fork":false,"pushed_at":"2025-09-04T15:44:35.000Z","size":13525,"stargazers_count":98,"open_issues_count":46,"forks_count":47,"subscribers_count":19,"default_branch":"main","last_synced_at":"2026-02-14T04:52:04.382Z","etag":null,"topics":["computational-physics","finite-elements","nutils","python","scientific-computing","simulation-framework"],"latest_commit_sha":null,"homepage":"http://www.nutils.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evalf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","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":"2013-10-26T16:17:57.000Z","updated_at":"2026-02-05T10:30:38.000Z","dependencies_parsed_at":"2023-12-20T14:28:11.974Z","dependency_job_id":"b475e317-0971-4dd2-8ca6-61d9ebba3c09","html_url":"https://github.com/evalf/nutils","commit_stats":null,"previous_names":["nutils/nutils"],"tags_count":99,"template":false,"template_full_name":null,"purl":"pkg:github/evalf/nutils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evalf%2Fnutils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evalf%2Fnutils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evalf%2Fnutils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evalf%2Fnutils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evalf","download_url":"https://codeload.github.com/evalf/nutils/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evalf%2Fnutils/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29676855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T06:23:40.028Z","status":"ssl_error","status_checked_at":"2026-02-21T06:23:39.222Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["computational-physics","finite-elements","nutils","python","scientific-computing","simulation-framework"],"created_at":"2026-02-21T07:52:14.959Z","updated_at":"2026-02-21T07:52:15.077Z","avatar_url":"https://github.com/evalf.png","language":"Python","readme":"Nutils\n======\n\n[![Test Status](https://github.com/evalf/nutils/actions/workflows/test.yaml/badge.svg?branch=main)](https://github.com/evalf/nutils/actions?query=workflow%3Atest+branch%3Amain)\n[![Documentation Status](https://readthedocs.org/projects/nutils/badge/?version=latest)](https://docs.nutils.org/en/latest/)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/evalf/nutils/blob/readme/LICENSE)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.822369.svg)](https://doi.org/10.5281/zenodo.822369)\n\nNutils is a Free and Open Source Python programming library for Finite Element\nMethod computations, developed by [Evalf](https://evalf.com/) and distributed\nunder the permissive MIT license. Key features are a readable, math centric\nsyntax, an object oriented design, strict separation of topology and geometry,\nand high level function manipulations with support for automatic\ndifferentiation.\n\nNutils provides the tools required to construct a typical simulation workflow\nin just a few lines of Python code, while at the same time leaving full\nflexibility to build novel workflows or interact with third party tools. With\nnative support for Isogeometric Analysis (IGA), the Finite Cell method (FCM),\nmulti-physics, mixed methods, and hierarchical refinement, Nutils forms an\nexcellent platform for numerical science. Efficient under-the-hood\nvectorization and built-in parallellisation provide for an effortless\ntransition from academic research projects to full scale, real world\napplications.\n\n\nInstallation\n------------\n\nNutils is platform independent and is known to work on Linux, Windows and macOS.\n\nA working installation of Python 3.5 or higher is required. Many different\ninstallers exist and there are no known issues with any of them. When in doubt\nabout which to use, a safe option is to go with the [official installer][2].\n\nWith Python installed, the recommended way to install the latest stable version\nof Nutils is through [pip][4] (included in the standard installer):\n\n    python3 -m pip install nutils\n\nBy default and without explicitly specifying the source of the given packages,\npip installs packages from the [Python Package Index][5]. To install the latest\ndevelopment version of Nutils, pass a zip of branch main of the [official\nrepository][3] to pip:\n\n    python3 -m pip install https://github.com/evalf/nutils/archive/main.zip\n\nTo view which version of Nutils is currently installed, run:\n\n    python3 -m pip show nutils\n\nNutils can be installed on a Windows machine using the WSL environment.\nIf you want to assemble matrices in parallel using nutils on a Windows machine, \nthen WSL is the way to go. Instructions to setup WSL are available [here][13]. \nAfter setting up WSL, nutils can be installed using the above instructions. \n\nFirst steps\n-----------\n\nTo confirm Nutils and its dependencies are installed correctly, try to run the\nLaplace example or any of the other examples included in this repostitory. Make\nsure to use the same version of an example as the version of Nutils that is\ncurrently installed.\n\nWhen running an example from a terminal or editor with Python console, log\nmessages should appear in the terminal or console. Simulateneously, a html file\n`log.html` and any produced figures are written to\n`public_html/\u003cscript_name\u003e/yyyy/mm/dd/hh-mm-ss` in the home directory. In case a\nwebserver is running and configured for user directories this automatically\nmakes simulations remotely accessible. For convenience, `public_html/log.html`\nalways redirects to the most recent simulation.\n\n\nDocker\n------\n\n[Docker][10] container images with the latest and recent stable versions of\nNutils preinstalled are available from [`ghcr.io/evalf/nutils`][11]. The\ncontainer images includes all examples in this repository. To run an example,\nadd the name of the example and any additional arguments to the command line.\nFor example, you can run example `laplace` using the latest version of Nutils\nwith\n\n    docker run --rm -it ghcr.io/evalf/nutils:latest laplace\n\nHTML log files are generated in the `/log` directory of the container. If\nyou want to store the log files in `/path/to/log` on the\nhost, add `-v /path/to/log:/log` to the command line before the\nname of the image. Extending the previous example:\n\n    docker run --rm -it -v /path/to/log:/log ghcr.io/evalf/nutils:latest laplace\n\nTo run a Python script in this container, bind mount the directory\ncontaining the script, including all files necessary to run the script,\nto `/app` in the container and add the relative path to the script and\nany arguments to the command line. For example, you can run\n`/path/to/script/example.py` with Docker using\n\n    docker run --rm -it -v /path/to/script:/app:ro ghcr.io/evalf/nutils:latest example.py\n\n\nNext steps and support\n----------------------\n\nFor the numerical background of all examples as well as line by line\ndocumentation see the [overview of examples][6]. Documentation of individual\nfunctions can be found in the [API reference][7].\n\nMost simulations will have components in common with the example scripts, so a\nmix-and-match approach is a good way to start building your own script. For\nquestions that are not answered by the API reference there is the nutils-users\nsupport channel at [#nutils-users:matrix.org][8]. Note that you will need to\ncreate an account at any Matrix server in order to join this channel.\n\nIf you are using Nutils in academic research, please consider [citing\nNutils][9].\n\n\n[1]: http://evalf.com/\n[2]: https://www.python.org/downloads/\n[3]: https://github.com/evalf/nutils\n[4]: https://github.com/pypa/pip\n[5]: https://pypi.org/project/nutils/\n[6]: http://docs.nutils.org/en/latest/examples/\n[7]: http://docs.nutils.org/en/latest/nutils/\n[8]: https://matrix.to/#/#nutils-users:matrix.org\n[9]: https://doi.org/10.5281/zenodo.822369\n[10]: https://www.docker.com/\n[11]: https://github.com/orgs/evalf/packages/container/package/nutils\n[12]: https://raw.githubusercontent.com/evalf/nutils/main/examples/laplace.py\n[13]: https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-11-with-gui-support#1-overview\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevalf%2Fnutils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevalf%2Fnutils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevalf%2Fnutils/lists"}