SimulationInputs Derived Type

type, public :: SimulationInputs

Simulation settings structure


Contents

Source Code


Components

TypeVisibility AttributesNameInitial
integer(kind=Int32), public :: shot_number

Shot Number

real(kind=Float64), public :: time

Shot time [s]

character(len=charlim), public :: runid =''

FIDASIM run ID

character(len=charlim), public :: result_dir =''

Result directory

character(len=charlim), public :: tables_file =''

Atomic tables file

character(len=charlim), public :: geometry_file =''

FIDASIM input file containing geometric quantities

character(len=charlim), public :: equilibrium_file =''

FIDASIM input file containing the plasma parameters and fields

character(len=charlim), public :: distribution_file =''

FIDASIM input file containing the fast-ion distribution

character(len=charlim), public :: neutrals_file =''

FIDASIM output/input file containing beam neutral density. Used when load_neutrals is set.

integer, public :: seed

Random number generator seed

integer(kind=Int64), public :: n_fida

Number of Active FIDA mc markers

integer(kind=Int64), public :: n_pfida

Number of Passive FIDA mc markers

integer(kind=Int64), public :: n_npa

Number of Passiv NPA mc markers

integer(kind=Int64), public :: n_pnpa

Number of Passive NPA mc markers

integer(kind=Int64), public :: n_nbi

Number of neutral beam mc markers

integer(kind=Int64), public :: n_dcx

Number of direct charge exchange (DCX) mc markers

integer(kind=Int64), public :: n_halo

Number of halo mc markers

integer(kind=Int64), public :: n_birth

Number of birth particles per n_nbi

integer(kind=Int32), public :: calc_spec

Calculate spectra: 0 = off, 1=on

integer(kind=Int32), public :: calc_beam

Calculate beam densities: 0 = off, 1=on

integer(kind=Int32), public :: calc_nbi_dens

Calculate neutral beam density: 0 = off, 1=on

integer(kind=Int32), public :: calc_dcx_dens

Calculate Direct Charge Exchange (DCX) density: 0 = off, 1=on

integer(kind=Int32), public :: calc_halo_dens

Calculate Thermal Halo density: 0 = off, 1=on

integer(kind=Int32), public :: calc_brems

Calculate bremmstruhlung: 0 = off, 1=on

integer(kind=Int32), public :: calc_bes

Calculate NBI: 0 = off, 1=on

integer(kind=Int32), public :: calc_dcx

Calculate DCX: 0 = off, 1=on

integer(kind=Int32), public :: calc_halo

Calculate Halo: 0 = off, 1=on

integer(kind=Int32), public :: calc_cold

Calculate Cold D-alpha: 0 = off, 1=on

integer(kind=Int32), public :: calc_fida

Calculate Active FIDA: 0 = off, 1=on

integer(kind=Int32), public :: calc_pfida

Calculate Passive FIDA: 0 = off, 1=on

integer(kind=Int32), public :: tot_spectra

Total number of spectral switches on

integer(kind=Int32), public :: load_neutrals

Load neutrals from file: 0 = off, 1=on

integer(kind=Int32), public :: calc_npa

Calculate Active NPA: 0 = off, 1=on, 2=on++

integer(kind=Int32), public :: calc_pnpa

Calculate Passive NPA: 0 = off, 1=on, 2=on++

integer(kind=Int32), public :: calc_fida_wght

Calculate FIDA weight: 0 = off, 1=on, 2=on++

integer(kind=Int32), public :: calc_npa_wght

Calculate NPA weights: 0 = off, 1=on, 2=on++

integer(kind=Int32), public :: calc_birth

Calculate birth profile: 0 = off, 1=on

integer(kind=Int32), public :: calc_neutron

Calculate neutron flux: 0 = off, 1=on, 2=on++

integer(kind=Int32), public :: flr

FLR correction: 0=off, 1=1st order(vxb/omega), 2=2nd order correction

integer(kind=Int32), public :: split

Split signals by fast ion class: 0=off, 1=on

integer(kind=Int32), public :: verbose
real(kind=Float64), public :: ab

Atomic mass of beam neutrals

integer(kind=Int32), public :: impurity_charge

Impurity proton number

real(kind=Float64), public :: ai

Atomic mass of thermal ions

integer(kind=Int32), public :: dist_type

Type of fast-ion distribution

integer(kind=Int32), public :: nlambda

Number of wavelength to calculate

real(kind=Float64), public :: dlambda

Wavelength spacing [nm]

real(kind=Float64), public :: lambdamin

Minimum wavelength [nm]

real(kind=Float64), public :: lambdamax

Maximum wavelength [nm]

integer(kind=Int32), public :: ne_wght

Number of energies in weight functions

integer(kind=Int32), public :: np_wght

Number of pitches in weight functions

integer(kind=Int32), public :: nphi_wght

Number of gyro-angles to average over in weight functions

integer(kind=Int32), public :: nlambda_wght

Number of wavelength to calculate in weight functions

real(kind=Float64), public :: emax_wght

Maximum energy in weight functions [keV]

real(kind=Float64), public :: lambdamin_wght

Minimum wavelength in weight functions [nm]

real(kind=Float64), public :: lambdamax_wght

Maximum wavelength in weight functions [nm]


Source Code

