30 if(!parsing_passed && !file.eof()) {
34 "An error occured when reading the fieldmap '" +
Filename_m +
"'");
83 const double RR2 =
R(0) *
R(0) +
R(1) *
R(1);
91 const double EfieldR = -ezp / 2. + ezppp / 16. * RR2;
93 E(0) += EfieldR *
R(0);
94 E(1) += EfieldR *
R(1);
95 E(2) += ez - ezpp * RR2 / 4.;
124 std::string tmpString;
129 passed = interpretLine<std::string, int>(file, tmpString, tmpInt);
131 passed = interpretLine<std::string, int, std::string>(file, tmpString, tmpInt, tmpString);
134 if (tmpString !=
"TRUE" &&
135 tmpString !=
"FALSE")
137 "The third string on the first line of 1D field "
138 "maps has to be either TRUE or FALSE");
147 std::string tmpString;
151 interpretLine<std::string, int>(file, tmpString, accuracy);
153 interpretLine<std::string, int, std::string>(file, tmpString, accuracy, tmpString);
static Astra1DElectroStatic_fast create(const std::string &filename)
virtual double getFrequency() const
virtual void getFieldDimensions(double &zBegin, double &zEnd) const
static std::string typeset_msg(const std::string &msg, const std::string &title)
gsl_spline * onAxisInterpolants_m[4]
std::string toUpper(const std::string &str)
constexpr double Vpm2MVpm
Inform & endl(Inform &inf)
std::vector< double > interpolateFieldData(std::vector< double > &samplingPoints)
virtual ~_Astra1DElectroStatic_fast()
virtual bool getFieldstrength(const Vector_t &R, Vector_t &E, Vector_t &B) const
bool readFileHeader(std::ifstream &file)
int stripFileHeader(std::ifstream &file)
void normalizeFieldData(double maxEz)
double readFieldData(std::ifstream &file)
virtual void getInfo(Inform *)
_Astra1DElectroStatic_fast(const std::string &filename)
virtual bool getFieldDerivative(const Vector_t &R, Vector_t &E, Vector_t &B, const DiffDirection &dir) const
virtual void setFrequency(double freq)
std::vector< double > getEvenlyDistributedSamplingPoints()
void disableFieldmapWarning()
gsl_interp_accel * onAxisAccel_m[4]
Inform & level3(Inform &inf)
constexpr double e
The value of .
void computeFieldDerivatives(std::vector< double > &fourierComponents, int accuracy)
std::vector< double > computeFourierCoefficients(int accuracy, std::vector< double > &evenSampling)
void checkMap(unsigned int accuracy, std::pair< double, double > fieldDimensions, double deltaZ, const std::vector< double > &fourierCoefficients, gsl_spline *splineCoefficients, gsl_interp_accel *splineAccelerator)
bool determineNumSamplingPoints(std::ifstream &file)
std::shared_ptr< _Astra1DElectroStatic_fast > Astra1DElectroStatic_fast