$hp\mathrm{3D}$

$hp\mathrm{3D}$: A Scalable MPI/OpenMP $hp$-Adaptive Finite Element Software Library for Complex Multiphysics Applications - Published in JOSS (2024)

https://github.com/oden-eag/hp3d

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

computational-science fem finite-elements high-order hp-adaptivity hpc multiphysics scientific-computing
Last synced: 6 months ago · JSON representation ·

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
computational-science fem finite-elements high-order hp-adaptivity hpc multiphysics scientific-computing
Created over 7 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog License Citation Authors

README.md

hp3D

A Scalable MPI/OpenMP hp-Adaptive Finite Element Software Library for Complex Multiphysics Applications

DOI DOI

Downloading the library

  1. Clone the repository
  2. via HTTPS: git clone https://github.com/Oden-EAG/hp3d.git
  3. via SSH: git clone git@github.com:Oden-EAG/hp3d.git
  4. Access the main directory: cd hp3d/trunk

Compiling the library

  1. Create m_options file in hp3d/trunk/: Copy one of the existing m_options files from hp3d/trunk/m_options_files/ into hp3d/trunk/. For example: cp m_options_files/m_options_linux ./m_options
  2. Modify m_options file to set the correct path to the main directory: Set the HP3D_BASE_PATH to the path of the hp3d/trunk/
  3. To compile the library, type make in hp3d/trunk/. Before compiling, you must link to the external libraries and set compiler options by modifying the m_options file as described below.
  • Note: We recommend configuring PETSc with all of hp3D's dependencies (see below). Then, the default m_options files m_options_files/m_options_linux and m_options_files/m_options_macos only require setting the corresponding values of PETSC_DIR and PETSC_ARCH to 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

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
Published
March 04, 2024
Volume 9, Issue 95, Page 5946
Authors
Stefan Henneking ORCID
Oden Institute, The University of Texas at Austin, USA
Socratis Petrides ORCID
Lawrence Livermore National Laboratory, USA
Federico Fuentes ORCID
Institute for Mathematical and Computational Engineering, Pontificia Universidad Católica de Chile, Chile
Jacob Badger ORCID
Oden Institute, The University of Texas at Austin, USA
Leszek Demkowicz ORCID
Oden Institute, The University of Texas at Austin, USA
Editor
Jed Brown ORCID
Tags
finite element hp-adaptivity DPG method

Citation (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

All Time
  • Total Commits: 537
  • Total Committers: 7
  • Avg Commits per committer: 76.714
  • Development Distribution Score (DDS): 0.125
Past Year
  • Commits: 9
  • Committers: 1
  • Avg Commits per committer: 9.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email 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
enhancement (17) testing (3) application (3) legacy (1) documentation (1) make (1) minor (1)
Pull Request Labels
enhancement (30) minor (28) legacy (25) make (16) testing (15) application (14) WIP (7) bug (7) API (5) documentation (4)

Dependencies

.github/workflows/builds-and-tests.yml actions
  • actions/checkout v4 composite
  • styfle/cancel-workflow-action 0.12.1 composite