www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
BicubicSplineInterpolation Class Reference

This class interpolates tabulated functions with a bi-cubic spline. More...

#include <BicubicSplineInterpolation.h>

Inheritance diagram for BicubicSplineInterpolation:
[legend]

Public Member Functions

 BicubicSplineInterpolation ()
 
 BicubicSplineInterpolation (const std::vector< Real > &x1, const std::vector< Real > &x2, const std::vector< std::vector< Real >> &y, const std::vector< Real > &yx11=std::vector< Real >(), const std::vector< Real > &yx1n=std::vector< Real >(), const std::vector< Real > &yx21=std::vector< Real >(), const std::vector< Real > &yx2n=std::vector< Real >())
 In the future, may add interface that allows necessary vector of boundary conditions to be supplied for each edge of grid; however, for now we just use natural splines at the grid boundaries. More...
 
virtual ~BicubicSplineInterpolation ()=default
 
void setData (const std::vector< Real > &x1, const std::vector< Real > &x2, const std::vector< std::vector< Real >> &y, const std::vector< Real > &yx11=std::vector< Real >(), const std::vector< Real > &yx1n=std::vector< Real >(), const std::vector< Real > &yx21=std::vector< Real >(), const std::vector< Real > &yx2n=std::vector< Real >())
 Set the x1-, x2, y- values and first derivatives. More...
 
void errorCheck ()
 
Real sample (Real x1, Real x2, Real yx11=_deriv_bound, Real yx1n=_deriv_bound)
 
Real sampleDerivative (Real x1, Real x2, unsigned int deriv_var, Real yp1=_deriv_bound, Real ypn=_deriv_bound)
 
Real sample2ndDerivative (Real x1, Real x2, unsigned int deriv_var, Real yp1=_deriv_bound, Real ypn=_deriv_bound)
 
Real sample (const std::vector< Real > &x, const std::vector< Real > &y, const std::vector< Real > &y2, Real x_int) const
 
Real sampleDerivative (const std::vector< Real > &x, const std::vector< Real > &y, const std::vector< Real > &y2, Real x_int) const
 
Real sample2ndDerivative (const std::vector< Real > &x, const std::vector< Real > &y, const std::vector< Real > &y2, Real x_int) const
 

Protected Member Functions

void constructRowSplineSecondDerivativeTable ()
 
void constructColumnSplineSecondDerivativeTable ()
 
void solve ()
 
void spline (const std::vector< Real > &x, const std::vector< Real > &y, std::vector< Real > &y2, Real yp1=_deriv_bound, Real ypn=_deriv_bound)
 This function calculates the second derivatives based on supplied x and y-vectors. More...
 
void findInterval (const std::vector< Real > &x, Real x_int, unsigned int &klo, unsigned int &khi) const
 
void computeCoeffs (const std::vector< Real > &x, unsigned int klo, unsigned int khi, Real x_int, Real &h, Real &a, Real &b) const
 

Protected Attributes

std::vector< Real > _x1
 
std::vector< Real > _x2
 
std::vector< std::vector< Real > > _y
 
std::vector< std::vector< Real > > _y_trans
 Transpose of _y. More...
 
std::vector< Real > _yx11
 Boundary conditions. More...
 
std::vector< Real > _yx1n
 
std::vector< Real > _yx21
 
std::vector< Real > _yx2n
 
std::vector< std::vector< Real > > _y2_rows
 Second derivatives. More...
 
std::vector< std::vector< Real > > _y2_columns
 

Static Protected Attributes

static int _file_number = 0
 
static const Real _deriv_bound = std::numeric_limits<Real>::max()
 

Detailed Description

This class interpolates tabulated functions with a bi-cubic spline.

Adopted from Numerical Recipes in C (section 3.6). Consistent with the terminology in Numerical Recipes, moving over a column spline means moving over the x1 coord Likewise, moving over a row spline means moving over the x2 coord

Definition at line 28 of file BicubicSplineInterpolation.h.

Constructor & Destructor Documentation

BicubicSplineInterpolation::BicubicSplineInterpolation ( )

Definition at line 20 of file BicubicSplineInterpolation.C.

20 {}
BicubicSplineInterpolation::BicubicSplineInterpolation ( const std::vector< Real > &  x1,
const std::vector< Real > &  x2,
const std::vector< std::vector< Real >> &  y,
const std::vector< Real > &  yx11 = std::vector<Real>(),
const std::vector< Real > &  yx1n = std::vector<Real>(),
const std::vector< Real > &  yx21 = std::vector<Real>(),
const std::vector< Real > &  yx2n = std::vector<Real>() 
)

