$hp\mathrm{3D}$
$hp\mathrm{3D}$: A Scalable MPI/OpenMP $hp$-Adaptive Finite Element Software Library for Complex Multiphysics Applications - Published in JOSS (2024)
Science Score: 100.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
Found 8 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: arxiv.org, joss.theoj.org, zenodo.org -
✓Committers with academic emails
6 of 7 committers (85.7%) from academic institutions -
✓Institutional organization owner
Organization oden-eag has institutional domain (oden.utexas.edu) -
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Repository
MPI/OpenMP hp-adaptive 3D finite element software
Basic Info
- Host: GitHub
- Owner: Oden-EAG
- License: other
- Language: Fortran
- Default Branch: master
- Homepage: https://oden.utexas.edu
- Size: 32.6 MB
Statistics
- Stars: 29
- Watchers: 2
- Forks: 3
- Open Issues: 18
- Releases: 2
Topics
Metadata Files
README.md
hp3D
A Scalable MPI/OpenMP hp-Adaptive Finite Element Software Library for Complex Multiphysics Applications
Downloading the library
- Clone the repository
- via HTTPS:
git clone https://github.com/Oden-EAG/hp3d.git - via SSH:
git clone git@github.com:Oden-EAG/hp3d.git - Access the main directory:
cd hp3d/trunk
Compiling the library
- Create
m_optionsfile inhp3d/trunk/: Copy one of the existingm_optionsfiles fromhp3d/trunk/m_options_files/intohp3d/trunk/. For example:cp m_options_files/m_options_linux ./m_options - Modify
m_optionsfile to set the correct path to the main directory: Set theHP3D_BASE_PATHto the path of thehp3d/trunk/ - To compile the library, type
makeinhp3d/trunk/. Before compiling, you must link to the external libraries and set compiler options by modifying them_optionsfile as described below.
- Note: We recommend configuring PETSc with all of hp3D's dependencies (see below). Then, the default
m_optionsfilesm_options_files/m_options_linuxandm_options_files/m_options_macosonly require setting the corresponding values ofPETSC_DIRandPETSC_ARCHto link to the required external libraries.
Linking to external libraries
The m_options file must link to the correct paths for external libraries. The following external libraries are used:
- Intel MKL [optional]
- X11 [optional]
- PETSc (all following packages can be installed with PETSc)
- HDF5/pHDF5
- MUMPS
- Metis/ParMetis
- Scotch/PT-Scotch
- PORD
- Zoltan
For example, assuming MPI libraries are installed,
PETSc configure may look like this:
./configure --with-cc=mpicc --with-cxx=mpicxx --with-fc=mpif90 --with-mpiexec=mpirun \
--download-fblaslapack=yes \
--download-scalapack=yes \
--download-mumps=yes \
--download-metis=yes \
--download-parmetis=yes \
--download-ptscotch=yes \
--download-zoltan=yes \
--with-zoltan-fortran-bindings=1 \
--download-hdf5=yes \
--with-hdf5-fortran-bindings=1 \
--with-shared-libraries=0 \
--with-debugging=0 \
--with-scalar-type=real \
--PETSC_ARCH=arch-debian-real
Note: PETSc can also install MPI libraries if needed,
e.g. --download-openmpi=yes or --download-mpich=yes.
Compiler options
Compilation is governed by preprocessing flags HP3D_COMPLEX and HP3D_DEBUG.
- HP3D_COMPLEX = 0 , stiffness matrix, load vector(s) and solution DOFs are real-valued
- HP3D_COMPLEX = 1 , stiffness matrix, load vector(s) and solution DOFs are complex-valued
- HP3D_DEBUG = 0 , compiler uses optimization flags, and the library performs only minimal checks during the computation
- HP3D_DEBUG = 1 , compiler uses debug flags, and the library performs additional checks during the computation
Library will be created under either hp3d/trunk/complex/ or hp3d/trunk/real/.
Additional preprocessing flags for enabling/disabling dependencies on third-party libraries:
- HP3D_USE_INTEL_MKL = 0/1 , disable/enable dependency on Intel MKL package
- HP3D_USE_MPI_F08 = 0/1 , disable/enable MPI Fortran 2008 binding (module mpi_f08)
- HP3D_USE_OPENMP = 0/1 , disable/enable OpenMP threading
- HP3D_USE_X11 = 0/1 , disable/enable dependency on X11
Verifying build
In addition to the default make that builds and installs the hp3D library, the makefile provides various targets which can be viewed via make help. For example, use make check to run a quick check after building the library, or run more extensive tests using make test.
Compiling a problem
Projects are implemented in hp3d/trunk/problems/. A few projects have been implemented and can serve as an example. For example, /problems/POISSON/GALERKIN/ is a Galerkin implementation for the classical variational Poisson problem. To compile and run the problem, type make in the project folder, i.e., cd problems/POISSON/GALERKIN; make; ./run.sh.
Citing hp3D
Please add the following citation to any paper, technical report, or article that incorporated the hp3D library:
bibtex
@article{hp2024joss,
Author = {Henneking, Stefan and Petrides, Socratis and Fuentes, Federico and Badger, Jacob and Demkowicz, Leszek},
Title = {{$hp$3D: A Scalable MPI/OpenMP $hp$-Adaptive Finite Element Software Library for Complex Multiphysics Applications}},
Publisher = {The Open Journal},
Journal = {Journal of Open Source Software},
Year = {2024},
Volume = {9},
Number = {95},
Pages = {5946},
doi = {10.21105/joss.05946}}
And, optionally,
bibtex
@article{hpUserManual,
Author = {Henneking, Stefan and Demkowicz, Leszek},
Title = {{$hp$3D User Manual}},
Journal={arXiv preprint arXiv:2207.12211},
Year = {2022}}
bibtex
@book{hpBook3,
Author = {Henneking, Stefan and Demkowicz, Leszek and Petrides, Socratis and Fuentes, Federico and Keith, Brendan and Gatto, Paolo},
Title = {{Computing with $hp$ Finite Elements. III. Parallel $hp$3D Code}},
Publisher = {In preparation},
Year = {2024}}
bibtex
@book{hpBook2,
Author = {Demkowicz, Leszek and Kurtz, Jason and Pardo, David and Paszy\'{n}ski, Maciej and Rachowicz, Waldemar and Zdunek, Adam},
Title = {{Computing with $hp$ Finite Elements. II. Frontiers: Three-Dimensional Elliptic and Maxwell Problems with Applications}},
Publisher = {Chapman \& Hall/CRC},
Year = {2007}}
bibtex
@book{hpBook1,
Author = {Demkowicz, Leszek},
Title = {{Computing with $hp$ Finite Elements. I. One- and Two-Dimensional Elliptic and Maxwell Problems}},
Publisher = {Chapman \& Hall/CRC Press, Taylor and Francis},
Year = {2006}}
bibtex
@article{shape2015,
Author = {Fuentes, Federico and Keith, Brendan and Demkowicz, Leszek and Nagaraj, Sriram},
Title = {Orientation embedded high order shape functions for the exact sequence elements of all shapes},
Publisher = {Elsevier},
Journal = {Computers \& Mathematics with Applications},
Year = {2015},
Volume = {70},
Number = {4},
Pages = {353--458}}
User Guide
The user manual is continuously updated and maintained here: https://github.com/Oden-EAG/hp3duserguide (LaTeX source)
A PDF version of the user manual is available on arXiv: https://arxiv.org/abs/2207.12211
How to Contribute
hp3D is distributed under the terms of the BSD-3 license. All new contributions must be made under this license.
Contributions of all kinds are welcome, including bug fixes, code optimizations, new capabilities, improved documentation, and model problems or applications. The new feature or contribution should be developed on a properly named feature branch based off of hp3d:master in a forked repository. If you would like to propose a contribution, please use a pull request (PR) toward the hp3d:master branch from your forked hp3D repository. Before starting a PR or working on a new feature, we encourage opening an issue first and discussing the new feature or contribution with the developer team.
Support
The issue tracker serves as the primary tool for resolving questions related to code features, etc.
For other inquiries, please contact:
stefan@oden.utexas.edu, leszek@oden.utexas.edu
Owner
- Name: Oden-EAG
- Login: Oden-EAG
- Kind: organization
- Location: Austin, TX
- Website: https://oden.utexas.edu/research/centers-and-groups/electromagnetics-and-acoustics-group/
- Repositories: 2
- Profile: https://github.com/Oden-EAG
Oden Institute Electromagnetics and Acoustics Group
JOSS Publication
$hp\mathrm{3D}$: A Scalable MPI/OpenMP $hp$-Adaptive Finite Element Software Library for Complex Multiphysics Applications
Authors
Tags
finite element hp-adaptivity DPG methodCitation (CITATION.cff)
cff-version: 1.2.0
url: "https://github.com/Oden-EAG/hp3d"
doi: 10.5281/zenodo.10763374
version: 1.0
date-released: 2024-03-02
title: "hp3D: A Scalable MPI/OpenMP hp-Adaptive Finite
Element Software Library for Complex Multiphysics Applications"
authors:
- family-names: "Henneking"
given-names: "Stefan"
orcid: "https://orcid.org/0000-0003-2177-8519"
- family-names: "Petrides"
given-names: "Socratis"
orcid: "https://orcid.org/0000-0002-1284-5495"
- family-names: "Fuentes"
given-names: "Federico"
orcid: "https://orcid.org/0000-0002-4039-082X"
- family-names: "Badger"
given-names: "Jacob"
orcid: "https://orcid.org/0000-0001-6482-105X"
- family-names: "Demkowicz"
given-names: "Leszek"
orcid: "https://orcid.org/0000-0001-7839-8037"
message: "If you use hp3D, please cite it as follows."
preferred-citation:
type: article
authors:
- family-names: "Henneking"
given-names: "Stefan"
orcid: "https://orcid.org/0000-0003-2177-8519"
- family-names: "Petrides"
given-names: "Socratis"
orcid: "https://orcid.org/0000-0002-1284-5495"
- family-names: "Fuentes"
given-names: "Federico"
orcid: "https://orcid.org/0000-0002-4039-082X"
- family-names: "Badger"
given-names: "Jacob"
orcid: "https://orcid.org/0000-0001-6482-105X"
- family-names: "Demkowicz"
given-names: "Leszek"
orcid: "https://orcid.org/0000-0001-7839-8037"
title: "hp3D: A Scalable MPI/OpenMP hp-Adaptive Finite
Element Software Library for Complex Multiphysics Applications"
journal: Journal of Open Source Software
publisher:
name: Open Journals
year: 2024
volume: 9
issue: 95
start: 5946
issn: 2475-9066
doi: 10.21105/joss.05946
GitHub Events
Total
- Watch event: 9
- Delete event: 1
- Push event: 32
- Pull request event: 2
- Create event: 1
Last Year
- Watch event: 9
- Delete event: 1
- Push event: 32
- Pull request event: 2
- Create event: 1
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Stefan Henneking | s****g@g****m | 470 |
| Jacob Badger | j****r@u****u | 33 |
| Brendan | k****0@l****v | 16 |
| leszek | l****k@o****u | 7 |
| ac1512 | a****y@r****e | 7 |
| Brendan | k****0@q****v | 3 |
| Socratis Petrides | p****1@l****v | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 25
- Total pull requests: 90
- Average time to close issues: 7 months
- Average time to close pull requests: 24 days
- Total issue authors: 3
- Total pull request authors: 3
- Average comments per issue: 0.48
- Average comments per pull request: 0.61
- Merged pull requests: 75
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 9
- Average time to close issues: N/A
- Average time to close pull requests: about 9 hours
- Issue authors: 0
- Pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 7
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- stefanhenneking (23)
- jbadger95 (2)
- Beliavsky (1)
Pull Request Authors
- stefanhenneking (93)
- jbadger95 (15)
- ac1512 (10)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- styfle/cancel-workflow-action 0.12.1 composite
