mms_braginskii_m Module

Implementation of Method of Manufactured Solutions for BRAGINSKII model in circular geometry


Uses


Contents


Functions

public function mms_sol_braginskii_ne(equi, x, y, z, t)

MMS solution for electron density

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

Return Value real(kind=gp)

public function mms_sol_braginskii_pot(equi, x, y, z, t)

MMS solution for electrostatic potential

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

Return Value real(kind=gp)

public function mms_sol_braginskii_vort(equi, x, y, z, t)

MMS solution for generalised vorticity

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

Return Value real(kind=gp)

public function mms_sol_braginskii_upar(equi, x, y, z, t)

MMS solution for parallel ion velocity

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

Return Value real(kind=gp)

public function mms_sol_braginskii_jpar(equi, x, y, z, t)

MMS solution for parallel current

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

Return Value real(kind=gp)

public function mms_sol_braginskii_apar(equi, x, y, z, t)

MMS solution for parallel electromagnetic potential

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

Return Value real(kind=gp)

public function mms_sol_braginskii_psipar(equi, x, y, z, t)

MMS solution for generalised electromagnetic potential (aixiliary)

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

Return Value real(kind=gp)

public function mms_sol_braginskii_te(equi, x, y, z, t)

MMS solution for electron temperature

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

Return Value real(kind=gp)

public function mms_sol_braginskii_ti(equi, x, y, z, t)

MMS solution for ion temperature

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

Return Value real(kind=gp)

public function mms_sol_braginskii_qe(equi, x, y, z, t)

MMS solution for electron heat flux

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

Return Value real(kind=gp)

public function mms_sol_braginskii_qi(equi, x, y, z, t)

MMS solution for ion heat flux

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

Return Value real(kind=gp)

public function mms_source_braginskii_continuity(equi, x, y, z, t, chi, lognepen, src_ne)

MMS source for continuity equation

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

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

Value of characteristc function of penalisation

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

Value that shall be penalised to

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

Particle source value

Return Value real(kind=gp)

public function mms_source_braginskii_vorticity(equi, x, y, z, t, chi, vortpen, src_vort)

MMS source for continuity equation

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

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

Value of characteristc function of penalisation

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

Value that shall be penalised to

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

Vorticity source value

Return Value real(kind=gp)

public function mms_source_braginskii_parmomentum(equi, x, y, z, t, chi, uparpen, src_upar)

MMS source for parallel momentum equation

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

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

Value of characteristc function of penalisation

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

Value that shall be penalised to

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

Parallel momentum source value

Return Value real(kind=gp)

public function mms_source_braginskii_ohm(equi, x, y, z, t, chi, psiparpen)

MMS source for Ohm's law

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

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

Value of characteristc function of penalisation

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

Value that shall be penalised to

Return Value real(kind=gp)

public function mms_source_braginskii_etemp(equi, x, y, z, t, chi, logtepen, src_te)

MMS source for electron temperature equation

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

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

Value of characteristc function of penalisation

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

Value that shall be penalised to

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

Electron temperature source value

Return Value real(kind=gp)

public function mms_source_braginskii_itemp(equi, x, y, z, t, chi, logtipen, src_ti)

MMS source for ion temperature equation

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

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

Value of characteristc function of penalisation

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

Value that shall be penalised to

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

Ion temperature source value

Return Value real(kind=gp)

public function mms_source_braginskii_landau_e(equi, x, y, z, t, landaualpha, landaubeta)

MMS source for elliptic Landau heat flux equation

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

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

Numerical parameter alpha of current Lorentzian

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

Numerical parameter beta of current Lorentzian

Return Value real(kind=gp)

public function mms_source_braginskii_landau_i(equi, x, y, z, t, landaualpha, landaubeta)

MMS source for elliptic Landau heat flux equation

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout) :: equi

Equilibrium

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

x-coordinate

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

y-coordinate

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

Axial coordinate z (represented by toroidal coordinate)

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

Time

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

Numerical parameter alpha of current Lorentzian

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

Numerical parameter beta of current Lorentzian

Return Value real(kind=gp)


Subroutines

public subroutine mms_diagnostics_braginskii(comm_handler, equi, mesh_cano, mesh_stag, map, tau, ne, pot, vort, upar, jpar, apar, te, ti)

Prints information on numerical errors of numerical solutions

Arguments

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

Communicators

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

Equilibrium

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

Mesh (canonical)

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

Mesh (staggered)

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

Mesh within poloidal plane

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

Time

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

Numerical solution for electron density

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

Numerical solution for electrostatic potential

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

Numerical solution for generalised vorticity

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

Numerical solution for parallel ion velocity

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

Numerical solution for parallel current

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

Numerical solution for parallel electromagnetic potential

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

Numerical solution for electron temperature

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

Numerical solution for ion temperature