In the future, may add interface that allows necessary vector of boundary conditions to be supplied for each edge of grid; however, for now we just use natural splines at the grid boundaries.

Definition at line 22 of file BicubicSplineInterpolation.C.

30  _x1(x1),
31  _x2(x2),
32  _y(y),
33  _yx11(yx11),
34  _yx1n(yx1n),
35  _yx21(yx21),
36  _yx2n(yx2n)
37 {
38  errorCheck();
39  solve();
40 }
std::vector< std::vector< Real > > _y
std::vector< Real > _yx11
Boundary conditions.
virtual BicubicSplineInterpolation::~BicubicSplineInterpolation ( )
virtualdefault

Member Function Documentation

void SplineInterpolationBase::computeCoeffs ( const std::vector< Real > &  x,
unsigned int  klo,
unsigned int  khi,
Real  x_int,
Real &  h,
Real &  a,
Real &  b 
) const
protectedinherited

Definition at line 89 of file SplineInterpolationBase.C.

Referenced by SplineInterpolationBase::sample(), SplineInterpolationBase::sample2ndDerivative(), and SplineInterpolationBase::sampleDerivative().

96 {
97  h = x[khi] - x[klo];
98  if (h == 0)
99  mooseError("The values of x must be distinct");
100  a = (x[khi] - x_int) / h;
101  b = (x_int - x[klo]) / h;
102 }
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
static PetscErrorCode Vec x
void BicubicSplineInterpolation::constructColumnSplineSecondDerivativeTable ( )
protected

Definition at line 115 of file BicubicSplineInterpolation.C.

Referenced by solve().

116 {
117  auto m = _x1.size();
118  auto n = _x2.size();
119  _y2_columns.resize(n);
120  _y_trans.resize(n);
121 
122  for (decltype(n) j = 0; j < n; ++j)
123  _y_trans[j].resize(m);
124 
125  // transpose the _y values so the columns can be easily iterated over
126  for (decltype(n) i = 0; i < _y.size(); ++i)
127  for (decltype(n) j = 0; j < _y[0].size(); ++j)
128  _y_trans[j][i] = _y[i][j];
129 
130  if (_yx11.empty())
131  for (decltype(n) j = 0; j < n; ++j)
132  spline(_x1, _y_trans[j], _y2_columns[j]);
133 
134  else
135  for (decltype(n) j = 0; j < n; ++j)
136  spline(_x1, _y_trans[j], _y2_columns[j], _yx11[j], _yx1n[j]);
137 }
std::vector< std::vector< Real > > _y_trans
Transpose of _y.
std::vector< std::vector< Real > > _y
std::vector< Real > _yx11
Boundary conditions.
PetscInt m
PetscInt n
void spline(const std::vector< Real > &x, const std::vector< Real > &y, std::vector< Real > &y2, Real yp1=_deriv_bound, Real ypn=_deriv_bound)
This function calculates the second derivatives based on supplied x and y-vectors.
std::vector< std::vector< Real > > _y2_columns
void BicubicSplineInterpolation::constructRowSplineSecondDerivativeTable ( )
protected

Definition at line 100 of file BicubicSplineInterpolation.C.

Referenced by solve().

101 {
102  auto m = _x1.size();
103  _y2_rows.resize(m);
104 
105  if (_yx21.empty())
106  for (decltype(m) j = 0; j < m; ++j)
107  spline(_x2, _y[j], _y2_rows[j]);
108 
109  else
110  for (decltype(m) j = 0; j < m; ++j)
111  spline(_x2, _y[j], _y2_rows[j], _yx21[j], _yx2n[j]);
112 }
std::vector< std::vector< Real > > _y
std::vector< std::vector< Real > > _y2_rows
Second derivatives.
PetscInt m
void spline(const std::vector< Real > &x, const std::vector< Real > &y, std::vector< Real > &y2, Real yp1=_deriv_bound, Real ypn=_deriv_bound)
This function calculates the second derivatives based on supplied x and y-vectors.
void BicubicSplineInterpolation::errorCheck ( )

Definition at line 63 of file BicubicSplineInterpolation.C.

Referenced by BicubicSplineInterpolation(), and setData().

