diagnostics_braginskii_m Module

Wrapper for BRAGINSKII model diagnostics Note: The whole diagnostics framework only works foar axisymmetric equilibria


Used by


Contents


Interfaces

interface

  • public module subroutine init_diagnostics(self, comm_handler, filepath_lineout, equi, mesh_cano, mesh_stag, polars_cano, polars_stag, tau, isnaps, ne, te, ti, pot, upar, jpar, apar, apar_fluct, neutrals_dens, neutrals_parmom, neutrals_pressure)

    Initialize diagnostic

    Arguments

    Type IntentOptional Attributes Name
    class(diagnostics_braginskii_t), intent(inout) :: self

    Instance of class

    type(comm_handler_t), intent(in) :: comm_handler

    MPI communication handler

    character(len=*), intent(in) :: filepath_lineout

    Filepath to read lineout diagnostics parameters from

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

    Magnetic equilibrium

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

    Mesh (canonical) within poloidal plane

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

    Mesh (staggered) within poloidal plane

    type(polars_t), intent(in) :: polars_cano

    Polars (canonical)

    type(polars_t), intent(in) :: polars_stag

    Polars (staggered)

    real(kind=GP), intent(in) :: tau

    Time

    integer, intent(in) :: isnaps

    Braginskii snapshot counter

    type(variable_t), intent(in) :: ne

    Electron density

    type(variable_t), intent(in) :: te

    Electron temperature

    type(variable_t), intent(in) :: ti

    Ion temperature

    type(variable_t), intent(in) :: pot

    Electrostatic potential

    type(variable_t), intent(in) :: upar

    Paralle velocity

    type(variable_t), intent(in) :: jpar

    Parallel current

    type(variable_t), intent(in) :: apar

    Electromagnetic potential

    type(variable_t), intent(in) :: apar_fluct

    Electromagnetic potential fluctuation

    type(variable_t), intent(in) :: neutrals_dens

    Neutrals density

    type(variable_t), intent(in) :: neutrals_parmom

    Neutrals parallel momentum

    type(variable_t), intent(in) :: neutrals_pressure

    Neutrals pressure

