{"id":14992120,"url":"https://github.com/InteractiveComputerGraphics/fenris","last_synced_at":"2025-09-25T14:30:55.303Z","repository":{"id":40423752,"uuid":"414970385","full_name":"InteractiveComputerGraphics/fenris","owner":"InteractiveComputerGraphics","description":"A library for advanced finite element computations in Rust","archived":false,"fork":false,"pushed_at":"2023-09-25T12:43:04.000Z","size":1391,"stargazers_count":122,"open_issues_count":5,"forks_count":6,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-09T07:00:49.473Z","etag":null,"topics":["element","finite","method","rust","science"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InteractiveComputerGraphics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-10-08T12:03:03.000Z","updated_at":"2025-01-01T02:25:12.000Z","dependencies_parsed_at":"2023-02-17T21:31:11.692Z","dependency_job_id":null,"html_url":"https://github.com/InteractiveComputerGraphics/fenris","commit_stats":{"total_commits":491,"total_committers":4,"mean_commits":122.75,"dds":0.07331975560081472,"last_synced_commit":"f6f5ff3d3841d610d9eb6683c23d253196fb793b"},"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteractiveComputerGraphics%2Ffenris","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteractiveComputerGraphics%2Ffenris/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteractiveComputerGraphics%2Ffenris/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InteractiveComputerGraphics%2Ffenris/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InteractiveComputerGraphics","download_url":"https://codeload.github.com/InteractiveComputerGraphics/fenris/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234200170,"owners_count":18795139,"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","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":["element","finite","method","rust","science"],"created_at":"2024-09-24T15:00:44.814Z","updated_at":"2025-09-25T14:30:49.838Z","avatar_url":"https://github.com/InteractiveComputerGraphics.png","language":"Rust","readme":"\n![Fenris logo](assets/logo/fenris_logo.svg)\n\nA Rust library for building advanced applications with the Finite Element Method (FEM).\n\nAlthough developed with a special emphasis on solid mechanics in computer graphics,\nFenris is a highly generic and versatile library applicable to many other domains.\n\n## Status\n\nAs of October 2021, Fenris is heavily developed alongside several of our ongoing academic\nprojects, with the overarching goal of supporting our research efforts.\n\nOur goal is to rework, document and polish the library for external users during 2022.\nIn its current state, Fenris is **not recommended for general usage**. We currently\noffer **no API stability** whatsoever, the documentation is severely lacking,\nand only parts of the library has been extensively tested. Moreover, some parts of the\nlibrary will likely be removed altogether in future versions.\n\n## Goals\n\nWith Fenris, we aim to provide an **open-source**, **composable**, **flexible** and **performant** library\nfor advanced finite element computations in Rust.\n\nFenris is intended primarily as an alternative to C++ FEM libraries. With Fenris, users can\ntake advantage of the significant productivity boost afforded by working with Rust, a modern programming\nlanguage with a best-in-class dependency management system and a revolutionary model for\nmemory-safe, high-performance system programming.\n\nThis statement is motivated by our own experiences writing FEM code in Rust: gone are the hours upon hours\nof wrestling with CMake to integrate an external library. Furthermore, the expressive type system and borrow checker model\nemployed by Rust encourages good designs that are free of the myriads of footguns associated with (even modern) C++.\nAnd perhaps even more important, the excellent generic trait system found in Rust - which importantly is type-checked\nat compile time - allows us to write highly generic code with explicit invariants encoded in the type system\nthat are automatically and correctly represented in the generated documentation.\n\nIn short, we have found that Rust allows us to spend more time on solving interesting and complex problems (the fun part),\nand less time on dealing with auxiliary issues largely caused by language deficiencies (the annoying part).\n\n### Summary of technical goals\n\n- Provide a number of low-order and high-order standard Lagrange elements of a variety of geometric shapes in 2D and 3D\n  (at the very least triangles, quadrilaterals, tetrahedra and hexahedra).\n- High-performance shared-memory parallelism for assembly.\n- A composable architecture: Higher-level functionality is built by the composition of lower-level functionality.\n  Users choose the level at which they need to work at. \n- Facilitates generic programming: write code once and have it work across a number of different elements,\n  dimensions and operators.\n- Convenient I/O, currently in the form of export to VTK/VTU for visualization in ParaView.\n\n### Non-goals\n\n- Fenris is not intended to compete with the likes of [FEniCS](https://fenicsproject.org/) or similar libraries that\n  let users provide high-level weak formulations of PDEs. In contrast, Fenris targets users who need lower-level\n  functionality, and is perhaps more comparable to the likes of [deal.II](https://www.dealii.org/).\n- Fenris by itself provides no functionality for solving (non-)linear systems, only the functionality\n  for assembling (as scalars/vectors/matrices) and applying discrete operators.\n- We have no plans for supporting distributed computing or GPU acceleration at this time.\n\n## Publications\n\nAn older incarnation of Fenris was used for the code associated with the following academic papers:\n\n- Longva, A., Löschner, F., Kugelstadt, T., Fernández-Fernández, J. A., \u0026 Bender, J. (2020).\n  *Higher-order finite elements for embedded simulation*. \n  ACM Transactions on Graphics (TOG), 39(6), 1-14.\n- Löschner, F., Longva, A., Jeske, S., Kugelstadt, T., \u0026 Bender, J. (2020).  \n  *Higher‐Order Time Integration for Deformable Solids*.\n  In Computer Graphics Forum (Vol. 39, No. 8, pp. 157-169).\n\n## Contribution\n\nApart from minor bug fixes or changes, we do not accept source code contributions at this time.\nWe would however be happy for daring users who want to try out our library to report issues\non our issue tracker.\n\nWe have a number of unrealized plans that will require significant reworking of\nparts of the library. Once the library is in a more stable state we will be grateful\nfor contributions from the community.\n\n## License\n\nFenris is distributed under the terms of both the MIT license and the Apache License (Version 2.0).\nSee LICENSE-APACHE and LICENSE-MIT for details.\nOpening a pull requests is assumed to signal agreement with these licensing terms.\n\n\n","funding_links":[],"categories":["Scientific Computation"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FInteractiveComputerGraphics%2Ffenris","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FInteractiveComputerGraphics%2Ffenris","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FInteractiveComputerGraphics%2Ffenris/lists"}