basic_normalization_class Module

Houses simple normalization class based on electron quantities and using JSON file data


Used by


Interfaces

interface

  • private module subroutine initNormalizationFromJSON(this, jsonCont, mpiCont)

    Initialize normalization based on config.json, loading temperature, density, and reference ion charge. The resulting object will have the following normalization quantities:

    1. density (in m^{-3})
    2. temperature (in eV)
    3. reference ion Z
    4. velocity (used for the velocity grid)
    5. speed (here equal to the velocity)
    6. time (normalized to e-i collision time)
    7. length (velocity * time)
    8. EField (here elMass * velocity/(elCharge * time))
    9. heatFlux (here elMass * density * velocity^3 /2)
    10. crossSection (here 1/(timedensityvelocity))

    All names taken from key_names module

    Arguments

    Type IntentOptional Attributes Name
    class(BasicNormalization), intent(inout) :: this
    type(JSONController), intent(inout) :: jsonCont

    JSONController used to get parameters from ./config.json

    type(MPIController), intent(inout) :: mpiCont

    MPIController used with JSONController


Derived Types

type, public, extends(Normalization) ::  BasicNormalization

Basic normalization based on electron quantities and containing most common values

Components

Type Visibility Attributes Name Initial
logical, public :: userDefined = .false.

True only if user explicitly sets it to true

Type-Bound Procedures

procedure, public :: isDefined => isDefinedObject
procedure, public :: makeDefined => makeDefinedObject
procedure, public :: makeUndefined => makeUndefinedObject
procedure, public :: getNormalizationValue
procedure, public :: getCustomNormalization
procedure, public :: setNormalizationVals
procedure, public :: init => initNormalizationFromJSON