64 {
65  auto m = _x1.size(), n = _x2.size();
66 
67  if (_y.size() != m)
68  mooseError("y row dimension does not match the size of x1.");
69  else
70  for (decltype(m) i = 0; i < _y.size(); ++i)
71  if (_y[i].size() != n)
72  mooseError("y column dimension does not match the size of x2.");
73 
74  if (_yx11.empty())
75  _yx11.resize(n, _deriv_bound);
76  else if (_yx11.size() != n)
77  mooseError("The length of the vectors holding the first derivatives of y with respect to x1 "
78  "must match the length of x2.");
79 
80  if (_yx1n.empty())
81  _yx1n.resize(n, _deriv_bound);
82  else if (_yx1n.size() != n)
83  mooseError("The length of the vectors holding the first derivatives of y with respect to x1 "
84  "must match the length of x2.");
85 
86  if (_yx21.empty())
87  _yx21.resize(m, _deriv_bound);
88  else if (_yx21.size() != m)
89  mooseError("The length of the vectors holding the first derivatives of y with respect to x2 "
90  "must match the length of x1.");
91 
92  if (_yx2n.empty())
93  _yx2n.resize(m, _deriv_bound);
94  else if (_yx2n.size() != m)
95  mooseError("The length of the vectors holding the first derivatives of y with respect to x2 "
96  "must match the length of x1.");
97 }
std::vector< std::vector< Real > > _y
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
std::vector< Real > _yx11
Boundary conditions.
PetscInt m
PetscInt n
void SplineInterpolationBase::findInterval ( const std::vector< Real > &  x,
Real  x_int,
unsigned int &  klo,
unsigned int &  khi 
) const
protectedinherited

Definition at line 70 of file SplineInterpolationBase.C.

Referenced by SplineInterpolationBase::sample(), SplineInterpolationBase::sample2ndDerivative(), and SplineInterpolationBase::sampleDerivative().

74 {
75  klo = 0;
76  mooseAssert(x.size() >= 2, "You must have at least two knots to create a spline.");
77  khi = x.size() - 1;
78  while (khi - klo > 1)
79  {
80  unsigned int k = (khi + klo) >> 1;
81  if (x[k] > x_int)
82  khi = k;
83  else
84  klo = k;
85  }
86 }
static PetscErrorCode Vec x
Real SplineInterpolationBase::sample ( const std::vector< Real > &  x,
const std::vector< Real > &  y,
const std::vector< Real > &  y2,
Real  x_int 
) const
inherited

Definition at line 105 of file SplineInterpolationBase.C.

Referenced by sample(), SplineInterpolation::sample(), sample2ndDerivative(), and sampleDerivative().

109 {
110  unsigned int klo, khi;
111  findInterval(x, x_int, klo, khi);
112 
113  Real h, a, b;
114  computeCoeffs(x, klo, khi, x_int, h, a, b);
115 
116  return a * y[klo] + b * y[khi] +
117  ((a * a * a - a) * y2[klo] + (b * b * b - b) * y2[khi]) * (h * h) / 6.0;
118 }
void findInterval(const std::vector< Real > &x, Real x_int, unsigned int &klo, unsigned int &khi) const
static PetscErrorCode Vec x
void computeCoeffs(const std::vector< Real > &x, unsigned int klo, unsigned int khi, Real x_int, Real &h, Real &a, Real &b) const
Real BicubicSplineInterpolation::sample ( Real  x1,
Real  x2,
Real  yx11 = _deriv_bound,
Real  yx1n = _deriv_bound 
)

Definition at line 147 of file BicubicSplineInterpolation.C.

Referenced by BicubicSplineFunction::value().

151 {
152  auto m = _x1.size();
153  std::vector<Real> column_spline_second_derivs(m), row_spline_eval(m);
154 
155  // Evaluate m row-splines to get y-values for column spline construction
156  for (decltype(m) j = 0; j < m; ++j)
157  row_spline_eval[j] = SplineInterpolationBase::sample(_x2, _y[j], _y2_rows[j], x2);
158 
159  // Construct single column spline; get back the second derivatives wrt x1 coord on the x1 grid
160  // points
161  spline(_x1, row_spline_eval, column_spline_second_derivs, yx11, yx1n);
162 
163  // Evaluate newly constructed column spline
164  return SplineInterpolationBase::sample(_x1, row_spline_eval, column_spline_second_derivs, x1);
165 }
Real sample(const std::vector< Real > &x, const std::vector< Real > &y, const std::vector< Real > &y2, Real x_int) const
std::vector< std::vector< Real > > _y
std::vector< std::vector< Real > > _y2_rows
Second derivatives.
PetscInt m
void spline(const std::vector< Real > &x, const std::vector< Real > &y, std::vector< Real > &y2, Real yp1=_deriv_bound, Real ypn=_deriv_bound)
This function calculates the second derivatives based on supplied x and y-vectors.
Real SplineInterpolationBase::sample2ndDerivative ( const std::vector< Real > &  x,
const std::vector< Real > &  y,
const std::vector< Real > &  y2,
Real  x_int 
) const
inherited

