|
| | 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 |