flare_equilibrium_m Module

Equilibrium based on FLARE: (field line analysis and reconstruction for 3D boundary plasma modeling) see H. Frerichs 2024 Nucl. Fusion 64 106034 DOI 10.1088/1741-4326/ad7303

The source code of FLARE needs to be compiled separately https://gitlab.com/hfrerichs/flare (stable with #4351aff722f9d2b7495211f09f774bc406064ac1)

FLARE relies on MOOSE, which needs to be compile seperately, too. https://gitlab.com/hfrerichs/moose.git (stable with #4c4a046b615ba19f68e1c1003c975941db7c6cf7)

All routines or variables that are provided externally from FLARE are imported with the prefix "FLARE_"


Uses

  • module~~flare_equilibrium_m~~UsesGraph module~flare_equilibrium_m flare_equilibrium_m FLARE_control FLARE_control module~flare_equilibrium_m->FLARE_control FLARE_model FLARE_model module~flare_equilibrium_m->FLARE_model iso_fortran_env iso_fortran_env module~flare_equilibrium_m->iso_fortran_env module~comm_handling_m comm_handling_m module~flare_equilibrium_m->module~comm_handling_m module~descriptors_m descriptors_m module~flare_equilibrium_m->module~descriptors_m module~equilibrium_m equilibrium_m module~flare_equilibrium_m->module~equilibrium_m module~error_handling_m error_handling_m module~flare_equilibrium_m->module~error_handling_m module~euclidean_geo_m euclidean_geo_m module~flare_equilibrium_m->module~euclidean_geo_m module~kisslinger_m kisslinger_m module~flare_equilibrium_m->module~kisslinger_m module~params_equi_flare_m params_equi_flare_m module~flare_equilibrium_m->module~params_equi_flare_m module~polygon_m polygon_m module~flare_equilibrium_m->module~polygon_m module~precision_m precision_m module~flare_equilibrium_m->module~precision_m module~screen_io_m screen_io_m module~flare_equilibrium_m->module~screen_io_m module~status_codes_m status_codes_m module~flare_equilibrium_m->module~status_codes_m moose_configparser moose_configparser module~flare_equilibrium_m->moose_configparser moose_error moose_error module~flare_equilibrium_m->moose_error moose_utils moose_utils module~flare_equilibrium_m->moose_utils mpi mpi module~comm_handling_m->mpi module~descriptors_m->module~screen_io_m module~equilibrium_m->module~precision_m module~error_handling_m->module~comm_handling_m module~error_handling_m->module~precision_m module~error_handling_m->module~screen_io_m module~error_handling_m->module~status_codes_m module~error_handling_m->mpi netcdf netcdf module~error_handling_m->netcdf module~euclidean_geo_m->module~precision_m module~kisslinger_m->module~error_handling_m module~kisslinger_m->module~precision_m module~kisslinger_m->module~screen_io_m module~kisslinger_m->module~status_codes_m module~constants_m constants_m module~kisslinger_m->module~constants_m module~list_operations_m list_operations_m module~kisslinger_m->module~list_operations_m module~params_equi_flare_m->FLARE_model module~params_equi_flare_m->iso_fortran_env module~params_equi_flare_m->module~error_handling_m module~params_equi_flare_m->module~precision_m module~params_equi_flare_m->module~screen_io_m module~params_equi_flare_m->module~status_codes_m FLARE_bspline3d FLARE_bspline3d module~params_equi_flare_m->FLARE_bspline3d module~polygon_m->iso_fortran_env module~polygon_m->module~comm_handling_m module~polygon_m->module~descriptors_m module~polygon_m->module~precision_m module~polygon_m->module~screen_io_m ieee_arithmetic ieee_arithmetic module~polygon_m->ieee_arithmetic module~polygon_m->mpi module~polygon_m->netcdf module~precision_m->iso_fortran_env iso_c_binding iso_c_binding module~precision_m->iso_c_binding module~precision_m->mpi module~precision_m->netcdf module~screen_io_m->iso_fortran_env module~screen_io_m->module~precision_m module~screen_io_m->netcdf module~constants_m->module~precision_m module~list_operations_m->module~precision_m module~list_operations_m->module~screen_io_m

Used by

  • module~~flare_equilibrium_m~~UsedByGraph module~flare_equilibrium_m flare_equilibrium_m module~equilibrium_factory_m equilibrium_factory_m module~equilibrium_factory_m->module~flare_equilibrium_m program~benchmark_helmholtz_solvers benchmark_helmholtz_solvers program~benchmark_helmholtz_solvers->module~equilibrium_factory_m program~diagnose_poincare diagnose_poincare program~diagnose_poincare->module~equilibrium_factory_m program~test_diffusion test_diffusion program~test_diffusion->module~equilibrium_factory_m

Derived Types

type, public, extends(equilibrium_t) ::  flare_t

Equilibrium type based on FLARE magnetic reconstruction

Components

Type Visibility Attributes Name Initial
logical, public :: initialized = .false.
real(kind=FP), public :: x0

Magnetic axis x = R/R0 (in normalised units)

real(kind=FP), public :: y0

Magnetic axis y = Z/R0 (in normalised units)

real(kind=FP), public :: phi0 = 0.0_FP

Magnetic axis phi

real(kind=FP), public :: xmin

Box limits

real(kind=FP), public :: xmax

Box limits

real(kind=FP), public :: ymin

Box limits

real(kind=FP), public :: ymax

Box limits

real(kind=FP), public :: rhomax

Global limits for rho (rho = normalised psi, n.b. there may also be region-specific limits defined in equi)

real(kind=FP), public :: rhomin

Global limits for rho (rho = normalised psi, n.b. there may also be region-specific limits defined in equi)

Type-Bound Procedures

procedure, public, pass(self) :: absb
procedure, public, pass(self) :: bpol
procedure, public :: init
procedure, public :: display
procedure, public :: debug
procedure, public :: is_axisymmetric
procedure, public :: rho
procedure, public :: bx
procedure, public :: by
procedure, public :: btor
procedure, public :: jacobian
procedure, public :: epol
procedure, public :: erad
procedure, public :: district
procedure, public :: in_vessel
procedure, public :: mag_axis_loc