.. _method-multifidelity_stoch_collocation: """"""""""""""""""""""""""""""" multifidelity_stoch_collocation """"""""""""""""""""""""""""""" Multifidelity uncertainty quantification using stochastic collocation .. toctree:: :hidden: :maxdepth: 1 method-multifidelity_stoch_collocation-p_refinement method-multifidelity_stoch_collocation-h_refinement method-multifidelity_stoch_collocation-max_refinement_iterations method-multifidelity_stoch_collocation-convergence_tolerance method-multifidelity_stoch_collocation-metric_scale method-multifidelity_stoch_collocation-statistics_mode method-multifidelity_stoch_collocation-allocation_control method-multifidelity_stoch_collocation-discrepancy_emulation method-multifidelity_stoch_collocation-quadrature_order_sequence method-multifidelity_stoch_collocation-sparse_grid_level_sequence method-multifidelity_stoch_collocation-piecewise method-multifidelity_stoch_collocation-askey method-multifidelity_stoch_collocation-wiener method-multifidelity_stoch_collocation-use_derivatives method-multifidelity_stoch_collocation-samples_on_emulator method-multifidelity_stoch_collocation-sample_type method-multifidelity_stoch_collocation-rng method-multifidelity_stoch_collocation-probability_refinement method-multifidelity_stoch_collocation-final_moments method-multifidelity_stoch_collocation-response_levels method-multifidelity_stoch_collocation-probability_levels method-multifidelity_stoch_collocation-reliability_levels method-multifidelity_stoch_collocation-gen_reliability_levels method-multifidelity_stoch_collocation-distribution method-multifidelity_stoch_collocation-variance_based_decomp method-multifidelity_stoch_collocation-diagonal_covariance method-multifidelity_stoch_collocation-full_covariance method-multifidelity_stoch_collocation-import_approx_points_file method-multifidelity_stoch_collocation-export_approx_points_file method-multifidelity_stoch_collocation-seed_sequence method-multifidelity_stoch_collocation-fixed_seed method-multifidelity_stoch_collocation-model_pointer **Specification** - *Alias:* None - *Arguments:* None **Child Keywords:** +-------------------------+--------------------+--------------------------------+---------------------------------------------+ | Required/Optional | Description of | Dakota Keyword | Dakota Keyword Description | | | Group | | | +=========================+====================+================================+=============================================+ | Optional (Choose One) | Automated | `p_refinement`__ | Automatic polynomial order refinement | | | Refinement Type +--------------------------------+---------------------------------------------+ | | | `h_refinement`__ | Employ h-refinement to refine the grid | +-------------------------+--------------------+--------------------------------+---------------------------------------------+ | Optional | `max_refinement_iterations`__ | Maximum number of expansion refinement | | | | iterations | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `convergence_tolerance`__ | Stopping criterion based on objective | | | | function or statistics convergence | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `metric_scale`__ | define scaling of statistical metrics when | | | | adapting UQ surrogates | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `statistics_mode`__ | type of statistical metric roll-up for | | | | multifidelity UQ methods | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `allocation_control`__ | Sample allocation approach for | | | | multifidelity expansions | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `discrepancy_emulation`__ | Formulation for emulation of model | | | | discrepancies. | +-------------------------+--------------------+--------------------------------+---------------------------------------------+ | Required (Choose One) | Interpolation Grid | `quadrature_order_sequence`__ | Sequence of quadrature orders used in a | | | Type | | multi-stage expansion | | | +--------------------------------+---------------------------------------------+ | | | `sparse_grid_level_sequence`__ | Sequence of sparse grid levels used in a | | | | | multi-stage expansion | +-------------------------+--------------------+--------------------------------+---------------------------------------------+ | Optional (Choose One) | Basis Polynomial | `piecewise`__ | Use piecewise local basis functions | | | Family +--------------------------------+---------------------------------------------+ | | | `askey`__ | Select the standardized random variables | | | | | (and associated basis polynomials) from the | | | | | Askey family that best match the | | | | | user-specified random variables. | | | +--------------------------------+---------------------------------------------+ | | | `wiener`__ | Use standard normal random variables (along | | | | | with Hermite orthogonal basis polynomials) | | | | | when transforming to a standardized | | | | | probability space. | +-------------------------+--------------------+--------------------------------+---------------------------------------------+ | Optional | `use_derivatives`__ | Use derivative data to construct surrogate | | | | models | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `samples_on_emulator`__ | Number of samples at which to evaluate an | | | | emulator (surrogate) | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `sample_type`__ | Selection of sampling strategy | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `rng`__ | Selection of a random number generator | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `probability_refinement`__ | Allow refinement of probability and | | | | generalized reliability results using | | | | importance sampling | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `final_moments`__ | Output moments of the specified type and | | | | include them within the set of final | | | | statistics. | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `response_levels`__ | Values at which to estimate desired | | | | statistics for each response | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `probability_levels`__ | Specify probability levels at which to | | | | estimate the corresponding response value | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `reliability_levels`__ | Specify reliability levels at which the | | | | response values will be estimated | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `gen_reliability_levels`__ | Specify generalized relability levels at | | | | which to estimate the corresponding | | | | response value | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `distribution`__ | Selection of cumulative or complementary | | | | cumulative functions | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `variance_based_decomp`__ | Activates global sensitivity analysis based | | | | on decomposition of response variance into | | | | main, interaction, and total effects | +-------------------------+--------------------+--------------------------------+---------------------------------------------+ | Optional (Choose One) | Covariance Type | `diagonal_covariance`__ | Display only the diagonal terms of the | | | | | covariance matrix | | | +--------------------------------+---------------------------------------------+ | | | `full_covariance`__ | Display the full covariance matrix | +-------------------------+--------------------+--------------------------------+---------------------------------------------+ | Optional | `import_approx_points_file`__ | Filename for points at which to evaluate | | | | the PCE/SC surrogate | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `export_approx_points_file`__ | Output file for surrogate model value | | | | evaluations | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `seed_sequence`__ | Sequence of seed values for multi-stage | | | | random sampling | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `fixed_seed`__ | Reuses the same seed value for multiple | | | | random sampling sets | +----------------------------------------------+--------------------------------+---------------------------------------------+ | Optional | `model_pointer`__ | Identifier for model block to be used by a | | | | method | +----------------------------------------------+--------------------------------+---------------------------------------------+ .. __: method-multifidelity_stoch_collocation-p_refinement.html __ method-multifidelity_stoch_collocation-h_refinement.html __ method-multifidelity_stoch_collocation-max_refinement_iterations.html __ method-multifidelity_stoch_collocation-convergence_tolerance.html __ method-multifidelity_stoch_collocation-metric_scale.html __ method-multifidelity_stoch_collocation-statistics_mode.html __ method-multifidelity_stoch_collocation-allocation_control.html __ method-multifidelity_stoch_collocation-discrepancy_emulation.html __ method-multifidelity_stoch_collocation-quadrature_order_sequence.html __ method-multifidelity_stoch_collocation-sparse_grid_level_sequence.html __ method-multifidelity_stoch_collocation-piecewise.html __ method-multifidelity_stoch_collocation-askey.html __ method-multifidelity_stoch_collocation-wiener.html __ method-multifidelity_stoch_collocation-use_derivatives.html __ method-multifidelity_stoch_collocation-samples_on_emulator.html __ method-multifidelity_stoch_collocation-sample_type.html __ method-multifidelity_stoch_collocation-rng.html __ method-multifidelity_stoch_collocation-probability_refinement.html __ method-multifidelity_stoch_collocation-final_moments.html __ method-multifidelity_stoch_collocation-response_levels.html __ method-multifidelity_stoch_collocation-probability_levels.html __ method-multifidelity_stoch_collocation-reliability_levels.html __ method-multifidelity_stoch_collocation-gen_reliability_levels.html __ method-multifidelity_stoch_collocation-distribution.html __ method-multifidelity_stoch_collocation-variance_based_decomp.html __ method-multifidelity_stoch_collocation-diagonal_covariance.html __ method-multifidelity_stoch_collocation-full_covariance.html __ method-multifidelity_stoch_collocation-import_approx_points_file.html __ method-multifidelity_stoch_collocation-export_approx_points_file.html __ method-multifidelity_stoch_collocation-seed_sequence.html __ method-multifidelity_stoch_collocation-fixed_seed.html __ method-multifidelity_stoch_collocation-model_pointer.html **Description** As described in :dakkw:`method-stoch_collocation`, stochastic collocation is a general framework for approximate representation of random response functions in terms of finite-dimensional interpolation bases, using interpolation polynomials that may be either local or global and either value-based or gradient-enhanced. In the multifidelity case, we decompose this interpolant expansion into several constituent expansions, one per model form or solution control level. In a bi-fidelity case with low-fidelity (LF) and high-fidelity (HF) models and an additive discrepancy approach, we have: .. math:: R = \sum_{i=1}^{N_p^{LF}} r^{LF}_i L_i(\xi) + \sum_{i=1}^{N_p^{HF}} \delta_i L_i(\xi) where :math:`\delta_i` is a coefficient for the discrepancy expansion. The same specification options are available as described in :dakkw:`method-stoch_collocation` with one key difference: the coefficient estimation inputs change from a scalar input for a single expansion to a sequence specification for a low-fidelity expansion followed by multiple discrepancy expansions. To obtain the coefficients :math:`r_i` and :math:`\delta_i` for each of the expansions, the following options are provided: 1. multidimensional integration by a tensor-product of Gaussian quadrature rules (specified with ``quadrature_order_sequence``, and, optionally, ``dimension_preference``). 2. multidimensional integration by the Smolyak sparse grid method (specified with ``sparse_grid_level_sequence`` and, optionally, ``dimension_preference``) It is important to note that, while ``quadrature_order_sequence`` and ``sparse_grid_level_sequence`` are array inputs, only one scalar from these arrays is active at a time for a particular expansion estimation. In order to specify anisotropy in resolution across the random variable set, a ``dimension_preference`` specification can be used to augment these scalar specifications. Multifidelity UQ using SC requires that the model selected for iteration by the method specification is an ensemble surrogate model (see :dakkw:`model-surrogate-ensemble`), which defines an an ordered sequence of model fidelities or resolutions. Two types of hierarchies are supported: (i) a hierarchy of model forms composed from more than one model within the ``ordered_model_fidelities`` specification, or (ii) a hierarchy of discretization levels comprised from a single model (either from a ``truth_model_pointer`` specification or a single entry within an ``ordered_model_fidelities`` specification) which in turn specifies a ``solution_level_control`` (see :dakkw:`model-single-solution_level_control`). In both cases, an expansion will first be formed for the low fidelity model or coarse discretization, using the first value within the coefficient estimation sequence, along with any specified refinement strategy. Second, expansions are formed for one or more model discrepancies (the difference between response results if ``additive`` ``correction`` or the ratio of results if ``multiplicative`` ``correction``), using all subsequent values in the coefficient estimation sequence (if the sequence does not provide a new value, then the previous value is reused) along with any specified refinement strategy. The number of discrepancy expansions is determined by the number of model forms or discretization levels in the hierarchy. After formation and refinement of the constituent expansions, each of the expansions is combined (added or multiplied) into an expansion that approximates the high fidelity model, from which the final set of statistics are generated. *Additional Resources* Dakota provides access to multifidelity SC methods through the NonDMultilevelStochCollocation class. Refer to the Stochastic Expansion Methods chapter of the Theory Manual :cite:p:`TheoMan` for additional information on the Multifidelity SC algorithm. *Expected HDF5 Output* If Dakota was built with HDF5 support and run with the :dakkw:`environment-results_output-hdf5` keyword, this method writes the following results to HDF5: - :ref:`hdf5_results-se_moments` (expansion moments only) - :ref:`hdf5_results-pdf` - :ref:`hdf5_results-level_mappings` In addition, the execution group has the attribute ``equiv_hf_evals``, which records the equivalent number of high-fidelity evaluations. **Examples** .. code-block:: method, multifidelity_stoch_collocation model_pointer = 'HIERARCH' sparse_grid_level_sequence = 4 3 2 model, id_model = 'HIERARCH' surrogate ensemble ordered_model_fidelities = 'LF' 'MF' 'HF' correction additive zeroth_order