Coder Social home page Coder Social logo

flyingdorothia / palace Goto Github PK

View Code? Open in Web Editor NEW

This project forked from awslabs/palace

0.0 0.0 0.0 31.54 MB

3D finite element solver for computational electromagnetics

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

License: Apache License 2.0

Shell 1.01% C++ 83.94% Python 0.43% C 6.05% Julia 0.67% Makefile 0.04% CMake 7.86%

palace's Introduction

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.
  • 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.

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

Documentation

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

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

To build a local version of the documentation, run julia 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 [email protected] with any questions or comments, or open an issue.

License

This project is licensed under the Apache-2.0 License.

palace's People

Contributors

sebastiangrimberg avatar hughcars avatar kllrak avatar nikosavola avatar lcheng9 avatar parrangoiz avatar amazon-auto avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.