![]() |
QMCPACK
|
combined OneDimCubicSpline and LinearGrid OneDimCubicSpline contains OneDimGridBase pointer and calls its virtual function members. More...
Public Member Functions | |
OneDimCubicSplineLinearGrid (const OneDimCubicSpline< T > &cublis_spliner) | |
T | splint (T r) const |
compute the function value at r More... | |
const auto & | get_m_Y () const |
const auto & | get_m_Y2 () const |
T | get_first_deriv () const |
T | get_const_value () const |
T | get_r_min () const |
T | get_r_max () const |
const auto & | get_X () const |
double | get_delta_inv () const |
Static Public Member Functions | |
static T | splint (T r_min, T r_max, const T *X, T delta_inv, const T *m_Y, const T *m_Y2, T first_deriv, T const_value, T r) |
compute the function value at r. More... | |
Private Attributes | |
Vector< T, OffloadAllocator< T > > | m_Y_ |
data for the function on the grid More... | |
Vector< T, OffloadAllocator< T > > | m_Y2_ |
data for the function on the grid More... | |
T | first_deriv_ |
first derivative for handling r < r_min_ More... | |
T | const_value_ |
const value for handling r > r_max_ More... | |
T | r_min_ |
use spline above r_min_. If below, use first deriv extrapolation More... | |
T | r_max_ |
use spline below r_min_. If above, use const value More... | |
Vector< T, OffloadAllocator< T > > | X_ |
the location of grid points More... | |
double | delta_inv_ |
1/grid space More... | |
combined OneDimCubicSpline and LinearGrid OneDimCubicSpline contains OneDimGridBase pointer and calls its virtual function members.
This doesn't work well on a GPU. Since the use case is OneDimCubicSpline with LinearGrid. We fuse both classes and avoid any virtual functions. There are two splint functions. The one with one paramemter r is intended for testing or being called on the CPU. The static one with many parameters is intended to be used(inlined) inside a GPU kernel.
Definition at line 29 of file OneDimCubicSplineLinearGrid.h.
|
inline |
Definition at line 32 of file OneDimCubicSplineLinearGrid.h.
References OneDimCubicSplineLinearGrid< T >::const_value_, OneDimCubicSpline< Td, Tg, CTd, CTg >::ConstValue, OneDimCubicSplineLinearGrid< T >::delta_inv_, OneDimCubicSpline< Td, Tg, CTd, CTg >::first_deriv, OneDimCubicSplineLinearGrid< T >::first_deriv_, OneDimGridFunctor< Td, Tg, CTd, CTg >::grid(), OneDimCubicSpline< Td, Tg, CTd, CTg >::m_Y, OneDimCubicSpline< Td, Tg, CTd, CTg >::m_Y2, OneDimCubicSplineLinearGrid< T >::m_Y2_, OneDimCubicSplineLinearGrid< T >::m_Y_, OneDimCubicSplineLinearGrid< T >::r_max_, OneDimCubicSplineLinearGrid< T >::r_min_, and OneDimCubicSplineLinearGrid< T >::X_.
|
inline |
Definition at line 97 of file OneDimCubicSplineLinearGrid.h.
References OneDimCubicSplineLinearGrid< T >::const_value_.
|
inline |
Definition at line 102 of file OneDimCubicSplineLinearGrid.h.
References OneDimCubicSplineLinearGrid< T >::delta_inv_.
|
inline |
Definition at line 96 of file OneDimCubicSplineLinearGrid.h.
References OneDimCubicSplineLinearGrid< T >::first_deriv_.
|
inline |
Definition at line 94 of file OneDimCubicSplineLinearGrid.h.
References OneDimCubicSplineLinearGrid< T >::m_Y_.
|
inline |
Definition at line 95 of file OneDimCubicSplineLinearGrid.h.
References OneDimCubicSplineLinearGrid< T >::m_Y2_.
|
inline |
Definition at line 100 of file OneDimCubicSplineLinearGrid.h.
References OneDimCubicSplineLinearGrid< T >::r_max_.
|
inline |
Definition at line 99 of file OneDimCubicSplineLinearGrid.h.
References OneDimCubicSplineLinearGrid< T >::r_min_.
|
inline |
Definition at line 101 of file OneDimCubicSplineLinearGrid.h.
References OneDimCubicSplineLinearGrid< T >::X_.
|
inline |
compute the function value at r
Definition at line 60 of file OneDimCubicSplineLinearGrid.h.
References OneDimCubicSplineLinearGrid< T >::const_value_, OneDimCubicSplineLinearGrid< T >::delta_inv_, OneDimCubicSplineLinearGrid< T >::first_deriv_, OneDimCubicSplineLinearGrid< T >::m_Y2_, OneDimCubicSplineLinearGrid< T >::m_Y_, OneDimCubicSplineLinearGrid< T >::r_max_, OneDimCubicSplineLinearGrid< T >::r_min_, and OneDimCubicSplineLinearGrid< T >::X_.
|
inlinestatic |
compute the function value at r.
Need to pass in all the parameters.
Definition at line 68 of file OneDimCubicSplineLinearGrid.h.
References CubicSplineEvaluator< T >::cubicInterpolate(), and qmcplusplus::floor().
|
private |
const value for handling r > r_max_
Definition at line 113 of file OneDimCubicSplineLinearGrid.h.
Referenced by OneDimCubicSplineLinearGrid< T >::get_const_value(), OneDimCubicSplineLinearGrid< T >::OneDimCubicSplineLinearGrid(), and OneDimCubicSplineLinearGrid< T >::splint().
|
private |
1/grid space
Definition at line 123 of file OneDimCubicSplineLinearGrid.h.
Referenced by OneDimCubicSplineLinearGrid< T >::get_delta_inv(), OneDimCubicSplineLinearGrid< T >::OneDimCubicSplineLinearGrid(), and OneDimCubicSplineLinearGrid< T >::splint().
|
private |
first derivative for handling r < r_min_
Definition at line 111 of file OneDimCubicSplineLinearGrid.h.
Referenced by OneDimCubicSplineLinearGrid< T >::get_first_deriv(), OneDimCubicSplineLinearGrid< T >::OneDimCubicSplineLinearGrid(), and OneDimCubicSplineLinearGrid< T >::splint().
|
private |
data for the function on the grid
Definition at line 109 of file OneDimCubicSplineLinearGrid.h.
Referenced by OneDimCubicSplineLinearGrid< T >::get_m_Y2(), OneDimCubicSplineLinearGrid< T >::OneDimCubicSplineLinearGrid(), and OneDimCubicSplineLinearGrid< T >::splint().
|
private |
data for the function on the grid
Definition at line 107 of file OneDimCubicSplineLinearGrid.h.
Referenced by OneDimCubicSplineLinearGrid< T >::get_m_Y(), OneDimCubicSplineLinearGrid< T >::OneDimCubicSplineLinearGrid(), and OneDimCubicSplineLinearGrid< T >::splint().
|
private |
use spline below r_min_. If above, use const value
Definition at line 119 of file OneDimCubicSplineLinearGrid.h.
Referenced by OneDimCubicSplineLinearGrid< T >::get_r_max(), OneDimCubicSplineLinearGrid< T >::OneDimCubicSplineLinearGrid(), and OneDimCubicSplineLinearGrid< T >::splint().
|
private |
use spline above r_min_. If below, use first deriv extrapolation
Definition at line 117 of file OneDimCubicSplineLinearGrid.h.
Referenced by OneDimCubicSplineLinearGrid< T >::get_r_min(), OneDimCubicSplineLinearGrid< T >::OneDimCubicSplineLinearGrid(), and OneDimCubicSplineLinearGrid< T >::splint().
|
private |
the location of grid points
Definition at line 121 of file OneDimCubicSplineLinearGrid.h.
Referenced by OneDimCubicSplineLinearGrid< T >::get_X(), OneDimCubicSplineLinearGrid< T >::OneDimCubicSplineLinearGrid(), and OneDimCubicSplineLinearGrid< T >::splint().