Raiju package
Primary Package
kaipy.raiju.dst module
- kaipy.raiju.dst.DPSDst_mhdrcm(rmI: H5Info, s5: Group, rmax=6, doMHD=False, br=None, areaCC=None)
Same as DPSDst_raiju but for RCM
- kaipy.raiju.dst.DPSDst_raiju(raiI: RAIJUInfo, s5: Group, rmax=6)
Calculate DPSDst [nT] for a raiju step If return2D=True, gives back full 2D map, where each value is that cell’s contribution to DPSDst.
This will ignore isGood, if provided, but will manually ignore RAIJUINACTIVE cells
If return2D=False (default), returns single value that sums over all isGood=True
- kaipy.raiju.dst.calcMRIonoVars(s5)
- kaipy.raiju.dst.create_command_line_parser()
- kaipy.raiju.dst.main()
kaipy.raiju.m2m module
Diagnostic tools to check mapping MHD moments to etas and back
- kaipy.raiju.m2m.checkMom2Mom_pnt(raiI: RAIJUInfo, s5: Group, i0: int, j0: int, spcID='BLK', doIntenPlot=False, doConsoleIO=False) m2mData_pnt
- kaipy.raiju.m2m.checkMom2Mom_step(raiI: RAIJUInfo, s5: Group, mask_cc: ndarray = None, spcID='BLK', doPlot=False, doConsoleIO=False) m2mData_step
- kaipy.raiju.m2m.checkMom2Mom_summary(raiI: RAIJUInfo, ut_start: datetime = None, ut_end: datetime = None, stride_minutes: float = 5)
- kaipy.raiju.m2m.create_command_line_parser()
- class kaipy.raiju.m2m.m2mData_pnt(p_mhd: float, d_mhd: float, kt_mhd: float, p_rai: float, d_rai: float, kt_rai: float)
Bases:
object- d_mhd: float
- d_rai: float
- kt_mhd: float
- kt_rai: float
- p_mhd: float
- p_rai: float
- class kaipy.raiju.m2m.m2mData_step(frac_P: numpy.ndarray, frac_D: numpy.ndarray)
Bases:
object- frac_D: ndarray
- frac_P: ndarray
- kaipy.raiju.m2m.main(config=None)
kaipy.raiju.raijuUtils module
- class kaipy.raiju.raijuUtils.RAIJUInfo(h5fname, noSubsec=True, useTAC=False, useBars=True)
Bases:
H5InfoExtends H5Info to grab RAIJU-specific info
- getSpcFromFlav(flav: int) SpeciesInfo
- species: SpeciesInfo
- class kaipy.raiju.raijuUtils.SpeciesInfo(grp)
Bases:
object
- kaipy.raiju.raijuUtils.etak2Den(etak, bVol)
etak [#/cc * Rx/T] bVol [Rx/nT]
Returns: density [#/cc]
- kaipy.raiju.raijuUtils.etak2Press(etak, alamc, bVol)
etak [#/cc * Rx/T] alamc: [eV*(Rx/nT)^(2/3)] bVol [Rx/nT]
Returns: pressure [nPa]
- kaipy.raiju.raijuUtils.getMask(s5, dom='ACTIVE')
- kaipy.raiju.raijuUtils.getMask_cornerByCellCondition(s5, condition)
- kaipy.raiju.raijuUtils.getSpcFromNkArr()
- kaipy.raiju.raijuUtils.getVar(grp: Group, varName: str, mask: bool = None, broadcast_dims=None) ndarray
Get vars from h5 file this way so that we’re sure everyone agrees on type and shape
- kaipy.raiju.raijuUtils.intensity_kappa(n, mass, E, kT, kappa=6)
Intensity for energy E in an analytic Maxwellian profile n: density in #/cc mass: mass in kg E: energy in keV kT: temp in keV j: Intensity [1/(s*sr*keV*cm^2)]
- kaipy.raiju.raijuUtils.intensity_maxwell(n, mass, E, kT)
Intensity for energy E in an analytic Maxwellian profile n: density in #/cc mass: mass in kg E: energy in keV kT: temp in keV j: Intensity [1/(s*sr*keV*cm^2)]
- kaipy.raiju.raijuUtils.lambda2Energy(lambdas, bvol)
lambdas = [eV*(Rx/nT)^(2/3)] bVol = [Rx/nT] return: energy [keV]
- kaipy.raiju.raijuUtils.spcIdx(spcList: List[SpeciesInfo], flav: int) int
Lambdautils Package
kaipy.raiju.lambdautils.AlamData module
- class kaipy.raiju.lambdautils.AlamData.AlamData(params: List[SpecParams])
Bases:
objectInitialize by giving a list of SpecParams AlamData will generate all of them and hold as a list of Species
- params: List[SpecParams]
- class kaipy.raiju.lambdautils.AlamData.Species(params: SpecParams)
Bases:
objectInitialize by giving a SpecParam object Species will generate alam dist using the params
- params: SpecParams
- kaipy.raiju.lambdautils.AlamData.conditional_decorator(dec, dataclasses_json_module_imported)
kaipy.raiju.lambdautils.AlamParams module
- class kaipy.raiju.lambdautils.AlamParams.SpecParams(n: int, amin: float, amax: float, distType: DistType, flav: int, numNuc_p: int, numNuc_n: int, q: int, fudge: float | None = 0, name: str | None = None)
Bases:
objectDefines a single species A full species parameter set is defined by the combination of the params listed here AND the ones in whatever DistType is chosen
- amax: float
- amin: float
- flav: int
- fudge: float | None = 0
- genAlami()
- n: int
- name: str | None = None
- numNuc_n: int
- numNuc_p: int
- q: int
- kaipy.raiju.lambdautils.AlamParams.conditional_decorator(dec, dataclasses_json_module_imported)
kaipy.raiju.lambdautils.DistTypes module
- class kaipy.raiju.lambdautils.DistTypes.DT_Manual(name: str = 'Empty')
Bases:
DistTypeIf you want to completely ignore all this generator stuff, you could use this and do whatever you want. But if you were doing all that anyways, its probably just easier to manually edit the h5 dataset directly
- class kaipy.raiju.lambdautils.DistTypes.DT_Single(name: str = 'Empty')
Bases:
DistTypeJust a single channel, pretty boring
- genAlami(sP)
- class kaipy.raiju.lambdautils.DistTypes.DT_Wolf(name: str = 'Empty', p1: float = None, p2: float = None, kmin: int = 0, kmax: int = -1)
Bases:
DistType- Lambda channel spacing based on Wolf’s notes
(ask Anthony Sciola or Frank Toffoletto for a copy)
With the addition that there can be 2 p values for the start and end, and pStar transitions between them kmin, kmax let you set what part of the full distribution you actually generate
- genAlami(sP)
Takes a filled out SpecParams and returns the lambda interfaces
- kmax: int = -1
- kmin: int = 0
- p1: float = None
- p2: float = None
- class kaipy.raiju.lambdautils.DistTypes.DistType(name: str = 'Empty')
Bases:
object- name: str = 'Empty'
- kaipy.raiju.lambdautils.DistTypes.conditional_decorator(dec, dataclasses_json_module_imported)
kaipy.raiju.lambdautils.fileIO module
waveModel Package
kaipy.raiju.waveModel.genWM module
- kaipy.raiju.waveModel.genWM.ChorusPoly(Li, Eki, polyArray)
- kaipy.raiju.waveModel.genWM.ReSample(L, MLT, Qp, xMLT)
- kaipy.raiju.waveModel.genWM.genChorus(params, fInChorus)
- kaipy.raiju.waveModel.genWM.readPoly(fIn)