fenics-dolfinx

Next generation FEniCS problem solving environment

https://github.com/fenics/dolfinx

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    33 of 140 committers (23.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.3%) to scientific vocabulary

Keywords

fenicsx finite-element-methods parallel-computing partial-differential-equations

Keywords from Contributors

finite-elements meshes basis-functions high-order fem vtk mathematics pypi finite-element-analysis closember
Last synced: 4 months ago · JSON representation ·

Repository

Next generation FEniCS problem solving environment

Basic Info
  • Host: GitHub
  • Owner: FEniCS
  • License: lgpl-3.0
  • Language: C++
  • Default Branch: main
  • Homepage: https://fenicsproject.org
  • Size: 65.3 MB
Statistics
  • Stars: 951
  • Watchers: 44
  • Forks: 216
  • Open Issues: 140
  • Releases: 15
Topics
fenicsx finite-element-methods parallel-computing partial-differential-equations
Created over 7 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Citation Authors

README.md

DOLFINx

DOLFINx CI Actions Spack build Actions Conda install Actions macOS/Homebrew install Actions Docker images Actions Windows/vcpkg install

DOLFINx is the computational environment of FEniCSx and implements the FEniCS Problem Solving Environment in C++ and Python. DOLFINx is a new version of DOLFIN and is actively developed.

For questions about using DOLFINx, visit the FEniCS Discourse page or use the FEniCS Slack channel (use this link to sign up to the Slack channel).

Documentation

Documentation can be viewed at https://docs.fenicsproject.org.

Installation

From source

For detailed instructions and a list of dependencies, see https://docs.fenicsproject.org/dolfinx/main/python/installation.

C++ core

To build and install the C++ core, in the cpp/ directory, run:

shell mkdir build cd build cmake .. make install

Python interface

To install the Python interface, first install the C++ core, and then in the python/ directory run:

shell pip install -r build-requirements.txt pip install --check-build-dependencies --no-build-isolation .

Spack

To build the most recent release using Spack (assuming a bash-compatible shell):

shell git clone https://github.com/spack/spack.git . ./spack/share/spack/setup-env.sh spack env create fenicsx-env spack env activate fenicsx-env spack install --add py-fenics-dolfinx+petsc4py+slepc4py

Spack is the recommended approach for HPC systems.

Binary packages

Recommendations

conda

To install the latest release of the Python interface, including pyvista for visualisation, using conda:

shell conda create -n fenicsx-env conda activate fenicsx-env conda install -c conda-forge fenics-dolfinx mpich pyvista # Linux and macOS conda install -c conda-forge fenics-dolfinx pyvista pyamg # Windows

Windows only: Windows conda packages are currently in beta testing. PETSc and petsc4py are not available on Windows. Because FEniCS uses just-in-time compilation it necessary to install Microsoft Visual Studio.

conda is distributed with Anaconda and Miniconda. The recipe is hosted on conda-forge.

| Name | Downloads | Version | Platforms | | --- | --- | --- | --- | | Conda Recipe | Conda Downloads | Conda Version | Conda Platforms |

Ubuntu packages

The Ubuntu PPA provides FEniCSx packages. To install:

shell add-apt-repository ppa:fenics-packages/fenics apt update apt install fenicsx

When a version of DOLFINx is released we aim to provide a package for the most recent LTS version of Ubuntu. All other versions are provided on a best-effort basis.

Debian packages

DOLFINx is included with various versions of Debian. Install with apt-get install fenicsx.

Docker images

To run a Docker image with the latest release of DOLFINx:

shell docker run -ti dolfinx/dolfinx:stable

To switch between real and complex builds of DOLFINx/PETSc.

shell source /usr/local/bin/dolfinx-complex-mode source /usr/local/bin/dolfinx-real-mode

A Jupyter Lab environment with the latest release of DOLFINx:

shell docker run --init -ti -p 8888:8888 dolfinx/lab:stable # Access at http://localhost:8888

A Docker image with DOLFINx built nightly:

shell docker run -ti dolfinx/dolfinx:nightly

A development image with all of the dependencies required to build the latest release of the FEniCSx components:

shell docker run -ti dolfinx/dev-env:stable

