File indexing completed on 2025-04-19 09:10:15
0001 #ifndef SHRIMPS_Eikonals_Grid_H
0002 #define SHRIMPS_Eikonals_Grid_H
0003
0004 #include "ATOOLS/Math/MathTools.H"
0005 #include <vector>
0006
0007 namespace SHRIMPS {
0008 class Grid {
0009 private:
0010 size_t m_ff1steps, m_ff2steps;
0011 double m_ff1max, m_ff2max, m_Ymax;
0012 size_t m_ff1bin, m_ff2bin;
0013 double m_deltaff1, m_deltaff2, m_deltay;
0014 double m_ff1low, m_ff1up, m_ff2low, m_ff2up;
0015 double m_d1up, m_d1low, m_d2up, m_d2low;
0016
0017 std::vector<std::vector<std::vector<double> > > m_grid;
0018 bool FixBins(const double & ff1,const double & ff2);
0019 double ValueAtLowerYEdge();
0020 double ValueAtUpperYEdge();
0021 double Value(const double & y);
0022 public:
0023 Grid(const double & Ymax);
0024 ~Grid();
0025
0026 void Initialise(const size_t & ff1steps,const size_t & ff2steps,
0027 const double & ff1max,const double & ff2max);
0028 void InsertValues(const size_t & i,const size_t & j,
0029 const std::vector<double> & values);
0030 double operator()(const double & ff1,const double & ff2,const double & y);
0031 };
0032 }
0033
0034 #endif