File indexing completed on 2025-04-19 09:10:15
0001 #ifndef SHRIMPS_Eikonals_Eikonal_Contributor_H
0002 #define SHRIMPS_Eikonals_Eikonal_Contributor_H
0003
0004 #include "SHRiMPS/Eikonals/Form_Factors.H"
0005 #include "SHRiMPS/Eikonals/Grid.H"
0006 #include "SHRiMPS/Tools/DEQ_Solver.H"
0007
0008 namespace SHRIMPS {
0009
0010
0011
0012
0013
0014 class Eikonal_Contributor : public ATOOLS::Function_Base {
0015 private:
0016 Form_Factor * p_ffi, * p_ffk;
0017 Eikonal_Parameters m_params;
0018
0019 double m_b1, m_b2;
0020 double m_deltaff1, m_deltaff2, m_deltay;
0021 Grid m_grid;
0022
0023 bool Valid(const double & y) const;
0024 public:
0025 Eikonal_Contributor(Form_Factor * ff1,Form_Factor * ff2,
0026 const Eikonal_Parameters & params);
0027 ~Eikonal_Contributor() {}
0028
0029 void PrepareGrid(const int & ff1steps, const int & ff2steps);
0030 void InsertValues(const size_t & i,const size_t & j,
0031 const std::vector<double> & values);
0032 void SetB1B2(const double & b1,const double & b2);
0033
0034 double operator()(const double & b1,const double & b2,const double & y);
0035 double operator()(const double & y);
0036
0037 Form_Factor * FF1() const { return p_ffi; }
0038 Form_Factor * FF2() const { return p_ffk; }
0039 const double & Kappa() const { return p_ffi->Kappa(); }
0040 const double & Lambda2() const { return p_ffi->Lambda2(); }
0041
0042 const double & B1max() const { return m_params.bmax; }
0043 const double & Y() const { return m_params.originalY; }
0044 };
0045 }
0046
0047 #endif