PolynomialRegressionSurrogate

Evaluates polynomial regression model with coefficients computed from PolynomialRegressionTrainer.

Overview

This surrogate model takes the vector containing model coefficients (c\textbf{c}) from PolynomialRegressionTrainer and computes the value of the QoI at a new parameter sample by simply evaluating

y^(x)=k=1NpP(x,ik)ck,\hat{\textbf{y}}(\textbf{x}') = \sum \limits_{k=1}^{N_p}P(\textbf{x}', \textbf{i}_{k})c_k,(1)

where x\textbf{x}' denotes the coordinates of the new sample in the parameter space. It is important to mention that unlike NearestPointSurrogate, this surrogate model does not require the evaluation of a function (e.g. distance) for all training points to determine the new value at x\textbf{x}'. Thus, for large training data bases, using a PolynomialRegressionSurrogate for repeated runs is faster.

Example Input File Syntax

To create a surrogate model which uses polynomial regression, one can use the following syntax:

[Surrogates]
  [surrogate]
    type = PolynomialRegressionSurrogate
    filename = 'train_out_train.rd'
  []
[]
(contrib/moose/modules/stochastic_tools/test/tests/surrogates/polynomial_regression/evaluate.i)

It is visible that the data from PolynomialRegressionTrainer has been saved to train_out_train.rd and the surrogate model is constructed by loading the necessary information from it. If one wants to do the training and evaluation in the same input, the following syntax can be used:

[Surrogates]
  [surrogate]
    type = PolynomialRegressionSurrogate
    trainer = train
  []
[]
(contrib/moose/modules/stochastic_tools/test/tests/surrogates/polynomial_regression/train_and_evaluate.i)

where train is the ID of the PolynomialRegressionTrainer object. For the sampling of the surrogate model, the same objects can be used in the Samplers block:

[Samplers]
  [test]
    type = CartesianProduct
    linear_space_items = '0.25 1 10
                          0.25 1 10
                          0.25 1 10'
  []
[]
(contrib/moose/modules/stochastic_tools/test/tests/surrogates/polynomial_regression/evaluate.i)

Finally, a reporter of type EvaluateSurrogate is created to extract the approximate value of the QoI(s):

[Reporters]
  [results]
    type = EvaluateSurrogate
    model = surrogate
    sampler = test
    execute_on = final
    parallel_type = ROOT
  []
[]
(contrib/moose/modules/stochastic_tools/test/tests/surrogates/polynomial_regression/evaluate.i)

Input Parameters

  • filenameThe name of the file which will be associated with the saved/loaded data.

    C++ Type:FileName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the file which will be associated with the saved/loaded data.

  • trainerThe SurrogateTrainer object. If this is specified the trainer data is automatically gathered and available in this SurrogateModel object.

    C++ Type:UserObjectName

    Unit:(no unit assumed)

    Controllable:No

    Description:The SurrogateTrainer object. If this is specified the trainer data is automatically gathered and available in this SurrogateModel object.

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters