polarisation_advance Subroutine

public subroutine polarisation_advance(comm_handler, equi, mesh_cano, hsolver_cano, penalisation_cano, polars_cano, boundaries, tstep_vort, pot_tseq, ne_tseq, ti_tseq, pot_firstsolve_store, co, nev, tiv, dvort, pot_pen, pot_adv, vort_adv, sinfo, res, sinfo_zon, res_zon)

Advances vorticity in time and solves for pential

Arguments

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

Communicators

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

Equilibrium

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

Mesh (canonical)

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

Elliptic (2D) solver on canonical mesh

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

Penalisation (canonical)

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

Polar grid and operators (canonical)

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

Boundary information for the BRAGINSKII model

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

Time-step integrator for vorticity equation

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

Time sequence of electrostatic potential at time-points, t, t-1, t-2,...t-(order-1)

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

Time sequence of density values at time-points, t, t-1, t-2,...t-(order-1)

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

Time sequqence of ion temperature values at time-points, t, t-1, t-2,...t-(order-1)

type(multistep_storage_t), intent(inout) :: pot_firstsolve_store

Storage of electrostatic potential values at time-points, t, t-1, t-2,...t-(order-1) - first solve - only used with BND_BRAGTYPE_ZONAL_NEUMANN

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

Polarisation coefficient

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

Density at t+1

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

Ion temperature at t+1

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

Right hand side of vorticity equation

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

Penalisation values for electrostatic potential

real(kind=GP), intent(inout), dimension(mesh_cano%get_n_points()) :: pot_adv

Initial guess on input / values of electrostatic potential at time t+1 on output

real(kind=GP), intent(out), dimension(mesh_cano%get_n_points()) :: vort_adv

Values of Vorticity at time t+1

integer, intent(out) :: sinfo

Infor from solver

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

Residual of solve

integer, intent(out) :: sinfo_zon

Info of solver required for zonal (second) solve in case of zonal Neumann boundary condition

real(kind=GP), intent(out) :: res_zon

Residual of zonal (second) solve in case of zonal Neumann boundary condition


Contents