A development image with all of the dependencies required to build the main branch of the FEniCSx components:

shell docker run -ti dolfinx/dev-env:current

The Docker images support arm64 and amd64 architectures. For a full list of tags, including versioned images, see https://hub.docker.com/u/dolfinx

Contributing

Information about how to contribute to DOLFINx can be found here.

License

DOLFINx is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

DOLFINx is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with DOLFINx. If not, see https://www.gnu.org/licenses/.

Owner

  • Name: FEniCS Project
  • Login: FEniCS
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
title: "DOLFINx"
version: 0.9.0
date-released: 2024-10-10
url: "https://github.com/FEniCS/dolfinx"
doi: "10.5281/zenodo.10047760"
authors:
- family-names: "FEniCS Project Developers"
  given-names: "The"
preferred-citation:
  type: article
  authors:
  - family-names: "Baratta"
    given-names: "Igor A."
    orcid: "https://orcid.org/0000-0003-4298-2973"
  - family-names: "Dean"
    given-names: "Joseph P."
    orcid: "https://orcid.org/0000-0001-7499-3373"
  - family-names: "Dokken"
    given-names: "Jørgen S."
    orcid: "https://orcid.org/0000-0001-6489-8858"
  - family-names: "Habera"
    given-names: "Michal"
    orcid: "https://orcid.org/0000-0003-0604-8884"
  - family-names: "Hale"
    given-names: "Jack S."
    orcid: "https://orcid.org/0000-0001-7216-861X"
  - family-names: "Richardson"
    given-names: "Chris N."
    orcid: "https://orcid.org/0000-0003-3137-1392"
  - family-names: "Rognes"
    given-names: "Marie E."
    orcid: "https://orcid.org/0000-0002-6872-3710"
  - family-names: "Scroggs"
    given-names: "Matthew W."
    orcid: "https://orcid.org/0000-0002-4658-2443"
  - family-names: "Sime"
    given-names: "Nathan"
    orcid: "https://orcid.org/0000-0002-2319-048X"
  - family-names: "Wells"
    given-names: "Garth N."
    orcid: "https://orcid.org/0000-0001-5291-7951"
  doi: "10.5281/zenodo.10447666"
  journal: "preprint"
  title: "DOLFINx: the next generation FEniCS problem solving environment"
  year: 2023

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 22,614
  • Total Committers: 140
  • Avg Commits per committer: 161.529
  • Development Distribution Score (DDS): 0.674
Past Year
  • Commits: 362
  • Committers: 17
  • Avg Commits per committer: 21.294
  • Development Distribution Score (DDS): 0.613
Top Committers
Name Email Commits
Garth N. Wells g****0@c****k 7,364
Anders Logg l****g@c****e 4,862
Chris Richardson c****s@b****k 1,684
Johan Hake h****v@g****m 1,006
Jan Blechta b****a@k****z 624
Martin Sandve Alnæs m****l@s****o 600
Johannes Ring j****r@s****o 586
August Johansson a****t@s****o 575
Benjamin Kehlet b****k@s****o 496
Marie E. Rognes m****g@s****o 445
Johan Jansson j****n@c****e 441
Jack S. Hale m****l@j****k 295
Ola Skavhaug s****g@s****o 215
Igor Baratta i****a@g****m 188
Johan Hoffman j****n@c****e 188
Jørgen Schartum Dokken d****2@g****m 170
Michal Habera m****a@g****m 169
Kent-Andre Mardal k****d@s****o 165
Patrick Farrell p****l@m****k 161
Joachim Berdal Haga j****h@s****o 148
Tormod Landet t****d@l****t 136
Matthew Scroggs m****s@g****m 134
Jørgen Schartum Dokken j****5@c****k 127
Nate Sime n****4@c****k 125
Solveig Masvie s****e@g****m 119
Fredrik Valdmanis f****k@v****m 116
Kristian B. Ølgaard k****d@g****m 102
Quang Ha q****0@c****k 96
Andre Massing m****g@s****o 78
Ivan Yashchuk i****k@a****i 77
and 110 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 411
  • Total pull requests: 1,463
  • Average time to close issues: 7 months
  • Average time to close pull requests: 15 days
  • Total issue authors: 93
  • Total pull request authors: 48
  • Average comments per issue: 1.96
  • Average comments per pull request: 1.1
  • Merged pull requests: 1,078
  • Bot issues: 0
  • Bot pull requests: 34
