timestep_neutrals Subroutine

public subroutine timestep_neutrals(self, comm_handler, equi, equi_on_cano, equi_on_stag, mesh_cano, mesh_stag, hsolver_cano, hsolver_stag, map, penalisation_cano, penalisation_stag, parflux_cano, parflux_stag, perp_bnd_flux_cano, perp_bnd_flux_stag, opsinplane_cano, opsinplane_stag, boundaries_neutrals, tau, ne, pot, upar, jpar, apar_fluct, te, ti, neutrals_dens, neutrals_parmom, neutrals_pressure, tstep_neutrals_dens, tstep_neutrals_parmom, tstep_neutrals_pressure, sinfo, res, success_neutrals)

Advances neutrals quantities from t to t+1

Type Bound

neutrals_module_t

Arguments

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

Instance of class

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(parallel_target_flux_t), intent(in) :: parflux_cano

Parallel target flux utility (canonical)

type(parallel_target_flux_t), intent(in) :: parflux_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_neutrals_t), intent(inout) :: boundaries_neutrals

Boundary information for the NEUTRALS model

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

Time

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

Plasma density at timestep t

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

Electrostatic potential

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

Parallel ion velocity

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

Parallel current

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

Fluctuation of apar used for flutter operators

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

Electron temperature at timestep t

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

Ion temperature at timestep t

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

Neutrals density, on input at t, on output advanced to t+1

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

Neutrals parallel momentum, on input at t, on output advanced to t+1

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

Neutrals pressure, on input at t, on output advanced to t+1

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

Time-step integrator for neutrals density

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

Time-step integrator for neutrals parallel momentum

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

Time-step integrator for neutrals pressure

integer, intent(out), dimension(4) :: sinfo

Info from elliptic solver

real(kind=GP), intent(out), dimension(4) :: res

Residual of solution of elliptic solver

logical, intent(out) :: success_neutrals

Success flag for timestep


Contents