sources_external_m Module

External sources



Contents


Interfaces

interface

  • public subroutine init_source_individual(self, filename)

    Initialises an individual source

    Arguments

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

    Instance of type

    character(len=*), intent(in) :: filename

    Filename to read parameters from

interface

  • public subroutine display_source_individual(self)

    Displays parameters of an individual source

    Arguments

    Type IntentOptional Attributes Name
    class(source_individual_t), intent(in) :: self

    Instance of type


Derived Types

type, public, extends(source_individual_t) ::  source_none_t

Parameters for none source

Type-Bound Procedures

procedure , public , :: init => init_source_none Subroutine
procedure , public , :: display => display_source_none Subroutine

type, public, extends(source_individual_t) ::  source_zonal_t

Zonal adaptive source Damps zonal averaged quantities to prescribed profile

Components

Type Visibility Attributes Name Initial
real(kind=GP), public :: width = 1.0_GP

Width of source (rho space)

Type-Bound Procedures

procedure , public , :: eval_source_zonal Subroutine
procedure , public , :: init => init_source_zonal Subroutine
procedure , public , :: display => display_source_zonal Subroutine

type, public, extends(source_individual_t) ::  source_constantrate_t

Source with constant rate (non adaptive)

Type-Bound Procedures

procedure , public , :: eval_source_constantrate Subroutine
procedure , public , :: init => init_source_constantrate Subroutine
procedure , public , :: display => display_source_constantrate Subroutine

type, public ::  sources_external_t

External sources

Type-Bound Procedures

procedure , public :: init => init_sources_external Subroutine
procedure , public :: eval => eval_sources_external Subroutine

type, public, extends(source_individual_t) ::  source_gaussian_t

Class for gaussian sources, contains set of individual source points

Components

Type Visibility Attributes Name Initial
logical, public :: source_gaussian_on

Switch whether or not to use gaussian source module

real(kind=GP), public, dimension(:), allocatable :: src_coeffs

Precomputed coefficients used for computing localised sources during timestepping

Finalizations Procedures

final :: destructor

Type-Bound Procedures

procedure , public , :: init => init_source_gaussian Subroutine
procedure , public , :: set_coeffs Subroutine
procedure , public , :: display => display_source_gaussian Subroutine
procedure , public , :: eval_source_gaussian Subroutine

Subroutines

public subroutine init_source_gaussian(self, filename)

Initialize gaussian source from input file

Arguments

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

Instance of class

character(len=*), intent(in) :: filename

Path to input file

public subroutine set_coeffs(self, comm_handler, mesh_cano, map, penalisation_cano)

Compute the coefficient that matches the total input rate

Arguments

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

Instance of class

type(comm_handler_t), intent(in) :: comm_handler

Communicators

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

Mesh (canonical) within poloidal plane

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

Parallel map

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

Penalisation (canonical)

public subroutine eval_source_gaussian(self, mesh, map, source_on_mesh, i_source)

Compute neutrals density source from contributions of gaussian centers

Arguments

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

Instance of class

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

Mesh (canonical or staggered) within poloidal plane

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

Parallel map

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

Results of the source on the each mesh point

integer, optional :: i_source

Index of gaussian source to evaluate. If not provided, evaluates sum of all gaussian sources

public subroutine display_source_gaussian(self)

Display parameters related to the gas puff module

Arguments

Type IntentOptional Attributes Name
class(source_gaussian_t), intent(in) :: self

Instance of class

public subroutine destructor(self)

Destructor

Arguments

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

Instance of the type

public subroutine init_sources_external(self)

Initialises (reads parameters) sources_external

Arguments

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

Instance of class

public subroutine eval_sources_external(self, comm_handler, equi_storage, mesh, polars, tau, ne, pot, vort, upar, jpar, apar, te, ti, src_ne, src_te, src_ti)

Evaluates external sources

Arguments

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

Instance of class

type(comm_handler_t), intent(in) :: comm_handler

Communicators

class(equilibrium_storage_t), intent(in) :: equi_storage

Equilibrium storage

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

Mesh within poloidal plane

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

Polar grid and operators

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

Time, at output tau + dtau

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

Electron density

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

Electrostatic potential

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

Generalised vorticity

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

Parallel ion velocity

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

Parallel current

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

Parallel electromagnetic potential

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

Electron temperature

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

Ion temperature

real(kind=GP), intent(inout), dimension(mesh%get_n_points_inner()) :: src_ne

Particel source on inner grid points

real(kind=GP), intent(inout), dimension(mesh%get_n_points_inner()) :: src_te

Electron temperature source on inner grid points

real(kind=GP), intent(inout), dimension(mesh%get_n_points_inner()) :: src_ti

Ion temperature source on inner grid points

public subroutine init_source_none(self, filename)

Initialises source=none

Arguments

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

Instance of type

character(len=*), intent(in) :: filename

Filename to read parameters from

public subroutine display_source_none(self)

Displays source_none parameters

Arguments

Type IntentOptional Attributes Name
class(source_none_t), intent(in) :: self

Instance of type

public subroutine init_source_zonal(self, filename)

Initialises zonal source

Arguments

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

Instance of type

character(len=*), intent(in) :: filename

Filename to read parameters from

public subroutine display_source_zonal(self)

Displays zonal source parameters

Arguments

Type IntentOptional Attributes Name
class(source_zonal_t), intent(in) :: self

Instance of type

public subroutine eval_source_zonal(self, equi_storage, mesh, polars, uzon, src_u)

Evaluates zonal source

Arguments

Type IntentOptional Attributes Name
class(source_zonal_t), intent(in) :: self

Instance of type

class(equilibrium_storage_t), intent(in) :: equi_storage

Equilibrium storage

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

Mesh

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

Polars

real(kind=GP), intent(in), dimension(polars%grid%get_nrho()) :: uzon

Zonal values of quantity u that is sourced

real(kind=GP), intent(inout), dimension(mesh%get_n_points_inner()) :: src_u

Source values on inner mesh points

public subroutine init_source_constantrate(self, filename)

Initialises constantrate source

Arguments

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

Instance of type

character(len=*), intent(in) :: filename

Filename to read parameters from

public subroutine display_source_constantrate(self)

Displays constantrate source parameters

Arguments

Type IntentOptional Attributes Name
class(source_constantrate_t), intent(in) :: self

Instance of type

public subroutine eval_source_constantrate(self, equi_storage, mesh, src_u)

Evaluates constantrate source

Arguments

Type IntentOptional Attributes Name
class(source_constantrate_t), intent(in) :: self

Instance of type

class(equilibrium_storage_t), intent(in) :: equi_storage

Equilibrium storage

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

Mesh

real(kind=GP), intent(inout), dimension(mesh%get_n_points_inner()) :: src_u

Source values on inner mesh points