OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
#include <Distribution.h>
Classes | |
class | BinomialBehaviorSplitter |
class | GaussianLikeBehavior |
class | MDependentBehavior |
Public Member Functions | |
Distribution () | |
virtual | ~Distribution () |
virtual bool | canReplaceBy (Object *object) |
Distribution can only be replaced by another distribution. More... | |
virtual Distribution * | clone (const std::string &name) |
Return a clone. More... | |
virtual void | execute () |
Execute the command. More... | |
virtual void | update () |
Update this object. More... | |
size_t | getNumOfLocalParticlesToCreate (size_t n) |
void | createBoundaryGeometry (PartBunchBase< double, 3 > *p, BoundaryGeometry &bg) |
void | createOpalCycl (PartBunchBase< double, 3 > *beam, size_t numberOfParticles, double current, const Beamline &bl) |
void | createOpalE (Beam *beam, std::vector< Distribution * > addedDistributions, EnvelopeBunch *envelopeBunch, double distCenter, double Bz0) |
void | createOpalT (PartBunchBase< double, 3 > *beam, std::vector< Distribution * > addedDistributions, size_t &numberOfParticles) |
void | createOpalT (PartBunchBase< double, 3 > *beam, size_t &numberOfParticles) |
void | createPriPart (PartBunchBase< double, 3 > *beam, BoundaryGeometry &bg) |
void | doRestartOpalT (PartBunchBase< double, 3 > *p, size_t Np, int restartStep, H5PartWrapper *h5wrapper) |
void | doRestartOpalCycl (PartBunchBase< double, 3 > *p, size_t Np, int restartStep, const int specifiedNumBunch, H5PartWrapper *h5wrapper) |
void | doRestartOpalE (EnvelopeBunch *p, size_t Np, int restartStep, H5PartWrapper *h5wrapper) |
size_t | emitParticles (PartBunchBase< double, 3 > *beam, double eZ) |
double | getPercentageEmitted () const |
void | eraseXDist () |
void | eraseBGxDist () |
void | eraseYDist () |
void | eraseBGyDist () |
void | eraseTOrZDist () |
void | eraseBGzDist () |
bool | getIfDistEmitting () |
int | getLastEmittedEnergyBin () |
double | getMaxTOrZ () |
double | getMinTOrZ () |
size_t | getNumberOfEmissionSteps () |
int | getNumberOfEnergyBins () |
double | getEmissionDeltaT () |
double | getEnergyBinDeltaT () |
double | getWeight () |
std::vector< double > & | getXDist () |
std::vector< double > & | getBGxDist () |
std::vector< double > & | getYDist () |
std::vector< double > & | getBGyDist () |
std::vector< double > & | getTOrZDist () |
std::vector< double > & | getBGzDist () |
const PartData & | getReference () const |
Return the embedded CLASSIC PartData. More... | |
double | getTEmission () |
Vector_t | get_pmean () const |
double | getEkin () const |
double | getLaserEnergy () const |
double | getWorkFunctionRf () const |
size_t | getNumberOfDarkCurrentParticles () |
double | getDarkCurrentParticlesInwardMargin () |
double | getEInitThreshold () |
double | getWorkFunction () |
double | getFieldEnhancement () |
size_t | getMaxFNemissionPartPerTri () |
double | getFieldFNThreshold () |
double | getFNParameterA () |
double | getFNParameterB () |
double | getFNParameterY () |
double | getFNParameterVYZero () |
double | getFNParameterVYSecond () |
int | getSecondaryEmissionFlag () |
bool | getEmissionMode () |
std::string | getTypeofDistribution () |
double | getvSeyZero () |
double | getvEZero () |
double | getvSeyMax () |
double | getvEmax () |
double | getvKenergy () |
double | getvKtheta () |
double | getvVThermal () |
double | getVw () |
int | getSurfMaterial () |
Inform & | printInfo (Inform &os) const |
bool | Rebin () |
void | setDistToEmitted (bool emitted) |
void | setDistType () |
void | shiftBeam (double &maxTOrZ, double &minTOrZ) |
double | getEmissionTimeShift () const |
bool | GetPreviousH5Local () |
void | setNumberOfDistributions (unsigned int n) |
DistrTypeT::DistrTypeT | getType () const |
![]() | |
virtual | ~Definition () |
virtual const std::string | getCategory () const |
Return the object category as a string. More... | |
virtual bool | shouldTrace () const |
Trace flag. More... | |
virtual bool | shouldUpdate () const |
Update flag. More... | |
![]() | |
virtual | ~Object () |
void | copyAttributes (const Object &) |
Copy attributes from another object. More... | |
virtual Attribute * | findAttribute (const std::string &name) |
Find an attribute by name. More... | |
virtual const Attribute * | findAttribute (const std::string &name) const |
Find an attribute by name. More... | |
virtual Object * | makeTemplate (const std::string &, TokenStream &, Statement &) |
Macro handler function. More... | |
virtual Object * | makeInstance (const std::string &name, Statement &, const Parser *) |
Macro handler function. More... | |
virtual void | parse (Statement &) |
Parse the object. More... | |
virtual void | parseShortcut (Statement &) |
Parser for single-attribute commands. More... | |
virtual void | print (std::ostream &) const |
Print the object. More... | |
virtual void | printValue (std::ostream &) const |
virtual void | printHelp (std::ostream &) const |
Print help. More... | |
virtual void | replace (Object *oldObject, Object *newObject) |
Replace references. More... | |
bool | isBuiltin () const |
True, if [b]this[/b] is a built-in object. More... | |
virtual bool | isShared () const |
Shared flag. More... | |
virtual void | setShared (bool) |
Set/reset shared flag. More... | |
void | setDirty (bool) |
Set/reset the [b]modified[/b] flag. More... | |
bool | isDirty () const |
True, if the [b]modified[/b] flag is set. More... | |
void | setFlag (bool) |
Flag/unflag this object, e. g. to control output of objects for. More... | |
bool | isFlagged () const |
True, if [b]this[/b] is flagged by setFlag(true). More... | |
const Object * | getBaseObject () const |
Return the object's base type object. More... | |
const std::string & | getOpalName () const |
Return object name. More... | |
Object * | getParent () const |
Return parent pointer. More... | |
bool | isTreeMember (const Object *subTree) const |
Test for tree membership. More... | |
void | setOpalName (const std::string &name) |
Set object name. More... | |
void | setParent (Object *) |
Set parent object. More... | |
void | clear () |
Clear the occurrence counter. More... | |
int | increment () |
Increment and return the occurrence counter. More... | |
int | occurrenceCount () |
Return the occurrence counter. More... | |
void | registerReference (Invalidator *a) |
Register a reference to this object. More... | |
void | unregisterReference (Invalidator *a) |
Unegister a reference to this object. More... | |
void | registerOwnership (const AttributeHandler::OwnerType &itsClass) const |
![]() | |
int | addReference () const |
Increment reference count. More... | |
int | removeReference () const |
Decrement the reference count. More... | |
bool | isShared () const |
Test for sharing. More... | |
Static Public Member Functions | |
static Distribution * | find (const std::string &name) |
Private Member Functions | |
Distribution (const std::string &name, Distribution *parent) | |
Distribution (const Distribution &)=delete | |
void | operator= (const Distribution &)=delete |
void | addDistributions () |
void | applyEmissionModel (double lowEnergyLimit, double &px, double &py, double &pz, std::vector< double > &additionalRNs) |
void | applyEmissModelAstra (double &px, double &py, double &pz, std::vector< double > &additionalRNs) |
void | applyEmissModelNone (double &pz) |
void | applyEmissModelNonEquil (double eZ, double &px, double &py, double &pz, std::vector< double > &additionalRNs) |
void | create (size_t &numberOfParticles, double massIneV) |
void | calcPartPerDist (size_t numberOfParticles) |
void | checkEmissionParameters () |
void | checkIfEmitted () |
void | checkParticleNumber (size_t &numberOfParticles) |
void | chooseInputMomentumUnits (InputMomentumUnitsT::InputMomentumUnitsT inputMoUnits) |
double | converteVToBetaGamma (double valueIneV, double massIneV) |
size_t | getNumberOfParticlesInFile (std::ifstream &inputFile) |
void | createDistributionBinomial (size_t numberOfParticles, double massIneV) |
void | createDistributionFlattop (size_t numberOfParticles, double massIneV) |
void | createDistributionFromFile (size_t numberOfParticles, double massIneV) |
void | createDistributionGauss (size_t numberOfParticles, double massIneV) |
void | createMatchedGaussDistribution (size_t numberOfParticles, double massIneV) |
void | fillEBinHistogram () |
void | fillParticleBins () |
size_t | findEBin (double tOrZ) |
void | generateAstraFlattopT (size_t numberOfParticles) |
void | generateBinomial (size_t numberOfParticles) |
void | generateFlattopLaserProfile (size_t numberOfParticles) |
void | generateFlattopT (size_t numberOfParticles) |
void | generateFlattopZ (size_t numberOfParticles) |
void | generateGaussZ (size_t numberOfParticles) |
void | generateLongFlattopT (size_t numberOfParticles) |
void | generateTransverseGauss (size_t numberOfParticles) |
void | initializeBeam (PartBunchBase< double, 3 > *beam) |
void | injectBeam (PartBunchBase< double, 3 > *beam) |
void | printDist (Inform &os, size_t numberOfParticles) const |
void | printDistBinomial (Inform &os) const |
void | printDistFlattop (Inform &os) const |
void | printDistFromFile (Inform &os) const |
void | printDistGauss (Inform &os) const |
void | printDistMatchedGauss (Inform &os) const |
void | printDistSurfEmission (Inform &os) const |
void | printDistSurfAndCreate (Inform &os) const |
void | printEmissionModel (Inform &os) const |
void | printEmissionModelAstra (Inform &os) const |
void | printEmissionModelNone (Inform &os) const |
void | printEmissionModelNonEquil (Inform &os) const |
void | printEnergyBins (Inform &os) const |
void | adjustPhaseSpace (double massIneV) |
void | reflectDistribution (size_t &numberOfParticles) |
void | scaleDistCoordinates () |
gsl_qrng * | selectRandomGenerator (std::string, unsigned int dimension) |
Select and allocate gsl random number generator. More... | |
void | setAttributes () |
void | setDistParametersBinomial (double massIneV) |
void | setDistParametersFlattop (double massIneV) |
void | setDistParametersGauss (double massIneV) |
void | setEmissionTime (double &maxT, double &minT) |
void | setFieldEmissionParameters () |
void | setupEmissionModel (PartBunchBase< double, 3 > *beam) |
void | setupEmissionModelAstra (PartBunchBase< double, 3 > *beam) |
void | setupEmissionModelNone (PartBunchBase< double, 3 > *beam) |
void | setupEmissionModelNonEquil () |
void | setupEnergyBins (double maxTOrZ, double minTOrZ) |
void | setupParticleBins (double massIneV, PartBunchBase< double, 3 > *beam) |
void | shiftDistCoordinates (double massIneV) |
void | writeOutFileHeader () |
void | writeOutFileEmission () |
void | writeOutFileInjection () |
Private Attributes | |
std::string | distT_m |
DistrTypeT::DistrTypeT | distrTypeT_m |
Distribution type. Declared as string. More... | |
unsigned int | numberOfDistributions_m |
and list type for switch statements. More... | |
bool | emitting_m |
PartData | particleRefData_m |
std::vector< Distribution * > | addedDistributions_m |
Vector of distributions to be added to this distribution. More... | |
std::vector< size_t > | particlesPerDist_m |
EmissionModelT::EmissionModelT | emissionModel_m |
Emission Model. More... | |
double | tEmission_m |
Emission parameters. More... | |
double | tBin_m |
double | currentEmissionTime_m |
int | currentEnergyBin_m |
int | currentSampleBin_m |
int | numberOfEnergyBins_m |
int | numberOfSampleBins_m |
PartBins * | energyBins_m |
gsl_histogram * | energyBinHist_m |
Distribution energy bins. More... | |
gsl_rng * | randGen_m |
double | pTotThermal_m |
Random number generator. More... | |
Vector_t | pmean_m |
Total thermal momentum. More... | |
double | cathodeWorkFunc_m |
double | laserEnergy_m |
Cathode material work function (eV). More... | |
double | cathodeFermiEnergy_m |
Laser photon energy (eV). More... | |
double | cathodeTemp_m |
Cathode material Fermi energy (eV). More... | |
double | emitEnergyUpperLimit_m |
Cathode temperature (K). More... | |
std::vector< std::vector < double > > | additionalRNs_m |
Upper limit on emission energy distribution (eV). More... | |
size_t | totalNumberParticles_m |
size_t | totalNumberEmittedParticles_m |
std::vector< double > | xDist_m |
std::vector< double > | pxDist_m |
std::vector< double > | yDist_m |
std::vector< double > | pyDist_m |
std::vector< double > | tOrZDist_m |
std::vector< double > | pzDist_m |
std::vector< double > | xWrite_m |
std::vector< double > | pxWrite_m |
std::vector< double > | yWrite_m |
std::vector< double > | pyWrite_m |
std::vector< double > | tOrZWrite_m |
std::vector< double > | pzWrite_m |
std::vector< size_t > | binWrite_m |
double | avrgpz_m |
InputMomentumUnitsT::InputMomentumUnitsT | inputMoUnits_m |
double | sigmaTRise_m |
double | sigmaTFall_m |
double | tPulseLengthFWHM_m |
Vector_t | sigmaR_m |
Vector_t | sigmaP_m |
Vector_t | cutoffR_m |
Vector_t | cutoffP_m |
Vector_t | mBinomial_m |
SymTenzor< double, 6 > | correlationMatrix_m |
std::string | laserProfileFileName_m |
std::string | laserImageName_m |
double | laserIntensityCut_m |
LaserProfile * | laserProfile_m |
size_t | darkCurrentParts_m |
double | darkInwardMargin_m |
Number of dark current particles. More... | |
double | eInitThreshold_m |
double | workFunction_m |
double | fieldEnhancement_m |
Work function of surface material (eV). More... | |
double | fieldThrFN_m |
size_t | maxFN_m |
double | paraFNA_m |
double | paraFNB_m |
double | paraFNY_m |
double | paraFNVYSe_m |
double | paraFNVYZe_m |
int | secondaryFlag_m |
double | ppVw_m |
double | vVThermal_m |
Velocity scalar for parallel plate benchmark. More... | |
double | I_m |
double | E_m |
double | tRise_m |
time binned distribution with thermal energy More... | |
double | tFall_m |
double | sigmaRise_m |
double | sigmaFall_m |
double | cutoff_m |
bool | previousH5Local_m |
Additional Inherited Members | |
![]() | |
std::vector< Attribute > | itsAttr |
The object attributes (see Attribute.hh). More... | |
![]() | |
Definition (int size, const char *name, const char *help) | |
Constructor for exemplars. More... | |
Definition (const std::string &name, Definition *parent) | |
Constructor for clones. More... | |
![]() | |
Object (int size, const char *name, const char *help) | |
Constructor for exemplars. More... | |
Object (const std::string &name, Object *parent) | |
Constructor for clones. More... | |
![]() | |
RCObject () | |
Default constructor. More... | |
RCObject (const RCObject &) | |
Copy constructor. More... | |
virtual | ~RCObject ()=0 |
RCObject & | operator= (const RCObject &right) |
![]() | |
bool | builtin |
Built-in flag. More... | |
bool | modified |
Dirty flag. More... | |
bool | flagged |
Object flag. More... | |
Definition at line 240 of file Distribution.h.
Distribution::Distribution | ( | ) |
Definition at line 74 of file Distribution.cpp.
References Object::builtin, clone(), OpalData::define(), OpalData::getInstance(), randGen_m, and setAttributes().
Referenced by clone().
|
virtual |
Definition at line 232 of file Distribution.cpp.
References energyBinHist_m, energyBins_m, laserProfile_m, and randGen_m.
|
private |
|
privatedelete |
|
private |
Definition at line 761 of file Distribution.cpp.
References addedDistributions_m, particlesPerDist_m, pxDist_m, pyDist_m, pzDist_m, tOrZDist_m, xDist_m, and yDist_m.
Referenced by createOpalT().
|
private |
Definition at line 4724 of file Distribution.cpp.
References allreduce(), avrgpz_m, converteVToBetaGamma(), distrTypeT_m, emitting_m, InputMomentumUnitsT::EV, DistrTypeT::FROMFILE, OpalData::getInstance(), Attributes::getReal(), inputMoUnits_m, Object::itsAttr, Attrib::Distribution::OFFSETPX, Attrib::Distribution::OFFSETPY, pow(), pxDist_m, pyDist_m, pzDist_m, tOrZDist_m, totalNumberParticles_m, xDist_m, and yDist_m.
Referenced by create().
|
private |
Definition at line 805 of file Distribution.cpp.
References applyEmissModelAstra(), applyEmissModelNone(), applyEmissModelNonEquil(), EmissionModelT::ASTRA, emissionModel_m, EmissionModelT::NONE, and EmissionModelT::NONEQUIL.
Referenced by emitParticles().
|
private |
Definition at line 823 of file Distribution.cpp.
References abs(), acos(), cos(), Physics::pi, pTotThermal_m, sin(), and sqrt().
Referenced by applyEmissionModel().
|
private |
Definition at line 834 of file Distribution.cpp.
References pTotThermal_m.
Referenced by applyEmissionModel().
|
private |
Definition at line 838 of file Distribution.cpp.
References acos(), cathodeFermiEnergy_m, cathodeTemp_m, cos(), emitEnergyUpperLimit_m, exp(), laserEnergy_m, Physics::m_e, pow(), randGen_m, sin(), sqrt(), and Physics::two_pi.
Referenced by applyEmissionModel().
|
private |
Definition at line 895 of file Distribution.cpp.
References addedDistributions_m, distrTypeT_m, Attrib::Distribution::FNAME, DistrTypeT::FROMFILE, getNumberOfParticlesInFile(), Attributes::getString(), getWeight(), Object::itsAttr, IpplInfo::myNode(), numberOfDistributions_m, and particlesPerDist_m.
Referenced by createOpalCycl(), and createOpalT().
|
virtual |
Distribution can only be replaced by another distribution.
Reimplemented from Object.
Definition at line 273 of file Distribution.cpp.
|
private |
Definition at line 964 of file Distribution.cpp.
References abs(), ceil(), currentEnergyBin_m, currentSampleBin_m, Attrib::Distribution::EMISSIONSTEPS, Attributes::getReal(), Object::itsAttr, Attrib::Distribution::NBIN, numberOfEnergyBins_m, and numberOfSampleBins_m.
Referenced by createOpalT(), and generateAstraFlattopT().
|
private |
Definition at line 989 of file Distribution.cpp.
References DistrTypeT::ASTRAFLATTOPTH, distrTypeT_m, Attrib::Distribution::EMITTED, emitting_m, Attributes::getBool(), DistrTypeT::GUNGAUSSFLATTOPTH, and Object::itsAttr.
Referenced by createOpalE(), and createOpalT().
|
private |
Definition at line 1004 of file Distribution.cpp.
References endl(), reduce(), and tOrZDist_m.
Referenced by createOpalCycl(), and createOpalT().
|
private |
Definition at line 1027 of file Distribution.cpp.
References InputMomentumUnitsT::EV, Attributes::getString(), Attrib::Distribution::INPUTMOUNITS, inputMoUnits_m, Object::itsAttr, InputMomentumUnitsT::NONE, and Util::toUpper().
Referenced by createOpalCycl(), createOpalE(), and createOpalT().
|
virtual |
Return a clone.
Implements Object.
Definition at line 277 of file Distribution.cpp.
References Distribution().
Referenced by Distribution().
|
private |
Definition at line 1042 of file Distribution.cpp.
References abs(), copysign(), pow(), and sqrt().
Referenced by adjustPhaseSpace(), createDistributionFromFile(), createOpalT(), setDistParametersBinomial(), setDistParametersFlattop(), setDistParametersGauss(), setupEmissionModelAstra(), setupEmissionModelNone(), and shiftDistCoordinates().
|
private |
Definition at line 287 of file Distribution.cpp.
References additionalRNs_m, adjustPhaseSpace(), EmissionModelT::ASTRA, DistrTypeT::ASTRAFLATTOPTH, DistrTypeT::BINOMIAL, createDistributionBinomial(), createDistributionFlattop(), createDistributionFromFile(), createDistributionGauss(), createMatchedGaussDistribution(), Options::cZero, distrTypeT_m, emissionModel_m, emitting_m, endl(), DistrTypeT::FLATTOP, DistrTypeT::FROMFILE, DistrTypeT::GAUSS, Attributes::getBool(), IpplInfo::getNodes(), getNumOfLocalParticlesToCreate(), DistrTypeT::GUNGAUSSFLATTOPTH, INFOMSG, Object::itsAttr, level2(), DistrTypeT::MATCHEDGAUSS, IpplInfo::myNode(), EmissionModelT::NONEQUIL, particlesPerDist_m, randGen_m, reflectDistribution(), Attrib::Distribution::SCALABLE, scaleDistCoordinates(), Options::seed, setFieldEmissionParameters(), and tOrZDist_m.
Referenced by createOpalCycl(), and createOpalT().
void Distribution::createBoundaryGeometry | ( | PartBunchBase< double, 3 > * | p, |
BoundaryGeometry & | bg | ||
) |
Definition at line 1477 of file Distribution.cpp.
References PartBunchBase< T, Dim >::Bf, PartBunchBase< T, Dim >::Bin, PartBunchBase< T, Dim >::boundp(), BoundaryGeometry::clearCooridinateArray(), PartBunchBase< T, Dim >::create(), PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::Ef, endl(), ParticleType::FIELDEMISSION, floor(), PartBunchBase< T, Dim >::getChargePerParticle(), BoundaryGeometry::getCooridinate(), PartBunchBase< T, Dim >::getdT(), PartBunchBase< T, Dim >::getLocalNum(), BoundaryGeometry::getN(), IpplInfo::getNodes(), IpplInfo::myNode(), PartBunchBase< T, Dim >::P, PartBunchBase< T, Dim >::PType, PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, and PartBunchBase< T, Dim >::TriID.
|
private |
Definition at line 1050 of file Distribution.cpp.
References generateBinomial(), and setDistParametersBinomial().
Referenced by create().
|
private |
Definition at line 1056 of file Distribution.cpp.
References emitting_m, generateFlattopLaserProfile(), generateFlattopT(), generateFlattopZ(), laserProfile_m, and setDistParametersFlattop().
Referenced by create().
|
private |
Definition at line 1099 of file Distribution.cpp.
References converteVToBetaGamma(), endl(), InputMomentumUnitsT::EV, Attrib::Distribution::FNAME, IpplInfo::getComm(), IpplInfo::getNodes(), getNumberOfParticlesInFile(), Attributes::getString(), inputMoUnits_m, Object::itsAttr, level3(), max(), IpplInfo::myNode(), pmean_m, pxDist_m, pyDist_m, pzDist_m, Attrib::Distribution::R, reduce(), tOrZDist_m, xDist_m, and yDist_m.
Referenced by create().
|
private |
Definition at line 1465 of file Distribution.cpp.
References emitting_m, generateGaussZ(), generateLongFlattopT(), generateTransverseGauss(), and setDistParametersGauss().
Referenced by create(), and createMatchedGaussDistribution().
|
private |
Definition at line 1251 of file Distribution.cpp.
References Options::cloTuneOnly, correlationMatrix_m, createDistributionGauss(), Attrib::Distribution::DENERGY, Physics::e, E_m, endl(), Attrib::Distribution::ET, Attrib::Distribution::EX, SpecificElementVisitor< ELEM >::execute(), Attrib::Distribution::EY, BeamSequence::fetchLine(), BeamSequence::find(), Attributes::getBool(), Cyclotron::getCyclHarm(), Cyclotron::getFMHighE(), Cyclotron::getFMLowE(), Cyclotron::getPHIinit(), Attributes::getReal(), Attributes::getString(), I_m, Object::itsAttr, Attrib::Distribution::LINE, Attrib::Distribution::MAXSTEPSCO, Attrib::Distribution::MAXSTEPSSI, Attrib::Distribution::NSECTORS, Attrib::Distribution::NSTEPS, Attrib::Distribution::ORDERMAPS, Attrib::Distribution::RESIDUUM, Attrib::Distribution::RGUESS, Attrib::Distribution::SECTOR, Cyclotron::setPRinit(), Cyclotron::setRinit(), sigmaP_m, sigmaR_m, and sqrt().
Referenced by create().
void Distribution::createOpalCycl | ( | PartBunchBase< double, 3 > * | beam, |
size_t | numberOfParticles, | ||
double | current, | ||
const Beamline & | bl | ||
) |
Definition at line 1517 of file Distribution.cpp.
References OpalData::addProblemCharacteristicValue(), calcPartPerDist(), checkParticleNumber(), chooseInputMomentumUnits(), create(), E_m, emitting_m, energyBins_m, InputMomentumUnitsT::EV, fillParticleBins(), PartBunchBase< T, Dim >::getInitialGamma(), OpalData::getInstance(), PartBunchBase< T, Dim >::getLocalNum(), PartBunchBase< T, Dim >::getM(), PartBunchBase< T, Dim >::getTotalNum(), I_m, initializeBeam(), injectBeam(), numberOfEnergyBins_m, particlesPerDist_m, setDistType(), PartBunchBase< T, Dim >::setPBins(), setupParticleBins(), shiftDistCoordinates(), tOrZDist_m, totalNumberParticles_m, and writeOutFileHeader().
Referenced by TrackRun::setupCyclotronTracker().
void Distribution::createOpalE | ( | Beam * | beam, |
std::vector< Distribution * > | addedDistributions, | ||
EnvelopeBunch * | envelopeBunch, | ||
double | distCenter, | ||
double | Bz0 | ||
) |
Definition at line 1585 of file Distribution.cpp.
References Physics::c, checkIfEmitted(), chooseInputMomentumUnits(), cutoffR_m, PartBunchBase< T, Dim >::distrCreate_m, distrTypeT_m, Attrib::Distribution::EKIN, endl(), fabs(), DistrTypeT::FLATTOP, DistrTypeT::GAUSS, Beam::getCharge(), Beam::getCurrent(), Beam::getGamma(), Beam::getMass(), Beam::getNumberOfSlices(), Attributes::getReal(), DistrTypeT::GUNGAUSSFLATTOPTH, EnvelopeBunch::initialize(), Object::itsAttr, log(), Attrib::Distribution::NBIN, InputMomentumUnitsT::NONE, numberOfEnergyBins_m, pow(), setDistParametersFlattop(), setDistParametersGauss(), setDistType(), sigmaR_m, sigmaTFall_m, sigmaTRise_m, sqrt(), IpplTimings::startTimer(), IpplTimings::stopTimer(), tEmission_m, and tPulseLengthFWHM_m.
Referenced by TrackRun::setupSliceTracker().
void Distribution::createOpalT | ( | PartBunchBase< double, 3 > * | beam, |
std::vector< Distribution * > | addedDistributions, | ||
size_t & | numberOfParticles | ||
) |
Definition at line 1651 of file Distribution.cpp.
References addedDistributions_m.
Referenced by PartBunchBase< T, Dim >::setDistribution().
void Distribution::createOpalT | ( | PartBunchBase< double, 3 > * | beam, |
size_t & | numberOfParticles | ||
) |
Definition at line 1659 of file Distribution.cpp.
References addDistributions(), addedDistributions_m, additionalRNs_m, OpalData::addProblemCharacteristicValue(), EmissionModelT::ASTRA, DistrTypeT::ASTRAFLATTOPTH, avrgpz_m, calcPartPerDist(), checkEmissionParameters(), checkIfEmitted(), checkParticleNumber(), chooseInputMomentumUnits(), converteVToBetaGamma(), create(), Options::cZero, PartBunchBase< T, Dim >::distrCreate_m, distrTypeT_m, emissionModel_m, emitting_m, InputMomentumUnitsT::EV, fillEBinHistogram(), DistrTypeT::FROMFILE, OpalData::getInstance(), PartBunchBase< T, Dim >::getM(), getMaxTOrZ(), getMinTOrZ(), PartBunchBase< T, Dim >::getP(), Attributes::getReal(), DistrTypeT::GUNGAUSSFLATTOPTH, initializeBeam(), injectBeam(), inputMoUnits_m, Object::itsAttr, EmissionModelT::NONE, InputMomentumUnitsT::NONE, numberOfEnergyBins_m, Attrib::Distribution::OFFSETP, particlesPerDist_m, pmean_m, setDistType(), setEmissionTime(), setupEmissionModel(), setupEmissionModelNone(), setupEnergyBins(), shiftBeam(), shiftDistCoordinates(), IpplTimings::startTimer(), IpplTimings::stopTimer(), totalNumberParticles_m, and writeOutFileHeader().
void Distribution::createPriPart | ( | PartBunchBase< double, 3 > * | beam, |
BoundaryGeometry & | bg | ||
) |
Definition at line 407 of file Distribution.cpp.
References PartBunchBase< T, Dim >::Bf, PartBunchBase< T, Dim >::Bin, PartBunchBase< T, Dim >::boundp(), Physics::c, BoundaryGeometry::clearCooridinateArray(), BoundaryGeometry::clearMomentaArray(), PartBunchBase< T, Dim >::create(), PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::Ef, endl(), exp(), floor(), PartBunchBase< T, Dim >::getChargePerParticle(), BoundaryGeometry::getCooridinate(), PartBunchBase< T, Dim >::getdT(), PartBunchBase< T, Dim >::getLocalNum(), BoundaryGeometry::getMomenta(), BoundaryGeometry::getN(), IpplInfo::getNodes(), getvVThermal(), getVw(), IpplInfo::myNode(), PartBunchBase< T, Dim >::P, Options::ppdebug, PartBunchBase< T, Dim >::PType, PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, randGen_m, ParticleType::REGULAR, sqrt(), and PartBunchBase< T, Dim >::TriID.
void Distribution::doRestartOpalCycl | ( | PartBunchBase< double, 3 > * | p, |
size_t | Np, | ||
int | restartStep, | ||
const int | specifiedNumBunch, | ||
H5PartWrapper * | h5wrapper | ||
) |
Definition at line 551 of file Distribution.cpp.
References OpalData::addProblemCharacteristicValue(), PartBunchBase< T, Dim >::boundp(), PartBunchBase< T, Dim >::create(), PartBunchBase< T, Dim >::distrReload_m, endl(), energyBins_m, PartBunchBase< T, Dim >::get_sPos(), PartBunchBase< T, Dim >::getChargePerParticle(), OpalData::getInstance(), PartBunchBase< T, Dim >::getLocalNum(), PartBunchBase< T, Dim >::getM(), IpplInfo::getNodes(), PartBunchBase< T, Dim >::getNumBunch(), H5PartWrapper::getNumParticles(), PartBunchBase< T, Dim >::getSteptoLastInj(), PartBunchBase< T, Dim >::getTotalNum(), INFOMSG, IpplInfo::myNode(), PartBunchBase< T, Dim >::P, PAssert_GE, pow(), H5PartWrapper::predecessorIsSameFlavour(), PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, H5PartWrapper::readHeader(), H5PartWrapper::readStep(), reduce(), PartBunchBase< T, Dim >::setPBins(), sqrt(), IpplTimings::startTimer(), and IpplTimings::stopTimer().
Referenced by TrackRun::setupCyclotronTracker().
void Distribution::doRestartOpalE | ( | EnvelopeBunch * | p, |
size_t | Np, | ||
int | restartStep, | ||
H5PartWrapper * | h5wrapper | ||
) |
Definition at line 632 of file Distribution.cpp.
References EnvelopeBunch::createBunch(), EnvelopeBunch::distributeSlices(), PartBunchBase< T, Dim >::distrReload_m, endl(), EnvelopeBunch::getChargePerParticle(), H5PartWrapper::getNumParticles(), EnvelopeBunch::mySliceEndOffset(), EnvelopeBunch::mySliceStartOffset(), H5PartWrapper::readHeader(), H5PartWrapper::readStep(), EnvelopeBunch::setCharge(), IpplTimings::startTimer(), and IpplTimings::stopTimer().
Referenced by TrackRun::setupSliceTracker().
void Distribution::doRestartOpalT | ( | PartBunchBase< double, 3 > * | p, |
size_t | Np, | ||
int | restartStep, | ||
H5PartWrapper * | h5wrapper | ||
) |
Definition at line 516 of file Distribution.cpp.
References OpalData::addProblemCharacteristicValue(), PartBunchBase< T, Dim >::boundp(), PartBunchBase< T, Dim >::create(), PartBunchBase< T, Dim >::distrReload_m, endl(), OpalData::getGlobalPhaseShift(), PartBunchBase< T, Dim >::getGlobalTrackStep(), OpalData::getInstance(), PartBunchBase< T, Dim >::getLocalTrackStep(), IpplInfo::getNodes(), H5PartWrapper::getNumParticles(), PartBunchBase< T, Dim >::getT(), PartBunchBase< T, Dim >::getTotalNum(), IpplInfo::myNode(), PAssert_GE, H5PartWrapper::readHeader(), H5PartWrapper::readStep(), IpplTimings::startTimer(), and IpplTimings::stopTimer().
Referenced by TrackRun::setDistributionParallelT().
size_t Distribution::emitParticles | ( | PartBunchBase< double, 3 > * | beam, |
double | eZ | ||
) |
Here we emit particles from the cathode.
A typical integration time step, \(\Delta t\), is broken down into 3 sub-steps:
1) Drift particles for \(\frac{\Delta t}{2}\).
2) Calculate fields and advance momentum.
3) Drift particles for \(\frac{\Delta t}{2}\) at the new momentum to complete the full time step.
The difficulty for emission is that at the cathode position there is a step function discontinuity in the fields. If we apply the typical integration time step across this boundary, we get an artificial numerical bunching of the beam, especially at very high accelerating fields. This function takes the cathode position boundary into account in order to achieve smoother particle emission.
During an emission step, an integral number of time bins from the distribution histogram are emitted. However, each particle contained in those time bins will actually be emitted from the cathode at a different time, so will only spend some fraction of the total time step, \(\Delta t_{full-timestep}\), in the simulation. The trick to emission is to give each particle a unique time step, \(Delta t_{temp}\), that is equal to the actual time during the emission step that the particle exists in the simulation. For the next integration time step, the particle's time step is set back to the global time step, \(\Delta t_{full-timestep}\).
Definition at line 1823 of file Distribution.cpp.
References additionalRNs_m, applyEmissionModel(), PartBunchBase< T, Dim >::Bf, PartBunchBase< T, Dim >::Bin, binWrite_m, Physics::c, cathodeFermiEnergy_m, cathodeWorkFunc_m, PartBunchBase< T, Dim >::create(), currentEmissionTime_m, currentEnergyBin_m, currentSampleBin_m, PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::Ef, emitting_m, endl(), Physics::epsilon_0, PartBunchBase< T, Dim >::getChargePerParticle(), PartBunchBase< T, Dim >::getdT(), PartBunchBase< T, Dim >::getLocalNum(), PartBunchBase< T, Dim >::getQ(), INFOMSG, PartBunchBase< T, Dim >::iterateEmittedBin(), laserEnergy_m, level3(), max(), numberOfEnergyBins_m, numberOfSampleBins_m, PartBunchBase< T, Dim >::P, Physics::pi, pow(), PartBunchBase< T, Dim >::PType, pxDist_m, pxWrite_m, pyDist_m, pyWrite_m, pzDist_m, pzWrite_m, PartBunchBase< T, Dim >::Q, Physics::q_e, PartBunchBase< T, Dim >::R, reduce(), ParticleType::REGULAR, sqrt(), tOrZDist_m, tOrZWrite_m, totalNumberEmittedParticles_m, PartBunchBase< T, Dim >::TriID, writeOutFileEmission(), xDist_m, xWrite_m, yDist_m, and yWrite_m.
void Distribution::eraseBGxDist | ( | ) |
Definition at line 1988 of file Distribution.cpp.
References pxDist_m.
void Distribution::eraseBGyDist | ( | ) |
Definition at line 1996 of file Distribution.cpp.
References pyDist_m.
void Distribution::eraseBGzDist | ( | ) |
Definition at line 2004 of file Distribution.cpp.
References pzDist_m.
void Distribution::eraseTOrZDist | ( | ) |
Definition at line 2000 of file Distribution.cpp.
References tOrZDist_m.
void Distribution::eraseXDist | ( | ) |
Definition at line 1984 of file Distribution.cpp.
References xDist_m.
void Distribution::eraseYDist | ( | ) |
Definition at line 1992 of file Distribution.cpp.
References yDist_m.
|
virtual |
|
private |
Definition at line 2008 of file Distribution.cpp.
References energyBinHist_m, reduce(), and tOrZDist_m.
Referenced by createOpalT().
|
private |
Definition at line 2027 of file Distribution.cpp.
References energyBins_m, PartBins::fill(), pxDist_m, pyDist_m, pzDist_m, PartBins::sortArray(), tOrZDist_m, xDist_m, and yDist_m.
Referenced by createOpalCycl().
|
static |
Definition at line 650 of file Distribution.cpp.
References OpalData::find(), and OpalData::getInstance().
Referenced by TrackRun::setDistributionParallelT(), TrackRun::setupCyclotronTracker(), and TrackRun::setupSliceTracker().
|
private |
Definition at line 2048 of file Distribution.cpp.
References energyBinHist_m, numberOfEnergyBins_m, and numberOfSampleBins_m.
Referenced by injectBeam(), and writeOutFileInjection().
|
private |
Definition at line 2061 of file Distribution.cpp.
References abs(), checkEmissionParameters(), floor(), Attributes::getBool(), IpplInfo::getNodes(), Attributes::getReal(), Object::itsAttr, IpplInfo::myNode(), Attrib::Distribution::NBIN, pzDist_m, randGen_m, Attrib::Legacy::Distribution::SBIN, Attrib::Distribution::SCALABLE, sqrt(), tBin_m, tEmission_m, tOrZDist_m, tPulseLengthFWHM_m, and tRise_m.
Referenced by generateFlattopLaserProfile(), and generateFlattopT().
|
private |
Following W. Johos for his report TM-11-14
For the \(x,p_x\) phase space we have:
\[ \epsilon_x = \sigma_x \sigma_{p_x} \cos{( \arcsin{(\sigma_{12}) }) } \]
\begin{eqnarray*} \beta_x &=& \frac{\sigma_x^2}{\epsilon_x} \\ \gamma_x &=& \frac{\sigma_{p_x}^2}{\epsilon_x} \\ \alpha_x &=& -\sigma_{12} \sqrt{(\beta_x \gamma_x)} \\ \end{eqnarray*}
This holds similar for the other dimensions.
Definition at line 2172 of file Distribution.cpp.
References abs(), Physics::alpha, asin(), atan2(), avrgpz_m, copysign(), correlationMatrix_m, cos(), Attributes::getBool(), IpplInfo::getNodes(), Object::itsAttr, max(), mBinomial_m, IpplInfo::myNode(), PM, pow(), PX, pxDist_m, pyDist_m, pzDist_m, randGen_m, Attrib::Distribution::SCALABLE, sigmaP_m, sigmaR_m, sin(), sqrt(), tOrZDist_m, Physics::two_pi, X, xDist_m, and yDist_m.
Referenced by createDistributionBinomial().
|
private |
Definition at line 2307 of file Distribution.cpp.
References DistrTypeT::ASTRAFLATTOPTH, distrTypeT_m, generateAstraFlattopT(), generateLongFlattopT(), Attributes::getBool(), IpplInfo::getNodes(), LaserProfile::getXY(), Object::itsAttr, laserProfile_m, IpplInfo::myNode(), pxDist_m, pyDist_m, Attrib::Distribution::SCALABLE, sigmaR_m, xDist_m, and yDist_m.
Referenced by createDistributionFlattop().
|
private |
Definition at line 2343 of file Distribution.cpp.
References DistrTypeT::ASTRAFLATTOPTH, distrTypeT_m, generateAstraFlattopT(), generateLongFlattopT(), Attributes::getBool(), IpplInfo::getNodes(), Object::itsAttr, IpplInfo::myNode(), pow(), pxDist_m, pyDist_m, randGen_m, Options::rngtype, Attrib::Distribution::SCALABLE, selectRandomGenerator(), sigmaR_m, xDist_m, and yDist_m.
Referenced by createDistributionFlattop().
|
private |
Definition at line 2400 of file Distribution.cpp.
References avrgpz_m, Attributes::getBool(), IpplInfo::getNodes(), Object::itsAttr, IpplInfo::myNode(), pow(), pxDist_m, pyDist_m, pzDist_m, randGen_m, Options::rngtype, Attrib::Distribution::SCALABLE, selectRandomGenerator(), sigmaR_m, tOrZDist_m, xDist_m, and yDist_m.
Referenced by createDistributionFlattop().
|
private |
Definition at line 2464 of file Distribution.cpp.
References abs(), avrgpz_m, correlationMatrix_m, cutoffP_m, cutoffR_m, endl(), Attributes::getBool(), IpplInfo::getNodes(), Object::itsAttr, IpplInfo::myNode(), pow(), pxDist_m, pyDist_m, pzDist_m, randGen_m, Attrib::Distribution::SCALABLE, sigmaP_m, sigmaR_m, SMALLESTCUTOFF, tOrZDist_m, xDist_m, and yDist_m.
Referenced by createDistributionGauss().
|
private |
Definition at line 2632 of file Distribution.cpp.
References abs(), cutoffR_m, Attrib::Distribution::FTOSCAMPLITUDE, Attrib::Distribution::FTOSCPERIODS, Attributes::getBool(), IpplInfo::getNodes(), Attributes::getReal(), Object::itsAttr, log(), IpplInfo::myNode(), Physics::pi, pzDist_m, randGen_m, Options::rngtype, Attrib::Distribution::SCALABLE, selectRandomGenerator(), sigmaTFall_m, sigmaTRise_m, sin(), sqrt(), tOrZDist_m, tPulseLengthFWHM_m, and Physics::two_pi.
Referenced by createDistributionGauss(), generateFlattopLaserProfile(), and generateFlattopT().
|
private |
Definition at line 2777 of file Distribution.cpp.
References abs(), correlationMatrix_m, cutoffP_m, cutoffR_m, Attributes::getBool(), IpplInfo::getNodes(), Object::itsAttr, IpplInfo::myNode(), pow(), pxDist_m, pyDist_m, randGen_m, Attrib::Distribution::SCALABLE, sigmaP_m, sigmaR_m, SMALLESTCUTOFF, xDist_m, and yDist_m.
Referenced by createDistributionGauss().
|
inline |
Definition at line 599 of file Distribution.h.
References pmean_m.
std::vector< double > & Distribution::getBGxDist | ( | ) |
Definition at line 3014 of file Distribution.cpp.
References pxDist_m.
std::vector< double > & Distribution::getBGyDist | ( | ) |
Definition at line 3022 of file Distribution.cpp.
References pyDist_m.
std::vector< double > & Distribution::getBGzDist | ( | ) |
Definition at line 3030 of file Distribution.cpp.
References pzDist_m.
|
inline |
Definition at line 634 of file Distribution.h.
References Attributes::getReal(), Attrib::Distribution::INWARDMARGIN, and Object::itsAttr.
|
inline |
Definition at line 639 of file Distribution.h.
References Attrib::Distribution::EINITHR, Attributes::getReal(), and Object::itsAttr.
|
inline |
Definition at line 614 of file Distribution.h.
References Attrib::Distribution::EKIN, Attributes::getReal(), and Object::itsAttr.
double Distribution::getEmissionDeltaT | ( | ) |
Definition at line 2998 of file Distribution.cpp.
References numberOfSampleBins_m, and tBin_m.
|
inline |
Definition at line 694 of file Distribution.h.
References Attributes::getBool(), Object::itsAttr, and Attrib::Distribution::NEMISSIONMODE.
double Distribution::getEmissionTimeShift | ( | ) | const |
Definition at line 4421 of file Distribution.cpp.
References emitting_m, Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::OFFSETT.
Referenced by TrackRun::setDistributionParallelT().
double Distribution::getEnergyBinDeltaT | ( | ) |
Definition at line 3002 of file Distribution.cpp.
References tBin_m.
|
inline |
Definition at line 649 of file Distribution.h.
References Attrib::Distribution::FNBETA, Attributes::getReal(), and Object::itsAttr.
|
inline |
Definition at line 659 of file Distribution.h.
References Attrib::Distribution::FNFIELDTHR, Attributes::getReal(), and Object::itsAttr.
|
inline |
Definition at line 664 of file Distribution.h.
References Attrib::Distribution::FNA, Attributes::getReal(), and Object::itsAttr.
|
inline |
Definition at line 669 of file Distribution.h.
References Attrib::Distribution::FNB, Attributes::getReal(), and Object::itsAttr.
|
inline |
Definition at line 684 of file Distribution.h.
References Attrib::Distribution::FNVYSECOND, Attributes::getReal(), and Object::itsAttr.
|
inline |
Definition at line 679 of file Distribution.h.
References Attrib::Distribution::FNVYZERO, Attributes::getReal(), and Object::itsAttr.
|
inline |
Definition at line 674 of file Distribution.h.
References Attrib::Distribution::FNY, Attributes::getReal(), and Object::itsAttr.
bool Distribution::getIfDistEmitting | ( | ) |
Definition at line 2954 of file Distribution.cpp.
References emitting_m.
|
inline |
Definition at line 619 of file Distribution.h.
References Attrib::Distribution::ELASER, Attributes::getReal(), and Object::itsAttr.
int Distribution::getLastEmittedEnergyBin | ( | ) |
Definition at line 2958 of file Distribution.cpp.
References currentEnergyBin_m.
|
inline |
Definition at line 654 of file Distribution.h.
References Attrib::Distribution::FNMAXEMI, Attributes::getReal(), and Object::itsAttr.
double Distribution::getMaxTOrZ | ( | ) |
Definition at line 2962 of file Distribution.cpp.
References reduce(), and tOrZDist_m.
Referenced by createOpalT().
double Distribution::getMinTOrZ | ( | ) |
Definition at line 2976 of file Distribution.cpp.
References reduce(), and tOrZDist_m.
Referenced by createOpalT().
|
inline |
Definition at line 629 of file Distribution.h.
References Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::NPDARKCUR.
size_t Distribution::getNumberOfEmissionSteps | ( | ) |
Definition at line 2990 of file Distribution.cpp.
References numberOfEnergyBins_m, and numberOfSampleBins_m.
int Distribution::getNumberOfEnergyBins | ( | ) |
Definition at line 2994 of file Distribution.cpp.
References numberOfEnergyBins_m.
|
private |
Definition at line 1069 of file Distribution.cpp.
References Attrib::Distribution::FNAME, Attributes::getString(), Object::itsAttr, IpplInfo::myNode(), and reduce().
Referenced by calcPartPerDist(), and createDistributionFromFile().
size_t Distribution::getNumOfLocalParticlesToCreate | ( | size_t | n | ) |
Calculate the local number of particles evenly and adjust node 0 such that n is matched exactly.
n | total number of particles |
Definition at line 259 of file Distribution.cpp.
References IpplInfo::getNodes(), and IpplInfo::myNode().
Referenced by create().
|
inline |
Definition at line 609 of file Distribution.h.
References totalNumberEmittedParticles_m, and totalNumberParticles_m.
|
inline |
Definition at line 340 of file Distribution.h.
References previousH5Local_m.
const PartData & Distribution::getReference | ( | ) | const |
Return the embedded CLASSIC PartData.
Definition at line 755 of file Distribution.cpp.
References particleRefData_m, and update().
|
inline |
Definition at line 689 of file Distribution.h.
References Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::SECONDARYFLAG.
|
inline |
Definition at line 754 of file Distribution.h.
References Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::SURFMATERIAL.
double Distribution::getTEmission | ( | ) |
Definition at line 660 of file Distribution.cpp.
References DistrTypeT::ASTRAFLATTOPTH, Attrib::Legacy::Distribution::CUTOFF, cutoff_m, distrTypeT_m, Attributes::getReal(), DistrTypeT::GUNGAUSSFLATTOPTH, Object::itsAttr, log(), setDistType(), sigmaFall_m, sigmaRise_m, sqrt(), tEmission_m, Attrib::Distribution::TFALL, tFall_m, Attrib::Distribution::TPULSEFWHM, tPulseLengthFWHM_m, Attrib::Distribution::TRISE, and tRise_m.
Referenced by TrackRun::setDistributionParallelT(), and TrackRun::setupSliceTracker().
std::vector< double > & Distribution::getTOrZDist | ( | ) |
Definition at line 3026 of file Distribution.cpp.
References tOrZDist_m.
|
inline |
Definition at line 604 of file Distribution.h.
References distrTypeT_m.
|
inline |
Definition at line 699 of file Distribution.h.
References Attributes::getString(), Object::itsAttr, and Attrib::Distribution::TYPE.
|
inline |
Definition at line 722 of file Distribution.h.
References Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::VEMAX.
|
inline |
Definition at line 710 of file Distribution.h.
References Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::VEZERO.
|
inline |
Definition at line 728 of file Distribution.h.
References Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::VKENERGY.
|
inline |
Definition at line 735 of file Distribution.h.
References Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::VKTHETA.
|
inline |
Definition at line 716 of file Distribution.h.
References Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::VSEYMAX.
|
inline |
Definition at line 704 of file Distribution.h.
References Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::VSEYZERO.
|
inline |
Definition at line 742 of file Distribution.h.
References Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::VVTHERMAL.
Referenced by createPriPart().
|
inline |
Definition at line 748 of file Distribution.h.
References Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::VW.
Referenced by createPriPart().
double Distribution::getWeight | ( | ) |
Definition at line 3006 of file Distribution.cpp.
References abs(), Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::WEIGHT.
Referenced by calcPartPerDist().
|
inline |
Definition at line 644 of file Distribution.h.
References Attrib::Distribution::FNPHIW, Attributes::getReal(), and Object::itsAttr.
|
inline |
Definition at line 624 of file Distribution.h.
References Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::W.
std::vector< double > & Distribution::getXDist | ( | ) |
Definition at line 3010 of file Distribution.cpp.
References xDist_m.
std::vector< double > & Distribution::getYDist | ( | ) |
Definition at line 3018 of file Distribution.cpp.
References yDist_m.
|
private |
Definition at line 2877 of file Distribution.cpp.
References numberOfEnergyBins_m, PartBunchBase< T, Dim >::setEnergyBins(), PartBunchBase< T, Dim >::setNumBunch(), PartBunchBase< T, Dim >::setTEmission(), and tEmission_m.
Referenced by createOpalCycl(), and createOpalT().
|
private |
Definition at line 2889 of file Distribution.cpp.
References PartBunchBase< T, Dim >::Bf, PartBunchBase< T, Dim >::Bin, PartBunchBase< T, Dim >::boundp(), PartBunchBase< T, Dim >::calcEMean(), PartBunchBase< T, Dim >::create(), PartBunchBase< T, Dim >::Ef, endl(), findEBin(), PartBunchBase< T, Dim >::getChargePerParticle(), Attributes::getRealArray(), PartBunchBase< T, Dim >::ID, Attrib::Distribution::ID1, Attrib::Distribution::ID2, PartBunchBase< T, Dim >::iterateEmittedBin(), Object::itsAttr, numberOfEnergyBins_m, PartBunchBase< T, Dim >::P, PartBunchBase< T, Dim >::PType, pxDist_m, pyDist_m, pzDist_m, PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, ParticleType::REGULAR, tOrZDist_m, PartBunchBase< T, Dim >::TriID, writeOutFileInjection(), xDist_m, and yDist_m.
Referenced by createOpalCycl(), and createOpalT().
|
privatedelete |
|
private |
Definition at line 3034 of file Distribution.cpp.
References DistrTypeT::ASTRAFLATTOPTH, DistrTypeT::BINOMIAL, Options::cZero, distrTypeT_m, endl(), DistrTypeT::FLATTOP, DistrTypeT::FROMFILE, DistrTypeT::GAUSS, DistrTypeT::GUNGAUSSFLATTOPTH, INFOMSG, DistrTypeT::MATCHEDGAUSS, printDistBinomial(), printDistFlattop(), printDistFromFile(), printDistGauss(), printDistMatchedGauss(), printDistSurfAndCreate(), printDistSurfEmission(), reduce(), DistrTypeT::SURFACEEMISSION, and DistrTypeT::SURFACERANDCREATE.
Referenced by printInfo().
|
private |
Definition at line 3077 of file Distribution.cpp.
References correlationMatrix_m, emitting_m, endl(), mBinomial_m, sigmaP_m, and sigmaR_m.
Referenced by printDist().
|
private |
Definition at line 3105 of file Distribution.cpp.
References abs(), DistrTypeT::ASTRAFLATTOPTH, cutoffR_m, distrTypeT_m, emitting_m, endl(), Attrib::Distribution::FTOSCAMPLITUDE, Attrib::Distribution::FTOSCPERIODS, Attributes::getReal(), DistrTypeT::GUNGAUSSFLATTOPTH, Object::itsAttr, laserImageName_m, laserIntensityCut_m, laserProfile_m, laserProfileFileName_m, sigmaR_m, sigmaTFall_m, sigmaTRise_m, tPulseLengthFWHM_m, and tRise_m.
Referenced by printDist().
|
private |
Definition at line 3170 of file Distribution.cpp.
References endl(), Attrib::Distribution::FNAME, Attributes::getString(), and Object::itsAttr.
Referenced by printDist().
|
private |
Definition at line 3203 of file Distribution.cpp.
References abs(), avrgpz_m, correlationMatrix_m, cutoffP_m, cutoffR_m, emitting_m, endl(), Attrib::Distribution::FTOSCAMPLITUDE, Attrib::Distribution::FTOSCPERIODS, Attributes::getReal(), Object::itsAttr, sigmaP_m, sigmaR_m, sigmaTFall_m, sigmaTRise_m, and tPulseLengthFWHM_m.
Referenced by printDist().
|
private |
Definition at line 3178 of file Distribution.cpp.
References avrgpz_m, correlationMatrix_m, cutoffP_m, cutoffR_m, endl(), sigmaP_m, and sigmaR_m.
Referenced by printDist().
|
private |
Definition at line 3323 of file Distribution.cpp.
References Attrib::Distribution::EINITHR, endl(), Attributes::getReal(), Attrib::Distribution::INWARDMARGIN, Object::itsAttr, and Attrib::Distribution::NPDARKCUR.
Referenced by printDist().
|
private |
Definition at line 3262 of file Distribution.cpp.
References Attrib::Distribution::EINITHR, endl(), Attrib::Distribution::FNA, Attrib::Distribution::FNB, Attrib::Distribution::FNBETA, Attrib::Distribution::FNFIELDTHR, Attrib::Distribution::FNMAXEMI, Attrib::Distribution::FNVYSECOND, Attrib::Distribution::FNVYZERO, Attrib::Distribution::FNY, Attributes::getBool(), Attributes::getReal(), Attrib::Distribution::INWARDMARGIN, Object::itsAttr, Attrib::Distribution::NEMISSIONMODE, Attrib::Distribution::NPDARKCUR, Attrib::Distribution::SECONDARYFLAG, Attrib::Distribution::SURFMATERIAL, Attrib::Distribution::VEMAX, Attrib::Distribution::VEZERO, Attrib::Distribution::VKENERGY, Attrib::Distribution::VKTHETA, Attrib::Distribution::VSEYMAX, Attrib::Distribution::VSEYZERO, Attrib::Distribution::VVTHERMAL, and Attrib::Distribution::VW.
Referenced by printDist().
|
private |
Definition at line 3336 of file Distribution.cpp.
References EmissionModelT::ASTRA, emissionModel_m, endl(), EmissionModelT::NONE, EmissionModelT::NONEQUIL, printEmissionModelAstra(), printEmissionModelNone(), and printEmissionModelNonEquil().
Referenced by printInfo().
|
private |
Definition at line 3359 of file Distribution.cpp.
References abs(), Attrib::Distribution::EKIN, endl(), Attributes::getReal(), and Object::itsAttr.
Referenced by printEmissionModel().
|
private |
Definition at line 3366 of file Distribution.cpp.
References abs(), Attrib::Distribution::EKIN, endl(), Attributes::getReal(), and Object::itsAttr.
Referenced by printEmissionModel().
|
private |
Definition at line 3373 of file Distribution.cpp.
References cathodeFermiEnergy_m, cathodeTemp_m, cathodeWorkFunc_m, endl(), Physics::kB, and laserEnergy_m.
Referenced by printEmissionModel().
|
private |
Definition at line 3381 of file Distribution.cpp.
References endl(), energyBinHist_m, numberOfEnergyBins_m, numberOfSampleBins_m, and sum().
Definition at line 704 of file Distribution.cpp.
References addedDistributions_m, emitting_m, endl(), OpalData::getInstance(), numberOfEnergyBins_m, numberOfSampleBins_m, particlesPerDist_m, printDist(), printEmissionModel(), tBin_m, and tEmission_m.
Referenced by operator<<().
bool Distribution::Rebin | ( | ) |
Definition at line 3397 of file Distribution.cpp.
References emitting_m, and numberOfEnergyBins_m.
|
private |
Definition at line 3410 of file Distribution.cpp.
References Options::cZero, distrTypeT_m, DistrTypeT::FROMFILE, IpplInfo::myNode(), pxDist_m, pyDist_m, pzDist_m, reduce(), tOrZDist_m, xDist_m, and yDist_m.
Referenced by create().
|
private |
Definition at line 3439 of file Distribution.cpp.
References emitting_m, Attributes::getReal(), Object::itsAttr, pxDist_m, Attrib::Distribution::PXMULT, pyDist_m, Attrib::Distribution::PYMULT, pzDist_m, Attrib::Distribution::PZMULT, Attrib::Distribution::TMULT, tOrZDist_m, xDist_m, Attrib::Distribution::XMULT, yDist_m, Attrib::Distribution::YMULT, and Attrib::Distribution::ZMULT.
Referenced by create().
|
private |
Select and allocate gsl random number generator.
Definition at line 3461 of file Distribution.cpp.
References endl(), INFOMSG, and Options::rngtype.
Referenced by generateFlattopT(), generateFlattopZ(), and generateLongFlattopT().
|
private |
Definition at line 3480 of file Distribution.cpp.
References Attrib::Distribution::CATHTEMP, Attrib::Distribution::CORRT, Attrib::Distribution::CORRX, Attrib::Distribution::CORRY, Attrib::Distribution::CORRZ, Attrib::Legacy::Distribution::CUTOFF, Attrib::Distribution::CUTOFFLONG, Attrib::Distribution::CUTOFFPX, Attrib::Distribution::CUTOFFPY, Attrib::Distribution::CUTOFFPZ, Attrib::Distribution::CUTOFFR, Attrib::Distribution::CUTOFFX, Attrib::Distribution::CUTOFFY, Attrib::Distribution::DENERGY, Attrib::Legacy::Distribution::DISTRIBUTION, Physics::e, Attrib::Distribution::EINITHR, Attrib::Distribution::EKIN, Attrib::Distribution::ELASER, Attrib::Distribution::EMISSIONMODEL, Attrib::Distribution::EMISSIONSTEPS, Attrib::Distribution::EMITTED, Attrib::Distribution::ET, Attrib::Distribution::EX, Attrib::Distribution::EY, Attrib::Distribution::FE, Attrib::Distribution::FLIPX, Attrib::Distribution::FLIPY, Attrib::Distribution::FNA, Attrib::Distribution::FNAME, Attrib::Distribution::FNB, Attrib::Distribution::FNBETA, Attrib::Distribution::FNFIELDTHR, Attrib::Distribution::FNMAXEMI, Attrib::Distribution::FNPHIW, Attrib::Distribution::FNVYSECOND, Attrib::Distribution::FNVYZERO, Attrib::Distribution::FNY, Attrib::Distribution::FTOSCAMPLITUDE, Attrib::Distribution::FTOSCPERIODS, Attrib::Distribution::ID1, Attrib::Distribution::ID2, Attrib::Distribution::IMAGENAME, Attrib::Distribution::INPUTMOUNITS, Attrib::Distribution::INTENSITYCUT, Attrib::Distribution::INWARDMARGIN, Object::itsAttr, Attrib::Distribution::LASERPROFFN, Attrib::Distribution::LINE, Attributes::makeBool(), Attributes::makeReal(), Attributes::makeRealArray(), Attributes::makeString(), Attrib::Distribution::MAXSTEPSCO, Attrib::Distribution::MAXSTEPSSI, Attrib::Distribution::MT, Attrib::Distribution::MX, Attrib::Distribution::MY, Attrib::Distribution::MZ, Attrib::Distribution::NBIN, Attrib::Distribution::NEMISSIONMODE, Attrib::Distribution::NPDARKCUR, Attrib::Distribution::NSECTORS, Attrib::Distribution::NSTEPS, Attrib::Distribution::OFFSETP, Attrib::Distribution::OFFSETPX, Attrib::Distribution::OFFSETPY, Attrib::Distribution::OFFSETPZ, Attrib::Distribution::OFFSETT, Attrib::Distribution::OFFSETX, Attrib::Distribution::OFFSETY, Attrib::Distribution::OFFSETZ, Attrib::Distribution::ORDERMAPS, Attrib::Legacy::Distribution::PT, Attrib::Distribution::PXMULT, Attrib::Distribution::PYMULT, Attrib::Distribution::PZMULT, Attrib::Distribution::R, Attrib::Distribution::R51, Attrib::Distribution::R52, Attrib::Distribution::R61, Attrib::Distribution::R62, Object::registerOwnership(), Attrib::Distribution::RESIDUUM, Attrib::Distribution::RGUESS, Attrib::Distribution::ROTATE180, Attrib::Distribution::ROTATE270, Attrib::Distribution::ROTATE90, Attrib::Legacy::Distribution::SBIN, Attrib::Distribution::SCALABLE, Attrib::Distribution::SECONDARYFLAG, Attrib::Distribution::SECTOR, Attrib::Legacy::Distribution::SIGMAPT, Attrib::Distribution::SIGMAPX, Attrib::Distribution::SIGMAPY, Attrib::Distribution::SIGMAPZ, Attrib::Distribution::SIGMAR, Attrib::Distribution::SIGMAT, Attrib::Distribution::SIGMAX, Attrib::Distribution::SIGMAY, Attrib::Distribution::SIGMAZ, AttributeHandler::STATEMENT, Attrib::Distribution::SURFMATERIAL, Attrib::Legacy::Distribution::T, Attrib::Distribution::TFALL, Attrib::Distribution::TMULT, Attrib::Distribution::TPULSEFWHM, Attrib::Distribution::TRISE, Attrib::Distribution::TYPE, Attrib::Distribution::VEMAX, Attrib::Distribution::VEZERO, Attrib::Distribution::VKENERGY, Attrib::Distribution::VKTHETA, Attrib::Distribution::VSEYMAX, Attrib::Distribution::VSEYZERO, Attrib::Distribution::VVTHERMAL, Attrib::Distribution::VW, Attrib::Distribution::W, Attrib::Distribution::WEIGHT, Attrib::Distribution::WRITETOFILE, Attrib::Distribution::XMULT, Attrib::Distribution::YMULT, and Attrib::Distribution::ZMULT.
Referenced by Distribution().
|
private |
Definition at line 3972 of file Distribution.cpp.
References abs(), converteVToBetaGamma(), correlationMatrix_m, Attrib::Distribution::CORRT, Attrib::Distribution::CORRX, Attrib::Distribution::CORRY, Attrib::Distribution::CORRZ, Attrib::Distribution::CUTOFFLONG, cutoffP_m, Attrib::Distribution::CUTOFFPX, Attrib::Distribution::CUTOFFPY, Attrib::Distribution::CUTOFFPZ, cutoffR_m, Attrib::Distribution::CUTOFFX, Attrib::Distribution::CUTOFFY, emitting_m, endl(), InputMomentumUnitsT::EV, Attributes::getReal(), Attributes::getRealArray(), inputMoUnits_m, Object::itsAttr, mBinomial_m, Attrib::Distribution::MT, Attrib::Distribution::MX, Attrib::Distribution::MY, Attrib::Distribution::MZ, Attrib::Distribution::R, Attrib::Distribution::R51, Attrib::Distribution::R52, Attrib::Distribution::R61, Attrib::Distribution::R62, sigmaP_m, Attrib::Legacy::Distribution::SIGMAPT, Attrib::Distribution::SIGMAPX, Attrib::Distribution::SIGMAPY, Attrib::Distribution::SIGMAPZ, sigmaR_m, Attrib::Distribution::SIGMAT, Attrib::Distribution::SIGMAX, Attrib::Distribution::SIGMAY, Attrib::Distribution::SIGMAZ, and WARNMSG.
Referenced by createDistributionBinomial().
|
private |
Definition at line 4046 of file Distribution.cpp.
References abs(), DistrTypeT::ASTRAFLATTOPTH, converteVToBetaGamma(), correlationMatrix_m, Attrib::Distribution::CORRT, Attrib::Distribution::CORRX, Attrib::Distribution::CORRY, Attrib::Distribution::CORRZ, Attrib::Distribution::CUTOFFLONG, cutoffR_m, Attrib::Distribution::CUTOFFX, Attrib::Distribution::CUTOFFY, distrTypeT_m, emitting_m, InputMomentumUnitsT::EV, LaserProfile::FLIPX, Attrib::Distribution::FLIPX, LaserProfile::FLIPY, Attrib::Distribution::FLIPY, Attributes::getBool(), Attributes::getReal(), Attributes::getString(), Attrib::Distribution::IMAGENAME, inputMoUnits_m, Attrib::Distribution::INTENSITYCUT, Object::itsAttr, laserImageName_m, laserIntensityCut_m, Attrib::Distribution::LASERPROFFN, laserProfile_m, laserProfileFileName_m, log(), LaserProfile::ROTATE180, Attrib::Distribution::ROTATE180, LaserProfile::ROTATE270, Attrib::Distribution::ROTATE270, LaserProfile::ROTATE90, Attrib::Distribution::ROTATE90, sigmaP_m, Attrib::Distribution::SIGMAPX, Attrib::Distribution::SIGMAPY, Attrib::Distribution::SIGMAPZ, Attrib::Distribution::SIGMAR, sigmaR_m, Attrib::Distribution::SIGMAT, sigmaTFall_m, sigmaTRise_m, Attrib::Distribution::SIGMAX, Attrib::Distribution::SIGMAY, Attrib::Distribution::SIGMAZ, sqrt(), Attrib::Distribution::TFALL, Attrib::Distribution::TPULSEFWHM, tPulseLengthFWHM_m, Attrib::Distribution::TRISE, and tRise_m.
Referenced by createDistributionFlattop(), and createOpalE().
|
private |
Definition at line 4145 of file Distribution.cpp.
References abs(), converteVToBetaGamma(), correlationMatrix_m, Attrib::Distribution::CORRT, Attrib::Distribution::CORRX, Attrib::Distribution::CORRY, Attrib::Distribution::CORRZ, Attrib::Distribution::CUTOFFLONG, cutoffP_m, Attrib::Distribution::CUTOFFPX, Attrib::Distribution::CUTOFFPY, Attrib::Distribution::CUTOFFPZ, Attrib::Distribution::CUTOFFR, cutoffR_m, Attrib::Distribution::CUTOFFX, Attrib::Distribution::CUTOFFY, distrTypeT_m, emitting_m, endl(), InputMomentumUnitsT::EV, Attributes::getReal(), Attributes::getRealArray(), inputMoUnits_m, Object::itsAttr, log(), DistrTypeT::MATCHEDGAUSS, Attrib::Distribution::R, Attrib::Distribution::R51, Attrib::Distribution::R52, Attrib::Distribution::R61, Attrib::Distribution::R62, sigmaP_m, Attrib::Distribution::SIGMAPX, Attrib::Distribution::SIGMAPY, Attrib::Distribution::SIGMAPZ, Attrib::Distribution::SIGMAR, sigmaR_m, Attrib::Distribution::SIGMAT, sigmaTFall_m, sigmaTRise_m, Attrib::Distribution::SIGMAX, Attrib::Distribution::SIGMAY, Attrib::Distribution::SIGMAZ, sqrt(), Attrib::Distribution::TFALL, Attrib::Distribution::TPULSEFWHM, tPulseLengthFWHM_m, and Attrib::Distribution::TRISE.
Referenced by createDistributionGauss(), and createOpalE().
void Distribution::setDistToEmitted | ( | bool | emitted | ) |
Definition at line 3877 of file Distribution.cpp.
References emitting_m.
void Distribution::setDistType | ( | ) |
Definition at line 3881 of file Distribution.cpp.
References DistrTypeT::ASTRAFLATTOPTH, DistrTypeT::BINOMIAL, Attrib::Legacy::Distribution::DISTRIBUTION, distrTypeT_m, distT_m, DistrTypeT::FLATTOP, DistrTypeT::FROMFILE, DistrTypeT::GAUSS, Attributes::getString(), DistrTypeT::GUNGAUSSFLATTOPTH, Object::itsAttr, DistrTypeT::MATCHEDGAUSS, DistrTypeT::SURFACEEMISSION, DistrTypeT::SURFACERANDCREATE, Util::toUpper(), and Attrib::Distribution::TYPE.
Referenced by createOpalCycl(), createOpalE(), createOpalT(), and getTEmission().
|
private |
Definition at line 3922 of file Distribution.cpp.
References addedDistributions_m, DistrTypeT::ASTRAFLATTOPTH, cutoffR_m, distrTypeT_m, DistrTypeT::FLATTOP, DistrTypeT::GAUSS, DistrTypeT::GUNGAUSSFLATTOPTH, log(), numberOfEnergyBins_m, sigmaTFall_m, sigmaTRise_m, sqrt(), tBin_m, tEmission_m, and tPulseLengthFWHM_m.
Referenced by createOpalT().
|
private |
Definition at line 3857 of file Distribution.cpp.
References darkCurrentParts_m, darkInwardMargin_m, Attrib::Distribution::EINITHR, eInitThreshold_m, fieldEnhancement_m, fieldThrFN_m, Attrib::Distribution::FNA, Attrib::Distribution::FNB, Attrib::Distribution::FNBETA, Attrib::Distribution::FNFIELDTHR, Attrib::Distribution::FNMAXEMI, Attrib::Distribution::FNPHIW, Attrib::Distribution::FNVYSECOND, Attrib::Distribution::FNVYZERO, Attrib::Distribution::FNY, Attributes::getReal(), Attrib::Distribution::INWARDMARGIN, Object::itsAttr, maxFN_m, Attrib::Distribution::NPDARKCUR, paraFNA_m, paraFNB_m, paraFNVYSe_m, paraFNVYZe_m, paraFNY_m, ppVw_m, Attrib::Distribution::SECONDARYFLAG, secondaryFlag_m, Attrib::Distribution::VVTHERMAL, vVThermal_m, Attrib::Distribution::VW, and workFunction_m.
Referenced by create().
|
inline |
Definition at line 342 of file Distribution.h.
References Hypervolume::n, and numberOfDistributions_m.
Referenced by TrackRun::setDistributionParallelT().
|
private |
Definition at line 4266 of file Distribution.cpp.
References EmissionModelT::ASTRA, DistrTypeT::ASTRAFLATTOPTH, distrTypeT_m, Attrib::Distribution::EMISSIONMODEL, emissionModel_m, Attributes::getString(), DistrTypeT::GUNGAUSSFLATTOPTH, Object::itsAttr, EmissionModelT::NONE, EmissionModelT::NONEQUIL, setupEmissionModelAstra(), setupEmissionModelNonEquil(), and Util::toUpper().
Referenced by createOpalT().
|
private |
Definition at line 4298 of file Distribution.cpp.
References abs(), converteVToBetaGamma(), Attrib::Distribution::EKIN, PartBunchBase< T, Dim >::getM(), Attributes::getReal(), Object::itsAttr, pmean_m, and pTotThermal_m.
Referenced by setupEmissionModel().
|
private |
Definition at line 4305 of file Distribution.cpp.
References abs(), converteVToBetaGamma(), Attrib::Distribution::EKIN, PartBunchBase< T, Dim >::getM(), Attributes::getReal(), Object::itsAttr, pmean_m, pTotThermal_m, pzDist_m, and reduce().
Referenced by createOpalT().
|
private |
Definition at line 4318 of file Distribution.cpp.
References abs(), cathodeFermiEnergy_m, cathodeTemp_m, cathodeWorkFunc_m, Attrib::Distribution::CATHTEMP, Attrib::Distribution::ELASER, emitEnergyUpperLimit_m, Attrib::Distribution::FE, Attributes::getReal(), Object::itsAttr, Physics::kB, laserEnergy_m, log(), Physics::m_e, pmean_m, pow(), sqrt(), and Attrib::Distribution::W.
Referenced by setupEmissionModel().
|
private |
Definition at line 4336 of file Distribution.cpp.
References emitting_m, energyBinHist_m, numberOfEnergyBins_m, numberOfSampleBins_m, and tEmission_m.
Referenced by createOpalT().
|
private |
Definition at line 4347 of file Distribution.cpp.
References abs(), energyBins_m, PartBunchBase< T, Dim >::getM(), PartBunchBase< T, Dim >::getP(), Attributes::getReal(), Object::itsAttr, Attrib::Distribution::NBIN, numberOfEnergyBins_m, pow(), Attrib::Legacy::Distribution::PT, Attrib::Legacy::Distribution::SBIN, PartBins::setGamma(), and sqrt().
Referenced by createOpalCycl().
void Distribution::shiftBeam | ( | double & | maxTOrZ, |
double & | minTOrZ | ||
) |
Definition at line 4372 of file Distribution.cpp.
References addedDistributions_m, DistrTypeT::ASTRAFLATTOPTH, distrTypeT_m, emitting_m, DistrTypeT::FLATTOP, DistrTypeT::FROMFILE, DistrTypeT::GAUSS, DistrTypeT::GUNGAUSSFLATTOPTH, reduce(), tEmission_m, and tOrZDist_m.
Referenced by createOpalT().
|
private |
Definition at line 4428 of file Distribution.cpp.
References addedDistributions_m, converteVToBetaGamma(), emitting_m, endl(), InputMomentumUnitsT::EV, Attributes::getReal(), inputMoUnits_m, Object::itsAttr, Attrib::Distribution::OFFSETPX, Attrib::Distribution::OFFSETPY, Attrib::Distribution::OFFSETPZ, Attrib::Distribution::OFFSETX, Attrib::Distribution::OFFSETY, Attrib::Distribution::OFFSETZ, particlesPerDist_m, Attrib::Legacy::Distribution::PT, pxDist_m, pyDist_m, pzDist_m, Attrib::Legacy::Distribution::T, tOrZDist_m, WARNMSG, xDist_m, and yDist_m.
Referenced by createOpalCycl(), and createOpalT().
|
virtual |
Update this object.
Reimplemented from Object.
Definition at line 284 of file Distribution.cpp.
Referenced by getReference().
|
private |
Definition at line 4537 of file Distribution.cpp.
References Communicate::barrier(), binWrite_m, IpplInfo::Comm, Communicate::COMM_ANY_NODE, endl(), ERRORMSG, Attributes::getBool(), IpplInfo::getComm(), OpalData::getInputBasename(), OpalData::getInstance(), IpplInfo::getNodes(), Object::getOpalName(), IPPL_APP_CYCLE, IPPL_APP_TAG2, Object::itsAttr, level1(), IpplInfo::myNode(), TagMaker::next_tag(), pxWrite_m, pyWrite_m, pzWrite_m, Communicate::raw_probe_receive(), Communicate::raw_receive(), Communicate::raw_send(), tOrZWrite_m, Attrib::Distribution::WRITETOFILE, xWrite_m, and yWrite_m.
Referenced by emitParticles().
|
private |
Definition at line 4481 of file Distribution.cpp.
References emitting_m, endl(), Attributes::getBool(), OpalData::getInputBasename(), OpalData::getInstance(), Object::getOpalName(), Object::itsAttr, IpplInfo::myNode(), numberOfEnergyBins_m, reduce(), Inform::setf(), tOrZDist_m, Inform::width(), and Attrib::Distribution::WRITETOFILE.
Referenced by createOpalCycl(), and createOpalT().
|
private |
Definition at line 4662 of file Distribution.cpp.
References endl(), findEBin(), Attributes::getBool(), OpalData::getInputBasename(), OpalData::getInstance(), IpplInfo::getNodes(), Object::getOpalName(), Object::itsAttr, IpplInfo::myNode(), numberOfEnergyBins_m, Inform::precision(), pxDist_m, pyDist_m, pzDist_m, reduce(), tOrZDist_m, Attrib::Distribution::WRITETOFILE, xDist_m, and yDist_m.
Referenced by injectBeam().
|
private |
Vector of distributions to be added to this distribution.
Reference data for particle type (charge, mass etc.)
Definition at line 466 of file Distribution.h.
Referenced by addDistributions(), calcPartPerDist(), createOpalT(), printInfo(), setEmissionTime(), shiftBeam(), and shiftDistCoordinates().
|
private |
Upper limit on emission energy distribution (eV).
Definition at line 499 of file Distribution.h.
Referenced by create(), createOpalT(), and emitParticles().
|
private |
Definition at line 522 of file Distribution.h.
Referenced by adjustPhaseSpace(), createOpalT(), generateBinomial(), generateFlattopZ(), generateGaussZ(), printDistGauss(), and printDistMatchedGauss().
|
private |
Definition at line 519 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().
|
private |
Laser photon energy (eV).
Definition at line 495 of file Distribution.h.
Referenced by applyEmissModelNonEquil(), emitParticles(), printEmissionModelNonEquil(), and setupEmissionModelNonEquil().
|
private |
Cathode material Fermi energy (eV).
Definition at line 496 of file Distribution.h.
Referenced by applyEmissModelNonEquil(), printEmissionModelNonEquil(), and setupEmissionModelNonEquil().
|
private |
Definition at line 493 of file Distribution.h.
Referenced by emitParticles(), printEmissionModelNonEquil(), and setupEmissionModelNonEquil().
|
private |
Definition at line 536 of file Distribution.h.
Referenced by createMatchedGaussDistribution(), generateBinomial(), generateGaussZ(), generateTransverseGauss(), printDistBinomial(), printDistGauss(), printDistMatchedGauss(), setDistParametersBinomial(), setDistParametersFlattop(), and setDistParametersGauss().
|
private |
Definition at line 475 of file Distribution.h.
Referenced by emitParticles().
|
private |
Definition at line 476 of file Distribution.h.
Referenced by checkEmissionParameters(), emitParticles(), and getLastEmittedEnergyBin().
|
private |
Definition at line 477 of file Distribution.h.
Referenced by checkEmissionParameters(), and emitParticles().
|
private |
Definition at line 588 of file Distribution.h.
Referenced by getTEmission().
|
private |
Definition at line 534 of file Distribution.h.
Referenced by generateGaussZ(), generateTransverseGauss(), printDistGauss(), printDistMatchedGauss(), setDistParametersBinomial(), and setDistParametersGauss().
|
private |
Definition at line 533 of file Distribution.h.
Referenced by createOpalE(), generateGaussZ(), generateLongFlattopT(), generateTransverseGauss(), printDistFlattop(), printDistGauss(), printDistMatchedGauss(), setDistParametersBinomial(), setDistParametersFlattop(), setDistParametersGauss(), and setEmissionTime().
|
private |
Definition at line 547 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Number of dark current particles.
Definition at line 548 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Distribution type. Declared as string.
Definition at line 455 of file Distribution.h.
Referenced by adjustPhaseSpace(), calcPartPerDist(), checkIfEmitted(), create(), createOpalE(), createOpalT(), generateFlattopLaserProfile(), generateFlattopT(), getTEmission(), getType(), printDist(), printDistFlattop(), reflectDistribution(), setDistParametersFlattop(), setDistParametersGauss(), setDistType(), setEmissionTime(), setupEmissionModel(), and shiftBeam().
|
private |
Definition at line 454 of file Distribution.h.
Referenced by setDistType().
|
private |
Definition at line 581 of file Distribution.h.
Referenced by createMatchedGaussDistribution(), and createOpalCycl().
|
private |
Dark current particle initialization position. Inward along the triangle normal, positive. Inside the geometry.
Definition at line 551 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Emission Model.
Definition at line 470 of file Distribution.h.
Referenced by applyEmissionModel(), create(), createOpalT(), printEmissionModel(), and setupEmissionModel().
|
private |
Cathode temperature (K).
Definition at line 497 of file Distribution.h.
Referenced by applyEmissModelNonEquil(), and setupEmissionModelNonEquil().
|
private |
Definition at line 459 of file Distribution.h.
Referenced by adjustPhaseSpace(), checkIfEmitted(), create(), createDistributionFlattop(), createDistributionGauss(), createOpalCycl(), createOpalT(), emitParticles(), getEmissionTimeShift(), getIfDistEmitting(), printDistBinomial(), printDistFlattop(), printDistGauss(), printInfo(), Rebin(), scaleDistCoordinates(), setDistParametersBinomial(), setDistParametersFlattop(), setDistParametersGauss(), setDistToEmitted(), setupEnergyBins(), shiftBeam(), shiftDistCoordinates(), and writeOutFileHeader().
|
private |
Distribution energy bins.
Definition at line 483 of file Distribution.h.
Referenced by fillEBinHistogram(), findEBin(), printEnergyBins(), setupEnergyBins(), and ~Distribution().
|
private |
Number of samples to use per energy bin when emitting beam.
Definition at line 482 of file Distribution.h.
Referenced by createOpalCycl(), doRestartOpalCycl(), fillParticleBins(), setupParticleBins(), and ~Distribution().
|
private |
Work function of surface material (eV).
Definition at line 554 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Field enhancement factor beta for Fowler- Nordheim emission.
Definition at line 556 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Thermal velocity of Maxwellian distribution of secondaries in Vaughan's model.
Definition at line 580 of file Distribution.h.
Referenced by createMatchedGaussDistribution(), and createOpalCycl().
|
private |
Definition at line 527 of file Distribution.h.
Referenced by adjustPhaseSpace(), chooseInputMomentumUnits(), createDistributionFromFile(), createOpalT(), setDistParametersBinomial(), setDistParametersFlattop(), setDistParametersGauss(), and shiftDistCoordinates().
|
private |
Cathode material work function (eV).
Definition at line 494 of file Distribution.h.
Referenced by applyEmissModelNonEquil(), emitParticles(), printEmissionModelNonEquil(), and setupEmissionModelNonEquil().
|
private |
Definition at line 540 of file Distribution.h.
Referenced by printDistFlattop(), and setDistParametersFlattop().
|
private |
Definition at line 541 of file Distribution.h.
Referenced by printDistFlattop(), and setDistParametersFlattop().
|
private |
Definition at line 542 of file Distribution.h.
Referenced by createDistributionFlattop(), generateFlattopLaserProfile(), printDistFlattop(), setDistParametersFlattop(), and ~Distribution().
|
private |
Definition at line 539 of file Distribution.h.
Referenced by printDistFlattop(), and setDistParametersFlattop().
|
private |
Field threshold for Fowler-Nordheim emission (MV/m).
Definition at line 558 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Definition at line 535 of file Distribution.h.
Referenced by generateBinomial(), printDistBinomial(), and setDistParametersBinomial().
|
private |
and list type for switch statements.
Definition at line 457 of file Distribution.h.
Referenced by calcPartPerDist(), and setNumberOfDistributions().
|
private |
Definition at line 478 of file Distribution.h.
Referenced by checkEmissionParameters(), createOpalCycl(), createOpalE(), createOpalT(), emitParticles(), findEBin(), getNumberOfEmissionSteps(), getNumberOfEnergyBins(), initializeBeam(), injectBeam(), printEnergyBins(), printInfo(), Rebin(), setEmissionTime(), setupEnergyBins(), setupParticleBins(), writeOutFileHeader(), and writeOutFileInjection().
|
private |
Number of energy bins the distribution is broken into. Used for an emitted beam.
Definition at line 480 of file Distribution.h.
Referenced by checkEmissionParameters(), emitParticles(), findEBin(), getEmissionDeltaT(), getNumberOfEmissionSteps(), printEnergyBins(), printInfo(), and setupEnergyBins().
|
private |
Max. number of electrons emitted from a single triangle for Fowler-Nordheim emission.
Definition at line 560 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Empirical constant A in Fowler-Nordheim emission model.
Definition at line 562 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Constant for image charge effect parameter y(E) in Fowler-Nordheim emission model.
Definition at line 566 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Second order constant for v(y) function in Fowler-Nordheim emission model.
Definition at line 568 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Empirical constant B in Fowler-Nordheim emission model.
Definition at line 564 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Distribution is an emitted, and is currently emitting, rather than an injected, beam.
Definition at line 462 of file Distribution.h.
Referenced by getReference().
|
private |
Definition at line 467 of file Distribution.h.
Referenced by addDistributions(), calcPartPerDist(), create(), createOpalCycl(), createOpalT(), printInfo(), and shiftDistCoordinates().
|
private |
Total thermal momentum.
Definition at line 490 of file Distribution.h.
Referenced by createDistributionFromFile(), createOpalT(), get_pmean(), setupEmissionModelAstra(), setupEmissionModelNone(), and setupEmissionModelNonEquil().
|
private |
Select the secondary model type: 0 ==> no secondary emission. 1 ==> Furman-Pivi 2 or larger ==> Vaughan's model
Definition at line 574 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Definition at line 591 of file Distribution.h.
Referenced by GetPreviousH5Local().
|
private |
Random number generator.
Definition at line 489 of file Distribution.h.
Referenced by applyEmissModelAstra(), applyEmissModelNone(), setupEmissionModelAstra(), and setupEmissionModelNone().
|
private |
Definition at line 506 of file Distribution.h.
Referenced by addDistributions(), adjustPhaseSpace(), createDistributionFromFile(), emitParticles(), eraseBGxDist(), fillParticleBins(), generateBinomial(), generateFlattopLaserProfile(), generateFlattopT(), generateFlattopZ(), generateGaussZ(), generateTransverseGauss(), getBGxDist(), injectBeam(), reflectDistribution(), scaleDistCoordinates(), shiftDistCoordinates(), and writeOutFileInjection().
|
private |
Definition at line 514 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().
|
private |
Definition at line 508 of file Distribution.h.
Referenced by addDistributions(), adjustPhaseSpace(), createDistributionFromFile(), emitParticles(), eraseBGyDist(), fillParticleBins(), generateBinomial(), generateFlattopLaserProfile(), generateFlattopT(), generateFlattopZ(), generateGaussZ(), generateTransverseGauss(), getBGyDist(), injectBeam(), reflectDistribution(), scaleDistCoordinates(), shiftDistCoordinates(), and writeOutFileInjection().
|
private |
Definition at line 516 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().
|
private |
Definition at line 510 of file Distribution.h.
Referenced by addDistributions(), adjustPhaseSpace(), createDistributionFromFile(), emitParticles(), eraseBGzDist(), fillParticleBins(), generateAstraFlattopT(), generateBinomial(), generateFlattopZ(), generateGaussZ(), generateLongFlattopT(), getBGzDist(), injectBeam(), reflectDistribution(), scaleDistCoordinates(), setupEmissionModelNone(), shiftDistCoordinates(), and writeOutFileInjection().
|
private |
Definition at line 518 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().
|
private |
GSL histogram used to define energy bin structure.
Definition at line 486 of file Distribution.h.
Referenced by applyEmissModelNonEquil(), create(), createPriPart(), Distribution(), generateAstraFlattopT(), generateBinomial(), generateFlattopT(), generateFlattopZ(), generateGaussZ(), generateLongFlattopT(), generateTransverseGauss(), and ~Distribution().
|
private |
Zero order constant for v(y) function in Fowler-Nordheim emission model.
Definition at line 570 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Definition at line 587 of file Distribution.h.
Referenced by getTEmission().
|
private |
Definition at line 532 of file Distribution.h.
Referenced by createMatchedGaussDistribution(), generateBinomial(), generateGaussZ(), generateTransverseGauss(), printDistBinomial(), printDistGauss(), printDistMatchedGauss(), setDistParametersBinomial(), setDistParametersFlattop(), and setDistParametersGauss().
|
private |
Definition at line 531 of file Distribution.h.
Referenced by createMatchedGaussDistribution(), createOpalE(), generateBinomial(), generateFlattopLaserProfile(), generateFlattopT(), generateFlattopZ(), generateGaussZ(), generateTransverseGauss(), printDistBinomial(), printDistFlattop(), printDistGauss(), printDistMatchedGauss(), setDistParametersBinomial(), setDistParametersFlattop(), and setDistParametersGauss().
|
private |
Definition at line 586 of file Distribution.h.
Referenced by getTEmission().
|
private |
Definition at line 529 of file Distribution.h.
Referenced by createOpalE(), generateLongFlattopT(), printDistFlattop(), printDistGauss(), setDistParametersFlattop(), setDistParametersGauss(), and setEmissionTime().
|
private |
Definition at line 528 of file Distribution.h.
Referenced by createOpalE(), generateLongFlattopT(), printDistFlattop(), printDistGauss(), setDistParametersFlattop(), setDistParametersGauss(), and setEmissionTime().
|
private |
Definition at line 474 of file Distribution.h.
Referenced by generateAstraFlattopT(), getEmissionDeltaT(), getEnergyBinDeltaT(), printInfo(), and setEmissionTime().
|
private |
Emission parameters.
Definition at line 473 of file Distribution.h.
Referenced by createOpalE(), generateAstraFlattopT(), getTEmission(), initializeBeam(), printInfo(), setEmissionTime(), setupEnergyBins(), and shiftBeam().
|
private |
Definition at line 585 of file Distribution.h.
Referenced by getTEmission().
|
private |
Definition at line 509 of file Distribution.h.
Referenced by addDistributions(), adjustPhaseSpace(), checkParticleNumber(), create(), createDistributionFromFile(), createOpalCycl(), emitParticles(), eraseTOrZDist(), fillEBinHistogram(), fillParticleBins(), generateAstraFlattopT(), generateBinomial(), generateFlattopZ(), generateGaussZ(), generateLongFlattopT(), getMaxTOrZ(), getMinTOrZ(), getTOrZDist(), injectBeam(), reflectDistribution(), scaleDistCoordinates(), shiftBeam(), shiftDistCoordinates(), writeOutFileHeader(), and writeOutFileInjection().
|
private |
Definition at line 517 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().
|
private |
Definition at line 502 of file Distribution.h.
Referenced by emitParticles(), and getPercentageEmitted().
|
private |
Definition at line 501 of file Distribution.h.
Referenced by adjustPhaseSpace(), createOpalCycl(), createOpalT(), and getPercentageEmitted().
|
private |
Definition at line 530 of file Distribution.h.
Referenced by createOpalE(), generateAstraFlattopT(), generateLongFlattopT(), getTEmission(), printDistFlattop(), printDistGauss(), setDistParametersFlattop(), setDistParametersGauss(), and setEmissionTime().
|
private |
time binned distribution with thermal energy
Definition at line 584 of file Distribution.h.
Referenced by generateAstraFlattopT(), getTEmission(), printDistFlattop(), and setDistParametersFlattop().
|
private |
Velocity scalar for parallel plate benchmark.
Definition at line 575 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Field threshold (MV/m) beyond which particles will be initialized.
Definition at line 553 of file Distribution.h.
Referenced by setFieldEmissionParameters().
|
private |
Definition at line 505 of file Distribution.h.
Referenced by addDistributions(), adjustPhaseSpace(), createDistributionFromFile(), emitParticles(), eraseXDist(), fillParticleBins(), generateBinomial(), generateFlattopLaserProfile(), generateFlattopT(), generateFlattopZ(), generateGaussZ(), generateTransverseGauss(), getXDist(), injectBeam(), reflectDistribution(), scaleDistCoordinates(), shiftDistCoordinates(), and writeOutFileInjection().
|
private |
Definition at line 513 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().
|
private |
Definition at line 507 of file Distribution.h.
Referenced by addDistributions(), adjustPhaseSpace(), createDistributionFromFile(), emitParticles(), eraseYDist(), fillParticleBins(), generateBinomial(), generateFlattopLaserProfile(), generateFlattopT(), generateFlattopZ(), generateGaussZ(), generateTransverseGauss(), getYDist(), injectBeam(), reflectDistribution(), scaleDistCoordinates(), shiftDistCoordinates(), and writeOutFileInjection().
|
private |
Definition at line 515 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().