zonal_averages_factory_m Module

Creates matrices to compute polar averages - flux-surface average (which is actually a volume average) - surface average (an actual surface average, e.g. for computation of fluxes)

TODO: Not tested on 3D equilibria - phi variable only used for equilibrium and polar grid interfaces


Uses

  • module~~zonal_averages_factory_m~~UsesGraph module~zonal_averages_factory_m zonal_averages_factory_m module~comm_handling_m comm_handling_m module~zonal_averages_factory_m->module~comm_handling_m module~coords_polar_m coords_polar_m module~zonal_averages_factory_m->module~coords_polar_m module~csrmat_m csrmat_m module~zonal_averages_factory_m->module~csrmat_m module~equilibrium_m equilibrium_m module~zonal_averages_factory_m->module~equilibrium_m module~list_operations_m list_operations_m module~zonal_averages_factory_m->module~list_operations_m module~mesh_cart_m mesh_cart_m module~zonal_averages_factory_m->module~mesh_cart_m module~polar_grid_m polar_grid_m module~zonal_averages_factory_m->module~polar_grid_m module~precision_m precision_m module~zonal_averages_factory_m->module~precision_m module~screen_io_m screen_io_m module~zonal_averages_factory_m->module~screen_io_m mpi mpi module~comm_handling_m->mpi module~coords_polar_m->module~comm_handling_m module~coords_polar_m->module~equilibrium_m module~coords_polar_m->module~precision_m module~coords_polar_m->module~screen_io_m module~constants_m constants_m module~coords_polar_m->module~constants_m module~root_finding_m root_finding_m module~coords_polar_m->module~root_finding_m module~slab_equilibrium_m slab_equilibrium_m module~coords_polar_m->module~slab_equilibrium_m module~csrmat_m->module~list_operations_m module~csrmat_m->module~precision_m module~csrmat_m->module~screen_io_m iso_c_binding iso_c_binding module~csrmat_m->iso_c_binding module~error_handling_m error_handling_m module~csrmat_m->module~error_handling_m module~status_codes_m status_codes_m module~csrmat_m->module~status_codes_m netcdf netcdf module~csrmat_m->netcdf module~equilibrium_m->module~precision_m module~list_operations_m->module~precision_m module~list_operations_m->module~screen_io_m module~mesh_cart_m->module~comm_handling_m module~mesh_cart_m->module~equilibrium_m module~mesh_cart_m->module~precision_m module~mesh_cart_m->iso_c_binding module~descriptors_m descriptors_m module~mesh_cart_m->module~descriptors_m module~mesh_cart_m->module~error_handling_m module~mesh_cart_m->module~slab_equilibrium_m module~mesh_cart_m->module~status_codes_m module~mesh_cart_m->netcdf module~polar_grid_m->module~comm_handling_m module~polar_grid_m->module~coords_polar_m module~polar_grid_m->module~equilibrium_m module~polar_grid_m->module~precision_m module~circular_equilibrium_m circular_equilibrium_m module~polar_grid_m->module~circular_equilibrium_m module~polar_grid_m->module~constants_m module~polar_grid_m->module~slab_equilibrium_m module~polar_grid_m->netcdf module~precision_m->iso_c_binding iso_fortran_env iso_fortran_env module~precision_m->iso_fortran_env module~precision_m->mpi module~precision_m->netcdf module~screen_io_m->module~precision_m module~screen_io_m->iso_fortran_env module~screen_io_m->netcdf module~circular_equilibrium_m->module~equilibrium_m module~circular_equilibrium_m->module~precision_m module~circular_equilibrium_m->module~screen_io_m module~circular_equilibrium_m->module~constants_m module~circular_equilibrium_m->module~descriptors_m module~circular_equilibrium_m->module~error_handling_m module~circular_equilibrium_m->module~status_codes_m module~elementary_functions_m elementary_functions_m module~circular_equilibrium_m->module~elementary_functions_m module~params_equi_circular_m params_equi_circular_m module~circular_equilibrium_m->module~params_equi_circular_m module~constants_m->module~precision_m module~descriptors_m->module~screen_io_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 module~error_handling_m->netcdf module~root_finding_m->module~precision_m module~slab_equilibrium_m->module~equilibrium_m module~slab_equilibrium_m->module~precision_m module~slab_equilibrium_m->module~screen_io_m module~slab_equilibrium_m->module~descriptors_m module~params_equi_slab_m params_equi_slab_m module~slab_equilibrium_m->module~params_equi_slab_m module~elementary_functions_m->module~precision_m module~params_equi_circular_m->module~precision_m module~params_equi_circular_m->module~screen_io_m module~params_equi_circular_m->iso_fortran_env module~params_equi_circular_m->module~error_handling_m module~params_equi_circular_m->module~status_codes_m module~params_equi_slab_m->module~precision_m module~params_equi_slab_m->module~screen_io_m module~params_equi_slab_m->iso_fortran_env module~params_equi_slab_m->module~error_handling_m module~params_equi_slab_m->module~status_codes_m

Subroutines

public subroutine create_flux_surface_average_csr(flux_surface_average_csr, equi, mesh, polar_grid, polar_map_csr, dbgout)

Creates a matrix to compute flux surface average from Cartesian field

Arguments

Type IntentOptional Attributes Name
type(csrmat_t), intent(out), allocatable :: flux_surface_average_csr

Zonal average matrix

class(equilibrium_t), intent(inout) :: equi

Equilibrium

type(mesh_cart_t), intent(in) :: mesh

Cartesian mesh

type(polar_grid_t), intent(in) :: polar_grid

Polar grid

type(csrmat_t), intent(in) :: polar_map_csr

Polar map matrix in CSR format

integer, intent(in), optional :: dbgout

Specifies the number of information printed on screen

public subroutine create_surface_average_csr(surface_average_csr, equi, mesh, polar_grid, polar_map_csr, dbgout)

Creates a matrix to surface average from Cartesian field

Arguments

Type IntentOptional Attributes Name
type(csrmat_t), intent(out), allocatable :: surface_average_csr

Zonal average matrix

class(equilibrium_t), intent(inout) :: equi

Equilibrium

type(mesh_cart_t), intent(in) :: mesh

Cartesian mesh

type(polar_grid_t), intent(in) :: polar_grid

Polar grid

type(csrmat_t), intent(in) :: polar_map_csr

Polar map matrix in CSR format

integer, intent(in), optional :: dbgout

Specifies the number of information printed on screen

public subroutine create_flux_surface_average_csr_viaaddvols(flux_surface_average_csr, equi, mesh, polar_grid, dbgout)

Constructs flux surface average matrix via adding volumes of adjacent surfaces

Arguments

Type IntentOptional Attributes Name
type(csrmat_t), intent(out), allocatable :: flux_surface_average_csr

Zonal average matrix

class(equilibrium_t), intent(inout) :: equi

Equilibrium

type(mesh_cart_t), intent(in) :: mesh

Cartesian mesh

type(polar_grid_t), intent(in) :: polar_grid

Polar grid

integer, intent(in), optional :: dbgout

Specifies the number of information printed on screen