|
| ExpEvaluator () |
| Constructor initializes array pointers to NULL. More...
|
|
virtual | ~ExpEvaluator () |
| Destructor deletes table for linear interpolation of exponentials.
|
|
void | setQuadrature (Quadrature *quadrature) |
| Set the Quadrature to use when computing exponentials. More...
|
|
void | setMaxOpticalLength (FP_PRECISION max_optical_length) |
| Sets the maximum optical length covered in the exponential interpolation table. More...
|
|
void | setExpPrecision (FP_PRECISION exp_precision) |
| Sets the maximum acceptable approximation error for exponentials. More...
|
|
void | useInterpolation () |
| Use linear interpolation to compute exponentials.
|
|
void | useIntrinsic () |
| Use the exponential intrinsic exp(...) to compute exponentials.
|
|
void | useLinearSource () |
| Use linear source exponentials.
|
|
FP_PRECISION | getMaxOpticalLength () |
| Gets the maximum optical length covered with the exponential interpolation table. More...
|
|
FP_PRECISION | getExpPrecision () |
| Gets the maximum acceptable approximation error for exponentials. More...
|
|
bool | isUsingInterpolation () |
| Returns true if using linear interpolation to compute exponentials. More...
|
|
FP_PRECISION | getTableSpacing () |
| Returns the exponential table spacing. More...
|
|
int | getTableSize () |
| Get the number of entries in the exponential interpolation table. More...
|
|
FP_PRECISION * | getExpTable () |
| Returns a pointer to the exponential interpolation table. More...
|
|
int | getExponentialIndex (FP_PRECISION tau) |
| Get the index on the exponential interpolation grid of the value right beneath tau. More...
|
|
FP_PRECISION | getDifference (int index, FP_PRECISION tau) |
| Compute the difference between an optical path and an indexed value in the exponential interpolation grid. More...
|
|
FP_PRECISION | convertDistance3Dto2D (FP_PRECISION length) |
| Convert a 3D distance to a 2D based on the evaluator's polar angle. More...
|
|
FP_PRECISION | getInverseSinTheta () |
| Get the inverse of sin theta from the ExpEvaluator. More...
|
|
void | initialize (int azim_index, int polar_index, bool solve_3D) |
| If using linear interpolation, builds the table for each polar angle. More...
|
|
FP_PRECISION | computeExponential (FP_PRECISION tau, int polar_offset) |
| Computes the F1 exponential term. More...
|
|
FP_PRECISION | computeExponentialF1 (int index, int polar_offset, FP_PRECISION dt, FP_PRECISION dt2) |
| Computes the F1 exponential term. More...
|
|
FP_PRECISION | computeExponentialF2 (int index, int polar_offset, FP_PRECISION dt, FP_PRECISION dt2) |
| Computes the F2 exponential term. More...
|
|
FP_PRECISION | computeExponentialH (int index, int polar_offset, FP_PRECISION dt, FP_PRECISION dt2) |
| Computes the H exponential term. More...
|
|
void | retrieveExponentialComponents (FP_PRECISION tau, int polar_offset, FP_PRECISION *exp_F1, FP_PRECISION *exp_F2, FP_PRECISION *exp_H) |
| Computes the F1, F2, H exponential term. More...
|
|
FP_PRECISION | computeExponentialG2 (FP_PRECISION tau) |
| Computes the G2 exponential term for a optical length and polar angle. More...
|
|
ExpEvaluator * | deepCopy () |
| Deep copies an ExpEvaluator, for developing purposes. More...
|
|
This is a class for evaluating exponentials.
The ExpEvaluator includes different algorithms to evaluate exponentials with varying degrees of accuracy and speed. This is a helper class for the Solver and its subclasses and it is not intended to be initialized as a standalone object.
FP_PRECISION ExpEvaluator::computeExponentialF1 |
( |
int |
index, |
|
|
int |
polar_offset, |
|
|
FP_PRECISION |
dt, |
|
|
FP_PRECISION |
dt2 |
|
) |
| |
|
inline |
Computes the F1 exponential term.
This method computes F1 exponential from Ferrer [1] given an index into the exponential look-up table, the distance (in units of optical length) from the corresponding table value and the requested tau, and that distance squared. This method uses either a linear interpolation table (default) or the exponential intrinsic exp(...) function. //DEPRECATED
[1] R. Ferrer and J. Rhodes III, "A Linear Source Approximation
Scheme for the Method of Characteristics", Nuclear Science and Engineering, Volume 182, February 2016.
- Parameters
-
index | the index into the exponential look-up table |
polar_offset | an offset to the index in the look-up table |
dt | the distance to the corresponding look-up table bin |
dt2 | the distance to the corresponding look-up table bin squared |
- Returns
- the evaluated F1 exponential term
FP_PRECISION ExpEvaluator::computeExponentialF2 |
( |
int |
index, |
|
|
int |
polar_offset, |
|
|
FP_PRECISION |
dt, |
|
|
FP_PRECISION |
dt2 |
|
) |
| |
|
inline |
Computes the F2 exponential term.
This method computes F2 exponential from Ferrer [1] given an index into the exponential look-up table, the distance (in units of optical length) from the corresponding table value and the requested tau, and that distance squared. This method uses either a linear interpolation table (default) or the exponential intrinsic exp(...) function. //DEPRECATED
[1] R. Ferrer and J. Rhodes III, "A Linear Source Approximation
Scheme for the Method of Characteristics", Nuclear Science and Engineering, Volume 182, February 2016.
- Parameters
-
index | the index into the exponential look-up table |
polar_offset | an offset to the index in the look-up table |
dt | the distance to the corresponding look-up table bin |
dt2 | the distance to the corresponding look-up table bin squared |
- Returns
- the evaluated F2 exponential term
FP_PRECISION ExpEvaluator::computeExponentialG2 |
( |
FP_PRECISION |
tau | ) |
|
|
inline |
Computes the G2 exponential term for a optical length and polar angle.
This method computes the G2 exponential term from Ferrer [1] for some optical path length and polar angle. This method uses a rational fraction approximation to compute the exponential term.
[1] R. Ferrer and J. Rhodes III, "A Linear Source Approximation
Scheme for the Method of Characteristics", Nuclear Science and Engineering, Volume 182, February 2016.
- Parameters
-
tau | the optical path length (e.g., sigma_t times length) |
- Returns
- the evaluated exponential
FP_PRECISION ExpEvaluator::computeExponentialH |
( |
int |
index, |
|
|
int |
polar_offset, |
|
|
FP_PRECISION |
dt, |
|
|
FP_PRECISION |
dt2 |
|
) |
| |
|
inline |
Computes the H exponential term.
This method computes H exponential from Ferrer [1] given an index into the exponential look-up table, the distance (in units of optical length) from the corresponding table value and the requested tau, and that distance squared. This method uses either a linear interpolation table (default) or the exponential intrinsic exp(...) function. //DEPRECATED
[1] R. Ferrer and J. Rhodes III, "A Linear Source Approximation
Scheme for the Method of Characteristics", Nuclear Science and Engineering, Volume 182, February 2016.
- Parameters
-
index | the index into the exponential look-up table |
polar_offset | an offset to the index in the look-up table |
dt | the distance to the corresponding look-up table bin |
dt2 | the distance to the corresponding look-up table bin squared |
- Returns
- the evaluated H exponential term
void ExpEvaluator::retrieveExponentialComponents |
( |
FP_PRECISION |
tau, |
|
|
int |
polar_offset, |
|
|
FP_PRECISION * |
exp_F1, |
|
|
FP_PRECISION * |
exp_F2, |
|
|
FP_PRECISION * |
exp_H |
|
) |
| |
|
inline |
Computes the F1, F2, H exponential term.
This method computes F1, F2, H exponential from Ferrer [1] given the requested tau. This method uses either a linear interpolation table (default) or the exponential intrinsicexp(...) function.
[1] R. Ferrer and J. Rhodes III, "A Linear Source Approximation
Scheme for the Method of Characteristics", Nuclear Science and Engineering, Volume 182, February 2016.
- Parameters
-
tau | the requested tau |
polar_offset | an offset to the index in the look-up table |
exp_F1 | pointer to the F1 exponential term to be computed |
exp_F2 | pointer to the F2 exponential term to be computed |
exp_H | pointer to the H exponential term to be computed |