30 if (!parsing_passed) {
34 "Astra1DMagnetoStatic_fast::Astra1DMagnetoStatic_fast",
35 "An error occured when reading the fieldmap '" +
Filename_m +
"'");
74 const double RR2 = R(0) * R(0) + R(1) * R(1);
82 const double BfieldR = -bzp / 2. + bzppp / 16. * RR2;
84 B(0) += BfieldR * R(0);
85 B(1) += BfieldR * R(1);
86 B(2) += bz - bzpp * RR2 / 4.;
102 double& ,
double& ,
double& ,
double& ,
double& ,
122 std::string tmpString;
132 if (tmpString !=
"TRUE" && tmpString !=
"FALSE")
134 "Astra1DDynamic_fast::readFileHeader",
135 "The third string on the first line of 1D field "
136 "maps has to be either TRUE or FALSE");
145 std::string tmpString;
ippl::Vector< T, Dim > Vector_t
std::string toUpper(const std::string &str)
bool determineNumSamplingPoints(std::ifstream &file)
Astra1D_fast(std::string aFilename)
double readFieldData(std::ifstream &file)
void computeFieldDerivatives(std::vector< double > &fourierComponents, int accuracy)
gsl_spline * onAxisInterpolants_m[4]
std::vector< double > getEvenlyDistributedSamplingPoints()
void normalizeFieldData(double maxEz)
std::vector< double > computeFourierCoefficients(int accuracy, std::vector< double > &evenSampling)
gsl_interp_accel * onAxisAccel_m[4]
std::vector< double > interpolateFieldData(std::vector< double > &samplingPoints)
virtual ~Astra1DMagnetoStatic_fast()
int stripFileHeader(std::ifstream &file)
virtual void getFieldDimensions(double &zBegin, double &zEnd) const
virtual void setFrequency(double freq)
virtual void getInfo(Inform *)
bool readFileHeader(std::ifstream &file)
virtual bool getFieldstrength(const Vector_t< double, 3 > &R, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B) const
virtual bool getFieldDerivative(const Vector_t< double, 3 > &R, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B, const DiffDirection &dir) const
virtual double getFrequency() const
Astra1DMagnetoStatic_fast(std::string aFilename)
void checkMap(unsigned int accuracy, std::pair< double, double > fieldDimensions, double deltaZ, const std::vector< double > &fourierCoefficients, gsl_spline *splineCoefficients, gsl_interp_accel *splineAccelerator)
void disableFieldmapWarning()
static std::string typeset_msg(const std::string &msg, const std::string &title)
bool interpretLine(std::ifstream &in, S &value, const bool &file_length_known=true)