Past Year
  • Issues: 119
  • Pull requests: 577
  • Average time to close issues: 11 days
  • Average time to close pull requests: 6 days
  • Issue authors: 31
  • Pull request authors: 30
  • Average comments per issue: 0.89
  • Average comments per pull request: 0.98
  • Merged pull requests: 404
  • Bot issues: 0
  • Bot pull requests: 20
Top Authors
Issue Authors
  • garth-wells (69)
  • jorgensd (64)
  • chrisrichardson (33)
  • jhale (29)
  • schnellerhase (27)
  • mscroggs (24)
  • francesco-ballarin (17)
  • jpdean (11)
  • drew-parsons (9)
  • massimiliano-leoni (8)
  • michalhabera (8)
  • nate-sime (8)
  • IgorBaratta (5)
  • prusso630 (4)
  • ruf10 (4)
Pull Request Authors
  • garth-wells (392)
  • jorgensd (254)
  • jhale (207)
  • schnellerhase (160)
  • chrisrichardson (114)
  • mscroggs (71)
  • francesco-ballarin (47)
  • jpdean (45)
  • dependabot[bot] (34)
  • IgorBaratta (17)
  • minrk (10)
  • mleoni-pf (10)
  • michalhabera (10)
  • finsberg (8)
  • ampdes (8)
Top Labels
Issue Labels
bug (150) enhancement (105) high-priority (33) proposal (22) task (16) documentation (15) question (11) performance (11) ci (11) demo (9) build (9) good first issue (7) docker (7) housekeeping (6) testing (6) packaging (6) io (4) discussion (4) suggestion (3) nanobind (3) help wanted (3) type-hints (2) in progress (2) install (1) python (1) gpu (1) dependencies (1)
Pull Request Labels
housekeeping (148) enhancement (140) ci (114) bug (95) documentation (64) docker (50) dependencies (40) backport? (39) build (34) demo (31) performance (24) high-priority (23) io (20) nanobind (19) testing (14) github_actions (12) python (11) proposal (7) install (6) type-hints (5) task (2) packaging (2) good first issue (1)

Packages

  • Total packages: 6
  • Total downloads: unknown
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 2
    (may contain duplicates)
  • Total versions: 46
  • Total maintainers: 4
proxy.golang.org: github.com/fenics/dolfinx
  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Forks count: 1.5%
Stargazers count: 1.7%
Average: 4.9%
Dependent packages count: 7.0%
Dependent repos count: 9.3%
Last synced: 4 months ago
proxy.golang.org: github.com/FEniCS/dolfinx
  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Forks count: 1.5%
Stargazers count: 1.7%
Average: 4.9%
Dependent packages count: 7.0%
Dependent repos count: 9.3%
Last synced: 4 months ago
spack.io: fenics-dolfinx

Next generation FEniCS problem solving environment.

  • Versions: 4
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Forks count: 9.7%
Stargazers count: 11.2%
Average: 12.2%
Dependent packages count: 28.1%
Last synced: 4 months ago
spack.io: py-fenics-dolfinx

Python interface to the next generation FEniCS problem solving environment.

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Forks count: 9.7%
Stargazers count: 11.2%
Average: 19.5%
Dependent packages count: 57.3%
Last synced: 4 months ago
conda-forge.org: fenics-libdolfinx

DOLFINx is the computational environment of FEniCSx and implements the FEniCS Problem Solving Environment in Python and C++.

  • Versions: 4
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Forks count: 15.5%
Stargazers count: 18.2%
Average: 24.1%
Dependent packages count: 28.8%
Dependent repos count: 34.0%
Last synced: 4 months ago
conda-forge.org: fenics-dolfinx

DOLFINx is the computational environment of FEniCSx and implements the FEniCS Problem Solving Environment in Python and C++.

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 2
Rankings
Forks count: 16.0%
Stargazers count: 18.4%
Dependent repos count: 20.2%
Average: 26.6%
Dependent packages count: 51.6%
Last synced: 4 months ago