Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cchandre/vm15d

Hamiltonian fluid reduction of the 1.5D Vlasov-Maxwell equations
https://github.com/cchandre/vm15d

fluid-simulation fluid-solver hamiltonian kinetic-modeling mathematica matlab numpy plasma-physics python3 scipy vlasov-equation vlasov-solver

Last synced: 2 days ago
JSON representation

Hamiltonian fluid reduction of the 1.5D Vlasov-Maxwell equations

Awesome Lists containing this project

README

        

# VM15D : Hamiltonian fluid reduction of the 1.5D Vlasov-Maxwell equations

- **VM15D.nb**: [Mathematica notebook] checks the Jacobi identity and the Casimir invariants for the bracket Bracket[F,G] given by Eq. (6) of the article *Hamiltonian fluid reduction of the 1.5D Vlasov-Maxwell equations* by C. Chandre and B.A. Shadwick

- **GrowthRates.mlx**: [Matlab livescript] computes the growth rates for the linearized equations of motion near a homogeneous equilibrium. It reproduces the figures of the article *Hamiltonian fluid reduction of the 1.5D Vlasov-Maxwell equations* by C. Chandre and B.A. Shadwick

- `VM15D python code`
- [`VM15D_dict.py`](https://github.com/cchandre/VM15D/blob/main/VM15D_dict.py): to be edited to change the parameters of the VM15D computation (see below for a dictionary of parameters)

- [`VM15D.py`](https://github.com/cchandre/VM15D/blob/main/VM15D.py): contains the VM15D class and main functions (not to be edited)

- [`VM15D_modules.py`](https://github.com/cchandre/VM15D/blob/main/VM15D_modules.py): contains the methods to run VM15D (not to be edited)

- Once [`VM15D_dict.py`](https://github.com/cchandre/VM15D/blob/main/VM15D_dict.py) has been edited with the relevant parameters, run the file as
```sh
python3 VM15D.py
```
- NB: in case of error, check your version of the python modules used in the code (see [`modules_version.txt`](https://github.com/cchandre/VM15DD/blob/main/modules_version.txt))

___
## Parameter dictionary for VM15D

- *Tf*: double; duration of the integration (in units of *ωp-1*)
- *alpha*: double; value of the parameter *α* of the closure
- *lam*: double; value of the parameter *λ* of the closure
- *integrator_kinetic*: string ('position-Verlet'); choice of solver for the integration of the Vlasov equation
- *nsteps*: integer; number of steps in one period of plasma oscillations (1/*ωp*) for the integration of the Vlasov equation
- *integrator_fluid*: string ('RK45', ‘RK23’, ‘DOP853’, ‘BDF’, ‘LSODA’); choice of solver for the integration of the fluid equation
- *precision*: double; numerical precision of the integrator for the fluid equations; threshold for the Fourier transforms
- *n_casimirs*: integer; number of Casimir invariants to be monitored

- *Lz*: double; the *z*-axis is (-*Lz*, *Lz*)
- *Lvx*: double; the *vx*-axis is (-*Lvx*, *Lvx*)
- *Lvz*: double; the *vz*-axis is (-*Lvz*, *Lvz*)
- *Nz*: integer; number of points in *z* to represent the field variables
- *Nvx*: integer; number of points in *vx* to represent the field variables
- *Nvz*: integer; number of points in *vz* to represent the field variables
- *f_init*: lambda function; initial distribution *f*(*z*,*vx*,*vz*,*t*=0)

- *Kinetic*: list of strings in ['Compute', 'Plot']; list of instructions for the 1.5D Vlasov-Maxwell simulation
- *Fluid*: list of strings in ['Compute', 'Plot']; list of instructions for the fluid simulation; if contains 'Save', the results are saved in a `.mat` file

- *darkmode*: boolean; if True, plots are done in dark mode
- *tqdm_display*: boolean; if True, displays a progress bar in the terminal

---
Reference: C. Chandre, B.A. Shadwick, *Hamiltonian fluid reduction of the 1.5D Vlasov–Maxwell equationsn*, [Physics of Plasmas](https://doi.org/10.1063/5.0056155) 28, 092114 (2021); [arXiv:2105.03194](https://arxiv.org/abs/2105.03194)

```bibtex
@article{chandre2021,
title = {Hamiltonian fluid reduction of the 1.5D Vlasov–Maxwell equations},
author = {Chandre, C. and Shadwick, B.A.},
journal = {Physics of Plasmas},
volume = {28},
number = {9},
pages = {092114},
year = {2021},
doi = {10.1063/5.0056155},
URL = {https://doi.org/10.1063/5.0056155}
}
```

For more information: