Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Edits to manuscript and other files #38

Merged
merged 6 commits into from
Jun 5, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,4 @@ It's particularly opinionated so you don't have to be.
By contributing, you agree that your contributions will be licensed under its MIT License.

## References
This document was adapted from the open-source contribution guidelines found [here](https://gist.github.com/briandk/3d2e8b3ec8daf5a27a62)
This document was adapted from the open-source contribution guidelines found [here](https://gist.github.com/briandk/3d2e8b3ec8daf5a27a62)
22 changes: 14 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
[![Documentation Status](https://readthedocs.org/projects/vlapy/badge/?version=latest)](https://vlapy.readthedocs.io/en/latest/?badge=latest)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
[![status](https://joss.theoj.org/papers/c2b3924d7868d7bd8472c6deb011cfcc/status.svg)](https://joss.theoj.org/papers/c2b3924d7868d7bd8472c6deb011cfcc)
# VlaPy

Usage details and the latest documentation can be found [here](https://vlapy.readthedocs.io/en/latest/)
Expand All @@ -23,15 +24,20 @@ To start the MLFlow UI server, type ``mlflow ui`` into the terminal and then nav
VlaPy is a 1-spatial-dimension, 1-velocity-dimension, Vlasov-Poisson-Fokker-Planck code written in Python.

## Statement of Need
There are many software libraries that solve the same equation set which are available in academic settings,
research laboratories, and industry, but the community has yet to benefit from a simple-to-read, open-source Python
The 1D-1V VPFP equation set solved here has been applied in research of laser-plasma interactions in the context of
inertial fusion, of plasma-based accelerators, of space physics, and of fundamental plasma physics (references
can be found in the manuscript). While there are VPFP software libraries which are available in academic settings,
research laboratories, and industry, the community has yet to benefit from a simple-to-read, open-source Python
implementation. This lack of capability is currently echoed in conversations within the ``PlasmaPy`` community
(``PlasmaPy`` is a collection of open-source plasma physics resources).
Our aim with ``VlaPy`` is to take a step towards filling this need in the open-source community.
(``PlasmaPy`` is a collection of open-source plasma physics resources). Our aim with ``VlaPy`` is to take a step
towards filling this need for a research and educational tool in the open-source community.

``VlaPy`` is intended to help students and researchers learn about and explore concepts in fundamental plasma and fluid
physics and numerical methods. It is also designed to provide a science-accessible introduction to industry and
software engineering best-practices, including unit and integrated testing, and extensible and maintainable code.
``VlaPy`` is intended to help students learn fundamental concepts and help researchers discover novel physics and
applications in plasma physics, fluid physics, computational physics, and numerical methods. It is also designed to
provide a science-accessible introduction to industry and software engineering best-practices, including unit and
integrated testing, and extensible and maintainable code.

The details of the ``VlaPy`` implementation are provided in the following sections.

## Implementation
The Vlasov-Poisson-Fokker-Planck system can be decomposed into 4 components.
Expand Down Expand Up @@ -93,4 +99,4 @@ There are more details about how the diagnostics for a particular type of simula
the run manager object. These will be described in time. One can infer these from the code as well.

## Contributing to VlaPy
Please see the guide in [contribution guidelines for this project](CONTRIBUTING.md)
Please see the guide in [contribution guidelines for this project](CONTRIBUTING.md)
91 changes: 90 additions & 1 deletion paper/paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -194,4 +194,93 @@ @article{Zaharia2018
number={4},
pages={39--45},
year={2018}
}
}

@article{Fahlen2009,
author = {Fahlen, J. E. and Winjum, B. J. and Grismayer, T. and Mori, W. B.},
doi = {10.1103/PhysRevLett.102.245002},
issn = {00319007},
journal = {Physical Review Letters},
number = {24},
pages = {1--4},
title = {{Propagation and damping of nonlinear plasma wave packets}},
volume = {102},
year = {2009}
}

@article{Banks2016,
abstract = {Collisional effects can play an essential role in the dynamics of plasma waves by setting a minimum damping rate and by interfering with wave-particle resonances. Kinetic simulations of the effects of electron-ion pitch angle scattering on Electron Plasma Waves (EPWs) are presented here. In particular, the effects of such collisions on the frequency and damping of small-amplitude EPWs for a range of collision rates and wave phase velocities are computed and compared with theory. Both the Vlasov simulations and linear kinetic theory find the direct contribution of electron-ion collisions to wave damping is about a factor of two smaller than is obtained from linearized fluid theory. To our knowledge, this simple result has not been published before. Simulations have been carried out using a grid-based (Vlasov) approach, based on a high-order conservative finite difference method for discretizing the Fokker-Planck equation describing the evolution of the electron distribution function. Details of the implementation of the collision operator within this framework are presented. Such a grid-based approach, which is not subject to numerical noise, is of particular interest for the accurate measurements of the wave damping rates.},
archivePrefix = {arXiv},
arxivId = {1601.01002},
author = {Banks, J. W. and Brunner, S. and Berger, R. L. and Tran, T. M.},
doi = {10.1063/1.4943194},
eprint = {1601.01002},
issn = {1070-664X},
journal = {Physics of Plasmas},
month = {mar},
number = {3},
pages = {032108},
title = {{Vlasov simulations of electron-ion collision effects on damping of electron plasma waves}},
url = {http://dx.doi.org/10.1063/1.4943194 http://aip.scitation.org/doi/10.1063/1.4943194},
volume = {23},
year = {2016}
}

@article{Thomas2016,
author = {Thomas, A. G. R.},
doi = {10.1103/PhysRevE.94.053204},
issn = {2470-0045},
journal = {Physical Review E},
number = {5},
pages = {053204},
title = {{Vlasov simulations of thermal plasma waves with relativistic phase velocity in a Lorentz boosted frame}},
url = {http://link.aps.org/doi/10.1103/PhysRevE.94.053204},
volume = {94},
year = {2016}
}

@article{Pezzi2016,
abstract = {The existence of several characteristic times during the collisional relaxation of fine velocity structures is investigated by means of Eulerian numerical simulations of a spatially homogeneous force-free weakly collisional plasma. The effect of smoothing out velocity gradients on the evolution of global quantities, such as temperature and entropy, is discussed, suggesting that plasma collisionality can locally increase due to velocity space deformations of the particle velocity distribution function. These results support the idea that high-resolution measurements of the particle velocity distribution function are crucial for an accurate description of weakly collisional systems, such as the solar wind, in order to answer relevant scientific questions, related, for example, to particle heating and energization.},
author = {Pezzi, Oreste and Valentini, Francesco and Veltri, Pierluigi},
doi = {10.1103/PhysRevLett.116.145001},
issn = {10797114},
journal = {Physical Review Letters},
number = {14},
pages = {1--5},
title = {{Collisional Relaxation of Fine Velocity Structures in Plasmas}},
volume = {116},
year = {2016}
}

@article{Heninger2018,
abstract = {The linearized Vlasov-Poisson system can be exactly solved using the G-transform, an integral transform introduced in Morrison and Pfirsch [Phys. Fluids B 4, 3038-3057 (1992)] and Morrison [Phys. Plasmas 1, 1447 (1994); Transp. Theory Stat. Phys. 29, 397 (2000)] that removes the electric field term, leaving a simple advection equation. We investigate how this integral transform interacts with the Fokker-Planck collision operator. The commutator of this collision operator with the G-transform (the “shielding term”) is shown to be negligible. We exactly solve the advection-diffusion equation without the shielding term. This solution determines when collisions dominate and when advection (i.e., Landau damping) dominates. This integral transform can also be used to simplify gyro-/drift-kinetic equations. We present new gyrofluid equations formed by taking moments of the G-transformed equation. Since many gyro-/drift-kinetic codes use Hermite polynomials as base elements, we include an explicit calculation of their G-transform.},
archivePrefix = {arXiv},
arxivId = {1806.10203},
author = {Heninger, J. M. and Morrison, P. J.},
doi = {10.1063/1.5046194},
eprint = {1806.10203},
issn = {10897674},
journal = {Physics of Plasmas},
number = {8},
title = {{An integral transform technique for kinetic systems with collisions}},
volume = {25},
year = {2018}
}

@article{Chen2019,
abstract = {How turbulent energy is dissipated in weakly collisional space and astrophysical plasmas is a major open question. Here, we present the application of a field-particle correlation technique to directly measure the transfer of energy between the turbulent electromagnetic field and electrons in the Earth's magnetosheath, the region of solar wind downstream of the Earth's bow shock. The measurement of the secular energy transfer from the parallel electric field as a function of electron velocity shows a signature consistent with Landau damping. This signature is coherent over time, close to the predicted resonant velocity, similar to that seen in kinetic Alfven turbulence simulations, and disappears under phase randomisation. This suggests that electron Landau damping could play a significant role in turbulent plasma heating, and that the technique is a valuable tool for determining the particle energisation processes operating in space and astrophysical plasmas},
archivePrefix = {arXiv},
arxivId = {1902.05785},
author = {Chen, C. H.K. and Klein, K. G. and Howes, G. G.},
doi = {10.1038/s41467-019-08435-3},
eprint = {1902.05785},
issn = {20411723},
journal = {Nature Communications},
number = {1},
publisher = {Springer US},
title = {{Evidence for electron Landau damping in space plasma turbulence}},
url = {http://dx.doi.org/10.1038/s41467-019-08435-3},
volume = {10},
year = {2019}
}

6 changes: 3 additions & 3 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@ bibliography: paper.bib

# Summary

Here we introduce ``VlaPy``: a 1-spatial-dimension, 1-velocity-dimension, Eulerian Vlasov-Poisson-Fokker-Planck simulation code written in Python.
Here we introduce ``VlaPy``: a 1-spatial-dimension, 1-velocity-dimension (1D-1V), Eulerian Vlasov-Poisson-Fokker-Planck (VPFP) simulation code written in Python.

The Vlasov-Poisson-Fokker-Planck system of equations is commonly used to study plasma and fluid physics in a broad set of topical environments, ranging from space physics, to laboratory-created plasmas for fusion applications (see refs. [@Betti2016; @Fasoli2016; @Ongena2016; @Chen2019]). More specifically, the Vlasov-Poisson system of equations is typically employed to model collisionless plasmas. The Fokker-Planck operator can be introduced into this system to represent the effect of collisions. The primary advantage of this scheme is that instead of relying on numerical diffusion to smooth small-scale structures that arise when modeling collisionless plasmas, the Fokker-Planck operator enables a physics-based smoothing mechanism.

Our implementation is based on finite-difference and pseudo-spectral methods. At the lowest level, ``VlaPy`` evolves a two-dimensional (2D) grid according to this set of coupled partial integro-differential equations over time. In ``VlaPy``, the simulation dynamics can be initialized through user-specified initial conditions or external forces.

# Statement of Need

There are many software libraries that solve the same equation set which are available in academic settings, research laboratories, and industry (e.g., [@Banks2017; @Joglekar2018]), but the community has yet to benefit from a simple-to-read, open-source Python implementation. This lack of capability is currently echoed in conversations within the ``PlasmaPy`` [@plasmapy] community (``PlasmaPy`` is a collection of open-source plasma physics resources). Our aim with ``VlaPy`` is to take a step towards filling this need in the open-source community.
The 1D-1V VPFP equation set solved here has been applied in research of laser-plasma interactions in the context of inertial fusion [@Fahlen2009; @Banks2016], of plasma-based accelerators [@Thomas2016], of space physics [@Chen2019], and of fundamental plasma physics [@Pezzi2016; @Heninger2018]. While there are VPFP software libraries which are available in academic settings, research laboratories, and industry (e.g., [@Banks2017; @Joglekar2018]), the community has yet to benefit from a simple-to-read, open-source Python implementation. This lack of capability is currently echoed in conversations within the ``PlasmaPy`` [@plasmapy] community (``PlasmaPy`` is a collection of open-source plasma physics resources). Our aim with ``VlaPy`` is to take a step towards filling this need for a research and educational tool in the open-source community.

``VlaPy`` is intended to help students and researchers learn about and explore concepts in fundamental plasma and fluid physics and numerical methods. It is also designed to provide a science-accessible introduction to industry and software engineering best-practices, including unit and integrated testing, and extensible and maintainable code.
``VlaPy`` is intended to help students learn fundamental concepts and help researchers discover novel physics and applications in plasma physics, fluid physics, computational physics, and numerical methods. It is also designed to provide a science-accessible introduction to industry and software engineering best-practices, including unit and integrated testing, and extensible and maintainable code.

The details of the ``VlaPy`` implementation are provided in the following sections.

Expand Down