Blurb::
Order for tensor-products of Gaussian quadrature rules
Description::
Multidimensional integration by a tensor-product of Gaussian
quadrature rules (specified with ``quadrature_order``, and, optionally,
``dimension_preference``). The default rule selection is to employ
``non_nested`` Gauss rules including Gauss-Hermite (for normals or
transformed normals), Gauss-Legendre (for uniforms or transformed
uniforms), Gauss-Jacobi (for betas), Gauss-Laguerre (for
exponentials), generalized Gauss-Laguerre (for gammas), and
numerically-generated Gauss rules (for other distributions when using
an Extended basis). For the case of ``p_refinement`` or the case of an
explicit ``nested`` override, Gauss-Hermite rules are replaced with
Genz-Keister nested rules and Gauss-Legendre rules are replaced with
Gauss-Patterson nested rules, both of which exchange lower integrand
precision for greater point reuse.  By specifying a
``dimension_preference``, where higher preference leads to higher order
polynomial resolution, the tensor grid may be rendered
anisotropic. The dimension specified to have highest preference will
be set to the specified ``quadrature_order`` and all other dimensions
will be reduced in proportion to their reduced preference; any
non-integral portion is truncated.  To synchronize with tensor-product
integration, a tensor-product expansion is used, where the order
:math:`p_i`  of the expansion in each dimension is selected to be half of
the integrand precision available from the rule in use, rounded
down. In the case of non-nested Gauss rules with integrand precision
:math:`2m_i-1` , :math:`p_i`  is one less than the quadrature order
:math:`m_i`  in each dimension (a one-dimensional expansion contains the
same number of terms, :math:`p+1` , as the number of Gauss points). The
total number of terms, *N*, in a tensor-product expansion involving
*n* uncertain input variables is 
.. math:: N ~=~ 1 + P ~=~ \prod_{i=1}^{n}
(p_i + 1)
In some advanced use cases (e.g., multifidelity UQ),
multiple grid resolutions can be employed; for this reason, the
``quadrature_order`` specification supports an array input.

A corresponding sequence specification is documented at, e.g.,
:dakkw:`method-multifidelity_polynomial_chaos-quadrature_order_sequence` and
:dakkw:`method-multifidelity_stoch_collocation-quadrature_order_sequence`
Topics::

Examples::

Theory::

Faq::

See_Also::
