Inputs Deck#
The code uses two input decks, which are located in configs/1d.
The inputs deck contains parameters that are frequently altered. Since frequently altered is subjective, the fields in the inputs deck may change based on user’s needs. Any parameter can be removed from the inputs deck or added from the defaults deck. Here we will describe some of the more commonly used parameters in the inputs deck, but for a full list of parameters and their descriptions see the Defaults page.
Tip
The inputs deck will override the defaults deck when values conflict.
Parameters#
All fitting parameters are found in the parameters: section of the input decks. The fitting parameters are broken up based off their scope.
There must be at least 3 subfields referencing the different species in parameters called electron,
ion-1, and general. If the problem has multiple ion species additional ion species fields can be added
with increasing index numbers, i.e. ion-2, ion-3.
Each species has associated fitting parameters which generally have 4 attributes: val, active,
lb, and ub. val is the initial value for a fitted parameter or the constant value for a
static parameter. active is a boolean determining if the parameter is being fit, so parameters with active: False
will be held at the value in val. ub and lb are upper and lower bounds respectively
for the parameter and are generally hard constraints on the values.
If fields require inputs other than the standard 4 attributes, the additional attributes will be described in the documentation for that field.
Electron Parameters#
These parameters are found in the parameters:electron section of the input deck and describe various properties of the electrons.
Teis the electron temperature in keVneis the electron density in \(10^{20}\) cm-3feis the electron velocity distribution function. Like other parameters it has an active flag which controls whether it is being fit, but the other fields function differently.typespecifies the class of distribution function. Options aredlmfor a Dum-Langdon-Matte distribution also known as a super-gaussian,mxfor a Maxwellian distribution, andarbitraryfor an arbitrary numericaly defined distribution. For most purposes thedlmoption is sufficent and recomended, while themxoption only works iffe:activeis set to False butdlmcan also produce a Maxwellian distribution if the super-Gaussian order is set to 2. Thearbitraryoption allow the code to alter the distribution function point by point and is only tractable for special cases.paramsis the container for various model specific parameters.mis the super-Gaussian order for the DLM distribution function. At m=2 this reduces to a Maxwellian distribution. When fitting the distribution function is activated withfe:activeandtype: dlmthen the super-gausian order will be fit as the free parameter of the distribution. theval,lb, andubfields for this parameter function the same as other parameters.matteis a boolean which determines if the DLM distribution function follow the Matte formula which specifies the super-gaussian order based on the electron temperature, ionization state, and overlapped laser intensity. This is an alternative to fitting the super-Gaussian order and has been found to be a good model for many experiements. Ifmatteis set to True then themparameter will be ignored and the super-Gaussian order will be determined by the Matte formula and therefore is not compatable with fitting the super-Gaussian order. Whenmatteis used, the super-Gaussian will still evolve as the temperature and ionization state evolve to maintain consistency with the Matte formula. See Matte et al. (1988).intensis the \(3\omega\) laser intensity in units of \(10^{14}\) W/cm-2 and is used in the Matte formula to determine the super-Gaussian order. This is only relevant ifmatteis set to True.
Ion Parameters#
These parameters are found in the parameters:ion-1 section of the input deck and describe various properties of the ions. If multiple ion species are being fit additional sections such as parameters:ion-2 which have the same parameters as parameters:ion-1 can be appended.
Tiis the ion temperature in keVsameis a special field for ion temperature; if multiple ions are used subsequent ions can have this boolean set to True in order to use a single ion temperature for all ion species
Zis the average ionization state of the parent speciesAis the atomic mass number this should always be a constant and not fitfractis the element ratio for multispecies plasmas; the sum offractfor all species is held constant at 1. So if there are 2 ion species and the first hasfract: 0.3then 30% of the ions are of that species. If the sum of thefractfields for all species is not 1 then the code will automatically rescale them to sum to 1. It is possible to fit thefractfield for one or more species, but this parameter is self normalized between 0 and 1 so it does not have bounds.Vais the species flow velocity in 10^6 cm/s
Added in version 0.2.0: Va is now associated with indivdual ions allowing for counter-streaming plasmas or other complicated flow configurations. In previous versions the flow was a general parameter that was applied to all ions.
General parameters#
These parameters are found in the parameters:general section of the input deck and describe various properties of the plasma that are not specific to a single species.
amp1is the blue-shifted EPW amplitude multiplier with 1 being the maximum of the dataamp2is the red-shifted EPW amplitude multiplier with 1 being the maximum of the dataamp3is the IAW amplitude multiplier with 1 being the maximum of the datalamis the probe wavelength in nanometers; a small shift (<5 nm) can be used to mimic wavelength calibration uncertaintyTe_gradientis the electron temperature spatial gradient in % ofTe.Tewill take the formlinspace(Te-Te*Te_gradient.val/200, Te+Te*Te_gradient.val/200, Te_gradient.num_grad_points).num_grad_pointsis the number of points in the spatial gradient. A higher number of points allows for a smoother gradient but also increases the computational cost of the fit as a spectrum is calculated for each gradient point.num_grad_pointsshould be left at 1 if no gradient is desired.valis the value of the gradient in % ofTe. For example ifTeis 1 keV andvalis 50 then the gradient will go from 0.75 keV to 1.25 keV.
ne_gradientis the electron density spatial gradient in % ofne.newill take the formlinspace(ne-ne*ne_gradient.val/200, ne+ne*ne_gradient.val/200, ne_gradient.num_grad_points). This works the same asTe_gradientbut for the electron density instead of the temperature.udis the electron drift velocity (relative to the ions) in 10^6 cm/s
MLFlow#
When running all code output is managed by MLFlow. This included the fitted parameters as well as the automated plots.
A copy of the inputs decks will also be saved by MLFlow for easier reference. The MLFlow options can be found in the mlflow: section.
experimentis the name of the experiment folder that the run will be associated with. If running locally the experiment folder will be created in themlrunsfolder in the current directory but will be named with a UUID. The MLFlow UI will display the experiment name and run name for easier navigation.runis the name of the analysis or forward model run. Run names do not need to be unique as they are also associated with a UUID. It is recommended that this is changed before each run.
Data#
The data: section contains the specifics on which shot and what region of the shot should be analyzed.
shotnumis the OMEGA shot number. For non-OMEGA data please contact the developers.load_ion_specis a boolean determining if IAW data will be loaded.load_ele_specis a boolean determining if EPW data will be loaded.fit_IAWis a boolean determining if IAW data will be fit by including it in the loss metric.fit_EPWbis a boolean determining if the blue shifted EPW data will be fit by including it in the loss metric.fit_EPWris a boolean determining if the red shifted EPW data will be fit by including it in the loss metric.lineoutsspecifies the region of the data to take lineouts from.typespecifies the units that the lineout locations are in. Options areumfor microns in imaging data,psfor picoseconds in time resolved data,pixelis the general option to specify locations in pixel numbers.startthe first location where a lineout will be taken.endthe last location where a lineout will be taken.skipthe distance between lineouts in the same units specified bytype.
backgroundspecifies the location where the background will be analyzed.typethere are multiple background algorithms available. This field is used to select the appropriate one. The options areFitin order to fit a model to the background,Shotin order to subtract a background shot, andpixelto specify a location with background data to be subtracted.sliceis the location for the background algorithm. IfFitorpixelare used this is the pixel location for the background lineout. IfShotis used this is the shot number for the background shot.
Other options#
The other: section includes options specifying the types of data that are being fit and other options
on how to perform the fit.
include_gainsis a boolean determining whether to compute the SRS and SBS amplification of the Thomson scattered light. Havinginclude_gainsset to True will require the pump intensity and beam diameter to be specified in theother:section of the input deck.Ipump_14is the intensity relevant to computing the SRS and SBS amplification in units of \(10^{14}\) W/cm-2. This is likely the probe beam intensity for most experiments at that is the beam that is overlapped with the scattering volume, but for some experiments it may differ.beam_diam_umis the beam diameter in microns of the beam that pumps SRS and SBS, again this is likely the probe beam diameter. This is used in conjunction with the scattering angle to compute the gain length for the SRS and SBS amplification.refitis a boolean determining if poor fits will attempt to be refit; it is recommended this is only turned on once most fits look good.refit_threshis the value of the loss metric above which refits will be performed; this threshold must be determined empirically from the other fits.calc_sigmasis a boolean determining if a Hessian will be computed to determine the uncertainty in fitted parameters.
Deprecated since version 0.2.0: calc_sigmas is currently deprecated. Implementation of uncertainty quantification is planned for a future release but the current method of computing sigmas from the Hessian is not robust and therefore has been deprecated until a more robust method can be implemented.