drive_diagnostics Interface

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)

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

Description

Main diagnostics routine