https://github.com/awslabs/palace

3D finite element solver for computational electromagnetics

https://github.com/awslabs/palace

Science Score: 36.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: nature.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary
Last synced: 5 months ago · JSON representation

Repository

3D finite element solver for computational electromagnetics

Basic Info
Statistics
  • Stars: 397
  • Watchers: 21
  • Forks: 77
  • Open Issues: 54
  • Releases: 6
Created about 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Notice

README.md

Palace: 3D Finite Element Solver for Computational Electromagnetics

CI (Linux) CI (macOS)

Palace, for PArallel LArge-scale Computational Electromagnetics, is an open-source, parallel finite element code for full-wave 3D electromagnetic simulations in the frequency or time domain, using the MFEM finite element discretization library and libCEED library for efficient exascale discretizations.

Key features

  • Eigenmode calculations with optional material or radiative loss including lumped impedance boundaries. Automatic postprocessing of energy-participation ratios (EPRs) for circuit quantization and interface or bulk participation ratios for predicting dielectric loss.
  • Frequency domain driven simulations with surface current excitation and lumped or numeric wave port boundaries. Wideband frequency response calculation using uniform frequency space sampling or an adaptive fast frequency sweep algorithm.
  • Explicit or fully-implicit time domain solver for transient electromagnetic analysis.
  • Lumped capacitance and inductance matrix extraction via electrostatic and magnetostatic problem formulations.
  • Support for a wide range of mesh file formats for structured and unstructured meshes, with built-in uniform or region-based parallel mesh refinement.
  • Solution-based Adaptive Mesh Refinement (AMR) for all simulation types aside from transient. Nonconformal refinement is supported for all mesh types, and conformal refinement for simplex meshes.
  • Arbitrary high-order finite element spaces and curvilinear mesh support thanks to the MFEM library.
  • Scalable algorithms for the solution of linear systems of equations, including matrix-free $p$-multigrid utilizing high-order operator partial assembly, parallel sparse direct solvers, and algebraic multigrid (AMG) preconditioners, for fast performance on platforms ranging from laptops to HPC systems.
  • Support for hardware acceleration using NVIDIA or AMD GPUs, including multi-GPU parallelism, using pure CUDA and HIP code as well as MAGMA and other libraries.

Getting started

Palace can be installed using the Spack HPC package manager, with the command spack install palace. Run spack info palace to get more information about the available configuration options and dependencies.

Those wishing to work in a containerized environment may use the Singularity/Apptainer recipe for Palace in singularity/ to build a container containing Palace and all its dependencies.

Finally, instructions for obtaining Palace and building from source can be found in the documentation. As part of the CMake build process, most dependencies are downloaded and installed automatically and thus an internet connection is required.

System requirements:

  • CMake version 3.21 or later
  • C++17 compatible C++ compiler
  • C and Fortran (optional) compilers for dependency builds
  • MPI distribution
  • BLAS, LAPACK libraries
  • CUDA Toolkit or ROCm installation (optional, for GPU support only)

Documentation

https://awslabs.github.io/palace/

The documentation for Palace provides full instructions for building the solver and running electromagnetic simulations.

Building a local copy of the documentation

Julia with Documenter is required to build a local version of the documentation. Obtain Julia following the official instructions and install Documenter by instantiating the docs environment

sh julia --project=docs -e "using Pkg; Pkg.instantiate()"

Then, generate the documentation with julia --project make.jl from within the docs/ directory.

Examples

Some example applications including configuration files and meshes can be found in the examples/ directory. Complete tutorials for each example are available in the documentation.

Changelog

Check out the changelog.

Contributing

We welcome contributions to Palace including bug fixes, feature requests, etc. To get started, check out our contributing guidelines.

Contact

Palace is developed by the Design and Simulation group in the AWS Center for Quantum Computing (CQC). Please contact the development team at palace-maint@amazon.com with any questions or comments, or open an issue.

License

This project is licensed under the Apache-2.0 License.

Owner

  • Name: Amazon Web Services - Labs
  • Login: awslabs
  • Kind: organization
  • Location: Seattle, WA

AWS Labs

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 140
  • Total pull requests: 338
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 11 days
  • Total issue authors: 54
  • Total pull request authors: 16
  • Average comments per issue: 2.04
  • Average comments per pull request: 0.51
  • Merged pull requests: 251
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 76
  • Pull requests: 138
  • Average time to close issues: 12 days
  • Average time to close pull requests: 10 days
  • Issue authors: 30
  • Pull request authors: 8
  • Average comments per issue: 1.86
  • Average comments per pull request: 0.57
  • Merged pull requests: 88
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • hughcars (23)
  • sebastiangrimberg (22)
  • nikosavola (6)
  • WEIXUEP (6)
  • zhanggy2004 (4)
  • huangyb2 (4)
  • CosimoMV (4)
  • lcheng9 (4)
  • parrangoiz (3)
  • simlapointe (3)
  • vegaonline (3)
  • VolkerMuehlhaus (3)
  • LeSnow-Ye (3)
  • Sbozzolo (3)
  • DavidSomm (3)
Pull Request Authors
  • sebastiangrimberg (169)
  • hughcars (94)
  • simlapointe (20)
  • cameronrutherford (16)
  • phdum-a (12)
  • Sbozzolo (10)
  • nikosavola (4)
  • WEIXUEP (4)
  • mi-and-core (2)
  • lcheng9 (1)
  • simbilod (1)
  • LeilaGhaffari (1)
  • CosimoMV (1)
  • gpeairs (1)
  • joamatab (1)
Top Labels
Issue Labels
bug (61) enhancement (49) usage (18) build (16) driven (12) documentation (9) postprocessing (8) mesh (7) GPU (6) minor (5) performance (5) eigenmode (4) ci (4) question (4) amr (3) good first issue (3) examples (3) patch (2) transient (1) spack (1)
Pull Request Labels
bug (49) minor (48) enhancement (48) ci (34) build (33) performance (29) documentation (25) postprocessing (21) amr (14) driven (10) mesh (9) examples (8) GPU (7) release (6) usage (4) patch (4) draft (3) transient (2) test (2) eigenmode (2)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 15 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 1
  • Total maintainers: 2
spack.io: palace

3D finite element solver for computational electromagnetics

  • Versions: 0
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Average: 28.6%
Dependent packages count: 57.3%
Maintainers (1)
Last synced: about 1 year ago
pypi.org: palace-fem

3D Finite Element Solver for Computational Electromagnetics

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 15 Last month
Rankings
Dependent packages count: 8.9%
Average: 29.6%
Dependent repos count: 50.2%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/build-and-test-linux-aarch64.yml actions
  • actions/checkout v3 composite
  • uraimo/run-on-arch-action v2 composite
.github/workflows/build-and-test-linux.yml actions
  • actions/checkout v3 composite
  • julia-actions/setup-julia v1 composite
  • mpi4py/setup-mpi v1 composite
.github/workflows/build-and-test-macos.yml actions
  • actions/checkout v3 composite
  • julia-actions/setup-julia v1 composite
  • mpi4py/setup-mpi v1 composite
.github/workflows/docs-cleanup.yml actions
  • actions/checkout v3 composite
.github/workflows/docs.yml actions
  • actions/checkout v3 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/style.yml actions
  • actions/checkout v3 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/singularity.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • singularityhub/install-singularity main composite
.github/workflows/spack.yml actions
  • actions/checkout v3 composite
  • mpi4py/setup-mpi v1 composite
  • vsoch/spack-package-action/install main composite