Definition at line 137 of file SplineInterpolationBase.C.

Referenced by sample2ndDerivative(), and SplineInterpolation::sample2ndDerivative().

141 {
142  unsigned int klo, khi;
143  findInterval(x, x_int, klo, khi);
144 
145  Real h, a, b;
146  computeCoeffs(x, klo, khi, x_int, h, a, b);
147 
148  return a * y2[klo] + b * y2[khi];
149 }
void findInterval(const std::vector< Real > &x, Real x_int, unsigned int &klo, unsigned int &khi) const
static PetscErrorCode Vec x
void computeCoeffs(const std::vector< Real > &x, unsigned int klo, unsigned int khi, Real x_int, Real &h, Real &a, Real &b) const
Real BicubicSplineInterpolation::sample2ndDerivative ( Real  x1,
Real  x2,
unsigned int  deriv_var,
Real  yp1 = _deriv_bound,
Real  ypn = _deriv_bound 
)

Definition at line 221 of file BicubicSplineInterpolation.C.

Referenced by BicubicSplineFunction::secondDerivative().

226 {
227  auto m = _x1.size();
228 
229  // Take second derivative along x1 axis
230  if (deriv_var == 1)
231  {
232  std::vector<Real> column_spline_second_derivs(m), row_spline_eval(m);
233 
234  // Evaluate m row-splines to get y-values for column spline construction
235  for (decltype(m) j = 0; j < m; ++j)
236  row_spline_eval[j] = SplineInterpolationBase::sample(_x2, _y[j], _y2_rows[j], x2);
237 
238  // Construct single column spline; get back the second derivatives wrt x1 coord on the x1 grid
239  // points
240  spline(_x1, row_spline_eval, column_spline_second_derivs, yp1, ypn);
241 
242  // Evaluate second derivative wrt x1 of newly constructed column spline
244  _x1, row_spline_eval, column_spline_second_derivs, x1);
245  }
246 
247  // Take second derivative along x2 axis
248  else if (deriv_var == 2)
249  {
250  auto n = _x2.size();
251  std::vector<Real> row_spline_second_derivs(n), column_spline_eval(n);
252 
253  // Evaluate n column-splines to get y-values for row spline construction
254  for (decltype(n) j = 0; j < n; ++j)
255  column_spline_eval[j] = SplineInterpolationBase::sample(_x1, _y_trans[j], _y2_columns[j], x1);
256 
257  // Construct single row spline; get back the second derivatives wrt x2 coord on the x2 grid
258  // points
259  spline(_x2, column_spline_eval, row_spline_second_derivs, yp1, ypn);
260 
261  // Evaluate second derivative wrt x2 of newly constructed row spline
263  _x2, column_spline_eval, row_spline_second_derivs, x2);
264  }
265 
266  else
267  {
268  mooseError("deriv_var must be either 1 or 2");
269  return 0;
270  }
271 }
Real sample2ndDerivative(const std::vector< Real > &x, const std::vector< Real > &y, const std::vector< Real > &y2, Real x_int) const
Real sample(const std::vector< Real > &x, const std::vector< Real > &y, const std::vector< Real > &y2, Real x_int) const
std::vector< std::vector< Real > > _y_trans
Transpose of _y.
std::vector< std::vector< Real > > _y
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
std::vector< std::vector< Real > > _y2_rows
Second derivatives.
PetscInt m
PetscInt n
void spline(const std::vector< Real > &x, const std::vector< Real > &y, std::vector< Real > &y2, Real yp1=_deriv_bound, Real ypn=_deriv_bound)
This function calculates the second derivatives based on supplied x and y-vectors.
std::vector< std::vector< Real > > _y2_columns
Real SplineInterpolationBase::sampleDerivative ( const std::vector< Real > &  x,
const std::vector< Real > &  y,
const std::vector< Real > &  y2,
Real  x_int 
) const
inherited

