mfem
Lightweight, general, scalable C++ library for finite element methods
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
118 of 219 committers (53.9%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.6%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Lightweight, general, scalable C++ library for finite element methods
Basic Info
- Host: GitHub
- Owner: mfem
- License: bsd-3-clause
- Language: C++
- Default Branch: master
- Homepage: http://mfem.org
- Size: 271 MB
Statistics
- Stars: 1,957
- Watchers: 130
- Forks: 552
- Open Issues: 300
- Releases: 14
Topics
Metadata Files
.gitlab/README.md
Finite Element Discretization Library
__
_ __ ___ / _| ___ _ __ ___
| '_ ` _ \ | |_ / _ \| '_ ` _ \
| | | | | || _|| __/| | | | | |
|_| |_| |_||_| \___||_| |_| |_|
https://mfem.org
This directory contains most of the GitLab CI configuration. MFEM runs both PR and nightly testing on GitLab.
Structure
Top level
The root configuration file is .gitlab-ci.yml at the root of MFEM repo.
This file only defines one stage, in which we trigger several
sub-pipelines.
We use sub-pipelines to isolate the test for one combination of machine
and test type.
Machines typically include:
- Dane: Intel Sapphire Rapids
- Lassen: Power9 + Nvidia GPU
- Corona: AMD GPU
Test types include:
- Build and test: Spack driven build of dependencies, mfem build, mfem test
- Baseline: Script driven build of dependencies, thorough testing
⚠️ The sub-pipeline design allows to add a new machine or a new test type without altering the scheduling, execution and displaying of the others.
Sub-pipelines
Each file is this directory is the root configuration file for one
sub-pipeline. The naming reflects the corresponding couple (machine,
test_type).
Those files define the stages and the jobs for the sub-pipeline. They
also contain any configuration that cannot be shared. For the most part
though, the configuration is shared and is placed in .gitlab/configs.
We try to keep scripts out of the CI config and share them among similar
jobs. They are gathered in .gitlab/scripts.
Scripts
Scripts specific to the CI only are in .gitlab/scripts. It is best practice
to keep scripts outside the CI configuration (no bash scripts embedded in a
yaml file) because it helps with readability, maintenance and also with
transition to another CI system.
⚠️ Most of the scripts there are driven by environment variables and do not have a usage function. This should be improved.
More testing
Adding a new target to a buildandtest pipeline
build_and_test pipelines rely on Spack to install dependencies. Spack is
driven by Uberenv which helps freezing Spack configuration: the goal being to
point to specific commit in Spack and isolate its configuration so that it is
not influenced by the user environment. More documentation about this can be
found in tests/gitlab.
In the end, the MFEM target for which to build the dependencies is expressed with a spack spec of MFEM, within the limits permitted by the MFEM spack package.
In any build-and-test sub-pipeline a job basically consists in defining the spack spec to use. Adding a job on Dane for example resumes to:
yaml
<job_name>:
variables:
SPEC: "<spack_spec>"
extends: .build_and_test_on_dane
The remaining and non trivial work is to make sure this spec is working. To
test a spec before adding it, or reproduce a CI configuration, please refer to
tests/gitlab/reproduce-ci-jobs-interactively.md.
⚠️ It is assumed that the spack spec applies to mfem@develop. That's why in the
CI all the specs start with the compiler or the variants to apply to mfem. The
mechanism still works with a full spec.
Owner
- Name: MFEM
- Login: mfem
- Kind: organization
- Location: Lawrence Livermore National Laboratory
- Website: https://mfem.org
- Repositories: 11
- Profile: https://github.com/mfem
a lightweight, general, scalable C++ library for finite element methods
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use MFEM, please cite it as follows."
authors:
- family-names: "MFEM Team"
title: "MFEM: Modular Finite Element Methods [Software]"
doi: 10.11578/dc.20171025.1248
url: "https://mfem.org"
preferred-citation:
type: article
authors:
- family-names: "Anderson"
given-names: "Robert"
orcid: "https://orcid.org/0000-0002-3508-9944"
- family-names: "Andrej"
given-names: "Julian"
orcid: "https://orcid.org/0000-0001-7661-4840"
- family-names: "Barker"
given-names: "Andrew"
orcid: "https://orcid.org/0000-0003-3572-911X"
- family-names: "Bramwell"
given-names: "Jamie"
- family-names: "Camier"
given-names: "Jean-Sylvain"
orcid: "https://orcid.org/0000-0003-2421-1999"
- family-names: "Cerveny"
given-names: "Jakub"
orcid: "https://orcid.org/0000-0003-4231-2531"
- family-names: "Dobrev"
given-names: "Veselin"
orcid: "https://orcid.org/0000-0003-1793-5622"
- family-names: "Dudouit"
given-names: "Yohann"
orcid: "https://orcid.org/0000-0001-5831-561X"
- family-names: "Fisher"
given-names: "Aaron"
- family-names: "Kolev"
given-names: "Tzanio"
orcid: "https://orcid.org/0000-0002-2810-3090"
- family-names: "Pazner"
given-names: "Will"
orcid: "https://orcid.org/0000-0003-4885-2934"
- family-names: "Stowell"
given-names: "Mark"
orcid: "https://orcid.org/0000-0002-5389-7435"
- family-names: "Tomov"
given-names: "Vladimir"
orcid: "https://orcid.org/0000-0002-1846-6816"
- family-names: "Akkerman"
given-names: "Ido"
orcid: "https://orcid.org/0000-0002-5937-0300"
- family-names: "Dahm"
given-names: "Johann"
orcid: "https://orcid.org/0000-0001-9657-3564"
- family-names: "Medina"
given-names: "David"
- family-names: "Zampini"
given-names: "Stefano"
orcid: "https://orcid.org/0000-0002-0435-0433"
doi: "10.1016/j.camwa.2020.06.009"
journal: "Computers \\& Mathematics with Applications"
month: 1
start: 42 # First page number
end: 74 # Last page number
title: "MFEM: A Modular Finite Element Methods Library"
volume: 81
year: 2021
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Stowell, Mark L | s****1@l****v | 1,714 |
| Will Pazner | w****p@g****m | 1,695 |
| camierjs | c****1@l****v | 1,664 |
| Yohann Dudouit | d****1@l****v | 1,222 |
| Veselin Dobrev | d****v@l****v | 1,203 |
| Tzanio | t****o@l****v | 1,184 |
| Ketan Mittal | k****l@g****m | 751 |
| Vladimir Z Tomov | t****2@l****v | 635 |
| Jakub Červený | c****1@l****v | 614 |
| Dylan Copeland | d****d@g****m | 554 |
| Ido Akkerman | I****n@t****l | 479 |
| Arturo Vargas | v****5@l****v | 435 |
| Adrien M. Bernede | b****1@l****v | 428 |
| Socratis Petrides | p****1@l****v | 412 |
| Andrew T. Barker | b****9@l****v | 389 |
| Julian Andrej | a****1@l****v | 381 |
| Jan Nikl | n****1@l****v | 287 |
| Stefano Zampini | s****i@g****m | 197 |
| Sebastian Grimberg | s****g@a****m | 188 |
| blaz | b****v@g****m | 178 |
| JacobLotz | j****z@g****m | 152 |
| Hugh Carson | h****s@a****m | 148 |
| Daniel Drzisga | d****1@l****v | 137 |
| chakshinglee | c****e@g****m | 134 |
| Andrew Ho | h****7@l****v | 133 |
| Tom Stitt | s****4@l****v | 131 |
| stefanhenneking | s****g@g****m | 130 |
| Brendan Keith | b****h@b****u | 121 |
| Aaron Fisher | f****7@l****v | 113 |
| Christopher vogl | v****2@l****v | 108 |
| and 189 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 644
- Total pull requests: 921
- Average time to close issues: 3 months
- Average time to close pull requests: 3 months
- Total issue authors: 249
- Total pull request authors: 117
- Average comments per issue: 4.04
- Average comments per pull request: 4.86
- Merged pull requests: 480
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 189
- Pull requests: 388
- Average time to close issues: 26 days
- Average time to close pull requests: 21 days
- Issue authors: 99
- Pull request authors: 60
- Average comments per issue: 2.71
- Average comments per pull request: 3.23
- Merged pull requests: 169
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- Wayne901 (41)
- v-dobrev (19)
- denislachapelle (18)
- sungho91 (16)
- adam-sim-dev (16)
- ryanblack129 (14)
- AIBSCT80 (13)
- hughcars (11)
- victor-decaria-nnl (10)
- lmolin3 (10)
- cglwdm (10)
- termi-official (9)
- Heinrich-BR (9)
- mlstowell (8)
- karthichockalingam (7)
Pull Request Authors
- pazner (111)
- v-dobrev (68)
- najlkin (45)
- kmittal2 (44)
- sebastiangrimberg (43)
- helloworld922 (35)
- mlstowell (35)
- adam-sim-dev (29)
- hughcars (28)
- dylan-copeland (27)
- tomstitt (24)
- jandrej (24)
- vladotomov (24)
- victor-decaria-nnl (23)
- tzanio (21)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
- Total downloads: unknown
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 11
proxy.golang.org: github.com/mfem/mfem
- Documentation: https://pkg.go.dev/github.com/mfem/mfem#section-documentation
- License: bsd-3-clause
-
Latest release: v4.5.2+incompatible
published almost 3 years ago
Rankings
conda-forge.org: mfem
MFEM is a modular parallel C++ library for finite element methods. Its goal is to enable high-performance scalable finite element discretization research and application development on a wide variety of platforms, ranging from laptops to supercomputers.
- Homepage: https://mfem.org/
- License: BSD-3-Clause
-
Latest release: 4.5
published about 3 years ago
Rankings
Dependencies
- actions/cache v3 composite
- actions/checkout v3 composite
- mfem/github-actions/build-hypre v2.2 composite
- mfem/github-actions/build-metis v2.2 composite
- mfem/github-actions/build-mfem v2.2 composite
- mfem/github-actions/upload-coverage v2.2 composite
- mpi4py/setup-mpi v1.1.2 composite
- styfle/cancel-workflow-action 0.11.0 composite
- actions/checkout v3 composite
- github/codeql-action/analyze v2 composite
- github/codeql-action/autobuild v2 composite
- github/codeql-action/init v2 composite
- actions/cache v3 composite
- actions/checkout v3 composite
- mfem/github-actions/build-hypre v2.2 composite
- mfem/github-actions/build-metis v2.2 composite
- mfem/github-actions/build-mfem v2.2 composite
- styfle/cancel-workflow-action 0.11.0 composite
- actions/checkout v3 composite
- styfle/cancel-workflow-action 0.11.0 composite
- ghcr.io/mfem/mfem-ubuntu-base latest build
- ubuntu 22.04 build
- actions/checkout v3 composite
- mfem/github-actions/build-mfem v2.4 composite
- styfle/cancel-workflow-action 0.11.0 composite
- actions/checkout v3 composite
- docker/login-action v2 composite
- easimon/maximize-build-space v8 composite
- glvis ==0.3.2