OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
Classes | Functions
Util Namespace Reference

Classes

struct  KahanAccumulation
 

Functions

std::string getGitRevision ()
 
double erfinv (double x)
 
Vector_t getTaitBryantAngles (Quaternion rotation, const std::string &)
 
std::string toUpper (const std::string &str)
 
std::string boolToUpperString (const bool &b)
 
std::string boolVectorToUpperString (const std::vector< bool > &b)
 
std::string doubleVectorToString (const std::vector< double > &v)
 
std::string combineFilePath (std::initializer_list< std::string > ilist)
 
void checkInt (double real, std::string name, double tolerance)
 
bool isAllDigits (const std::string &str)
 
unsigned int rewindLinesSDDS (const std::string &fileName, double maxSPos, bool checkForTime)
 rewind the SDDS file such that the spos of the last step is less or equal to maxSPos More...
 
std::string base64_encode (const std::string &string_to_encode)
 
std::string base64_decode (std::string const &encoded_string)
 
double getGamma (Vector_t p)
 
Vector_t getBeta (Vector_t p)
 
double getKineticEnergy (Vector_t p, double mass)
 
double getBetaGamma (double Ekin, double mass)
 
double convertMomentumEVoverCToBetaGamma (double p, double mass)
 
std::string getTimeString (double time, unsigned int precision=3)
 
std::string getLengthString (double spos, unsigned int precision=3)
 
std::string getLengthString (Vector_t spos, unsigned int precision=3)
 
std::string getEnergyString (double energyInMeV, unsigned int precision=3)
 
std::string getChargeString (double charge, unsigned int precision=3)
 
double angle_0to2pi (double angle)
 convert angle (in rad) to [0,2pi) range, from https://stackoverflow.com/a/29721295 More...
 
bool angleBetweenAngles (const double angle, const double min, const double max)
 check if angle (in rad and in range [0,2pi]) is within [min, max] More...
 
template<class IteratorIn , class IteratorOut >
void toString (IteratorIn first, IteratorIn last, IteratorOut out)
 
template<typename T >
std::string toStringWithThousandSep (T value, char sep= '\'')
 
template<typename T , typename A >
T * c_data (std::vector< T, A > &v)
 
template<typename T , typename A >
T const * c_data (std::vector< T, A > const &v)
 

Function Documentation

double Util::angle_0to2pi ( double  angle)
inline

convert angle (in rad) to [0,2pi) range, from https://stackoverflow.com/a/29721295

Definition at line 199 of file Util.h.

References angle(), fmod(), and Physics::two_pi.

Referenced by TrimCoil::applyField(), and TrimCoil::setAzimuth().

Here is the call graph for this function:

bool Util::angleBetweenAngles ( const double  angle,
const double  min,
const double  max 
)
inline

check if angle (in rad and in range [0,2pi]) is within [min, max]

Definition at line 206 of file Util.h.

Referenced by TrimCoil::applyField(), Cyclotron::checkInitialReferenceParticle(), and ParallelCyclotronTracker::visitRing().

std::string Util::base64_decode ( std::string const &  encoded_string)

Definition at line 428 of file Util.cpp.

std::string Util::base64_encode ( const std::string &  string_to_encode)

Definition at line 384 of file Util.cpp.

Referenced by MeshGenerator::write().

std::string Util::boolToUpperString ( const bool &  b)

Definition at line 154 of file Util.cpp.

References toUpper().

Referenced by boolVectorToUpperString(), and ParticleMatterInteraction::print().

Here is the call graph for this function:

std::string Util::boolVectorToUpperString ( const std::vector< bool > &  b)

Definition at line 161 of file Util.cpp.

References boolToUpperString().

Referenced by ParallelCyclotronTracker::visitCyclotron().

Here is the call graph for this function:

template<typename T , typename A >
T* Util::c_data ( std::vector< T, A > &  v)
template<typename T , typename A >
T const* Util::c_data ( std::vector< T, A > const &  v)

Definition at line 250 of file Util.h.

References Attrib::Legacy::Distribution::T.

void Util::checkInt ( double  real,
std::string  name,
double  tolerance 
)

Definition at line 205 of file Util.cpp.

