|
| | MediumMagboltz () |
| | Default constructor.
|
| | MediumMagboltz (const std::string &gas1, const double f1=1., const std::string &gas2="", const double f2=0., const std::string &gas3="", const double f3=0., const std::string &gas4="", const double f4=0., const std::string &gas5="", const double f5=0., const std::string &gas6="", const double f6=0.) |
| | Constructor.
|
| virtual | ~MediumMagboltz () |
| | Destructor.
|
| bool | SetMaxElectronEnergy (const double e) |
| | Set the highest electron energy to be included in the table of scattering rates.
|
| double | GetMaxElectronEnergy () const |
| | Get the highest electron energy in the table of scattering rates.
|
| bool | SetMaxPhotonEnergy (const double e) |
| | Set the highest photon energy to be included in the table of scattering rates.
|
| double | GetMaxPhotonEnergy () const |
| | Get the highest photon energy in the table of scattering rates.
|
| void | EnableAnisotropicScattering (const bool on=true) |
| | Switch on/off anisotropic scattering (enabled by default)
|
| void | SetSplittingFunctionOpalBeaty () |
| | Sample the secondary electron energy according to the Opal-Beaty model.
|
| void | SetSplittingFunctionGreenSawada () |
| | Sample the secondary electron energy according to the Green-Sawada model.
|
| void | SetSplittingFunctionFlat () |
| | Sample the secondary electron energy from a flat distribution.
|
| void | EnableDeexcitation () |
| | Switch on (microscopic) de-excitation handling.
|
| void | DisableDeexcitation () |
| | Switch off (microscopic) de-excitation handling.
|
| void | EnableRadiationTrapping () |
| | Switch on discrete photoabsorption levels.
|
| void | DisableRadiationTrapping () |
| | Switch off discrete photoabsorption levels.
|
| void | SetLineWidth (const double n) |
| | Set the number of emission line widths within which to apply absorption by discrete lines.
|
| bool | EnablePenningTransfer () override |
| | Switch on simulation of Penning transfers, using pre-implemented parameterisations of the transfer probability (if available).
|
| bool | EnablePenningTransfer (const double r, const double lambda) override |
| | Switch on simulation of Penning transfers by means of transfer probabilities, for all excitation levels in the mixture.
|
| bool | EnablePenningTransfer (const double r, const double lambda, std::string gasname) override |
| | Switch on simulation of Penning transfers by means of transfer probabilities, for all excitations of a given component.
|
| void | DisablePenningTransfer () override |
| | Switch the simulation of Penning transfers off globally.
|
| bool | DisablePenningTransfer (std::string gasname) override |
| | Switch the simulation of Penning transfers off for a given component.
|
| void | EnableCrossSectionOutput (const bool on=true) |
| | Write the gas cross-section table to a file during the initialisation.
|
| void | SetExcitationScaling (const double r, std::string gasname) |
| | Multiply all excitation cross-sections by a uniform scaling factor.
|
| bool | Initialise (const bool verbose=false) |
| | Initialise the table of scattering rates (called internally when a collision rate is requested and the gas mixture or other parameters have changed).
|
| void | PrintGas () override |
| | Print information about the present gas mixture and available data.
|
| double | GetElectronNullCollisionRate (const int band) override |
| | Null-collision rate [ns-1].
|
| double | GetElectronCollisionRate (const double e, const int band) override |
| | Get the (real) collision rate [ns-1] at a given electron energy e [eV].
|
| double | GetElectronCollisionRate (const double e, const unsigned int level, const int band) |
| | Get the collision rate [ns-1] for a specific level.
|
| bool | ElectronCollision (const double e, int &type, int &level, double &e1, double &dx, double &dy, double &dz, std::vector< Secondary > &secondaries, int &band) override |
| | Sample the collision type.
|
| void | ComputeDeexcitation (int iLevel, int &fLevel, std::vector< Secondary > &secondaries) |
| double | GetPhotonCollisionRate (const double e) override |
| bool | PhotonCollision (const double e, int &type, int &level, double &e1, double &ctheta, std::vector< Secondary > &secondaries) override |
| void | ResetCollisionCounters () |
| | Reset the collision counters.
|
| unsigned int | GetNumberOfElectronCollisions () const |
| | Get the total number of electron collisions.
|
| unsigned int | GetNumberOfElectronCollisions (unsigned int &nElastic, unsigned int &nIonising, unsigned int &nAttachment, unsigned int &nInelastic, unsigned int &nExcitation, unsigned int &nSuperelastic) const |
| | Get the number of collisions broken down by cross-section type.
|
| unsigned int | GetNumberOfLevels () |
| | Get the number of cross-section terms.
|
| bool | GetLevel (const unsigned int i, int &ngas, int &type, std::string &descr, double &e) |
| | Get detailed information about a given cross-section term i.
|
| bool | GetPenningTransfer (const unsigned int i, double &r, double &lambda) |
| | Get the Penning transfer probability and distance of a specific level.
|
| unsigned int | GetNumberOfElectronCollisions (const unsigned int level) const |
| | Get the number of collisions for a specific cross-section term.
|
| unsigned int | GetNumberOfPenningTransfers () const |
| | Get the number of Penning transfers that occured since the last reset.
|
| unsigned int | GetNumberOfPhotonCollisions () const |
| | Get the total number of photon collisions.
|
| unsigned int | GetNumberOfPhotonCollisions (unsigned int &nElastic, unsigned int &nIonising, unsigned int &nInelastic) const |
| | Get number of photon collisions by collision type.
|
| void | EnableThermalMotion (const bool on=true) |
| | Take the thermal motion of the gas at the selected temperature into account in the calculations done by Magboltz.
|
| void | EnableAutoEnergyLimit (const bool on=true) |
| | Let Magboltz determine the upper energy limit (this is the default) or use the energy limit specified using SetMaxElectronEnergy).
|
| void | RunMagboltz (const double e, const double b, const double btheta, const int ncoll, bool verbose, double &vx, double &vy, double &vz, double &wv, double &wr, double &dl, double &dt, double &alpha, double &eta, double &riontof, double &ratttof, double &lor, double &vxerr, double &vyerr, double &vzerr, double &wverr, double &wrerr, double &dlerr, double &dterr, double &alphaerr, double &etaerr, double &riontoferr, double &ratttoferr, double &lorerr, double &alphatof, std::array< double, 6 > &difftens) |
| | Run Magboltz for a given electric field, magnetic field and angle.
|
| void | GenerateGasTable (const int numCollisions=10, const bool verbose=true) |
| | Generate a new gas table (can later be saved to file) by running Magboltz for all electric fields, magnetic fields, and angles in the currently set grid.
|
| void | PlotElectronCrossSections (const unsigned int i, TPad *pad) |
| void | PlotElectronCollisionRates (TPad *pad) |
| void | PlotElectronInverseMeanFreePath (TPad *pad) |
| double | CreateGPUTransferObject (MediumGPU *&med_gpu) override |
| | Create and initialise GPU Transfer class.
|
| | MediumGas () |
| | Constructor.
|
| virtual | ~MediumGas () |
| | Destructor.
|
| bool | SetComposition (const std::string &gas1, const double f1=1., const std::string &gas2="", const double f2=0., const std::string &gas3="", const double f3=0., const std::string &gas4="", const double f4=0., const std::string &gas5="", const double f5=0., const std::string &gas6="", const double f6=0.) |
| | Set the gas mixture.
|
| void | GetComposition (std::string &gas1, double &f1, std::string &gas2, double &f2, std::string &gas3, double &f3, std::string &gas4, double &f4, std::string &gas5, double &f5, std::string &gas6, double &f6) const |
| | Retrieve the gas mixture.
|
| bool | LoadGasFile (const std::string &filename, const bool quiet=false) |
| | Read table of gas properties (transport parameters) from file.
|
| bool | WriteGasFile (const std::string &filename) |
| | Save the present table of gas properties (transport parameters) to a file.
|
| bool | MergeGasFile (const std::string &filename, const bool replaceOld) |
| | Read table of gas properties from and merge with the existing dataset.
|
| bool | GetPenningTransfer (const std::string &gasname, double &r, double &lambda) |
| | Retrieve the Penning transfer probability and distance for a specific component.
|
| bool | LoadIonMobility (const std::string &filename, const bool quiet=false) |
| | Read a table of (positive) ion mobilities vs. electric field from file.
|
| bool | LoadNegativeIonMobility (const std::string &filename, const bool quiet=false) |
| | Read a table of negative ion mobilities vs. electric field from file.
|
| bool | AdjustTownsendCoefficient () |
| | Adjust the Townsend coefficient using the excitation and ionisation rates stored in the gas table and the Penning transfer probabilities.
|
| size_t | GetNumberOfIonisationLevels () const |
| | Return the number of ionisation levels in the table.
|
| size_t | GetNumberOfExcitationLevels () const |
| | Return the number of excitation levels in the table.
|
| void | GetIonisationLevel (const size_t level, std::string &label, double &energy) const |
| | Return the identifier and threshold of an ionisation level.
|
| void | GetExcitationLevel (const size_t level, std::string &label, double &energy) const |
| | Return the identifier and energy of an excitation level.
|
| bool | GetElectronIonisationRate (const size_t level, const size_t ie, const size_t ib, const size_t ia, double &f) const |
| | Get an entry in the table of ionisation rates.
|
| bool | GetElectronExcitationRate (const size_t level, const size_t ie, const size_t ib, const size_t ia, double &f) const |
| | Get an entry in the table of excitation rates.
|
| bool | IsGas () const override |
| | Is this medium a gas?
|
| void | GetComponent (const unsigned int i, std::string &label, double &f) override |
| | Get the name and fraction of a given component.
|
| void | SetAtomicNumber (const double z) override |
| | Set the effective atomic number.
|
| double | GetAtomicNumber () const override |
| | Get the effective atomic number.
|
| void | SetAtomicWeight (const double a) override |
| | Set the effective atomic weight.
|
| double | GetAtomicWeight () const override |
| | Get the effective atomic weight.
|
| void | SetNumberDensity (const double n) override |
| | Set the number density [cm-3].
|
| double | GetNumberDensity () const override |
| | Get the number density [cm-3].
|
| void | SetMassDensity (const double rho) override |
| | Set the mass density [g/cm3].
|
| double | GetMassDensity () const override |
| | Get the mass density [g/cm3].
|
| void | ResetTables () override |
| | Reset all tables of transport parameters.
|
| void | SetExtrapolationMethodExcitationRates (const std::string &low, const std::string &high) |
| void | SetExtrapolationMethodIonisationRates (const std::string &low, const std::string &high) |
| void | SetInterpolationMethodExcitationRates (const unsigned int intrp) |
| void | SetInterpolationMethodIonisationRates (const unsigned int intrp) |
| double | ScaleElectricField (const double e) const override |
| double | UnScaleElectricField (const double e) const override |
| double | ScaleDiffusion (const double d) const override |
| double | ScaleDiffusionTensor (const double d) const override |
| double | ScaleTownsend (const double alpha) const override |
| double | ScaleAttachment (const double eta) const override |
| double | ScaleLorentzAngle (const double lor) const override |
| bool | GetPhotoAbsorptionCrossSection (const double e, double &sigma, const unsigned int i) override |
| | Medium () |
| | Constructor.
|
| virtual | ~Medium () |
| | Destructor.
|
| int | GetId () const |
| | Return the id number of the class instance.
|
| const std::string & | GetName () const |
| | Get the medium name/identifier.
|
| virtual bool | IsSemiconductor () const |
| | Is this medium a semiconductor?
|
| virtual bool | IsConductor () const |
| | Is this medium a conductor?
|
| void | SetTemperature (const double t) |
| | Set the temperature [K].
|
| double | GetTemperature () const |
| | Get the temperature [K].
|
| void | SetPressure (const double p) |
| double | GetPressure () const |
| void | SetDielectricConstant (const double eps) |
| | Set the relative static dielectric constant.
|
| double | GetDielectricConstant () const |
| | Get the relative static dielectric constant.
|
| unsigned int | GetNumberOfComponents () const |
| | Get number of components of the medium.
|
| virtual void | EnableDrift (const bool on=true) |
| | Switch electron/ion/hole transport on/off.
|
| virtual void | EnablePrimaryIonisation (const bool on=true) |
| | Make the medium ionisable or non-ionisable.
|
| bool | IsDriftable () const |
| | Is charge carrier transport enabled in this medium?
|
| bool | IsMicroscopic () const |
| | Does the medium have electron scattering rates?
|
| bool | IsIonisable () const |
| | Is charge deposition by charged particles/photon enabled in this medium?
|
| void | SetW (const double w) |
| | Set the W value (average energy to produce an electron/ion or e/h pair).
|
| double | GetW () const |
| | Get the W value.
|
| void | SetFanoFactor (const double f) |
| | Set the Fano factor.
|
| double | GetFanoFactor () const |
| | Get the Fano factor.
|
| void | PlotVelocity (const std::string &carriers, TPad *pad) |
| | Plot the drift velocity as function of the electric field.
|
| void | PlotDiffusion (const std::string &carriers, TPad *pad) |
| | Plot the diffusion coefficients as function of the electric field.
|
| void | PlotTownsend (const std::string &carriers, TPad *pad) |
| | Plot the Townsend coefficient(s) as function of the electric field.
|
| void | PlotAttachment (const std::string &carriers, TPad *pad) |
| | Plot the attachment coefficient(s) as function of the electric field.
|
| void | PlotAlphaEta (const std::string &carriers, TPad *pad) |
| | Plot Townsend and attachment coefficients.
|
| virtual bool | ElectronVelocity (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &vx, double &vy, double &vz) |
| | Drift velocity [cm / ns].
|
| virtual bool | ElectronVelocityFluxBulk (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &wv, double &wr) |
| | Flux (mean velocity; shorthand: wv) and bulk (center of mass velocity; shorthand: wr) drift velocity [cm / ns].
|
| virtual bool | ElectronDiffusion (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &dl, double &dt) |
| | Longitudinal and transverse diffusion coefficients [cm1/2].
|
| virtual bool | ElectronDiffusion (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double cov[3][3]) |
| | Diffusion tensor: diagonal elements are the diffusion coefficients [cm] along e, btrans, e x b, off-diagonal elements are the covariances.
|
| virtual bool | ElectronTownsend (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &alpha) |
| | Ionisation coefficient [cm-1].
|
| virtual bool | ElectronAttachment (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &eta) |
| | Attachment coefficient [cm-1].
|
| virtual bool | ElectronTOFIonisation (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &riontof) |
| | TOF Ionisation rate [ns-1].
|
| virtual bool | ElectronTOFAttachment (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &ratttof) |
| | TOF Attachment Rate [ns-1].
|
| virtual bool | ElectronLorentzAngle (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &lor) |
| | Lorentz angle.
|
| virtual double | ElectronMobility () |
| | Low-field mobility [cm2 V-1 ns-1].
|
| virtual double | GetElectronEnergy (const double px, const double py, const double pz, double &vx, double &vy, double &vz, const int band=0) |
| | Dispersion relation (energy vs. wave vector)
|
| virtual void | GetElectronMomentum (const double e, double &px, double &py, double &pz, int &band) |
| | Sample the momentum vector for a given energy (only meaningful in semiconductors).
|
| virtual bool | HoleVelocity (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &vx, double &vy, double &vz) |
| | Drift velocity [cm / ns].
|
| virtual bool | HoleDiffusion (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &dl, double &dt) |
| | Longitudinal and transverse diffusion coefficients [cm1/2].
|
| virtual bool | HoleDiffusion (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double cov[3][3]) |
| | Diffusion tensor.
|
| virtual bool | HoleTownsend (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &alpha) |
| | Ionisation coefficient [cm-1].
|
| virtual bool | HoleAttachment (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &eta) |
| | Attachment coefficient [cm-1].
|
| virtual double | HoleMobility () |
| | Low-field mobility [cm2 V-1 ns-1].
|
| virtual bool | IonVelocity (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &vx, double &vy, double &vz) |
| | Ion drift velocity [cm / ns].
|
| bool | HasIonVelocity () const |
| virtual bool | IonDiffusion (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &dl, double &dt) |
| | Longitudinal and transverse diffusion coefficients [cm1/2].
|
| virtual bool | IonDissociation (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &diss) |
| | Dissociation coefficient.
|
| virtual double | IonMobility () |
| | Low-field ion mobility [cm2 V-1 ns-1].
|
| virtual bool | NegativeIonVelocity (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &vx, double &vy, double &vz) |
| | Negative ion drift velocity [cm / ns].
|
| virtual double | NegativeIonMobility () |
| | Low-field negative ion mobility [cm2 V-1 ns-1].
|
| void | SetFieldGrid (double emin, double emax, const size_t ne, bool logE, double bmin=0., double bmax=0., const size_t nb=1, double amin=HalfPi, double amax=HalfPi, const size_t na=1) |
| | Set the range of fields to be covered by the transport tables.
|
| void | SetFieldGrid (const std::vector< double > &efields, const std::vector< double > &bfields, const std::vector< double > &angles) |
| | Set the fields and E-B angles to be used in the transport tables.
|
| void | GetFieldGrid (std::vector< double > &efields, std::vector< double > &bfields, std::vector< double > &angles) |
| | Get the fields and E-B angles used in the transport tables.
|
| bool | SetElectronVelocityE (const size_t ie, const size_t ib, const size_t ia, const double v) |
| | Set an entry in the table of drift speeds along E.
|
| bool | GetElectronVelocityE (const size_t ie, const size_t ib, const size_t ia, double &v) |
| | Get an entry in the table of drift speeds along E.
|
| bool | SetElectronVelocityExB (const size_t ie, const size_t ib, const size_t ia, const double v) |
| | Set an entry in the table of drift speeds along ExB.
|
| bool | GetElectronVelocityExB (const size_t ie, const size_t ib, const size_t ia, double &v) |
| | Get an entry in the table of drift speeds along ExB.
|
| bool | SetElectronVelocityB (const size_t ie, const size_t ib, const size_t ia, const double v) |
| | Set an entry in the table of drift speeds along Btrans.
|
| bool | GetElectronVelocityB (const size_t ie, const size_t ib, const size_t ia, double &v) |
| | Get an entry in the table of drift speeds along Btrans.
|
| bool | SetElectronFluxVelocity (const size_t ie, const size_t ib, const size_t ia, const double v) |
| | Set an entry in the table of flux drift speeds.
|
| bool | GetElectronFluxVelocity (const size_t ie, const size_t ib, const size_t ia, double &v) |
| | Get an entry in the table of flux drift speeds.
|
| bool | SetElectronBulkVelocity (const size_t ie, const size_t ib, const size_t ia, const double v) |
| | Set an entry in the table of bulk drift speeds.
|
| bool | GetElectronBulkVelocity (const size_t ie, const size_t ib, const size_t ia, double &v) |
| | Get an entry in the table of bulk drift speeds.
|
| bool | SetElectronLongitudinalDiffusion (const size_t ie, const size_t ib, const size_t ia, const double dl) |
| | Set an entry in the table of longitudinal diffusion coefficients.
|
| bool | GetElectronLongitudinalDiffusion (const size_t ie, const size_t ib, const size_t ia, double &dl) |
| | Get an entry in the table of longitudinal diffusion coefficients.
|
| bool | SetElectronTransverseDiffusion (const size_t ie, const size_t ib, const size_t ia, const double dt) |
| | Set an entry in the table of transverse diffusion coefficients.
|
| bool | GetElectronTransverseDiffusion (const size_t ie, const size_t ib, const size_t ia, double &dt) |
| | Get an entry in the table of transverse diffusion coefficients.
|
| bool | SetElectronTownsend (const size_t ie, const size_t ib, const size_t ia, const double alpha) |
| | Set an entry in the table of Townsend coefficients.
|
| bool | GetElectronTownsend (const size_t ie, const size_t ib, const size_t ia, double &alpha) |
| | Get an entry in the table of Townsend coefficients.
|
| bool | SetElectronAttachment (const size_t ie, const size_t ib, const size_t ia, const double eta) |
| | Set an entry in the table of attachment coefficients.
|
| bool | GetElectronAttachment (const size_t ie, const size_t ib, const size_t ia, double &eta) |
| | Get an entry in the table of attachment coefficients.
|
| bool | SetElectronTOFIonisation (const size_t ie, const size_t ib, const size_t ia, const double v) |
| | Set an entry in the table of ionization rate of TOF.
|
| bool | GetElectronTOFIonisation (const size_t ie, const size_t ib, const size_t ia, double &v) |
| | Get an entry in the table of ionization rate of TOF.
|
| bool | SetElectronTOFAttachment (const size_t ie, const size_t ib, const size_t ia, const double v) |
| | Set an entry in the table of attachment rate of TOF.
|
| bool | GetElectronTOFAttachment (const size_t ie, const size_t ib, const size_t ia, double &v) |
| | Get an entry in the table of attachment rate of TOF.
|
| bool | SetElectronLorentzAngle (const size_t ie, const size_t ib, const size_t ia, const double lor) |
| | Set an entry in the table of Lorentz angles.
|
| bool | GetElectronLorentzAngle (const size_t ie, const size_t ib, const size_t ia, double &lor) |
| | Get an entry in the table of Lorentz angles.
|
| bool | SetHoleVelocityE (const size_t ie, const size_t ib, const size_t ia, const double v) |
| | Set an entry in the table of drift speeds along E.
|
| bool | GetHoleVelocityE (const size_t ie, const size_t ib, const size_t ia, double &v) |
| | Get an entry in the table of drift speeds along E.
|
| bool | SetHoleVelocityExB (const size_t ie, const size_t ib, const size_t ia, const double v) |
| | Set an entry in the table of drift speeds along ExB.
|
| bool | GetHoleVelocityExB (const size_t ie, const size_t ib, const size_t ia, double &v) |
| | Get an entry in the table of drift speeds along ExB.
|
| bool | SetHoleVelocityB (const size_t ie, const size_t ib, const size_t ia, const double v) |
| | Set an entry in the table of drift speeds along Btrans.
|
| bool | GetHoleVelocityB (const size_t ie, const size_t ib, const size_t ia, double &v) |
| | Get an entry in the table of drift speeds along Btrans.
|
| bool | SetHoleLongitudinalDiffusion (const size_t ie, const size_t ib, const size_t ia, const double dl) |
| | Set an entry in the table of longitudinal diffusion coefficients.
|
| bool | GetHoleLongitudinalDiffusion (const size_t ie, const size_t ib, const size_t ia, double &dl) |
| | Get an entry in the table of longitudinal diffusion coefficients.
|
| bool | SetHoleTransverseDiffusion (const size_t ie, const size_t ib, const size_t ia, const double dt) |
| | Set an entry in the table of transverse diffusion coefficients.
|
| bool | GetHoleTransverseDiffusion (const size_t ie, const size_t ib, const size_t ia, double &dt) |
| | Get an entry in the table of transverse diffusion coefficients.
|
| bool | SetHoleTownsend (const size_t ie, const size_t ib, const size_t ia, const double alpha) |
| | Set an entry in the table of Townsend coefficients.
|
| bool | GetHoleTownsend (const size_t ie, const size_t ib, const size_t ia, double &alpha) |
| | Get an entry in the table of Townsend coefficients.
|
| bool | SetHoleAttachment (const size_t ie, const size_t ib, const size_t ia, const double eta) |
| | Set an entry in the table of attachment coefficients.
|
| bool | GetHoleAttachment (const size_t ie, const size_t ib, const size_t ia, double &eta) |
| | Get an entry in the table of attachment coefficients.
|
| bool | SetIonMobility (const std::vector< double > &fields, const std::vector< double > &mobilities, const bool negativeIons=false) |
| | Initialise the table of ion mobilities from a list of electric fields and corresponding mobilities.
|
| bool | SetIonMobility (const size_t ie, const size_t ib, const size_t ia, const double mu) |
| | Set an entry in the table of ion mobilities.
|
| bool | GetIonMobility (const size_t ie, const size_t ib, const size_t ia, double &mu) |
| | Get an entry in the table of ion mobilities.
|
| bool | SetIonLongitudinalDiffusion (const size_t ie, const size_t ib, const size_t ia, const double dl) |
| | Set an entry in the table of longitudinal diffusion coefficients.
|
| bool | GetIonLongitudinalDiffusion (const size_t ie, const size_t ib, const size_t ia, double &dl) |
| | Get an entry in the table of longitudinal diffusion coefficients.
|
| bool | SetIonTransverseDiffusion (const size_t ie, const size_t ib, const size_t ia, const double dt) |
| | Set an entry in the table of transverse diffusion coefficients.
|
| bool | GetIonTransverseDiffusion (const size_t ie, const size_t ib, const size_t ia, double &dt) |
| | Get an entry in the table of transverse diffusion coefficients.
|
| bool | SetIonDissociation (const size_t ie, const size_t ib, const size_t ia, const double diss) |
| | Set an entry in the table of dissociation coefficients.
|
| bool | GetIonDissociation (const size_t ie, const size_t ib, const size_t ia, double &diss) |
| | Get an entry in the table of dissociation coefficients.
|
| bool | SetNegativeIonMobility (const size_t ie, const size_t ib, const size_t ia, const double mu) |
| | Set an entry in the table of negative ion mobilities.
|
| bool | GetNegativeIonMobility (const size_t ie, const size_t ib, const size_t ia, double &mu) |
| | Get an entry in the table of negative ion mobilities.
|
| void | ResetElectronVelocity () |
| void | ResetElectronDiffusion () |
| void | ResetElectronTownsend () |
| void | ResetElectronAttachment () |
| void | ResetElectronTOFRates () |
| void | ResetElectronLorentzAngle () |
| void | ResetHoleVelocity () |
| void | ResetHoleDiffusion () |
| void | ResetHoleTownsend () |
| void | ResetHoleAttachment () |
| void | ResetIonMobility () |
| void | ResetIonDiffusion () |
| void | ResetIonDissociation () |
| void | ResetNegativeIonMobility () |
| void | VelocityFromMobility (const std::vector< std::vector< std::vector< double > > > &mob, std::vector< std::vector< std::vector< double > > > &vel) |
| void | SetExtrapolationMethodVelocity (const std::string &extrLow, const std::string &extrHigh) |
| | Select the extrapolation method for fields below/above the table range.
|
| void | SetExtrapolationMethodDiffusion (const std::string &extrLow, const std::string &extrHigh) |
| void | SetExtrapolationMethodTownsend (const std::string &extrLow, const std::string &extrHigh) |
| void | SetExtrapolationMethodAttachment (const std::string &extrLow, const std::string &extrHigh) |
| void | SetExtrapolationMethodIonMobility (const std::string &extrLow, const std::string &extrHigh) |
| void | SetExtrapolationMethodIonDissociation (const std::string &extrLow, const std::string &extrHigh) |
| void | SetInterpolationMethodVelocity (const unsigned int intrp) |
| | Set the degree of polynomial interpolation (usually 2).
|
| void | SetInterpolationMethodDiffusion (const unsigned int intrp) |
| void | SetInterpolationMethodTownsend (const unsigned int intrp) |
| void | SetInterpolationMethodAttachment (const unsigned int intrp) |
| void | SetInterpolationMethodIonMobility (const unsigned int intrp) |
| void | SetInterpolationMethodIonDissociation (const unsigned int intrp) |
| virtual double | ScaleVelocity (const double v) const |
| virtual double | ScaleDissociation (const double diss) const |
| virtual bool | GetOpticalDataRange (double &emin, double &emax, const unsigned int i=0) |
| | Get the energy range [eV] of the available optical data.
|
| virtual bool | GetDielectricFunction (const double e, double &eps1, double &eps2, const unsigned int i=0) |
| | Get the complex dielectric function at a given energy.
|
| void | EnableDebugging () |
| | Switch on/off debugging messages.
|
| void | DisableDebugging () |
|
| bool | LoadMobility (const std::string &filename, const bool quiet, const bool negative) |
| bool | ReadHeader (std::ifstream &gasfile, int &version, std::bitset< 20 > &gasok, bool &is3d, std::vector< double > &mixture, std::vector< double > &efields, std::vector< double > &bfields, std::vector< double > &angles, std::vector< ExcLevel > &excLevels, std::vector< IonLevel > &ionLevels) |
| void | ReadFooter (std::ifstream &gasfile, std::array< unsigned int, 13 > &extrapH, std::array< unsigned int, 13 > &extrapL, std::array< unsigned int, 13 > &interp, unsigned int &thrAlp, unsigned int &thrAtt, unsigned int &thrDis, double &ionDiffL, double &ionDiffT, double &pgas, double &tgas) |
| void | ReadRecord3D (std::ifstream &gasfile, double &ve, double &vb, double &vx, double &dl, double &dt, double &alpha, double &alpha0, double &eta, double &mu, double &lor, double &dis, std::array< double, 6 > &dif, std::vector< double > &rexc, std::vector< double > &rion, std::bitset< 20 > gasok) |
| void | ReadRecord1D (std::ifstream &gasfile, double &ve, double &vb, double &vx, double &wv, double &wr, double &dl, double &dt, double &alpha, double &alpha0, double &eta, double &riontof, double &ratttof, double &mu, double &lor, double &dis, std::array< double, 6 > &dif, std::vector< double > &rexc, std::vector< double > &rion, std::bitset< 20 > gasok) |
| void | InsertE (const int ie, const int ne, const int nb, const int na) |
| void | InsertB (const int ib, const int ne, const int nb, const int na) |
| void | InsertA (const int ia, const int ne, const int nb, const int na) |
| void | ZeroRowE (const int ie, const int nb, const int na) |
| void | ZeroRowB (const int ib, const int ne, const int na) |
| void | ZeroRowA (const int ia, const int ne, const int nb) |
| bool | GetMixture (const std::vector< double > &mixture, const int version, std::vector< std::string > &gasnames, std::vector< double > &percentages) const |
| void | GetGasBits (std::bitset< 20 > &gasok) const |
| bool | Velocity (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, const std::vector< std::vector< std::vector< double > > > &velE, const std::vector< std::vector< std::vector< double > > > &velB, const std::vector< std::vector< std::vector< double > > > &velX, const double q, double &vx, double &vy, double &vz) const |
| bool | VelocityFluxBulk (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, const std::vector< std::vector< std::vector< double > > > &velWv, const std::vector< std::vector< std::vector< double > > > &velWr, double &wv, double &wr) const |
| bool | Diffusion (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, const std::vector< std::vector< std::vector< double > > > &difL, const std::vector< std::vector< std::vector< double > > > &difT, double &dl, double &dt) const |
| bool | Diffusion (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, const std::vector< std::vector< std::vector< std::vector< double > > > > &diff, double cov[3][3]) const |
| bool | Alpha (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, const std::vector< std::vector< std::vector< double > > > &tab, unsigned int intp, const unsigned int thr, const std::pair< unsigned int, unsigned int > &extr, double &alpha) const |
| double | GetAngle (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, const double e, const double b) const |
| bool | Interpolate (const double e, const double b, const double a, const std::vector< std::vector< std::vector< double > > > &table, double &y, const unsigned int intp, const std::pair< unsigned int, unsigned int > &extr, const bool logval=false) const |
| double | Interpolate1D (const double e, const std::vector< double > &table, const std::vector< double > &fields, const unsigned int intpMeth, const std::pair< unsigned int, unsigned int > &extr, const bool logval=false) const |
| bool | SetEntry (const size_t i, const size_t j, const size_t k, const std::string &fcn, std::vector< std::vector< std::vector< double > > > &tab, const double val) |
| bool | GetEntry (const size_t i, const size_t j, const size_t k, const std::string &fcn, const std::vector< std::vector< std::vector< double > > > &tab, double &val) const |
| void | SetExtrapolationMethod (const std::string &low, const std::string &high, std::pair< unsigned int, unsigned int > &extr, const std::string &fcn) |
| bool | GetExtrapolationIndex (std::string str, unsigned int &nb) const |
| size_t | SetThreshold (const std::vector< std::vector< std::vector< double > > > &tab) const |
| void | Clone (std::vector< std::vector< std::vector< double > > > &tab, const std::vector< double > &efields, const std::vector< double > &bfields, const std::vector< double > &angles, const unsigned int intp, const std::pair< unsigned int, unsigned int > &extr, const double init, const std::string &label) |
| void | Clone (std::vector< std::vector< std::vector< std::vector< double > > > > &tab, const size_t n, const std::vector< double > &efields, const std::vector< double > &bfields, const std::vector< double > &angles, const unsigned int intp, const std::pair< unsigned int, unsigned int > &extr, const double init, const std::string &label) |
| void | Init (const size_t nE, const size_t nB, const size_t nA, std::vector< std::vector< std::vector< double > > > &tab, const double val) |
| void | Init (const size_t nE, const size_t nB, const size_t nA, const size_t nT, std::vector< std::vector< std::vector< std::vector< double > > > > &tab, const double val) |
| static bool | GetGasInfo (const std::string &gasname, double &a, double &z, double &w, double &f) |
| static std::string | GetGasName (const int gasnumber, const int version) |
| static std::string | GetGasName (std::string input) |
| static int | GetGasNumberGasFile (const std::string &input) |
| static const std::vector< std::string > | GetAliases (const std::string &gas) |
| static void | Langevin (const double ex, const double ey, const double ez, double bx, double by, double bz, const double mu, double &vx, double &vy, double &vz) |
| static void | Langevin (const double ex, const double ey, const double ez, double bx, double by, double bz, const double mu, const double muH, double &vx, double &vy, double &vz) |
| std::array< std::string, m_nMaxGases > | m_gas |
| std::array< double, m_nMaxGases > | m_fraction |
| std::array< double, m_nMaxGases > | m_atWeight |
| std::array< double, m_nMaxGases > | m_atNum |
| bool | m_usePenning = false |
| double | m_rPenningGlobal = 0. |
| double | m_lambdaPenningGlobal = 0. |
| std::array< double, m_nMaxGases > | m_rPenningGas |
| std::array< double, m_nMaxGases > | m_lambdaPenningGas |
| double | m_pressureTable |
| double | m_temperatureTable |
| std::vector< std::vector< std::vector< double > > > | m_eAlp0 |
| std::vector< std::vector< std::vector< std::vector< double > > > > | m_excRates |
| std::vector< std::vector< std::vector< std::vector< double > > > > | m_ionRates |
| std::vector< ExcLevel > | m_excLevels |
| std::vector< IonLevel > | m_ionLevels |
| std::pair< unsigned int, unsigned int > | m_extrExc = {0, 1} |
| std::pair< unsigned int, unsigned int > | m_extrIon = {0, 1} |
| unsigned int | m_intpExc = 2 |
| unsigned int | m_intpIon = 2 |
| std::string | m_className = "Medium" |
| unsigned int | m_nComponents = 1 |
| std::string | m_name = "" |
| double | m_temperature = 293.15 |
| double | m_pressure = 760. |
| double | m_epsilon = 1. |
| double | m_z = 1. |
| double | m_a = 0. |
| double | m_density = 0. |
| int | m_id |
| bool | m_driftable = false |
| bool | m_microscopic = false |
| bool | m_ionisable = false |
| double | m_w = 0. |
| double | m_fano = 0. |
| bool | m_isChanged = true |
| bool | m_debug = false |
| bool | m_tab2d = false |
| std::vector< double > | m_eFields |
| std::vector< double > | m_bFields |
| std::vector< double > | m_bAngles |
| std::vector< std::vector< std::vector< double > > > | m_eVelE |
| std::vector< std::vector< std::vector< double > > > | m_eVelX |
| std::vector< std::vector< std::vector< double > > > | m_eVelB |
| std::vector< std::vector< std::vector< double > > > | m_eDifL |
| std::vector< std::vector< std::vector< double > > > | m_eDifT |
| std::vector< std::vector< std::vector< double > > > | m_eAlp |
| std::vector< std::vector< std::vector< double > > > | m_eAtt |
| std::vector< std::vector< std::vector< double > > > | m_eLor |
| std::vector< std::vector< std::vector< double > > > | m_eVelWv |
| std::vector< std::vector< std::vector< double > > > | m_eVelWr |
| std::vector< std::vector< std::vector< double > > > | m_eRIon |
| std::vector< std::vector< std::vector< double > > > | m_eRAtt |
| std::vector< std::vector< std::vector< std::vector< double > > > > | m_eDifM |
| std::vector< std::vector< std::vector< double > > > | m_hVelE |
| std::vector< std::vector< std::vector< double > > > | m_hVelX |
| std::vector< std::vector< std::vector< double > > > | m_hVelB |
| std::vector< std::vector< std::vector< double > > > | m_hDifL |
| std::vector< std::vector< std::vector< double > > > | m_hDifT |
| std::vector< std::vector< std::vector< double > > > | m_hAlp |
| std::vector< std::vector< std::vector< double > > > | m_hAtt |
| std::vector< std::vector< std::vector< std::vector< double > > > > | m_hDifM |
| std::vector< std::vector< std::vector< double > > > | m_iMob |
| std::vector< std::vector< std::vector< double > > > | m_iVel |
| std::vector< std::vector< std::vector< double > > > | m_iDifL |
| std::vector< std::vector< std::vector< double > > > | m_iDifT |
| std::vector< std::vector< std::vector< double > > > | m_iDis |
| std::vector< std::vector< std::vector< double > > > | m_nMob |
| std::vector< std::vector< std::vector< double > > > | m_nVel |
| unsigned int | m_eThrAlp = 0 |
| unsigned int | m_eThrAtt = 0 |
| unsigned int | m_hThrAlp = 0 |
| unsigned int | m_hThrAtt = 0 |
| unsigned int | m_iThrDis = 0 |
| std::pair< unsigned int, unsigned int > | m_extrVel = {0, 1} |
| std::pair< unsigned int, unsigned int > | m_extrDif = {0, 1} |
| std::pair< unsigned int, unsigned int > | m_extrAlp = {0, 1} |
| std::pair< unsigned int, unsigned int > | m_extrAtt = {0, 1} |
| std::pair< unsigned int, unsigned int > | m_extrLor = {0, 1} |
| std::pair< unsigned int, unsigned int > | m_extrMob = {0, 1} |
| std::pair< unsigned int, unsigned int > | m_extrDis = {0, 1} |
| unsigned int | m_intpVel = 2 |
| unsigned int | m_intpDif = 2 |
| unsigned int | m_intpAlp = 2 |
| unsigned int | m_intpAtt = 2 |
| unsigned int | m_intpLor = 2 |
| unsigned int | m_intpMob = 2 |
| unsigned int | m_intpDis = 2 |
| static constexpr unsigned int | m_nMaxGases = 6 |
| static int | m_idCounter |