Open robertsj opened 1 year ago
Hypothesis I: M runs of one (randomized) N-angle problem will not produce results as good as one M*N-angle problem but will be better than a single N-angle problem.
Hypothesis II: One run of a fully-converged, N-angle problem whose quadrature is randomized for each of M iterations will generally yield worse results than one, non-randomized, fully-converged, NM-angle problem. Moreover, M may be significantly larger than the number of iterations required to converge one, non-randomized, N-angle problem. However, the accuracy of the randomized N-angle problem might be substantially closer to the non-randomized, fully-converged, NM-angle problem results than would be the non-randomized variant.
Hypothesis III: Randomization of the quadrature at each iteration mitigates ray effects. This is already shown to a degree in the literature. It helps justify why, as stated in Hypothesis II, that the randomized, N-angle problem may be more accurate than the non-randomized, N-angle problem.
For a variety of reasons, the ability to produce a randomly-generated, angular quadrature for discrete-ordinates calculations is of interest.
Currently, the quadrature classes in Detran follow two hierarchies. The first is
BaseQuadrature<-DerivedQuadrature
, where Derived is Uniform, GC, or GL. These are 1D quadratures for the range 0 to 1 that follow specific rules (e.g., GL having the zeros of Legendre polynomials with special weights that give let an N-point quadrature integrate polynomials of degree 2N-1 exactly; GC does so for weighted integrands of the form f(x)/sqrt(1-x^2) (or something like that).The second is
Quadrature<-AnotherDerivedQuadrature
, whereAnotherDerivedQuadrature
is one of several, special quadratures (e.g.,LevelSymmetric
,AbuShumaysDoubleRange
) orProductQuadratureAP<A, P>
, whereA
andP
are one of theDerivedQuadrature
types noted above.So, two new derived classes:
and one new template
Of course, the "randomization" can be fixed at construction.
Alternatively, methods could be added to
BaseQuadrature
andQuadrature
to be reimplemented by their children.