Source code for cfspopcon.named_options

"""Enumerators to constrain options for functions."""

from enum import Enum, auto


[docs] class ProfileForm(Enum): """Methods to calculate nT profiles.""" analytic = auto() prf = auto()
[docs] class RadiationMethod(Enum): """Methods to calculate radiation losses.""" Inherent = "Bremsstrahlung and synchrotron radiation only" PostJensen = "Impurity radiation, using a coronal equilibrium model from Post & Jensen 1977" MavrinCoronal = "Impurity radiation, using a coronal equilibrium model from Mavrin 2018" MavrinNoncoronal = "Impurity radiation, using a non-coronal model from Mavrin 2017" Radas = "Impurity line and bremsstrahlung radiation, using coronal Lz curves from Radas"
[docs] class AtomicSpecies(Enum): """Enum of possible atomic species.""" Hydrogen = auto() Deuterium = auto() Tritium = auto() Helium = auto() Lithium = auto() Beryllium = auto() Boron = auto() Carbon = auto() Nitrogen = auto() Oxygen = auto() Neon = auto() Argon = auto() Krypton = auto() Xenon = auto() Tungsten = auto() def __lt__(self, other: "AtomicSpecies") -> bool: """Implements '<' to allow sorting.""" return self.value < other.value def __gt__(self, other: "AtomicSpecies") -> bool: """Implements '>' to allow sorting.""" return self.value > other.value
[docs] class MomentumLossFunction(Enum): """Select which SOL momentum loss function to use.""" KotovReiter = auto() Sang = auto() Jarvinen = auto() Moulton = auto() PerezH = auto() PerezL = auto()
[docs] class LambdaQScaling(Enum): """Options for heat flux decay length scaling.""" Brunner = auto() EichRegression9 = auto() EichRegression14 = auto() EichRegression15 = auto()
[docs] class ConfinementPowerScaling(Enum): """Options for which confinement threshold power scaling to use.""" I_mode_AUG = auto() I_mode_HubbardNF17 = auto() I_mode_HubbardNF12 = auto() H_mode_Martin = auto()
[docs] class VertMagneticFieldEq(Enum): """Vertical magnetic field equation from various papers. NOTE: the choice of Barr vs. Mitarai also affects invmu_0_dLedR and the vertical_magnetic_field_mutual_inductance. """ Mit_and_Taka_Eq13 = auto() Barr = auto() Jean = auto() MagneticFusionEnergyFormulary = auto()
[docs] class SurfaceInductanceCoeffs(Enum): """Coefficients to calculate external inductance components.""" Hirshman = auto() Barr = auto()