HazardCurveTransfer

Transfers scaled ground motion data from a HazardCurve object to a PiecewiseLinear function on the sub application.

Description

The HazardCurveTransfer is a part of the Seismic Probabilistic Risk Assessment (SPRA) framework in MASTODON. The HazardCurveTransfer transfers the scaled ground motion data created by the HazardCurve UserObject to the sub-input file. Listed below is a sample master input file that uses the HazardCurveTransfer. In the input file below, the 'GroundMotionReader' UserObject reads the ground motions files, and the 'HazardCurve' UserObject reads the hazard curve file, splits the hazard curve into a number of intensity bins and scales the ground motions to the intensity of each bin. The HazardCurveMultiApp then creates sub files corresponding to each scaled ground motion. The HazardCurveTransfer transfers the scaled ground motions into the sub files for performing multiple simulations.

In the listing below, a set of ground motions and a hazard curve are read by the GroundMotionReader and HazardCurve UserObjects. The ground motions are then scaled for each bin and transferred as functions in the sub-files by HazardCurveTransfer. This function should be defined in the sub file (listed below in hazard_curve_sub.i) and the name of this function ('func', in this case) should be provided in the function input parameter in the HazardCurveTransfer. Also the component (X, Y or Z) of the ground motion that is to be used should be provided to the component parameter. In order to use more than one component, multiple HazardCurveTransfer blocks with multiple functions should be used.

The risk assessment procedure outlined above is called time-based assessment (Huang et al., 2008). When the risk assessment is performed for only one intensity bin of the hazard curve, it is referred to as an intensity-based assessment. Further description of the intensity-based and time-based assessment procedures can be found in Huang et al. (2008).

[UserObjects<<<{"href": "../../syntax/UserObjects/index.html"}>>>]
  [./motions]
    type = GroundMotionReader<<<{"description": "Reads ground motion data from files.", "href": "../userobjects/GroundMotionReader.html"}>>>
    pattern<<<{"description": "The filename pattern (glob) for the ground motions to read."}>>> = '../../data/ground_motion_*.csv'
  [../]
  [./hazard]
    type = HazardCurve<<<{"description": "Reads the hazard curve file and creates ground motion bins for time-based assessment.", "href": "../userobjects/HazardCurve.html"}>>>
    filename<<<{"description": "The hazard curve csv filename."}>>> = '../../data/hazard.csv'
    number_of_bins<<<{"description": "The number of bins to create from the hazard curve data."}>>> = 2
    ground_motions<<<{"description": "The GroundMotionReader object to extract ground motion data from to build the hazard curve."}>>> = motions
    reference_acceleration<<<{"description": "Ground motion reference acceleration(s)."}>>> = 0.4
  [../]
[]

[MultiApps<<<{"href": "../../syntax/MultiApps/index.html"}>>>]
  [./run_hazard]
    type = HazardCurveMultiApp<<<{"description": "Creates a sub file for each row of each HazardCurve bin and ground motion.", "href": "../multiapps/HazardCurveMultiApp.html"}>>>
    hazard<<<{"description": "The HazardCurve object to utilize for creating MultiApps."}>>> = hazard
    input_files<<<{"description": "The input file for each App.  If this parameter only contains one input file it will be used for all of the Apps.  When using 'positions_from_file' it is also admissable to provide one input_file per file."}>>> = 'hazard_curve_sub.i'
    execute_on<<<{"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."}>>> = 'initial timestep_end'
  [../]
[]

[Transfers<<<{"href": "../../syntax/Transfers/index.html"}>>>]
  [./transfer]
    type = HazardCurveTransfer<<<{"description": "Transfers scaled ground motion data from a HazardCurve object to a PiecewiseLinear function on the sub application.", "href": "HazardCurveTransfer.html"}>>>
    to_multi_app<<<{"description": "The name of the MultiApp to transfer the data to"}>>> = run_hazard
    function<<<{"description": "The name of the function on the sub application to which data will be transferred"}>>> = func
    component<<<{"description": "The (x, y, z) component of the ground motion that will be transfered to the sub application."}>>> = z
  [../]
[]
(test/tests/transfers/hazard_curve_transfer/hazard_curve_master.i)
[Functions<<<{"href": "../../syntax/Functions/index.html"}>>>]
  [./func]
    type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../functions/PiecewiseLinear.html"}>>>
    x<<<{"description": "The abscissa values"}>>> = '0 1'
    y<<<{"description": "The ordinate values"}>>> = '200 2000'
  [../]
[]
(test/tests/transfers/hazard_curve_transfer/hazard_curve_sub.i)

Input Parameters

  • functionThe name of the function on the sub application to which data will be transferred

    C++ Type:std::string

    Controllable:No

    Description:The name of the function on the sub application to which data will be transferred

Required Parameters

  • check_multiapp_execute_onTrueWhen false the check between the multiapp and transfer execute on flags is not performed.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:When false the check between the multiapp and transfer execute on flags is not performed.

  • componentxThe (x, y, z) component of the ground motion that will be transfered to the sub application.

    Default:x

    C++ Type:MooseEnum

    Options:x, y, z

    Controllable:No

    Description:The (x, y, z) component of the ground motion that will be transfered to the sub application.

  • displaced_source_meshFalseWhether or not to use the displaced mesh for the source mesh.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to use the displaced mesh for the source mesh.

  • displaced_target_meshFalseWhether or not to use the displaced mesh for the target mesh.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to use the displaced mesh for the target mesh.

  • execute_onSAME_AS_MULTIAPPThe 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:SAME_AS_MULTIAPP

    C++ Type:ExecFlagEnum

    Options:XFEM_MARK, NONE, INITIAL, LINEAR, LINEAR_CONVERGENCE, NONLINEAR, NONLINEAR_CONVERGENCE, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, MULTIAPP_FIXED_POINT_CONVERGENCE, FINAL, CUSTOM, SAME_AS_MULTIAPP, POST_ADAPTIVITY

    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.

  • from_multi_appThe name of the MultiApp to receive data from

    C++ Type:MultiAppName

    Controllable:No

    Description:The name of the MultiApp to receive data from

  • to_multi_appThe name of the MultiApp to transfer the data to

    C++ Type:MultiAppName

    Controllable:No

    Description:The name of the MultiApp to transfer the data to

Optional Parameters

  • _called_legacy_paramsTrue

    Default:True

    C++ Type:bool

    Controllable:No

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

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

    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

    Controllable:Yes

    Description:Set the enabled status of the MooseObject.

  • skip_coordinate_collapsingTrueWhether to skip coordinate collapsing (translation and rotation are still performed, only XYZ, RZ etc collapsing is skipped) when performing mapping and inverse mapping coordinate transformation operations. This parameter should only be set by users who really know what they're doing.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to skip coordinate collapsing (translation and rotation are still performed, only XYZ, RZ etc collapsing is skipped) when performing mapping and inverse mapping coordinate transformation operations. This parameter should only be set by users who really know what they're doing.

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

Input Files

References

  1. Y. N. Huang, A. S. Whittaker, and N. Luco. Performance assessment of conventional and base-isolated nuclear power plants for earthquake and blast loadings. Technical Report MCEER-08-0019, Multidisciplinary Center for Earthquake Engineering Research, Buffalo, New York, 2008.[BibTeX]