Skip to content
Snippets Groups Projects

MagFieldElements : Finalise moving of inline methods from .h to .icc

2 files
+ 222
78
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -39,37 +39,24 @@ public:
double rmax,
double phimin,
double phimax,
double bscale)
: m_scale(bscale)
, m_nomScale(bscale)
{
m_min = { zmin, rmin, phimin };
m_max = { zmax, rmax, phimax };
}
double bscale);
// set ranges
void setRange(double zmin,
double zmax,
double rmin,
double rmax,
double phimin,
double phimax)
{
m_min = { zmin, rmin, phimin };
m_max = { zmax, rmax, phimax };
}
double phimax);
// set bscale
void setBscale(double bscale) { m_scale = m_nomScale = bscale; }
void setBscale(double bscale);
// scale bscale by a factor
void scaleBscale(double factor) { m_scale = factor * m_nomScale; }
void scaleBscale(double factor);
// allocate space to vectors
void reserve(int nz, int nr, int nphi, int nfield);
void reserve(int nz, int nr, int nphi)
{
reserve(nz, nr, nphi, nz * nr * nphi);
}
void reserve(int nz, int nr, int nphi);
// add elements to vectors
void appendMesh(int i, double mesh) { m_mesh[i].push_back(mesh); }
void appendField(const BFieldVector<T>& field) { m_field.push_back(field); }
void appendMesh(int i, double mesh);
void appendField(const BFieldVector<T>& field);
// build Look Up Table
void buildLUT();
// test if a point is inside this zone
@@ -85,25 +72,25 @@ public:
double* ATH_RESTRICT B,
double* ATH_RESTRICT deriv = nullptr) const;
// accessors
double min(size_t i) const { return m_min[i]; }
double max(size_t i) const { return m_max[i]; }
double zmin() const { return m_min[0]; }
double zmax() const { return m_max[0]; }
double rmin() const { return m_min[1]; }
double rmax() const { return m_max[1]; }
double phimin() const { return m_min[2]; }
double phimax() const { return m_max[2]; }
unsigned nmesh(size_t i) const { return m_mesh[i].size(); }
double mesh(size_t i, size_t j) const { return m_mesh[i][j]; }
unsigned nfield() const { return m_field.size(); }
const BFieldVector<T>& field(size_t i) const { return m_field[i]; }
double bscale() const { return m_scale; }
double min(size_t i) const;
double max(size_t i) const;
double zmin() const;
double zmax() const;
double rmin() const;
double rmax() const;
double phimin() const;
double phimax() const;
unsigned nmesh(size_t i) const;
double mesh(size_t i, size_t j) const;
unsigned nfield() const;
const BFieldVector<T>& field(size_t i) const;
double bscale() const;
int memSize() const;
protected:
std::array<double, 3> m_min;
std::array<double, 3> m_max;
std::array<std::vector<double>,3> m_mesh;
std::array<std::vector<double>, 3> m_mesh;
private:
std::vector<BFieldVector<T>> m_field;
@@ -111,10 +98,9 @@ private:
double m_nomScale; // nominal m_scale from the map
// look-up table and related variables
std::array<std::vector<int>,3> m_LUT;
std::array<double,3> m_invUnit; // inverse unit size in the LUT
std::array<std::vector<int>, 3> m_LUT;
std::array<double, 3> m_invUnit; // inverse unit size in the LUT
int m_roff, m_zoff;
};
#include "MagFieldElements/BFieldMesh.icc"
#endif
Loading