Skip to content

hansernhm/chombo-discharge

 
 

Repository files navigation

DOI DOI

chombo-discharge

This is chombo-discharge, a multiphysics code which uses Chombo for discharge simulations with adaptive mesh refinement (AMR) on embedded boundary grids. chombo-discharge is aimed at performant electric discharge simulations (e.g., Townsend discharges, streamer discharges, sprites, etc.), and scales to tens of thousands of CPU cores.

chombo-discharge features include:

  • Fully written in C++.
  • Parallelized with OpenMP, MPI, or MPI+OpenMP.
  • Scales to tens of thousands of CPUs.
  • Supports complex geometries (electrodes/dielectrics).
  • Parallel I/O with HDF5.
  • Efficient geometric multigrid solvers.
  • Support for dual-grid operations with individual load-balancing of particle and fluid solvers.
  • Support for both particle and fluids, including particle-mesh operations (e.g., Particle-In-Cell).

A modified version of Chombo is distributed together with this code.

Gallery

Installation

Installation of chombo-discharge depends on the level of parallelism that is desired (if any). The code supports OpenMP, MPI, and MPI+OpenMP types of parallelism. For complete installation instructions for serial or parallel execution, see https://chombo-discharge.github.io/chombo-discharge/Base/Installation.html.

Documentation

User documentation is available as HTML or as a PDF. A doxygen-generated API is also available.

License

See LICENSE and Copyright.txt for redistribution rights.

Contributing

We welcome feedback, bug reports, or code contributions.

  1. Create a branch for the new feature.

    git checkout main
    git pull
    git checkout -b my_branch
    
  2. Develop the feature.

    git add .
    git commit -m "my commit message"
    

    If relevant, add Sphinx and doxygen documentation.

  3. Format the source and example codes using clang-format:

    find Source Physics Geometries Exec \( -name "*.H" -o -name "*.cpp" \) -exec clang-format -i {} +
    
  4. Run CheckDocs.py to ensure that changes to source files can be captured, as some of these are included literally in the HTML/PDF documention. If the source files that are changed are also used as literal includes in the Sphinx documentation, ensure that the changed files do not break the includes.

  5. Format input files:

    ./FormatInputFiles.sh
    
  6. Push the changes to GitHub

    git push --set-upstream origin my_branch
    
  7. Create a pull request and make sure the GitHub continuous integration tests pass.

About

Beta release of chombo-discharge, a research code for low-temperature plasma which uses a Cartesian cut-cell formalism.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 96.5%
  • Python 1.7%
  • Makefile 1.1%
  • Other 0.7%