Definition at line 121 of file SplineInterpolationBase.C.

Referenced by sampleDerivative(), and SplineInterpolation::sampleDerivative().

125 {
126  unsigned int klo, khi;
127  findInterval(x, x_int, klo, khi);
128 
129  Real h, a, b;
130  computeCoeffs(x, klo, khi, x_int, h, a, b);
131 
132  return (y[khi] - y[klo]) / h -
133  (((3.0 * a * a - 1.0) * y2[klo] + (3.0 * b * b - 1.0) * -y2[khi]) * h / 6.0);
134 }
void findInterval(const std::vector< Real > &x, Real x_int, unsigned int &klo, unsigned int &khi) const
static PetscErrorCode Vec x
void computeCoeffs(const std::vector< Real > &x, unsigned int klo, unsigned int khi, Real x_int, Real &h, Real &a, Real &b) const
Real BicubicSplineInterpolation::sampleDerivative ( Real  x1,
Real  x2,
unsigned int  deriv_var,
Real  yp1 = _deriv_bound,
Real  ypn = _deriv_bound 
)

Definition at line 168 of file BicubicSplineInterpolation.C.

Referenced by BicubicSplineFunction::derivative().

173 {
174  auto m = _x1.size();
175 
176  // Take derivative along x1 axis
177  if (deriv_var == 1)
178  {
179  std::vector<Real> column_spline_second_derivs(m), row_spline_eval(m);
180 
181  // Evaluate m row-splines to get y-values for column spline construction
182  for (decltype(m) j = 0; j < m; ++j)
183  row_spline_eval[j] = SplineInterpolationBase::sample(_x2, _y[j], _y2_rows[j], x2);
184 
185  // Construct single column spline; get back the second derivatives wrt x1 coord on the x1 grid
186  // points
187  spline(_x1, row_spline_eval, column_spline_second_derivs, yp1, ypn);
188 
189  // Evaluate derivative wrt x1 of newly constructed column spline
191  _x1, row_spline_eval, column_spline_second_derivs, x1);
192  }
193 
194  // Take derivative along x2 axis
195  else if (deriv_var == 2)
196  {
197  auto n = _x2.size();
198  std::vector<Real> row_spline_second_derivs(n), column_spline_eval(n);
199 
200  // Evaluate n column-splines to get y-values for row spline construction
201  for (decltype(n) j = 0; j < n; ++j)
202  column_spline_eval[j] = SplineInterpolationBase::sample(_x1, _y_trans[j], _y2_columns[j], x1);
203 
204  // Construct single row spline; get back the second derivatives wrt x2 coord on the x2 grid
205  // points
206  spline(_x2, column_spline_eval, row_spline_second_derivs, yp1, ypn);
207 
208  // Evaluate derivative wrt x2 of newly constructed row spline
210  _x2, column_spline_eval, row_spline_second_derivs, x2);
211  }
212 
213  else
214  {
215  mooseError("deriv_var must be either 1 or 2");
216  return 0;
217  }
218 }
Real sample(const std::vector< Real > &x, const std::vector< Real > &y, const std::vector< Real > &y2, Real x_int) const
std::vector< std::vector< Real > > _y_trans
Transpose of _y.
std::vector< std::vector< Real > > _y
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
std::vector< std::vector< Real > > _y2_rows
Second derivatives.
PetscInt m
PetscInt n
void spline(const std::vector< Real > &x, const std::vector< Real > &y, std::vector< Real > &y2, Real yp1=_deriv_bound, Real ypn=_deriv_bound)
This function calculates the second derivatives based on supplied x and y-vectors.
std::vector< std::vector< Real > > _y2_columns
Real sampleDerivative(const std::vector< Real > &x, const std::vector< Real > &y, const std::vector< Real > &y2, Real x_int) const
void BicubicSplineInterpolation::setData ( const std::vector< Real > &  x1,
const std::vector< Real > &  x2,
const std::vector< std::vector< Real >> &  y,
const std::vector< Real > &  yx11 = std::vector<Real>(),
const std::vector< Real > &  yx1n = std::vector<Real>(),
const std::vector< Real > &  yx21 = std::vector<Real>(),
const std::vector< Real > &  yx2n = std::vector<Real>() 
)

Set the x1-, x2, y- values and first derivatives.

Definition at line 43 of file BicubicSplineInterpolation.C.

Referenced by BicubicSplineFunction::BicubicSplineFunction().

