- initial_valueInitial value if scaling this control data
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Initial value if scaling this control data
- scale_factorControl data by which to scale value
C++ Type:std::string
Unit:(no unit assumed)
Controllable:No
Description:Control data by which to scale value
ScaleOldChainControl
This ChainControl allows the user to scale the previous time value for a chain control data by another chain control data. The resulting value is named <control>:value
, where <control>
is the user-given name of the ScaleOldChainControl
. The chain control data to scale may be the same chain control data created by this ChainControl
, or it may be another.
This ChainControl
is useful for applying corrections to simulation quantities. For example, suppose the objective is to tune a heat transfer coefficient such that the resulting cooling power, which we calculate using a Postprocessor simulated_power
, matches an experimentally measured power, given in a Postprocessor
experiment_power
. One provides an initial guess for the heat transfer coefficient "initial_value". The heat transfer coefficient in the boundary condition is controlled using a SetValueChainControl. The Postprocessor
simulated_power
is computed using a numerical integral over the boundary, and then a GetPostprocessorChainControl is used to copy each of simulated_power
and experiment_power
. A ParsedChainControl is used to compute a scaling factor as experiment_power / simulated_power
. This value is then used in "scale_factor". To keep the scaled value in a physical range (for instance, the heat transfer coefficient should be a positive value), one may use a LimitChainControl. This is important, for example, because often there is noise in experimental data, and the response time of the controlled quantity may vary. This limited heat transfer coefficient chain control data is the one that should be used with the SetValueChainControl
, so it should also be the one used in "control_data". If there were no limitation step, then this parameter would be set to <control>:value
.
Input Parameters
- control_dataControl data whose old value is to be scaled. If no name is provided, this control data is used.
C++ Type:std::string
Unit:(no unit assumed)
Controllable:No
Description:Control data whose old value is to be scaled. If no name is provided, this control data is used.
- depends_onThe Controls that this control relies upon (i.e. must execute before this one)
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:The Controls that this control relies upon (i.e. must execute before this one)
- execute_onINITIAL TIMESTEP_ENDThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
Default:INITIAL TIMESTEP_END
C++ Type:ExecFlagEnum
Unit:(no unit assumed)
Controllable:No
Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
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.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form