The repository serves as a storage for often used magnetic field coefficients for Feltor simulations. Furthermore it provides uniform access to these coefficients through a python interface. Together with the simplesimdb module this interface can then be used to setup and run Feltor simulations that require geometry coefficients on input.
We do not yet have an uploaded version on pypi. To install you have to clone the repository and then use the package manager pip.
You need python3 (>3.6) to install this module
git clone https://github.com/feltor-dev/magneticfielddb
cd path/to/magneticfielddb
pip install -e . # editable installation of the module
# ... if asked, cancel all password prompts ...
pytest --capture=tee-sys . # run the unittests
Here is an example of how we iterate over all files in the data repository open them into a python dictionaries and display them on stdout.
### example.py ###
import magneticfielddb as mag
# list all files in the data repository
for f in mag.files() :
# read each file into a dictionary
coefficients = mag.select( f)
# print to stdout
print( coefficients)
- each file contains at least the "equilibrium", "R_0" and "description" fields
- "R_0" is given in units of meter
- "PP" and "PI" are 1 by default
- Files may contain a field "comment" that contains human readable information string
polynomial_field.ipynb
is an example program of how to fit polynomial coefficients to given equilibrium. Read the doxygen documentation ondg::geo::createMagneticField
to find out about valid fields in yourjson
filenormalize_params.cpp
is a C++ program that should be used on geometry input files (all files with X-points must be normalized such that the X-point closest to the O-point lies on the Psip=0 surface). Compile withmake
and run with./normalize_params your-params.json your-params.json
to update parameters in-place.OneSizeFitsAllEquilbrium.nb
is a Mathematica notebook that generates solovev coefficientsq-profiles.ipynb
is a jupyter notebook that plots q-profiles and flux surfaces for all equilibria in the database usingpath/to/feltor/src/geometry_diag/geometry_diag.cpp
andsimplesimdb
geometry_diag.ipynb
is a jupyter notebook that shows how newly made parameters behave in Feltor and how wall and sheath parameters should be setup for a 3d simulation usingpath/to/feltor/src/geometry_diag/geometry_diag.cpp
andsimplesimdb
Contributions are welcome.
Matthias Wiesenberger and Markus Held