50 {
51  _x1 = x1;
52  _x2 = x2;
53  _y = y;
54  _yx11 = yx11;
55  _yx1n = yx1n;
56  _yx21 = yx21;
57  _yx2n = yx2n;
58  errorCheck();
59  solve();
60 }
std::vector< std::vector< Real > > _y
std::vector< Real > _yx11
Boundary conditions.
void BicubicSplineInterpolation::solve ( )
protected
void SplineInterpolationBase::spline ( const std::vector< Real > &  x,
const std::vector< Real > &  y,
std::vector< Real > &  y2,
Real  yp1 = _deriv_bound,
Real  ypn = _deriv_bound 
)
protectedinherited

This function calculates the second derivatives based on supplied x and y-vectors.

Definition at line 24 of file SplineInterpolationBase.C.

Referenced by constructColumnSplineSecondDerivativeTable(), constructRowSplineSecondDerivativeTable(), sample(), sample2ndDerivative(), sampleDerivative(), and SplineInterpolation::solve().

29 {
30  auto n = x.size();
31  if (n < 2)
32  mooseError("You must have at least two knots to create a spline.");
33 
34  std::vector<Real> u(n, 0.);
35  y2.assign(n, 0.);
36 
37  if (yp1 >= 1e30)
38  y2[0] = u[0] = 0.;
39  else
40  {
41  y2[0] = -0.5;
42  u[0] = (3.0 / (x[1] - x[0])) * ((y[1] - y[0]) / (x[1] - x[0]) - yp1);
43  }
44  // decomposition of tri-diagonal algorithm (y2 and u are used for temporary storage)
45  for (decltype(n) i = 1; i < n - 1; i++)
46  {
47  Real sig = (x[i] - x[i - 1]) / (x[i + 1] - x[i - 1]);
48  Real p = sig * y2[i - 1] + 2.0;
49  y2[i] = (sig - 1.0) / p;
50  u[i] = (y[i + 1] - y[i]) / (x[i + 1] - x[i]) - (y[i] - y[i - 1]) / (x[i] - x[i - 1]);
51  u[i] = (6.0 * u[i] / (x[i + 1] - x[i - 1]) - sig * u[i - 1]) / p;
52  }
53 
54  Real qn, un;
55  if (ypn >= 1e30)
56  qn = un = 0.;
57  else
58  {
59  qn = 0.5;
60  un = (3.0 / (x[n - 1] - x[n - 2])) * (ypn - (y[n - 1] - y[n - 2]) / (x[n - 1] - x[n - 2]));
61  }
62 
63  y2[n - 1] = (un - qn * u[n - 2]) / (qn * y2[n - 2] + 1.);
64  // back substitution
65  for (auto k = n - 1; k >= 1; k--)
66  y2[k - 1] = y2[k - 1] * y2[k] + u[k - 1];
67 }
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
static PetscErrorCode Vec x
PetscInt n

Member Data Documentation

const Real SplineInterpolationBase::_deriv_bound = std::numeric_limits<Real>::max()
staticprotectedinherited

Definition at line 64 of file SplineInterpolationBase.h.

Referenced by errorCheck().

int BicubicSplineInterpolation::_file_number = 0
staticprotected

Definition at line 92 of file BicubicSplineInterpolation.h.

std::vector<Real> BicubicSplineInterpolation::_x1
protected
std::vector<Real> BicubicSplineInterpolation::_x2
protected
std::vector<std::vector<Real> > BicubicSplineInterpolation::_y
protected
std::vector<std::vector<Real> > BicubicSplineInterpolation::_y2_columns
protected
std::vector<std::vector<Real> > BicubicSplineInterpolation::_y2_rows
protected
std::vector<std::vector<Real> > BicubicSplineInterpolation::_y_trans
protected
std::vector<Real> BicubicSplineInterpolation::_yx11
protected

Boundary conditions.

The first index indicates the coordinate the derivative is with respect to. The second index indicates the grid index, e.g. 1 is the lower bound, and n is the upper bound

Definition at line 79 of file BicubicSplineInterpolation.h.

Referenced by constructColumnSplineSecondDerivativeTable(), errorCheck(), and setData().

std::vector<Real> BicubicSplineInterpolation::_yx1n
protected
std::vector<Real> BicubicSplineInterpolation::_yx21
protected
std::vector<Real> BicubicSplineInterpolation::_yx2n
protected

The documentation for this class was generated from the following files: