Skip to content

Solving elliptic differential equations using neural networks in plasma fluid simulations. Mirror repository of https://gitlab.com/cerfacs/plasmanet

License

Notifications You must be signed in to change notification settings

lionelchg/PlasmaNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PlasmaNet

PlasmaNet is an open-source code to study the capability of neural networks to solve the Poisson equation coupled to plasma simulations. It is written in Python using object-oriented paradigms. PyTorch is used to implement the neural networks studied in PlasmaNet.

alt text

Features

  • Flexible and abstract UNet and Multi-Scale architectures implemented allowing easy testing of different architectures
  • Object-oriented design for modularity and ease of reusability of building blocks
  • Plasma Euler equations integration is implemented for electrons in a plasma oscillation simulation
  • Simple Morrow chemistry for streamer propagation (image above) with positive ions, negative ions and electrons in a drift-diffusion formulation
  • Linear system solver for the Poisson equation implemented in cartesian geometry for mixed Dirichlet/Neumann boundary conditions (BC), in cylindrical geometry for Dirichlet boundary conditions at left, top, right boundary conditions and Neumann at the axis
  • Analytical expansion of the Poisson solution in Fourier series is implemented to study the behavior of the Poisson equation in cartesian coordinates for mixed Dirichlet/Neumann BCs

Publications

Models and configuration files to run experiments from papers can be found by switching to the papers branch. The papers/ directory will appear at the root of the repository. The first paper models and config files are located in the papers/CAF/ directory where instructions for performance tests with PETSc are included. The second paper models and config files are located in the papers/NeurIPSWorkshop/.

Installation

PlasmaNet is written as a python library. To install it, go the repository root (where the setup.py file is) and run:

pip install -r requirements.txt
pip install -e .

Some environment variables need to be defined for the library (these lines can be added to a .bashrc file):

export ARCHS_DIR=path/to/plasmanet/NNet/archs
export POISSON_DIR=path/to/plasmanet/PoissonSolver/linsystem

The first one is to indicate the network architectures directory which are stored in yaml files. The second environment variable is for testing.

Documentation and guides

The documentation can be found online here.

To generate locally the html documentation of the package go to docs/ directory and:

make html

The generated html documentation will be located in docs/build/html and to access it open docs/build/html/index.html in a web browser.

Contributions

Contributors are welcome! For questions do not hesitate to send an email to [email protected].

Acknowledgments

@victoresque on GitHub for his pytorch-template

About

Solving elliptic differential equations using neural networks in plasma fluid simulations. Mirror repository of https://gitlab.com/cerfacs/plasmanet

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •