Example 5a: Dynamic analysis of a stick model of a nuclear power plant

Model Description

This example demonstrates the dynamic analysis of a simplified stick model of a nuclear power plant taken from the SASSI2000 user manual Ostadan (2006) in MASTODON and benchmarks the results with LS-DYNA. Both MASTODON and LS-DYNA input files for this example are included in the GitHub repository. The nuclear power plant consists of a containment made of prestressed concrete and a reinforced concrete internal structure. The simplified numerical model Figure 1 consists of two sets of stick models, one for the containment and the other for the internal structure. The lumped masses and the section properties of the stick model are presented in the right part of Figure 1. The superstructure is connected to the rigid foundation by four rigid foundation beams whose deformation is zero as shown in Figure 2. MASTODON currently does not have a rigid element formulation. Thus, the foundation beams and the solid foundation are modeled by increasing the value of Young's modulus of elasticity by . An acceleration history is applied at the base of the foundation in the X, Y, and Z directions and the response spectra at different elevations are compared with the responses obtained from the LS-DYNA model taken from Bolisetti et al. (2015).

Figure 1: Illustration of the representative nuclear power plant structures and the corresponding stick models (left) and section properties and lumped masses of stick model (right) (Ostadan, 2006).

Figure 2: Illustration of the connection between the stick model and foundation (Ostadan, 2006).

commentnote
  • The horizontal separation between the stick-mass model in the above figures is only for illustration. Both the stick-mass models are located along the center line and the base node is shared by both the stick mass models.

  • The lumped mass value of mass no. 3 is 4600 kips and not 46000, and mass no. 2, which is omitted in the table is equal to 4200 kips.

Modeling in MASTODON

[Mesh<<<{"href": "../syntax/Mesh/index.html"}>>>]
  type = FileMesh
  file = foundbeam_noded.e
[]

[Variables<<<{"href": "../syntax/Variables/index.html"}>>>]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./disp_z]
  [../]
  [./rot_x]
    block = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 16'
  [../]
  [./rot_y]
    block = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 16'
  [../]
  [./rot_z]
    block = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 16'
  [../]
[]

[AuxVariables<<<{"href": "../syntax/AuxVariables/index.html"}>>>]
  [./vel_x]
  [../]
  [./vel_y]
  [../]
  [./vel_z]
  [../]
  [./accel_x]
  [../]
  [./accel_y]
  [../]
  [./accel_z]
  [../]
  [./rot_vel_x]
    block = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
  [../]
  [./rot_vel_y]
    block = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
  [../]
  [./rot_vel_z]
    block = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
  [../]
  [./rot_accel_x]
    block = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
  [../]
  [./rot_accel_y]
    block = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
  [../]
  [./rot_accel_z]
    block = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
  [../]
[]

