Skip to content

feltor-dev/magneticfielddb

Repository files navigation

A lightweight module to store and access magnetic field coefficients for Feltor

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.

LICENSE : MIT

Installation

We do not (yet) have an uploaded version on pypi. Install directly from github:

pip install git+https://github.com/feltor-dev/magneticfielddb

OR clone the repository and then use the package manager pip.

git clone https://github.com/feltor-dev/magneticfielddb
cd magneticfielddb
pip install . # local installation of the module
pip install .[test] # Install pytest
pytest --capture=tee-sys . # run the unittests

In order to locally run the included jupyter-notebooks you can use

pip install .[jupyter] # Install all necessary dependencies
jupyter-lab # run notebooks

Usage

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)

Package Notes

  • 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

Additional Resources

  • polynomial_field.ipynb is an example notebook of how to fit polynomial coefficients to given equilibrium. Read the doxygen documentation on dg::geo::createMagneticField to find out about valid fields in your json file
  • normalize_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 with make 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 coefficients
  • q-profiles.ipynb is a jupyter notebook that plots q-profiles and flux surfaces for all equilibria in the database using path/to/feltor/src/geometry_diag/geometry_diag.cpp and simplesimdb
  • 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 using path/to/feltor/src/geometry_diag/geometry_diag.cpp and simplesimdb

Contributions

Contributions are welcome.

Authors

Matthias Wiesenberger and Markus Held

About

Storage and Access to magnetic field coefficients for Feltor

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors