timestep_braginskii_m Module

Implementation of BRAGINSKII model



Contents


Variables

Type Visibility Attributes Name Initial
real(kind=GP), public, dimension(:), allocatable, save :: apar_pen_guess
real(kind=GP), public, dimension(:), allocatable, save :: src_floor_ne

Subroutines

public subroutine timestep_braginskii(comm_handler, equi, equi_on_cano, equi_on_stag, mesh_cano, mesh_stag, hsolver_cano, hsolver_stag, map, penalisation_cano, penalisation_stag, polars_cano, polars_stag, opsinplane_cano, opsinplane_stag, boundaries, cf_buffer_cano, cf_buffer_stag, cf_diss_cano, cf_diss_stag, tau, ne, src_ne, tstep_continuity, pot, vort, src_vort, tstep_vort, upar, src_upar, tstep_parmom, jpar, apar, apar_fluct, tstep_ohm, te, src_te, tstep_etemp, ti, src_ti, tstep_itemp, gstress, tinfo, rinfo, success_plasma)

Evolves variables a single time-step according to BRAGINSKII model ... parallel mappings - map to canonical

Arguments

Type IntentOptional Attributes Name
type(comm_handler_t), intent(in) :: comm_handler

Communicators

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

Equilibrium

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

Equilibrim quantities on canonical mesh

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

Equilibrim quantities on staggered mesh

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

Mesh (canonical) within poloidal plane

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

Mesh (staggered) within poloidal plane

class(helmholtz_solver_t), intent(inout) :: hsolver_cano

Elliptic (2D) solver on canonical mesh

class(helmholtz_solver_t), intent(inout) :: hsolver_stag

Elliptic (2D) solver on staggered mesh

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(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(inout) :: boundaries

Boundary information for the BRAGINSKII model

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

Buffer function on canonical mesh

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

Buffer function on staggered mesh

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

Dissipation envelope function on canonical mesh

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

Dissipation envelope function on canonical mesh

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

Time, at output tau + dtau

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

Electron density

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

Particle source on inner grid points

type(karniadakis_t), intent(inout) :: tstep_continuity

Time-step integrator for electron density

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

Electrostatic potential

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

Generalised vorticity

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

Vorticity source on inner grid points

type(karniadakis_t), intent(inout) :: tstep_vort

Time-step integrator for vorticity equation

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

Parallel ion velocity

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

Parallel ion velocity source on inner grid points

type(karniadakis_t), intent(inout) :: tstep_parmom

Time-step integrator for parallel momentum equation

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

Parallel current

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

Parallel electromagnetic potential

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

Fluctuation of apar used for flutter operators

type(karniadakis_t), intent(inout) :: tstep_ohm

Time-step integrator for Ohm's law

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

Electron temperature

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

Electron temperature source on inner grid points

type(karniadakis_t), intent(inout) :: tstep_etemp

Time-step integrator for electron temperature equation

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

Ion temperature

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

Ion temperature source on inner grid points

type(karniadakis_t), intent(inout) :: tstep_itemp

Time-step integrator for ion temperature equation

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

Gyroviscosity

integer, intent(inout), dimension(tinfo_size) :: tinfo

Info status (integers)

real(kind=GP), intent(inout), dimension(tinfo_size,2) :: rinfo

Info status (float)

logical, intent(out) :: success_plasma

Success flag for timestep