19#ifndef CLASSIC_FIELDMAP3DH5BLOCKBASE_H
20#define CLASSIC_FIELDMAP3DH5BLOCKBASE_H
26static_assert (
sizeof(double) ==
sizeof (h5_float64_t),
27 "double and h5_float64_t are not the same type" );
28static_assert (
sizeof(
long long) ==
sizeof (h5_int64_t),
29 "long long and h5_int64_t are not the same type" );
44 double &zBegin,
double &zEnd
51 double &xIni,
double &xFinal,
52 double &yIni,
double &yFinal,
53 double &zIni,
double &zFinal
85 std::vector<std::pair<double, double> >& F);
95 const std::string& filename);
192 long double difference = (
long double)(
X(0)) - (
long double)(
xbegin_m);
194 (
unsigned int)((difference) / (
long double)(
hx_m)),
198 (
long double)difference,
202 difference = (
long double)(
X(1)) - (
long double)(
ybegin_m);
204 (
unsigned int)((difference) / (
long double)(
hy_m)),
208 (
long double)difference,
212 difference = (
long double)(
X(2)) - (
long double)(
zbegin_m);
214 (
unsigned int)((difference) / (
long double)(
hz_m)),
218 (
long double)difference,
225 const std::vector<double>& data,
226 const IndexTriplet& idx,
227 unsigned short corner)
const;
230 const std::vector<double>&,
231 const std::vector<double>&,
232 const std::vector<double>&,
235 enum :
unsigned short {
std::shared_ptr< _FM3DH5BlockBase > FM3DH5BlockBase
T::PETE_Expr_t::PETE_Return_t min(const PETE_Expr< T > &expr, NDIndex< D > &loc)
PETE_TBTree< FnFmod, PETE_Scalar< Vektor< T1, Dim > >, typename T2::PETE_Expr_t > fmod(const Vektor< T1, Dim > &l, const PETE_Expr< T2 > &r)
std::vector< double > FieldstrengthEz_m
3D array with Ez
virtual bool isInside(const Vector_t &r) const
virtual double getFrequency() const
void setStep(const long long)
virtual bool getFieldstrength(const Vector_t &, Vector_t &, Vector_t &) const =0
Vector_t interpolateTrilinearly(const std::vector< double > &, const std::vector< double > &, const std::vector< double > &, const Vector_t &X) const
void getResonanceFrequency(void)
virtual bool getFieldDerivative(const Vector_t &, Vector_t &, Vector_t &, const DiffDirection &) const
virtual void getInfo(Inform *msg)
IndexTriplet getIndex(const Vector_t &X) const
unsigned int num_gridpx_m
number of points after 0(not counted here) in grid, x-direction
virtual ~_FM3DH5BlockBase()
unsigned long getIndex(unsigned int i, unsigned int j, unsigned int k) const
virtual void setFrequency(double freq)
double hx_m
length between points in grid, x-direction
void getFieldInfo(const char *)
virtual void getOnaxisEz(std::vector< std::pair< double, double > > &F)
void readField(const char *name, double *x, double *y, double *z)
void openFileMPIOCollective(const std::string &filename)
double getWeightedData(const std::vector< double > &data, const IndexTriplet &idx, unsigned short corner) const
long long getNumSteps(void)
double hz_m
length between points in grid, z-direction
unsigned int num_gridpz_m
number of points after 0(not counted here) in grid, z-direction
unsigned int num_gridpy_m
number of points after 0(not counted here) in grid, y-direction
std::vector< double > FieldstrengthEy_m
3D array with Ey
std::vector< double > FieldstrengthEx_m
3D array with Ex
virtual void getFieldDimensions(double &xIni, double &xFinal, double &yIni, double &yFinal, double &zIni, double &zFinal) const
double hy_m
length between points in grid, y-direction
virtual void getFieldDimensions(double &zBegin, double &zEnd) const