interface

  • public module subroutine drive_diagnostics(self, comm_handler, equi, equi_on_cano, equi_on_stag, mesh_cano, mesh_stag, map, penalisation_cano, penalisation_stag, polars_cano, polars_stag, parflux_utils_cano, parflux_utils_stag, perp_bnd_flux_cano, perp_bnd_flux_stag, opsinplane_cano, opsinplane_stag, boundaries, boundaries_neutrals, cf_buffer_cano, cf_buffer_stag, cf_diss_cano, cf_diss_stag, isnaps, tau, ne, te, ti, pot, vort, upar, jpar, apar, apar_fluct, gstress, neutrals_dens, neutrals_parmom, neutrals_pressure, src_ne, src_te, src_ti, src_upar, src_vort, sources_external)

    Main diagnostics routine

    Arguments

    Type IntentOptional Attributes Name
    class(diagnostics_braginskii_t), intent(inout) :: self

    Instance of class

    type(comm_handler_t), intent(in) :: comm_handler

    MPI communication handler

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

    Magnetic equilibrium

    class(equilibrium_storage_t), intent(in) :: equi_on_cano

    Equilibrium storage on canonical plane enabling faster performance at certain locations

    class(equilibrium_storage_t), intent(in) :: equi_on_stag

    Equilibrium storage on staggered plane enabling faster performance at certain locations

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

    Mesh (canonical) within poloidal plane

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

    Mesh (staggered) within poloidal plane

    type(parallel_map_t), intent(in) :: map

    Parallel map

    type(penalisation_t), intent(in) :: penalisation_cano

    Penalisation (canonical)

    type(penalisation_t), intent(in) :: penalisation_stag

    Penalisation (staggered)

    type(polars_t), intent(in) :: polars_cano

    Polar grid and operators (canonical)

    type(polars_t), intent(in) :: polars_stag

    Polar grid and operators (staggered)

    type(parallel_target_flux_t), intent(in) :: parflux_utils_cano

    Parallel target flux utility (canonical)

    type(parallel_target_flux_t), intent(in) :: parflux_utils_stag

    Parallel target flux utility (staggered)

    type(perp_bnd_flux_t), intent(in) :: perp_bnd_flux_cano

    Perpendicular boundary flux utility (canonical)

    type(perp_bnd_flux_t), intent(in) :: perp_bnd_flux_stag

    Perpendicular boundary flux utility (staggered)

    type(inplane_operators_t), intent(inout) :: opsinplane_cano

    In-plane operators (canonical)

    type(inplane_operators_t), intent(inout) :: opsinplane_stag

    In-plane operators (staggered)

    type(boundaries_braginskii_t), intent(in) :: boundaries

    Boundary information for the Braginskii model

    type(boundaries_neutrals_t), intent(in) :: boundaries_neutrals

    Boundaries related with neutrals module

    real(kind=GP), intent(in), dimension(mesh_cano%get_n_points()) :: cf_buffer_cano

    Buffer function (canonical)

    real(kind=GP), intent(in), dimension(mesh_stag%get_n_points()) :: cf_buffer_stag

    Buffer function (staggered)

    real(kind=GP), intent(in), dimension(mesh_cano%get_n_points()) :: cf_diss_cano

    Dissipation envelope function (canonical)

    real(kind=GP), intent(in), dimension(mesh_stag%get_n_points()) :: cf_diss_stag

    Dissipation envelope function (staggered)

    integer, intent(in) :: isnaps

    Braginskii model snapshot number

    real(kind=GP), intent(in) :: tau

    Time

    type(variable_t), intent(inout) :: ne

    Electron density

    type(variable_t), intent(inout) :: te

    Electron temperature

    type(variable_t), intent(inout) :: ti

    Ion temperature

    type(variable_t), intent(inout) :: pot

    Electrostatic potential

    type(variable_t), intent(inout) :: vort

    Generalised vorticity

    type(variable_t), intent(inout) :: upar

    Parallel ion velocity

    type(variable_t), intent(inout) :: jpar

    Parallel current

    type(variable_t), intent(inout) :: apar

    Parallel electromagnetic potential

    type(variable_t), intent(inout) :: apar_fluct

    Parallel electromagnetic potential fluctation

    type(gyroviscosity_t), intent(inout) :: gstress

    Gyroviscosity

    type(variable_t), intent(inout) :: neutrals_dens

    Neutrals density

    type(variable_t), intent(inout) :: neutrals_parmom

    Neutrals parallel momentum

    type(variable_t), intent(inout) :: neutrals_pressure

    Neutrals pressure

    real(kind=GP), intent(in), dimension(mesh_cano%get_n_points_inner()) :: src_ne

    Particle source values on inner mesh points

    real(kind=GP), intent(in), dimension(mesh_cano%get_n_points_inner()) :: src_te

    Electron temperature source values on inner mesh points

    real(kind=GP), intent(in), dimension(mesh_cano%get_n_points_inner()) :: src_ti

    Ion temperature source values on inner mesh points

    real(kind=GP), intent(in), dimension(mesh_cano%get_n_points_inner()) :: src_upar

    Parallel momentum source values on inner mesh points

    real(kind=GP), intent(in), dimension(mesh_cano%get_n_points_inner()) :: src_vort

    Vorticity source values on inner mesh points

    type(sources_external_t), intent(inout) :: sources_external

    External sources


Derived Types

type, public ::  diagnostics_braginskii_t

Wrapper type containing diagnostic groups

Components

Type Visibility Attributes Name Initial
type(diagnostics_scalar_t), public :: scalar

Scalar diagnostics group

type(diagnostics_zonal_t), public :: zonal

Zonal diagnostics group

type(diagnostics_lineout_t), public :: lineout

Lineout diagnostics group

type(diagnostics_field_t), public :: field

Field diagnostics type

type(checkpoint_monitor_t), public :: clock

Internal checkpoint monitor for computing and writing diagnostics

Type-Bound Procedures

procedure , public :: init => init_diagnostics Interface
procedure , public :: drive => drive_diagnostics Interface