References abs(), and floor().

Referenced by DumpFields::buildGrid(), and DumpEMFields::buildGrid().

Here is the call graph for this function:

std::string Util::combineFilePath ( std::initializer_list< std::string >  ilist)
double Util::convertMomentumEVoverCToBetaGamma ( double  p,
double  mass 
)
inline
std::string Util::doubleVectorToString ( const std::vector< double > &  v)

Definition at line 176 of file Util.cpp.

References begin, end, and toString().

Referenced by ParallelCyclotronTracker::visitCyclotron().

Here is the call graph for this function:

double Util::erfinv ( double  x)
Vector_t Util::getBeta ( Vector_t  p)
inline
double Util::getBetaGamma ( double  Ekin,
double  mass 
)
inline
std::string Util::getChargeString ( double  charge,
unsigned int  precision = 3 
)
inline

Definition at line 170 of file Util.h.

References abs().

Referenced by PartBunchBase< T, Dim >::print().

Here is the call graph for this function:

std::string Util::getEnergyString ( double  energyInMeV,
unsigned int  precision = 3 
)
inline

Definition at line 147 of file Util.h.

Referenced by ParallelTTracker::dumpStats(), and PartBunchBase< T, Dim >::print().

double Util::getGamma ( Vector_t  p)
inline
std::string Util::getGitRevision ( )
double Util::getKineticEnergy ( Vector_t  p,
double  mass 
)
inline
std::string Util::getLengthString ( double  spos,
unsigned int  precision = 3 
)
inline

Definition at line 97 of file Util.h.

References abs().

Referenced by ParallelTTracker::dumpStats(), ParallelTTracker::execute(), and PartBunchBase< T, Dim >::print().

Here is the call graph for this function:

std::string Util::getLengthString ( Vector_t  spos,
unsigned int  precision = 3 
)
inline

Definition at line 116 of file Util.h.

References abs(), and max().

Here is the call graph for this function:

Vector_t Util::getTaitBryantAngles ( Quaternion  rotation,
const std::string &   
)

Definition at line 117 of file Util.cpp.

References atan2(), Quaternion::conjugate(), cos(), euclidean_norm(), fmod(), Quaternion::rotate(), sin(), and Physics::two_pi.

Referenced by OpalBeamline::save3DInput(), and H5PartWrapperForPT::writeStepHeader().

Here is the call graph for this function:

std::string Util::getTimeString ( double  time,
unsigned int  precision = 3 
)
inline

Definition at line 74 of file Util.h.

References abs().

Referenced by ParallelTTracker::dumpStats(), ParallelTTracker::execute(), and PartBunchBase< T, Dim >::print().

Here is the call graph for this function:

bool Util::isAllDigits ( const std::string &  str)

Check if there are only digits in a string from https://stackoverflow.com/questions/19678572/how-to-validate-that-there-are-only-digits-in-a-string

Definition at line 218 of file Util.cpp.

References Physics::c.

Referenced by FieldSolver::getTagging_m().

unsigned int Util::rewindLinesSDDS ( const std::string &  fileName,
double  maxSPos,
bool  checkForTime 
)

rewind the SDDS file such that the spos of the last step is less or equal to maxSPos

Definition at line 240 of file Util.cpp.

References Physics::c, Physics::e, end, endl(), Hypervolume::fs, INFOMSG, level2(), IpplInfo::myNode(), name, and parameters().

Referenced by StatBaseWriter::rewindToSpos(), and Monitor::writeStatistics().

Here is the call graph for this function:

template<class IteratorIn , class IteratorOut >
void Util::toString ( IteratorIn  first,
IteratorIn  last,
IteratorOut  out 
)

Definition at line 288 of file Util.h.

Referenced by doubleVectorToString().

template<typename T >
std::string Util::toStringWithThousandSep ( value,
char  sep = '\'' 
)

Definition at line 254 of file Util.h.

References abs(), floor(), log(), max(), pow(), and Attrib::Legacy::Distribution::T.

Referenced by BeamStrippingPhysics::print(), and ScatteringPhysics::print().

Here is the call graph for this function:

std::string Util::toUpper ( const std::string &  str)