[Kernels<<<{"href": "../syntax/Kernels/index.html"}>>>]
  [./DynamicTensorMechanics<<<{"href": "../syntax/Kernels/DynamicTensorMechanics/index.html"}>>>]
    displacements<<<{"description": "The nonlinear displacement variables for the problem"}>>> = 'disp_x disp_y disp_z'
    stiffness_damping_coefficient<<<{"description": "Name of material property or a constant real number defining stiffness Rayleigh parameter (zeta)."}>>> = 0.0005438894818
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = 15
  [../]
  [./inertia_x]
    type = InertialForce<<<{"description": "Calculates the residual for the inertial force ($M \\cdot acceleration$) and the contribution of mass dependent Rayleigh damping and HHT time  integration scheme ($\\eta \\cdot M \\cdot ((1+\\alpha)velq2-\\alpha \\cdot vel-old) $)", "href": "../source/kernels/InertialForce.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_x
    velocity<<<{"description": "velocity variable"}>>> = vel_x
    acceleration<<<{"description": "acceleration variable"}>>> = accel_x
    beta<<<{"description": "beta parameter for Newmark Time integration"}>>> = 0.25
    gamma<<<{"description": "gamma parameter for Newmark Time integration"}>>> = 0.5
    eta<<<{"description": "Name of material property or a constant real number defining the eta parameter for the Rayleigh damping."}>>> = 3.26645357034 # Mass proportional Rayleigh damping
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 15
  [../]
  [./inertia_y]
    type = InertialForce<<<{"description": "Calculates the residual for the inertial force ($M \\cdot acceleration$) and the contribution of mass dependent Rayleigh damping and HHT time  integration scheme ($\\eta \\cdot M \\cdot ((1+\\alpha)velq2-\\alpha \\cdot vel-old) $)", "href": "../source/kernels/InertialForce.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_y
    velocity<<<{"description": "velocity variable"}>>> = vel_y
    acceleration<<<{"description": "acceleration variable"}>>> = accel_y
    beta<<<{"description": "beta parameter for Newmark Time integration"}>>> = 0.25
    gamma<<<{"description": "gamma parameter for Newmark Time integration"}>>> = 0.5
    eta<<<{"description": "Name of material property or a constant real number defining the eta parameter for the Rayleigh damping."}>>> = 3.26645357034 # Mass proportional Rayleigh damping
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 15
  [../]
  [./inertia_z]
    type = InertialForce<<<{"description": "Calculates the residual for the inertial force ($M \\cdot acceleration$) and the contribution of mass dependent Rayleigh damping and HHT time  integration scheme ($\\eta \\cdot M \\cdot ((1+\\alpha)velq2-\\alpha \\cdot vel-old) $)", "href": "../source/kernels/InertialForce.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_z
    velocity<<<{"description": "velocity variable"}>>> = vel_z
    acceleration<<<{"description": "acceleration variable"}>>> = accel_z
    beta<<<{"description": "beta parameter for Newmark Time integration"}>>> = 0.25
    gamma<<<{"description": "gamma parameter for Newmark Time integration"}>>> = 0.5
    eta<<<{"description": "Name of material property or a constant real number defining the eta parameter for the Rayleigh damping."}>>> = 3.26645357034 # Mass proportional Rayleigh damping
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 15
  [../]
[]

[AuxKernels<<<{"href": "../syntax/AuxKernels/index.html"}>>>]
  [./accel_x]
    type = NewmarkAccelAux<<<{"description": "Computes the current acceleration using the Newmark method.", "href": "../source/auxkernels/NewmarkAccelAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = accel_x
    displacement<<<{"description": "displacement variable"}>>> = disp_x
    velocity<<<{"description": "velocity variable"}>>> = vel_x
    beta<<<{"description": "beta parameter for Newmark method"}>>> = 0.25
    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."}>>> = 'timestep_end'
  [../]
  [./vel_x]
    type = NewmarkVelAux<<<{"description": "Calculates the current velocity using Newmark method.", "href": "../source/auxkernels/NewmarkVelAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = vel_x
    acceleration<<<{"description": "acceleration variable"}>>> = accel_x
    gamma<<<{"description": "gamma parameter for Newmark method"}>>> = 0.5
    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."}>>> = 'timestep_end'
  [../]
  [./accel_y]
    type = NewmarkAccelAux<<<{"description": "Computes the current acceleration using the Newmark method.", "href": "../source/auxkernels/NewmarkAccelAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = accel_y
    displacement<<<{"description": "displacement variable"}>>> = disp_y
    velocity<<<{"description": "velocity variable"}>>> = vel_y
    beta<<<{"description": "beta parameter for Newmark method"}>>> = 0.25
    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."}>>> = 'timestep_end'
  [../]
  [./vel_y]
    type = NewmarkVelAux<<<{"description": "Calculates the current velocity using Newmark method.", "href": "../source/auxkernels/NewmarkVelAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = vel_y
    acceleration<<<{"description": "acceleration variable"}>>> = accel_y
    gamma<<<{"description": "gamma parameter for Newmark method"}>>> = 0.5
    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."}>>> = 'timestep_end'
  [../]
  [./accel_z]
    type = NewmarkAccelAux<<<{"description": "Computes the current acceleration using the Newmark method.", "href": "../source/auxkernels/NewmarkAccelAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = accel_z
    displacement<<<{"description": "displacement variable"}>>> = disp_z
    velocity<<<{"description": "velocity variable"}>>> = vel_z
    beta<<<{"description": "beta parameter for Newmark method"}>>> = 0.25
    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."}>>> = 'timestep_end'
  [../]
  [./vel_z]
    type = NewmarkVelAux<<<{"description": "Calculates the current velocity using Newmark method.", "href": "../source/auxkernels/NewmarkVelAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = vel_z
    acceleration<<<{"description": "acceleration variable"}>>> = accel_z
    gamma<<<{"description": "gamma parameter for Newmark method"}>>> = 0.5
    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."}>>> = 'timestep_end'
  [../]
[]

[Physics<<<{"href": "../syntax/Physics/index.html"}>>>/SolidMechanics<<<{"href": "../syntax/Physics/SolidMechanics/index.html"}>>>/LineElement<<<{"href": "../syntax/Physics/SolidMechanics/LineElement/index.html"}>>>/QuasiStatic<<<{"href": "../syntax/Physics/SolidMechanics/LineElement/QuasiStatic/index.html"}>>>]
#    add_variables = true
    displacements<<<{"description": "The nonlinear displacement variables for the problem"}>>> = 'disp_x disp_y disp_z'
    rotations<<<{"description": "The rotations appropriate for the simulation geometry and coordinate system"}>>> = 'rot_x rot_y rot_z'

    # dynamic simulation using consistent mass/inertia matrix
    dynamic_nodal_translational_inertia<<<{"description": "If set to true, nodal mass matrix is used for the inertial force calculation."}>>> = true

    velocities<<<{"description": "Translational velocity variables"}>>> = 'vel_x vel_y vel_z'
    accelerations<<<{"description": "Translational acceleration variables"}>>> = 'accel_x accel_y accel_z'
    rotational_velocities<<<{"description": "Rotational velocity variables"}>>> = 'rot_vel_x rot_vel_y rot_vel_z'
    rotational_accelerations<<<{"description": "Rotational acceleration variables"}>>> = 'rot_accel_x rot_accel_y rot_accel_z'

    beta<<<{"description": "beta parameter for Newmark Time integration"}>>> = 0.25 # Newmark time integration parameter
    gamma<<<{"description": "gamma parameter for Newmark Time integration"}>>> = 0.5 # Newmark time integration parameter

    # parameters for 5% Rayleigh damping
    zeta<<<{"description": "Name of material property or a constant real number defining the zeta parameter for stiffness proportional Rayleigh damping."}>>> = 0.0005438894818 # stiffness proportional damping
    eta<<<{"description": "Name of material property or a constant real number defining the eta parameter for mass proportional Rayleigh damping."}>>> = 3.26645357034 # Mass proportional Rayleigh damping
  [./block_1]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 1
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 1400
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 2.8e6
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 2.8e6
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 142.860001
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 1 # vertex 2
  [../]
  [./block_2]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 2
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 1400
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 2.8e6
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 2.8e6
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 130.429993
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 2 # vertex 4, 6, 8, 10, 12
  [../]
  [./block_3]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 3
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 1400
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 2.8e6
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 2.8e6
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 143.169998
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 3 # vertex 12
  [../]
  [./block_4]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 4
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 990
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 1.9e6
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 1.9e6
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 93.79000092
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 4 # vertex 14
  [../]
  [./block_5]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 5
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 990
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 1.5e6
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 1.5e6
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 76.70999908
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 5 # vertex 16
  [../]
  [./block_6]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 6
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 990
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 8e5
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 8e5
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 65.83999634
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 6 # vertex 18
  [../]
  [./block_7]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 7
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 990
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 2e5
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 2e5
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 5.90000010
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 7 # vertex 20
  [../]
  # right
  [./block_8]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 8
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 2000
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 1.1e6
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 1.1e6
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 86.95999908
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 8 # vertex 22
  [../]
  [./block_9]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 9
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 2560
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 1.2e6
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 1.2e6
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 77.94999695
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 9 # vertex 24
  [../]
  [./block_10]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 10
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 2210
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 1.2e6
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 1.2e6
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 195.339996
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 10 # vertex 26
  [../]
  [./block_11]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 11
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 1960
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 1.3e6
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 1.3e6
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 116.769997
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 11 # vertex 28
  [../]
  [./block_12]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 12
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 1740
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 9e5
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 9e5
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 265.220001
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 12 # vertex 30
  [../]
  [./block_13]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 13
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 780
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 2e5
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 2e5
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 37.88999939
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 13 # vertex 32
  [../]
  [./block_14]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 14
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 190
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 4000.0
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 4000.0
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 1.0 0.0'

    nodal_mass<<<{"description": "Mass associated with the node"}>>> = 25.46999931
    boundary<<<{"description": "The list of boundary IDs from the mesh where the nodal mass/inertia will be applied."}>>> = 14 # vertex 34
  [../]
  [./block_16]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to"}>>> = 16
    area<<<{"description": "Cross-section area of the beam. Can be supplied as either a number or a variable name."}>>> = 2000
    Iy<<<{"description": "Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name."}>>> = 2.8e6
    Iz<<<{"description": "Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name."}>>> = 2.8e6
    y_orientation<<<{"description": "Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam."}>>> = '0.0 0.0 1.0'
    dynamic_nodal_translational_inertia<<<{"description": "If set to true, nodal mass matrix is used for the inertial force calculation."}>>> = false
  [../]
[]

[Materials<<<{"href": "../syntax/Materials/index.html"}>>>]
  [./elasticity_beam_outer_1]
    type = ComputeElasticityBeam<<<{"description": "Computes the equivalent of the elasticity tensor for the beam element, which are vectors of material translational and flexural stiffness.", "href": "../source/materials/ComputeElasticityBeam.html"}>>>
    youngs_modulus<<<{"description": "Young's modulus of the material. Can be supplied as either a number or a variable name."}>>> = 6.9e5
    poissons_ratio<<<{"description": "Poisson's ratio of the material. Can be supplied as either a number or a variable name."}>>> = 0.278
    shear_coefficient<<<{"description": "Scale factor for the shear modulus. Can be supplied as either a number or a variable name."}>>> = 0.5
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '1 2 3'
  [../]
  [./elasticity_beam_outer_2]
    type = ComputeElasticityBeam<<<{"description": "Computes the equivalent of the elasticity tensor for the beam element, which are vectors of material translational and flexural stiffness.", "href": "../source/materials/ComputeElasticityBeam.html"}>>>
    youngs_modulus<<<{"description": "Young's modulus of the material. Can be supplied as either a number or a variable name."}>>> = 6.9e5
    poissons_ratio<<<{"description": "Poisson's ratio of the material. Can be supplied as either a number or a variable name."}>>> = 0.278
    shear_coefficient<<<{"description": "Scale factor for the shear modulus. Can be supplied as either a number or a variable name."}>>> = 0.505
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '4 5 6 7'
  [../]
  [./elasticity_beam_inner_1]
    type = ComputeElasticityBeam<<<{"description": "Computes the equivalent of the elasticity tensor for the beam element, which are vectors of material translational and flexural stiffness.", "href": "../source/materials/ComputeElasticityBeam.html"}>>>
    youngs_modulus<<<{"description": "Young's modulus of the material. Can be supplied as either a number or a variable name."}>>> = 3.45e5
    poissons_ratio<<<{"description": "Poisson's ratio of the material. Can be supplied as either a number or a variable name."}>>> = 0.278
    shear_coefficient<<<{"description": "Scale factor for the shear modulus. Can be supplied as either a number or a variable name."}>>> = 0.66
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '8'
  [../]
  [./elasticity_beam_inner_2]
     type = ComputeElasticityBeam<<<{"description": "Computes the equivalent of the elasticity tensor for the beam element, which are vectors of material translational and flexural stiffness.", "href": "../source/materials/ComputeElasticityBeam.html"}>>>
     youngs_modulus<<<{"description": "Young's modulus of the material. Can be supplied as either a number or a variable name."}>>> = 3.45e5
     poissons_ratio<<<{"description": "Poisson's ratio of the material. Can be supplied as either a number or a variable name."}>>> = 0.278
     shear_coefficient<<<{"description": "Scale factor for the shear modulus. Can be supplied as either a number or a variable name."}>>> = 0.609375
     block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '9'
  [../]
  [./elasticity_beam_inner_3]
    type = ComputeElasticityBeam<<<{"description": "Computes the equivalent of the elasticity tensor for the beam element, which are vectors of material translational and flexural stiffness.", "href": "../source/materials/ComputeElasticityBeam.html"}>>>
    youngs_modulus<<<{"description": "Young's modulus of the material. Can be supplied as either a number or a variable name."}>>> = 3.45e5
    poissons_ratio<<<{"description": "Poisson's ratio of the material. Can be supplied as either a number or a variable name."}>>> = 0.278
    shear_coefficient<<<{"description": "Scale factor for the shear modulus. Can be supplied as either a number or a variable name."}>>> = 0.6606
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '10'
  [../]
  [./elasticity_beam_inner_4]
    type = ComputeElasticityBeam<<<{"description": "Computes the equivalent of the elasticity tensor for the beam element, which are vectors of material translational and flexural stiffness.", "href": "../source/materials/ComputeElasticityBeam.html"}>>>
    youngs_modulus<<<{"description": "Young's modulus of the material. Can be supplied as either a number or a variable name."}>>> = 3.45e5
    poissons_ratio<<<{"description": "Poisson's ratio of the material. Can be supplied as either a number or a variable name."}>>> = 0.278
    shear_coefficient<<<{"description": "Scale factor for the shear modulus. Can be supplied as either a number or a variable name."}>>> = 0.372
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '11'
  [../]
  [./elasticity_beam_inner_5]
    type = ComputeElasticityBeam<<<{"description": "Computes the equivalent of the elasticity tensor for the beam element, which are vectors of material translational and flexural stiffness.", "href": "../source/materials/ComputeElasticityBeam.html"}>>>
    youngs_modulus<<<{"description": "Young's modulus of the material. Can be supplied as either a number or a variable name."}>>> = 3.45e5
    poissons_ratio<<<{"description": "Poisson's ratio of the material. Can be supplied as either a number or a variable name."}>>> = 0.278
    shear_coefficient<<<{"description": "Scale factor for the shear modulus. Can be supplied as either a number or a variable name."}>>> = 0.345
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '12'
  [../]
  [./elasticity_beam_inner_6]
    type = ComputeElasticityBeam<<<{"description": "Computes the equivalent of the elasticity tensor for the beam element, which are vectors of material translational and flexural stiffness.", "href": "../source/materials/ComputeElasticityBeam.html"}>>>
    youngs_modulus<<<{"description": "Young's modulus of the material. Can be supplied as either a number or a variable name."}>>> = 3.45e5
    poissons_ratio<<<{"description": "Poisson's ratio of the material. Can be supplied as either a number or a variable name."}>>> = 0.278
    shear_coefficient<<<{"description": "Scale factor for the shear modulus. Can be supplied as either a number or a variable name."}>>> = 0.462
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '13'
  [../]
  [./elasticity_beam_inner_7]
    type = ComputeElasticityBeam<<<{"description": "Computes the equivalent of the elasticity tensor for the beam element, which are vectors of material translational and flexural stiffness.", "href": "../source/materials/ComputeElasticityBeam.html"}>>>
    youngs_modulus<<<{"description": "Young's modulus of the material. Can be supplied as either a number or a variable name."}>>> = 3.45e5
    poissons_ratio<<<{"description": "Poisson's ratio of the material. Can be supplied as either a number or a variable name."}>>> = 0.278
    shear_coefficient<<<{"description": "Scale factor for the shear modulus. Can be supplied as either a number or a variable name."}>>> = 0.368
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '14'
  [../]
  [./elasticity_beam_foundation]
    type = ComputeIsotropicElasticityTensor<<<{"description": "Compute a constant isotropic elasticity tensor.", "href": "../source/materials/ComputeIsotropicElasticityTensor.html"}>>>
    youngs_modulus<<<{"description": "Young's modulus of the material."}>>> = 9e7
    poissons_ratio<<<{"description": "Poisson's ratio for the material."}>>> = 0
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '15'
  [../]
  [./foundation_connecting_beam]
    type = ComputeElasticityBeam<<<{"description": "Computes the equivalent of the elasticity tensor for the beam element, which are vectors of material translational and flexural stiffness.", "href": "../source/materials/ComputeElasticityBeam.html"}>>>
    youngs_modulus<<<{"description": "Young's modulus of the material. Can be supplied as either a number or a variable name."}>>> = 9e7
    poissons_ratio<<<{"description": "Poisson's ratio of the material. Can be supplied as either a number or a variable name."}>>> = 0
    shear_coefficient<<<{"description": "Scale factor for the shear modulus. Can be supplied as either a number or a variable name."}>>> = 0.833
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '16'
  [../]
  [./stress_beam]
    type = ComputeBeamResultants<<<{"description": "Compute forces and moments using elasticity", "href": "../source/materials/ComputeBeamResultants.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 16'
  [../]
  [./stress_beam2]
    type = ComputeFiniteStrainElasticStress<<<{"description": "Compute stress using elasticity for finite strains", "href": "../source/materials/ComputeFiniteStrainElasticStress.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '15'
  [../]
  [./strain_15]
    type = ComputeFiniteStrain<<<{"description": "Compute a strain increment and rotation increment for finite strains.", "href": "../source/materials/ComputeFiniteStrain.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '15'
    displacements<<<{"description": "The displacements appropriate for the simulation geometry and coordinate system"}>>> = 'disp_x disp_y disp_z'
  [../]
  [./density]
    type = GenericConstantMaterial<<<{"description": "Declares material properties based on names and values prescribed by input parameters.", "href": "../source/materials/GenericConstantMaterial.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '15 16'
    prop_names<<<{"description": "The names of the properties this material will have"}>>> = density
    prop_values<<<{"description": "The values associated with the named properties"}>>> =  0.115
  [../]
[]

[BCs<<<{"href": "../syntax/BCs/index.html"}>>>]
  [./disp_x]
    type = PresetAcceleration<<<{"description": "Prescribe acceleration on a given boundary in a given direction", "href": "../source/bcs/PresetAcceleration.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_x
    velocity<<<{"description": "The velocity variable."}>>> = vel_x
    acceleration<<<{"description": "The acceleration variable."}>>> = accel_x
    beta<<<{"description": "beta parameter for Newmark time integration."}>>> = 0.25
    function<<<{"description": "Function describing the velocity."}>>> = accel_x
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = '100'
  [../]
  [./disp_y]
    type = PresetAcceleration<<<{"description": "Prescribe acceleration on a given boundary in a given direction", "href": "../source/bcs/PresetAcceleration.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_y
    velocity<<<{"description": "The velocity variable."}>>> = vel_y
    acceleration<<<{"description": "The acceleration variable."}>>> = accel_y
    beta<<<{"description": "beta parameter for Newmark time integration."}>>> = 0.25
    function<<<{"description": "Function describing the velocity."}>>> = accel_y
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = '100'
  [../]
  [./disp_z]
    type = PresetAcceleration<<<{"description": "Prescribe acceleration on a given boundary in a given direction", "href": "../source/bcs/PresetAcceleration.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_z
    velocity<<<{"description": "The velocity variable."}>>> = vel_z
    acceleration<<<{"description": "The acceleration variable."}>>> = accel_z
    beta<<<{"description": "beta parameter for Newmark time integration."}>>> = 0.25
    function<<<{"description": "Function describing the velocity."}>>> = accel_z
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = '100'
  [../]
  [./rot_x]
    type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../source/bcs/DirichletBC.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = '1002'
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_x
    value<<<{"description": "Value of the BC"}>>> = 0.0
  [../]
  [./rot_y]
    type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../source/bcs/DirichletBC.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = '1002'
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_y
    value<<<{"description": "Value of the BC"}>>> = 0.0
  [../]
  [./rot_z]
    type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../source/bcs/DirichletBC.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = '1002'
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_z
    value<<<{"description": "Value of the BC"}>>> = 0.0
  [../]
[]

[Functions<<<{"href": "../syntax/Functions/index.html"}>>>]
  [./accel_x]
    type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../source/functions/PiecewiseLinear.html"}>>>
    data_file<<<{"description": "File holding CSV data"}>>> = 'accel_x.csv'
    format<<<{"description": "Format of csv data file that is in either in columns or rows"}>>> = 'columns'
    scale_factor<<<{"description": "Scale factor to be applied to the output values"}>>> = 32.2000008
  [../]
  [./accel_y]
    type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../source/functions/PiecewiseLinear.html"}>>>
    data_file<<<{"description": "File holding CSV data"}>>> = 'accel_y.csv'
    format<<<{"description": "Format of csv data file that is in either in columns or rows"}>>> = 'columns'
    scale_factor<<<{"description": "Scale factor to be applied to the output values"}>>> = 32.2000008
  [../]
  [./accel_z]
    type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../source/functions/PiecewiseLinear.html"}>>>
    data_file<<<{"description": "File holding CSV data"}>>> = 'accel_z.csv'
    format<<<{"description": "Format of csv data file that is in either in columns or rows"}>>> = 'columns'
    scale_factor<<<{"description": "Scale factor to be applied to the output values"}>>> = 32.2000008
  [../]
[]

[Preconditioning<<<{"href": "../syntax/Preconditioning/index.html"}>>>]
  [./smp]
    type = SMP<<<{"description": "Single matrix preconditioner (SMP) builds a preconditioner using user defined off-diagonal parts of the Jacobian.", "href": "../source/preconditioners/SingleMatrixPreconditioner.html"}>>>
    full<<<{"description": "Set to true if you want the full set of couplings between variables simply for convenience so you don't have to set every off_diag_row and off_diag_column combination."}>>> = true
  [../]
[]

[Executioner<<<{"href": "../syntax/Executioner/index.html"}>>>]
  type = Transient
  solve_type = 'NEWTON'
  end_time = 45.0
  dt = 0.005
  dtmin = 0.001
  nl_abs_tol = 1e-8
  nl_rel_tol = 1e-6
  l_tol = 1e-8
  timestep_tolerance = 1e-8
[]

[Postprocessors<<<{"href": "../syntax/Postprocessors/index.html"}>>>]
    [./accel_x_11]
    type = PointValue<<<{"description": "Compute the value of a variable at a specified location", "href": "../source/postprocessors/PointValue.html"}>>>
    variable<<<{"description": "The name of the variable that this postprocessor operates on."}>>> = accel_x
    point<<<{"description": "The physical point where the solution will be evaluated."}>>> = '0.0 0.0 217.0'
  [../]
  [./accel_y_11]
    type = PointValue<<<{"description": "Compute the value of a variable at a specified location", "href": "../source/postprocessors/PointValue.html"}>>>
    variable<<<{"description": "The name of the variable that this postprocessor operates on."}>>> = accel_y
    point<<<{"description": "The physical point where the solution will be evaluated."}>>> = '0.0 0.0 217.0'
  [../]
  [./accel_z_11]
    type = PointValue<<<{"description": "Compute the value of a variable at a specified location", "href": "../source/postprocessors/PointValue.html"}>>>
    variable<<<{"description": "The name of the variable that this postprocessor operates on."}>>> = accel_z
    point<<<{"description": "The physical point where the solution will be evaluated."}>>> = '0.0 0.0 217.0'
  [../]
  [./accel_x_14]
    type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../source/postprocessors/NodalVariableValue.html"}>>>
    variable<<<{"description": "The variable to be monitored"}>>> = accel_x
    nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 238
  [../]
  [./accel_y_14]
    type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../source/postprocessors/NodalVariableValue.html"}>>>
    variable<<<{"description": "The variable to be monitored"}>>> = accel_y
    nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 238
  [../]
  [./accel_z_14]
    type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../source/postprocessors/NodalVariableValue.html"}>>>
    variable<<<{"description": "The variable to be monitored"}>>> = accel_z
    nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 238
  [../]
  [./accel_x_17]
    type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../source/postprocessors/NodalVariableValue.html"}>>>
    variable<<<{"description": "The variable to be monitored"}>>> = accel_x
    nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 278
  [../]
  [./accel_y_17]
    type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../source/postprocessors/NodalVariableValue.html"}>>>
    variable<<<{"description": "The variable to be monitored"}>>> = accel_y
    nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 278
  [../]
  [./accel_z_17]
    type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../source/postprocessors/NodalVariableValue.html"}>>>
    variable<<<{"description": "The variable to be monitored"}>>> = accel_z
    nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 278
  [../]
  [./accel_x_18]
    type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../source/postprocessors/NodalVariableValue.html"}>>>
    variable<<<{"description": "The variable to be monitored"}>>> = accel_x
    nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 311
  [../]
  [./accel_y_18]
    type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../source/postprocessors/NodalVariableValue.html"}>>>
    variable<<<{"description": "The variable to be monitored"}>>> = accel_y
    nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 311
  [../]
  [./accel_z_18]
    type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../source/postprocessors/NodalVariableValue.html"}>>>
    variable<<<{"description": "The variable to be monitored"}>>> = accel_z
    nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 311
  [../]
[]

[VectorPostprocessors<<<{"href": "../syntax/VectorPostprocessors/index.html"}>>>]
  [./accel_hist]
    type = ResponseHistoryBuilder<<<{"description": "Calculates response histories for a given node and variable(s).", "href": "../source/vectorpostprocessors/ResponseHistoryBuilder.html"}>>>
    variables<<<{"description": "Variable name for which the response history is requested."}>>> = 'accel_x accel_y accel_z'
    nodes<<<{"description": "Node number(s) at which the response history is needed."}>>> = '1 238 209 278 311 217'
  [../]
  [./accel_spec]
    type = ResponseSpectraCalculator<<<{"description": "Calculate the response spectrum at the requested nodes or points.", "href": "../source/vectorpostprocessors/ResponseSpectraCalculator.html"}>>>
    vectorpostprocessor<<<{"description": "Name of the ResponseHistoryBuilder vectorpostprocessor, for which response spectra are calculated."}>>> = accel_hist
    regularize_dt<<<{"description": "dt for response spectra calculation. The acceleration response will be regularized to this dt prior to the response spectrum calculation."}>>> = 0.005
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = out
  [../]
[]

[Outputs<<<{"href": "../syntax/Mastodon/Outputs/index.html"}>>>]
  [./out]
    type = CSV<<<{"description": "Output for postprocessors, vector postprocessors, and scalar variables using comma seperated values (CSV).", "href": "../source/outputs/CSV.html"}>>>
    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."}>>> = 'final'
    file_base<<<{"description": "The desired solution output name without an extension. If not provided, MOOSE sets it with Outputs/file_base when available. Otherwise, MOOSE uses input file name and this object name for a master input or uses master file_base, the subapp name and this object name for a subapp input to set it."}>>> = matfoundation_response
  [../]
  exodus<<<{"description": "Output the results using the default settings for Exodus output."}>>> = true
  [./console]
    type = Console<<<{"description": "Object for screen output.", "href": "../source/outputs/Console.html"}>>>
    max_rows<<<{"description": "The maximum number of postprocessor/scalar values displayed on screen during a timestep (set to 0 for unlimited)"}>>> = 1
  [../]
[]
(examples/ex05a/StickModel_accel_base.i)

The mesh is generated by importing an existing mesh file generated in Cubit. The details of the types of supported mesh files can be found in the User Manual. The stick-models and the foundation beams are modeled using 1D line elements and the foundation is modeled using 3D solid elements as shown in Figure 3. The displacements and rotations in X, Y and Z directions are defined in the variables section and the velocity, acceleration, rotational velocity and rotational acceleration are defined as the auxiliary variables.

Figure 3: Input model in MASTODON.

The stick models are created using the LineElementMaster action. DynamicTensorMechanics and InertialForce kernels are used to model the dynamics of the 3D solid elements. The Newmark time integration parameters used in this problem correspond to the Newmark's average acceleration method, i.e. beta = 0.25 and gamma = 0.5. A constant Rayleigh damping of 5% is implemented using the values of zeta = 0.00054388 and eta = 3.266. The section properties and the lumped masses described in Figure 1 are assigned to the different blocks of the model through the LineElementMaster action.

The ComputeElasticityBeam block is used to create the elasticity tensor of the beam elements, using the parameters, Young's Modulus, Poisson's ratio, and shear coefficient. The forces and moments in the beam are calculated in the ComputeBeamResultant block.

The nodes at the connection between the beam elements and the solid elements at the foundation are restrained in local rotation. The acceleration time series shown in Figure 6, Figure 7 and Figure 8 whose response spectra is shown in Figure 9, Figure 10 and Figure 11 is applied at the base of the foundation in X, Y and Z directions respectively using the BCs block. The ground motion accelerations are read from the CSV files and a scale factor of 32.2 is used to convert the units of acceleration from g to ft/.

Figure 6: Input acceleration time series in X direction

Figure 7: Input acceleration time series in Y direction

Figure 8: Input acceleration time series in Z direction

Figure 9: Input acceleration response spectra in X direction

Figure 10: Input acceleration response spectra in Y direction

Figure 11: Input acceleration response spectra in Z direction

The executioner and the post-processor blocks are provided to solve the nonlinear system and extract the required data.

Comparison of Results

The response spectra at the two different elevations (22 ft and 61 ft) in the internal structure are compared with the response spectra obtained from LS-DYNA, calculated by Bolisetti et al. (2015). These acceleration response spectra, calculated as functions of frequency, are plotted in Figure 12 to Figure 5. The figures show that the response spectra obtained from MASTODON are in close agreement with the response spectra obtained from LS-DYNA in X and Y directions. There are minor differences in the results in the Z direction, likely due to the differences the damping formulations in MASTODON and LS-DYNA.

Figure 12: Comparison of the response spectra at at an elevation of 22 ft at internal structure in X direction

Figure 13: Comparison of the response spectra at at an elevation of 22 ft at internal structure in Y direction

Figure 14: Comparison of the response spectra at at an elevation of 22 ft at internal structure in Z direction

Figure 15: Comparison of the response spectra at at an elevation of 61 ft at internal structure in X direction

Figure 4: Comparison of the response spectra at at an elevation of 61 ft at internal structure in Y direction

Figure 5: Comparison of the response spectra at at an elevation of 61 ft at internal structure in Z direction

References

  1. Chandrakanth Bolisetti, Justin Coleman, Mohamed Talaat, and Philip Hashimoto. Advanced seismic fragility modeling using nonlinear soil-structure interaction analysis. 10 2015. doi:10.13140/RG.2.1.1625.5125.[BibTeX]
  2. Farhang Ostadan. SASSI - A System for Analysis of Soil Structure Interaction - User's Manual. University of California, Berkeley, California, 2006.[BibTeX]