ESVM
ESVM: an open-source finite volume Electrostatic Vlasov-Maxwell code - Published in JOSS (2021)
Science Score: 95.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
Found 1 DOI reference(s) in JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
✓Committers with academic emails
1 of 6 committers (16.7%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Repository
Finite-volume Vlasov-Maxwell code for Plasma Physics simulations
Basic Info
Statistics
- Stars: 14
- Watchers: 1
- Forks: 3
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
readme.md
Written by Michaël J TOUATI
ESVM (ElectroStatic Vlasov-Maxwell) is a Vlasov-Maxwell Fortran 95 standard-compliant code, parallelized with OpenMP and using Python 3 for post-processing, that allows for the study of collisionless plasmas. Vlasov equation is coupled with the self-consistent Maxwell-Gauss equation, or equivalently with the Maxwell-Ampere equation with Maxwell-Gauss equation computed at the first time step, only. Both absorbing and periodic boundary conditions for both the particles and the fields are implemented. More pieces of information can be found in the readme.pdf peer-reviewed article draft. Python scripts, using the Matplotlib and Numpy packages, are provided to automatically extract and plot the stored simulation results. The simulation parameters are described in the input-deck and they can be modified without having to recompile the code. Compilation rules can be modified in the makefile depending on the user compiler preferences. Classical Plasma Physics academic case simulations that need less than one CPUxhour each, tools for testing the compilation of the code and tools for checking the simulation parameters are provided.
Simulation plot examples
Code units
The code units consist in the commonly used electrostatic units : the electron mass for masses, the elementary charge for electrical charges, the inverse of the Langmuir plasma electron angular frequency for times, the Debye electron screening length for spaces and the average plasma electron density for spatial densities. The initial plasma electron velocity distribution standard deviation is therefore an important unit parameter of normalization since it fixes indirectly the spatial unit.
Compiling the code
Modify the makefile as a function of the wished compilation options and the Fortran compiler installed on your computer and then type
sh
make
The compilation can be tested by typing
sh
make test
The tests consist in comparing file1 and file2 where :
* file1 is one test simulation terminal output performed with an input deck located in the directory 'test-cases/Tests/' and
* file2 is the terminal output of the corresponding simulation already performed by the developper also located in 'test-cases/Tests/'.
Running a simulation
Fill the wished input-deck (all parameters are described inside), eventually check them by typing
sh
./check-input-deck
or
sh
make check
and then type
sh
./esvm
or
sh
make run
to run the simulation.
Plotting the simulation results
All simulation results are stored in files located in the directory 'results'.
Python scripts allowing to extract and plot the simulation results are located in the directory 'sources/plot'.
They can be used by simply typing :
sh
make plot
to plot all the results, even when the simulation is still running. The resulting plots will be stored in the directory 'figures'. It can also be plotted separately :
- the energies scalar plots by typing :
sh
make plot_energies
or
sh
python3 sources/plot/plot_logfe.py
- the 1D plasma electron hydrodynamic moments space-time density maps by typing :
sh
make plot_hydro2D
or
sh
python3 sources/plot/plot_hydro2d.py
- the 1D plasma electron hydrodynamic moments scalar plots by typing :
sh
make plot_hydro1D
or
sh
python3 sources/plot/plot_hydro1d.py
- or the 1D1V plasma electron distribution function phase-space density maps by typing :
sh
make plot_fe
or
sh
python3 sources/plot/plot_fe.py
If you need to plot the 1D1V plasma electron distribution function phase-space density maps in logarithmic scale instead, type :
sh
make plot_logfe
or
sh
python3 sources/plot/plot_logfe.py
Cleaning the directory
If you want to remove from the ESVM directory :
- the compilation files and executables, type :
sh
make distclean
- the directory 'figures' containing all simulations results plots, type :
sh
make figclean
- the directory 'results' containing all simulations results data files, type :
sh
make resclean
- the three previous ones, type :
sh
make clean
Be careful, the three latters will remove all simulations results and or figures. Store them elsewhere if you don't want to lose them.
License
JOSS Publication
ESVM: an open-source finite volume Electrostatic Vlasov-Maxwell code
Authors
Department of Electrical Engineering, University of California Los Angeles, Los Angeles, CA 90095, USA, Group of Lasers and Plasmas, IPFN, IST, Universidade de Lisboa, Lisbon, Portugal, Centro de Láseres Pulsados de Salamanca (CLPU), Edificio M5, Parque Cientfico, C/ Adaja 8, 37185 Villamayor, Salamanca, Spain (current affiliation)
Tags
OpenMP Electrostatic Collisionless Plasma Poisson Maxwell-Gauss Maxwell-Ampere Vlasov Advection Finite volume Donor-cell Lax-Wendroff Beam-Warming Fromm minmod superbee Van Leer MUSCL Landau damping Two-stream instability Electrostatic wakefieldGitHub Events
Total
- Push event: 273
Last Year
- Push event: 274
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| GitHub Action | a****n@g****m | 1,459 |
| Michael Touati | 1****i | 705 |
| michaeltouati | t****l@g****m | 105 |
| User | u****r@M****l | 8 |
| Daniel S. Katz | d****z@i****g | 3 |
| nzeal | n****a@y****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 10
- Total pull requests: 7
- Average time to close issues: 13 days
- Average time to close pull requests: about 3 hours
- Total issue authors: 3
- Total pull request authors: 3
- Average comments per issue: 2.7
- Average comments per pull request: 0.14
- Merged pull requests: 6
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- tclune (7)
- TomGoffrey (2)
- michaeltouati (1)
Pull Request Authors
- michaeltouati (3)
- danielskatz (3)
- tclune (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v2 composite
- ad-m/github-push-action master composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- ad-m/github-push-action master composite