ParametricGeoMagneticField.h
Go to the documentation of this file.
1 #ifndef _fwk_ParametricGeoMagneticField_h_
2 #define _fwk_ParametricGeoMagneticField_h_
3 
4 #include <utl/SVector.h>
5 #include <utl/Point.h>
6 #include <utl/Vector.h>
7 
8 #include <valarray>
9 
10 
11 namespace fwk {
12 
21  public:
22  ParametricGeoMagneticField(const double baseyear, const size_t order, const double g[], const double h[]);
23 
24  utl::Vector Get(const utl::Point& where) const;
25  double GetDeclination(const utl::Point& where) const;
26 
27  double GetBaseYear() const { return fBaseYear; }
28 
35 
41 
42  protected:
43  double fBaseYear = 0;
44  size_t fOrder = 0;
45  std::valarray<double> fG;
46  std::valarray<double> fH;
47 
52  utl::SVector<3, double> GetXYZ(const double latitude, const double longitude, const double elevation) const;
53 
54  void Grow(const size_t order);
55 
56  friend class ParametricGeoMagChange;
57  };
58 
59 }
60 
61 
62 #endif
Point object.
Definition: Point.h:32
Rate-of-change model for spherical harmonics parametrisation of geomagnetic field.
ParametricGeoMagneticField Interpolate(const double year, const ParametricGeoMagneticField &later) const
Interpolate between two models Given a time as decimal year, interpolate coefficients between this an...
constexpr double g
Definition: AugerUnits.h:200
Spherical harmonics parametrisation of geomagnetic field.
Vector object.
Definition: Vector.h:30
static ParametricGeoMagneticField IGRF2010()
Named constructor for 2010 IGRF model This is meant for testing. Coefficients should rather be read f...
double GetDeclination(const utl::Point &where) const
utl::SVector< 3, double > GetXYZ(const double latitude, const double longitude, const double elevation) const
Get magnetic field components from geocentric(!) coordinates Given the position relative to the earth...
utl::Vector Get(const utl::Point &where) const
ParametricGeoMagneticField(const double baseyear, const size_t order, const double g[], const double h[])
const double year
Definition: GalacticUnits.h:22

, generated on Tue Sep 26 2023.