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).
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
- 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]
- Farhang Ostadan.
SASSI - A System for Analysis of Soil Structure Interaction - User's Manual.
University of California, Berkeley, California, 2006.[BibTeX]