Giter VIP home page Giter VIP logo

entity-toolkit / entity Goto Github PK

View Code? Open in Web Editor NEW
22.0 5.0 2.0 46.85 MB

New generation astrophysical plasma simulation code with CPU/GPU portability

Home Page: https://entity-toolkit.github.io/wiki/

License: BSD 3-Clause "New" or "Revised" License

Makefile 1.16% Python 4.38% C++ 82.30% C 8.62% Dockerfile 0.11% CMake 3.43%
astrophysics gpu kokkos particle-in-cell plasma pppl princeton simulation

entity's Introduction

Entity a.k.a. ntt

One particle-in-cell code to rule them all. Find our detailed documentation here.

License

Dev team (alphabetical)

๐Ÿต Benjamin Crinquand {@bcrinquand: GRPIC, cubed-sphere}

๐Ÿง‹ Alisa Galishnikova {@alisagk: GRPIC}

โ˜• Hayk Hakobyan {@haykh: framework, PIC, GRPIC, cubed-sphere}

๐Ÿฅ” Jens Mahlmann {@jmahlmann: framework, MPI, cubed-sphere}

๐Ÿฌ Sasha Philippov {@sashaph: all-around}

๐Ÿคท Arno Vanthieghem {@vanthieg: framework, PIC}

๐Ÿ˜บ Muni Zhou {@munizhou: PIC}

State of things

  • Framework

    • Metrics
      • Minkowski (SR)
      • Spherical/Qspherical (SR)
      • Kerr-Schild/QKerr-Schild, zero-mass Kerr-Schild (GR)
      • virtual inheritance of metric classes
    • Output
      • Fields/currents (SR/GR)
      • Moments (SR)
      • Moments (GR)
      • Particles (SR/GR)
      • Energy distributions (SR/GR)
      • Particle tracking (SR/GR)
    • Extra physics
      • Radiation (synchrotron/IC)
      • QED
    • MPI
      • restructure meshblocks
      • rewrite fieldsolvers (addressing + ranges)
  • SR (minkowski)

    • fieldsolver (1D/2D/3D)
    • pusher (1D/2D/3D)
    • deposit (1D/2D/3D)
    • filtering (1D/2D/3D)
  • SR (spherical)

    • fieldsolver (2D)
    • pusher (2D)
    • deposit (2D)
    • filtering (2D)
  • GR (spherical)

    • fieldsolver (2D)
    • pusher (2D)
    • deposit (2D)
    • filtering (2D)

Known bugs / minor issues to fix

...

To keep the code clean, readable and easy to debug we employ some of the c++ best practices described in details in the following online manual. Basically, if there is any ambiguity on how to implement something, it's a good start to first look if there is any "best practice" solution offered in that manual.

Unit testing

A limited number of unit tests are now available. To compile/run them:

cmake -B build -D TESTS=ON
cd build
make -j
cd tests && ctest -j

Tests are automatically run when on pull requests to the master branch.

Third-party libraries

  1. Kokkos: for CPU/GPU portability
  2. adios2: for output
  3. fmt: for string formatting

Dependencies

While we try to keep the code as compatible as possible, there are certain stringent requirements we impose.

  1. cmake>=3.16: for configuration (verify: cmake --version);
  2. icx>=19.1 or gcc>=8.3.1 with c++17 support (verify: [icx|gcc] -std=c++17 -v; optionally nvcc compilers: nvcc --version).

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.