boundaries_braginskii_m Module

Parameters



Contents


Derived Types

type, public ::  boundaries_braginskii_t

Datatype for boundary types and values of braginskii model

Components

Type Visibility Attributes Name Initial
type(bndgen_t), public :: ne

For density

type(bndgen_t), public :: pot

For electrostatic potential

type(bndgen_t), public :: vort

For generalised vorticity

type(bndgen_t), public :: apar

For parallel electromagnetic potential

type(bndgen_t), public :: jpar

For parallel current

type(bndgen_t), public :: upar

For generalised vorticity

type(bndgen_t), public :: te

For electron temperature

type(bndgen_t), public :: ti

For ion temperature

type(bndgen_t), public :: qe

For parallel electron heat flux

type(bndgen_t), public :: qi

For parallel ion heat flux

Finalizations Procedures

final :: destructor

Type-Bound Procedures

procedure , public :: init => init_boundaries_braginskii Subroutine

Functions

public function log_bnd(bnddescr, bndval)

Sets bnd value to the logarithm of the prescribed value if the descrpitor is "DIRICHLET". Necessary for ne, te and ti

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: bnddescr

Type of perpendicular boundary condition

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

Value for the perpendicular boundary condition

Return Value real(kind=gp)


Subroutines

public subroutine init_boundaries_braginskii(self, mesh_cano, mesh_stag)

Sets boundary types and values according to parameters

Arguments

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

Instance of the type

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

Mesh (canonical)

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

Mesh (staggered)

public subroutine zonal_neumann_core(comm_handler, mesh, equi, polars, u, v)

Sets Zonal Neumann boundary conditions on u (or v), u_b = , after local Neumann b.c. d/dr u_b_N = 0 had been applied to u. u is flux-surface averaged and the core value is used as a Dirichlet b.c.. For data handling reasons, in- and output can be separated with variable v = .

Arguments

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

Communicators

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

Mesh

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

Equilibrium

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

Polar grid

real(kind=GP), intent(inout), dimension(mesh%get_n_points()) :: u

Variable for which boundary conditions are computed and set

real(kind=GP), intent(inout), optional, dimension(mesh%get_n_points()) :: v

Variable for which boundary conditions are set instead of u

public subroutine destructor(self)

Frees memory associated with boundaries_braginskii

Arguments

Type IntentOptional Attributes Name
type(boundaries_braginskii_t), intent(inout) :: self

Instance of the type