equilibrium_m Module


Uses

  • module~~equilibrium_m~~UsesGraph module~equilibrium_m equilibrium_m module~precision_m precision_m module~equilibrium_m->module~precision_m iso_c_binding iso_c_binding module~precision_m->iso_c_binding iso_fortran_env iso_fortran_env module~precision_m->iso_fortran_env mpi mpi module~precision_m->mpi netcdf netcdf module~precision_m->netcdf

Used by

  • module~~equilibrium_m~~UsedByGraph module~equilibrium_m equilibrium_m module~auxiliaries_test_diffusion_m auxiliaries_test_diffusion_m module~auxiliaries_test_diffusion_m->module~equilibrium_m module~fieldline_tracer_m fieldline_tracer_m module~auxiliaries_test_diffusion_m->module~fieldline_tracer_m module~mesh_cart_m mesh_cart_m module~auxiliaries_test_diffusion_m->module~mesh_cart_m module~circular_equilibrium_m circular_equilibrium_m module~circular_equilibrium_m->module~equilibrium_m module~circular_toroidal_equilibrium_m circular_toroidal_equilibrium_m module~circular_toroidal_equilibrium_m->module~equilibrium_m module~connection_length_m connection_length_m module~connection_length_m->module~equilibrium_m module~connection_length_m->module~fieldline_tracer_m module~coords_polar_m coords_polar_m module~coords_polar_m->module~equilibrium_m module~slab_equilibrium_m slab_equilibrium_m module~coords_polar_m->module~slab_equilibrium_m module~divertor_equilibrium_m divertor_equilibrium_m module~divertor_equilibrium_m->module~equilibrium_m module~dommaschk_equilibrium_m dommaschk_equilibrium_m module~dommaschk_equilibrium_m->module~equilibrium_m module~dommaschk_equilibrium_m->module~fieldline_tracer_m module~equilibrium_factory_m equilibrium_factory_m module~equilibrium_factory_m->module~equilibrium_m module~equilibrium_factory_m->module~circular_equilibrium_m module~equilibrium_factory_m->module~circular_toroidal_equilibrium_m module~equilibrium_factory_m->module~dommaschk_equilibrium_m module~flare_equilibrium_m flare_equilibrium_m module~equilibrium_factory_m->module~flare_equilibrium_m module~salpha_equilibrium_m salpha_equilibrium_m module~equilibrium_factory_m->module~salpha_equilibrium_m module~equilibrium_factory_m->module~slab_equilibrium_m module~numerical_equilibrium_m numerical_equilibrium_m module~equilibrium_factory_m->module~numerical_equilibrium_m module~carthy_equilibrium_m carthy_equilibrium_m module~equilibrium_factory_m->module~carthy_equilibrium_m module~cerfons_equilibrium_m cerfons_equilibrium_m module~equilibrium_factory_m->module~cerfons_equilibrium_m module~fieldline_tracer_m->module~equilibrium_m module~flare_equilibrium_m->module~equilibrium_m module~immersed_factory_m immersed_factory_m module~immersed_factory_m->module~equilibrium_m module~immersed_m immersed_m module~immersed_factory_m->module~immersed_m module~immersed_rho_m immersed_rho_m module~immersed_factory_m->module~immersed_rho_m module~immersed_trace_m immersed_trace_m module~immersed_factory_m->module~immersed_trace_m module~immersed_vessel_m immersed_vessel_m module~immersed_factory_m->module~immersed_vessel_m module~immersed_factory_m->module~mesh_cart_m module~immersed_m->module~equilibrium_m module~immersed_m->module~mesh_cart_m module~immersed_rho_m->module~equilibrium_m module~immersed_rho_m->module~immersed_m module~immersed_rho_m->module~mesh_cart_m module~immersed_trace_m->module~equilibrium_m module~immersed_trace_m->module~connection_length_m module~immersed_trace_m->module~immersed_m module~immersed_trace_m->module~mesh_cart_m module~immersed_vessel_m->module~equilibrium_m module~immersed_vessel_m->module~immersed_m module~immersed_vessel_m->module~mesh_cart_m module~map_factory_m map_factory_m module~map_factory_m->module~equilibrium_m module~map_factory_m->module~mesh_cart_m module~mesh_cart_m->module~equilibrium_m module~mesh_cart_m->module~slab_equilibrium_m module~multigrid_m multigrid_m module~multigrid_m->module~equilibrium_m module~multigrid_m->module~mesh_cart_m module~boundaries_perp_m boundaries_perp_m module~multigrid_m->module~boundaries_perp_m module~parbnd_taylor_m parbnd_taylor_m module~parbnd_taylor_m->module~equilibrium_m module~parbnd_taylor_m->module~connection_length_m module~parbnd_taylor_m->module~fieldline_tracer_m module~parbnd_taylor_m->module~mesh_cart_m module~polar_grid_m polar_grid_m module~polar_grid_m->module~equilibrium_m module~polar_grid_m->module~circular_equilibrium_m module~polar_grid_m->module~coords_polar_m module~polar_grid_m->module~slab_equilibrium_m module~polar_map_factory_m polar_map_factory_m module~polar_map_factory_m->module~equilibrium_m module~polar_map_factory_m->module~coords_polar_m module~polar_map_factory_m->module~mesh_cart_m module~polar_map_factory_m->module~polar_grid_m module~safety_factor_m safety_factor_m module~safety_factor_m->module~equilibrium_m module~safety_factor_m->module~coords_polar_m module~salpha_equilibrium_m->module~equilibrium_m module~slab_equilibrium_m->module~equilibrium_m module~testfunctions_m testfunctions_m module~testfunctions_m->module~equilibrium_m module~testfunctions_m->module~circular_equilibrium_m module~testfunctions_m->module~slab_equilibrium_m module~testfunctions_m->module~numerical_equilibrium_m module~vis_vtk3d_m vis_vtk3d_m module~vis_vtk3d_m->module~equilibrium_m module~vis_vtk3d_m->module~fieldline_tracer_m module~vis_vtk3d_m->module~mesh_cart_m module~zonal_averages_factory_m zonal_averages_factory_m module~zonal_averages_factory_m->module~equilibrium_m module~zonal_averages_factory_m->module~coords_polar_m module~zonal_averages_factory_m->module~mesh_cart_m module~zonal_averages_factory_m->module~polar_grid_m program~benchmark_helmholtz_solvers benchmark_helmholtz_solvers program~benchmark_helmholtz_solvers->module~equilibrium_m program~benchmark_helmholtz_solvers->module~equilibrium_factory_m program~benchmark_helmholtz_solvers->module~mesh_cart_m program~benchmark_helmholtz_solvers->module~multigrid_m program~benchmark_helmholtz_solvers->module~testfunctions_m module~helmholtz_netcdfio_m helmholtz_netcdfio_m program~benchmark_helmholtz_solvers->module~helmholtz_netcdfio_m module~helmholtz_solver_factory_m helmholtz_solver_factory_m program~benchmark_helmholtz_solvers->module~helmholtz_solver_factory_m program~diagnose_poincare diagnose_poincare program~diagnose_poincare->module~equilibrium_m program~diagnose_poincare->module~coords_polar_m program~diagnose_poincare->module~equilibrium_factory_m program~diagnose_poincare->module~fieldline_tracer_m program~test_diffusion test_diffusion program~test_diffusion->module~equilibrium_m program~test_diffusion->module~auxiliaries_test_diffusion_m program~test_diffusion->module~equilibrium_factory_m program~test_diffusion->module~fieldline_tracer_m program~test_diffusion->module~map_factory_m program~test_diffusion->module~mesh_cart_m program~test_diffusion->module~vis_vtk3d_m module~snapshots_test_diffusion_m snapshots_test_diffusion_m program~test_diffusion->module~snapshots_test_diffusion_m module~analytic_divertor_equilibrium_m analytic_divertor_equilibrium_m module~analytic_divertor_equilibrium_m->module~divertor_equilibrium_m module~boundaries_perp_m->module~mesh_cart_m module~dommaschk_equilibrium_netcdf_s dommaschk_equilibrium_netcdf_s module~dommaschk_equilibrium_netcdf_s->module~dommaschk_equilibrium_m module~helmholtz_netcdfio_m->module~mesh_cart_m module~helmholtz_operator_m helmholtz_operator_m module~helmholtz_netcdfio_m->module~helmholtz_operator_m module~helmholtz_operator_m->module~mesh_cart_m module~helmholtz_operator_m->module~boundaries_perp_m module~helmholtz_solver_factory_m->module~multigrid_m module~splitting_m splitting_m module~helmholtz_solver_factory_m->module~splitting_m module~helmholtz_solver_mgmres_cxx_s helmholtz_solver_mgmres_cxx_s module~helmholtz_solver_mgmres_cxx_s->module~multigrid_m module~immersed_netcdf_s immersed_netcdf_s module~immersed_netcdf_s->module~immersed_m module~map_factory_s map_factory_s module~map_factory_s->module~dommaschk_equilibrium_m module~map_factory_s->module~fieldline_tracer_m module~map_factory_s->module~map_factory_m module~mesh_2d_netcdfio_s mesh_2d_netcdfio_s module~mesh_2d_netcdfio_s->module~mesh_cart_m module~mesh_cart_build_s mesh_cart_build_s module~mesh_cart_build_s->module~mesh_cart_m module~mesh_cart_communicate_s mesh_cart_communicate_s module~mesh_cart_communicate_s->module~mesh_cart_m module~mesh_cart_reorder_s mesh_cart_reorder_s module~mesh_cart_reorder_s->module~mesh_cart_m module~mesh_cart_s mesh_cart_s module~mesh_cart_s->module~mesh_cart_m module~multigrid_s multigrid_s module~multigrid_s->module~multigrid_m module~multigrid_solver_m multigrid_solver_m module~multigrid_solver_m->module~mesh_cart_m module~multigrid_solver_m->module~multigrid_m module~multigrid_solver_m->module~boundaries_perp_m module~multigrid_solver_m->module~helmholtz_operator_m module~multigrid_solver_m->module~splitting_m module~numerical_equilibrium_m->module~divertor_equilibrium_m module~parbnd_taylor_netcdf_s parbnd_taylor_netcdf_s module~parbnd_taylor_netcdf_s->module~parbnd_taylor_m module~polar_grid_s polar_grid_s module~polar_grid_s->module~polar_grid_m module~snapshots_test_diffusion_m->module~mesh_cart_m module~splitting_m->module~mesh_cart_m module~carthy_equilibrium_m->module~analytic_divertor_equilibrium_m module~cerfons_equilibrium_m->module~analytic_divertor_equilibrium_m module~helmholtz_solver_direct_s helmholtz_solver_direct_s module~helmholtz_solver_direct_s->module~boundaries_perp_m module~helmholtz_solver_direct_s->module~helmholtz_operator_m module~helmholtz_solver_petsc_s helmholtz_solver_petsc_s module~helmholtz_solver_petsc_s->module~boundaries_perp_m module~initialise_numerical_equilibrium_s initialise_numerical_equilibrium_s module~initialise_numerical_equilibrium_s->module~numerical_equilibrium_m module~multigrid_solver_s multigrid_solver_s module~multigrid_solver_s->module~boundaries_perp_m module~multigrid_solver_s->module~multigrid_solver_m module~splitting_gauss_seidel_cpu_s splitting_gauss_seidel_cpu_s module~splitting_gauss_seidel_cpu_s->module~splitting_m module~splitting_gauss_seidel_redblack_cpu_s splitting_gauss_seidel_redblack_cpu_s module~splitting_gauss_seidel_redblack_cpu_s->module~splitting_m module~splitting_jacobi_cpu_s splitting_jacobi_cpu_s module~splitting_jacobi_cpu_s->module~splitting_m

Derived Types

type, public, abstract ::  equilibrium_t

Class-instance variables

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(init), public, deferred, pass(self) :: init
procedure(display), public, deferred, pass(self) :: display
procedure(debug), public, deferred, pass(self) :: debug
procedure(is_axisymmetric), public, deferred, pass(self) :: is_axisymmetric
procedure(rho), public, deferred, pass(self) :: rho
procedure(bx), public, deferred, pass(self) :: bx
procedure(by), public, deferred, pass(self) :: by
procedure(btor), public, deferred, pass(self) :: btor
procedure(jacobian), public, deferred, pass(self) :: jacobian
procedure(epol), public, deferred, pass(self) :: epol
procedure(erad), public, deferred, pass(self) :: erad
procedure(district), public, deferred, pass(self) :: district
procedure(in_vessel), public, deferred, pass(self) :: in_vessel
procedure(mag_axis_loc), public, deferred, pass(self) :: mag_axis_loc