type SimulationInputs
    !+ Simulation settings structure
    integer(Int32) :: shot_number
        !+ Shot Number
    real(Float64)  :: time
        !+ Shot time [s]
    character(charlim) :: runid = ''
        !+ FIDASIM run ID
    character(charlim) :: result_dir = ''
        !+ Result directory
    character(charlim) :: tables_file = ''
        !+ Atomic tables file
    character(charlim) :: geometry_file = ''
        !+ FIDASIM input file containing geometric quantities
    character(charlim) :: equilibrium_file = ''
        !+ FIDASIM input file containing the plasma parameters and fields
    character(charlim) :: distribution_file = ''
        !+ FIDASIM input file containing the fast-ion distribution
    character(charlim) :: neutrals_file = ''
        !+ FIDASIM output/input file containing beam neutral density.
        !+ Used when [[SimulationInputs:load_neutrals]] is set.

    !! Random Number Generator Settings
    integer :: seed
        !+ Random number generator seed

    !! Monte Carlo settings
    integer(Int64) :: n_fida
        !+ Number of Active FIDA mc markers
    integer(Int64) :: n_pfida
        !+ Number of Passive FIDA mc markers
    integer(Int64) :: n_npa
        !+ Number of Passiv NPA mc markers
    integer(Int64) :: n_pnpa
        !+ Number of Passive NPA mc markers
    integer(Int64) :: n_nbi
        !+ Number of neutral beam mc markers
    integer(Int64) :: n_dcx
        !+ Number of direct charge exchange (DCX) mc markers
    integer(Int64) :: n_halo
        !+ Number of halo mc markers
    integer(Int64) :: n_birth
        !+ Number of birth particles per [[SimulationInputs:n_nbi]]

    !! Simulation switches
    integer(Int32) :: calc_spec
        !+ Calculate spectra: 0 = off, 1=on
    integer(Int32) :: calc_beam
        !+ Calculate beam densities: 0 = off, 1=on
    integer(Int32) :: calc_nbi_dens
        !+ Calculate neutral beam density: 0 = off, 1=on
    integer(Int32) :: calc_dcx_dens
        !+ Calculate Direct Charge Exchange (DCX) density: 0 = off, 1=on
    integer(Int32) :: calc_halo_dens
        !+ Calculate Thermal Halo density: 0 = off, 1=on
    integer(Int32) :: calc_brems
        !+ Calculate bremmstruhlung: 0 = off, 1=on
    integer(Int32) :: calc_bes
        !+ Calculate NBI: 0 = off, 1=on
    integer(Int32) :: calc_dcx
        !+ Calculate DCX: 0 = off, 1=on
    integer(Int32) :: calc_halo
        !+ Calculate Halo: 0 = off, 1=on
    integer(Int32) :: calc_cold
        !+ Calculate Cold D-alpha: 0 = off, 1=on
    integer(Int32) :: calc_fida
        !+ Calculate Active FIDA: 0 = off, 1=on
    integer(Int32) :: calc_pfida
        !+ Calculate Passive FIDA: 0 = off, 1=on
    integer(Int32) :: tot_spectra
        !+ Total number of spectral switches on
    integer(Int32) :: load_neutrals
        !+ Load neutrals from file: 0 = off, 1=on
    integer(Int32) :: calc_npa
        !+ Calculate Active NPA: 0 = off, 1=on, 2=on++
    integer(Int32) :: calc_pnpa
        !+ Calculate Passive NPA: 0 = off, 1=on, 2=on++
    integer(Int32) :: calc_fida_wght
        !+ Calculate FIDA weight: 0 = off, 1=on, 2=on++
    integer(Int32) :: calc_npa_wght
        !+ Calculate NPA weights: 0 = off, 1=on, 2=on++
    integer(Int32) :: calc_birth
        !+ Calculate birth profile: 0 = off, 1=on
    integer(Int32) :: calc_neutron
        !+ Calculate neutron flux: 0 = off, 1=on, 2=on++
    integer(Int32) :: flr
        !+ FLR correction: 0=off, 1=1st order(vxb/omega), 2=2nd order correction
    integer(Int32) :: split
        !+ Split signals by fast ion class: 0=off, 1=on
    integer(Int32) :: verbose
        !+ Verbosity: <0 = off++, 0 = off, 1=on, 2=on++

    !! Neutral Beam Settings
    real(Float64)    :: ab
        !+ Atomic mass of beam neutrals

    !! Plasma parameters
    integer(Int32) :: impurity_charge
        !+ Impurity proton number
    real(Float64)  :: ai
        !+ Atomic mass of thermal ions

    !! Distribution settings
    integer(Int32) :: dist_type
        !+ Type of fast-ion distribution

    !! Spectrum parameters
    integer(Int32) :: nlambda
        !+ Number of wavelength to calculate
    real(Float64)  :: dlambda
        !+ Wavelength spacing [nm]
    real(Float64)  :: lambdamin
        !+ Minimum wavelength [nm]
    real(Float64)  :: lambdamax
        !+ Maximum wavelength [nm]

    !! Weight function settings
    integer(Int32) :: ne_wght
        !+ Number of energies in weight functions
    integer(Int32) :: np_wght
        !+ Number of pitches in weight functions
    integer(Int32) :: nphi_wght
        !+ Number of gyro-angles to average over in weight functions
    integer(Int32) :: nlambda_wght
        !+ Number of wavelength to calculate in weight functions
    real(Float64)  :: emax_wght
        !+ Maximum energy in weight functions [keV]
    real(Float64)  :: lambdamin_wght
        !+ Minimum wavelength in weight functions [nm]
    real(Float64)  :: lambdamax_wght
        !+ Maximum wavelength in weight functions [nm]
end type SimulationInputs