Friction PendulumTM Isolator
ComputeFPIsolatorElasticity
material simulates the behavior of a single concave Friction Pendulum<sup>TM</sup> bearing in MASTODON, and is used with a two-noded link type element. The material properties are defined by creating material blocks: ComputeIsolatorDeformation
and ComputeFPIsolatorElasticity
, and the kernel block, StressDivergenceIsolator
. A description of each of the input parameters is provided here. To model the co-efficient of sliding friction as a function of the axial pressure, sliding velocity, and the instantaneous temperature, the following switch parameters are used:
pressure_dependent = true
, velocity_dependent = true
, and temperature_change = true
.
The axial and rotational terms of the basic stiffness matrix of the bearing element can be specified using the optional parameters: k_x, k_xx, k_yy, k_zz
. A default value of 10e13 is assumed when SI units are used. The stiffness value should be sufficiently high to simulate rigid behavior in these degrees of freedom. In the pressure factor computation kp
, the instantaneous pressure and reference pressure values are in MPa. The user is required to provide information on the current unit system used in the material parameter unit
, so that corresponding conversion factors are computed.
unit = 1.0
for N-m-s; unit = 2.0
for kN-m-s); unit = 3.0
for N-mm-s; unit = 4.0
for kN-mm-s; unit = 5.0
for lb-in-s; unit = 6.0
for kip-in-s; unit = 7.0
for lb-ft-s; unit = 8.0
for kip-ft-s;
The behavior of the FP bearing element in the shear direction is demonstrated using the examples described below. Analysis results are compared with verified and validated numerical models implemented in the open-source finite element package OpenSees (Mazzoni et al., 2009).
Example: Response to cyclic loading in shear
The input file below demonstrates the response of the FP bearing subjected to cyclic loading in the shear direction. Three test cases: where co-efficient of friction as a function of the axial pressure only, co-efficient of friction as a function of the sliding velocity only, and coefficient of friction as a function of the instantaneous temperature only, are defined. A sinusoidal displacement history of Figure 1 is applied to the top node and the bottom node is restrained in the six degrees-of-freedom for all the three test cases. A constant axial load of 6285710 N is applied to the top node to simulate the weight of the superstructure.
# Test for Friction Pendulum isolator in shear
#Loading conditions
# i) A constant axial load acting on isolator
# ii) A sinusoidal displacement in shear (y_direction)
[Mesh<<<{"href": "../../../syntax/Mesh/index.html"}>>>]
type = GeneratedMesh
displacements<<<{"description": "The variables corresponding to the x y z displacements of the mesh. If this is provided then the displacements will be taken into account during the computation. Creation of the displaced mesh can be suppressed even if this is set by setting 'use_displaced_mesh = false'."}>>> = 'disp_x disp_y disp_z'
xmin = 0
xmax = 1
nx = 1
dim = 1
[]
[Variables<<<{"href": "../../../syntax/Variables/index.html"}>>>]
[./disp_x]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./disp_y]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./disp_z]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_x]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_y]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_z]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[]
[AuxVariables<<<{"href": "../../../syntax/AuxVariables/index.html"}>>>]
[./vel_x]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./vel_y]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./vel_z]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./accel_x]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./accel_y]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./accel_z]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_vel_x]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_vel_y]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_vel_z]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_accel_x]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_accel_y]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_accel_z]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./reaction_x]
[../]
[./reaction_y]
[../]
[./reaction_z]
[../]
[./reaction_xx]
[../]
[./reaction_yy]
[../]
[./reaction_zz]
[../]
[]
[Kernels<<<{"href": "../../../syntax/Kernels/index.html"}>>>]
[./lr_disp_x]
type = StressDivergenceIsolator<<<{"description": "Kernel for isolator element", "href": "../../../source/kernels/StressDivergenceIsolator.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
displacements<<<{"description": "The displacement variables for isolator."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables for the isolator."}>>> = 'rot_x rot_y rot_z'
component<<<{"description": "An integer corresponding to the direction the variable this kernel acts in. (0 for x, 1 for y, 2 for z, 3 for rot_x, 4 for rot_y and 5 for rot_z)."}>>> = 0
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_x
save_in<<<{"description": "The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)"}>>> = reaction_x
[../]
[./lr_disp_y]
type = StressDivergenceIsolator<<<{"description": "Kernel for isolator element", "href": "../../../source/kernels/StressDivergenceIsolator.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
displacements<<<{"description": "The displacement variables for isolator."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables for the isolator."}>>> = 'rot_x rot_y rot_z'
component<<<{"description": "An integer corresponding to the direction the variable this kernel acts in. (0 for x, 1 for y, 2 for z, 3 for rot_x, 4 for rot_y and 5 for rot_z)."}>>> = 1
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_y
save_in<<<{"description": "The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)"}>>> = reaction_y
[../]
[./lr_disp_z]
type = StressDivergenceIsolator<<<{"description": "Kernel for isolator element", "href": "../../../source/kernels/StressDivergenceIsolator.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
displacements<<<{"description": "The displacement variables for isolator."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables for the isolator."}>>> = 'rot_x rot_y rot_z'
component<<<{"description": "An integer corresponding to the direction the variable this kernel acts in. (0 for x, 1 for y, 2 for z, 3 for rot_x, 4 for rot_y and 5 for rot_z)."}>>> = 2
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_z
save_in<<<{"description": "The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)"}>>> = reaction_z
[../]
[./lr_rot_x]
type = StressDivergenceIsolator<<<{"description": "Kernel for isolator element", "href": "../../../source/kernels/StressDivergenceIsolator.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
displacements<<<{"description": "The displacement variables for isolator."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables for the isolator."}>>> = 'rot_x rot_y rot_z'
component<<<{"description": "An integer corresponding to the direction the variable this kernel acts in. (0 for x, 1 for y, 2 for z, 3 for rot_x, 4 for rot_y and 5 for rot_z)."}>>> = 3
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_x
save_in<<<{"description": "The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)"}>>> = reaction_xx
[../]
[./lr_rot_y]
type = StressDivergenceIsolator<<<{"description": "Kernel for isolator element", "href": "../../../source/kernels/StressDivergenceIsolator.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
displacements<<<{"description": "The displacement variables for isolator."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables for the isolator."}>>> = 'rot_x rot_y rot_z'
component<<<{"description": "An integer corresponding to the direction the variable this kernel acts in. (0 for x, 1 for y, 2 for z, 3 for rot_x, 4 for rot_y and 5 for rot_z)."}>>> = 4
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_y
save_in<<<{"description": "The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)"}>>> = reaction_yy
[../]
[./lr_rot_z]
type = StressDivergenceIsolator<<<{"description": "Kernel for isolator element", "href": "../../../source/kernels/StressDivergenceIsolator.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
displacements<<<{"description": "The displacement variables for isolator."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables for the isolator."}>>> = 'rot_x rot_y rot_z'
component<<<{"description": "An integer corresponding to the direction the variable this kernel acts in. (0 for x, 1 for y, 2 for z, 3 for rot_x, 4 for rot_y and 5 for rot_z)."}>>> = 5
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_z
save_in<<<{"description": "The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)"}>>> = reaction_zz
[../]
[]
[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
[../]
[./rot_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"}>>> = rot_accel_x
displacement<<<{"description": "displacement variable"}>>> = rot_x
velocity<<<{"description": "velocity variable"}>>> = rot_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
[../]
[./rot_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"}>>> = rot_vel_x
acceleration<<<{"description": "acceleration variable"}>>> = rot_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
[../]
[./rot_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"}>>> = rot_accel_y
displacement<<<{"description": "displacement variable"}>>> = rot_y
velocity<<<{"description": "velocity variable"}>>> = rot_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
[../]
[./rot_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"}>>> = rot_vel_y
acceleration<<<{"description": "acceleration variable"}>>> = rot_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
[../]
[./rot_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"}>>> = rot_accel_z
displacement<<<{"description": "displacement variable"}>>> = rot_z
velocity<<<{"description": "velocity variable"}>>> = rot_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
[../]
[./rot_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"}>>> = rot_vel_z
acceleration<<<{"description": "acceleration variable"}>>> = rot_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
[../]
[]
[BCs<<<{"href": "../../../syntax/BCs/index.html"}>>>]
[./fixx0]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_x
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left'
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixy0]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_y
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left'
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixz0]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_z
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left'
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixrx0]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_x
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left'
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixry0]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_y
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left'
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixrz0]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_z
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left'
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixrx1]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_x
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'right'
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixry1]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_y
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'right'
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixrz1]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_z
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'right'
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./disp_y_1]
type = PresetDisplacement<<<{"description": "Prescribe the displacement on a given boundary in a given direction.", "href": "../../../source/bcs/PresetDisplacement.html"}>>>
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'right'
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_y
function<<<{"description": "Function describing the displacement."}>>> = history_shear_dispy
beta<<<{"description": "beta parameter for Newmark time integration."}>>> = 0.25
acceleration<<<{"description": "The acceleration variable."}>>> = 'accel_y'
velocity<<<{"description": "The velocity variable."}>>> = 'vel_y'
[../]
[]
[NodalKernels<<<{"href": "../../../syntax/NodalKernels/index.html"}>>>]
[./force_x]
type = UserForcingFunctionNodalKernel<<<{"description": "Residual contribution to an ODE from a source function acting at nodes.", "href": "../../../source/nodalkernels/UserForcingFunctionNodalKernel.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_x
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 'right'
function<<<{"description": "The forcing function"}>>> = force_x
[../]
[]
[Functions<<<{"href": "../../../syntax/Functions/index.html"}>>>]
[./force_x]
type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../../../source/functions/PiecewiseLinear.html"}>>>
x<<<{"description": "The abscissa values"}>>> = '0.0 1.0 11.0'
y<<<{"description": "The ordinate values"}>>> = '0.0 -6285710 -6285710'
[../]
[./history_shear_dispy]
type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../../../source/functions/PiecewiseLinear.html"}>>>
data_file<<<{"description": "File holding CSV data"}>>> = disp_shear.csv
format<<<{"description": "Format of csv data file that is in either in columns or rows"}>>> = columns
[../]
[]
[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
line_search = none
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
start_time = 0
end_time = 2.5
dt = 0.005
dtmin = 0.0001
timestep_tolerance = 1e-6
[]
[Materials<<<{"href": "../../../syntax/Materials/index.html"}>>>]
[./deformation]
type = ComputeIsolatorDeformation<<<{"description": "Compute the deformations and rotations in a two-noded isolator element.", "href": "../../../source/materials/ComputeIsolatorDeformation.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
sd_ratio<<<{"description": "Shear distance ratio."}>>> = 0.5
y_orientation<<<{"description": "Orientation of the local Y direction along which, Ky is provided. This should be perpendicular to the axis of the isolator."}>>> = '0.0 1.0 0.0'
displacements<<<{"description": "The displacement variables appropriate for the simulation geometry and coordinate system."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables appropriate for the simulation geometry and coordinate system."}>>> = 'rot_x rot_y rot_z'
velocities<<<{"description": "Translational velocity variables."}>>> = 'vel_x vel_y vel_z'
[../]
[./elasticity]
type = ComputeFPIsolatorElasticity<<<{"description": "Compute the forces and the stiffness matrix for a single concave Friction Pendulum isolator element.", "href": "../../../source/materials/ComputeFPIsolatorElasticity.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
mu_ref<<<{"description": "Reference co-efficient of friction."}>>> = 0.06
p_ref<<<{"description": "Reference axial pressure."}>>> = 50e6
diffusivity<<<{"description": "Thermal diffusivity of steel."}>>> = 4.4e-6
conductivity<<<{"description": "Thermal conductivity of steel."}>>> = 18
a<<<{"description": "Rate parameter."}>>> = 100
r_eff<<<{"description": "Effective radius of curvature of sliding surface."}>>> = 2.2352
r_contact<<<{"description": "Radius of contact area at sliding surface."}>>> = 0.2
uy<<<{"description": "Yield displacement of the bearing in shear."}>>> = 0.001
unit<<<{"description": "Tag for conversion in the pressure factor computation when different unit systems are used. Enter 1 for N m s C; 2 for kN m s C; 3 for N mm s C; 4 for kN mm s C; 5 for lb in s C; 6 for kip in s C; 7 for lb ft s C; 8 for kip ft s C. "}>>> = 1
gamma<<<{"description": "Gamma parameter of Newmark algorithm."}>>> = 0.5
beta<<<{"description": "Beta parameter of Newmark algorithm."}>>> = 0.25
pressure_dependent<<<{"description": "Switch for modeling friction dependence on the instantaneous pressure."}>>> = true
temperature_dependent<<<{"description": "Switch for modeling friction dependence on the instantaneous temperature."}>>> = true
velocity_dependent<<<{"description": "Switch for modeling friction dependence on the instantaneous sliding velocity."}>>> = true
[../]
[]
[Postprocessors<<<{"href": "../../../syntax/Postprocessors/index.html"}>>>]
[./disp_y]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 1
variable<<<{"description": "The variable to be monitored"}>>> = disp_y
[../]
[./reaction_y]
type = NodalSum<<<{"description": "Computes the sum of all of the nodal values of the specified variable. Note: This object sets the default \"unique_node_execute\" flag to true to avoid double counting nodes between shared blocks.", "href": "../../../source/postprocessors/NodalSum.html"}>>>
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = 'reaction_y'
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 'left'
[../]
[]
[Outputs<<<{"href": "../../../syntax/Mastodon/Outputs/index.html"}>>>]
csv<<<{"description": "Output the scalar variable and postprocessors to a *.csv file using the default CSV output."}>>> = true
exodus<<<{"description": "Output the results using the default settings for Exodus output."}>>> = true
perf_graph<<<{"description": "Enable printing of the performance graph to the screen (Console)"}>>> = true
[]
(test/tests/materials/fp_isolator/fp_isolator_shear_PTV.i)
Figure 1: Displacement loading history along the shear direction of the bearing.
The response of the FP bearing to cyclic loading in the shear direction is shown in Figure 2

Figure 2: Response of the FP bearing to the prescribed cyclic loading in shear.
Example: Response to seismic loading
The input file below describes the response of the FP bearing to seismic excitation. A superstructure mass of 640745 kg is assumed for the purpose of this example, and is assigned to the top node of the bearing using a NodalKernel of type, NodalTranslationInertia
. Three components of ground motion are applied at the bottom node as input accelerations, using the PresetAcceleration
BC. An axial load is applied on the bearing to account for the weight of superstructure. For the initial few time steps, where gravity load is being applied, inertia objects are disabled using control
block to avoid any dynamic effects.
# Test for Friction Pendulum isolator under seismic loading
# coefficient of friction depends on velocity, pressure and temperature
#Loading conditions
# i) Seismic loading(ground motion) as acceleration profile at bottom node in 3 directions
[Mesh<<<{"href": "../../../syntax/Mesh/index.html"}>>>]
type = GeneratedMesh
xmin = 0
xmax = 0.224
nx = 1
dim = 1
displacements<<<{"description": "The variables corresponding to the x y z displacements of the mesh. If this is provided then the displacements will be taken into account during the computation. Creation of the displaced mesh can be suppressed even if this is set by setting 'use_displaced_mesh = false'."}>>> = 'disp_x disp_y disp_z'
[]
[Controls<<<{"href": "../../../syntax/Controls/index.html"}>>>]
[./C1]
type = TimePeriod<<<{"description": "Control the enabled/disabled state of objects with time.", "href": "../../../source/controls/TimePeriod.html"}>>>
disable_objects<<<{"description": "A list of object tags to disable."}>>> = '*::x_inertial1 *::y_inertial1 *::z_inertial1 *::vel_x *::vel_y *::vel_z *::accel_x *::accel_y *::accel_z'
start_time<<<{"description": "The time at which the objects are to be enabled/disabled."}>>> = '0'
end_time<<<{"description": "The time at which the objects are to be enable/disabled."}>>> = '0.10'
[../]
[]
[Variables<<<{"href": "../../../syntax/Variables/index.html"}>>>]
[./disp_x]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./disp_y]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./disp_z]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_x]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_y]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_z]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[]
[AuxVariables<<<{"href": "../../../syntax/AuxVariables/index.html"}>>>]
[./vel_x]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./vel_y]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./vel_z]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./accel_x]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./accel_y]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./accel_z]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_vel_x]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_vel_y]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_vel_z]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_accel_x]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_accel_y]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./rot_accel_z]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[../]
[./reaction_x]
[../]
[./reaction_y]
[../]
[./reaction_z]
[../]
[./reaction_xx]
[../]
[./reaction_yy]
[../]
[./reaction_zz]
[../]
[]
[Kernels<<<{"href": "../../../syntax/Kernels/index.html"}>>>]
[./lr_disp_x]
type = StressDivergenceIsolator<<<{"description": "Kernel for isolator element", "href": "../../../source/kernels/StressDivergenceIsolator.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
displacements<<<{"description": "The displacement variables for isolator."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables for the isolator."}>>> = 'rot_x rot_y rot_z'
component<<<{"description": "An integer corresponding to the direction the variable this kernel acts in. (0 for x, 1 for y, 2 for z, 3 for rot_x, 4 for rot_y and 5 for rot_z)."}>>> = 0
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_x
save_in<<<{"description": "The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)"}>>> = reaction_x
[../]
[./lr_disp_y]
type = StressDivergenceIsolator<<<{"description": "Kernel for isolator element", "href": "../../../source/kernels/StressDivergenceIsolator.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
displacements<<<{"description": "The displacement variables for isolator."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables for the isolator."}>>> = 'rot_x rot_y rot_z'
component<<<{"description": "An integer corresponding to the direction the variable this kernel acts in. (0 for x, 1 for y, 2 for z, 3 for rot_x, 4 for rot_y and 5 for rot_z)."}>>> = 1
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_y
save_in<<<{"description": "The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)"}>>> = reaction_y
[../]
[./lr_disp_z]
type = StressDivergenceIsolator<<<{"description": "Kernel for isolator element", "href": "../../../source/kernels/StressDivergenceIsolator.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
displacements<<<{"description": "The displacement variables for isolator."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables for the isolator."}>>> = 'rot_x rot_y rot_z'
component<<<{"description": "An integer corresponding to the direction the variable this kernel acts in. (0 for x, 1 for y, 2 for z, 3 for rot_x, 4 for rot_y and 5 for rot_z)."}>>> = 2
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_z
save_in<<<{"description": "The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)"}>>> = reaction_z
[../]
[./lr_rot_x]
type = StressDivergenceIsolator<<<{"description": "Kernel for isolator element", "href": "../../../source/kernels/StressDivergenceIsolator.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
displacements<<<{"description": "The displacement variables for isolator."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables for the isolator."}>>> = 'rot_x rot_y rot_z'
component<<<{"description": "An integer corresponding to the direction the variable this kernel acts in. (0 for x, 1 for y, 2 for z, 3 for rot_x, 4 for rot_y and 5 for rot_z)."}>>> = 3
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_x
save_in<<<{"description": "The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)"}>>> = reaction_xx
[../]
[./lr_rot_y]
type = StressDivergenceIsolator<<<{"description": "Kernel for isolator element", "href": "../../../source/kernels/StressDivergenceIsolator.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
displacements<<<{"description": "The displacement variables for isolator."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables for the isolator."}>>> = 'rot_x rot_y rot_z'
component<<<{"description": "An integer corresponding to the direction the variable this kernel acts in. (0 for x, 1 for y, 2 for z, 3 for rot_x, 4 for rot_y and 5 for rot_z)."}>>> = 4
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_y
save_in<<<{"description": "The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)"}>>> = reaction_yy
[../]
[./lr_rot_z]
type = StressDivergenceIsolator<<<{"description": "Kernel for isolator element", "href": "../../../source/kernels/StressDivergenceIsolator.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
displacements<<<{"description": "The displacement variables for isolator."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables for the isolator."}>>> = 'rot_x rot_y rot_z'
component<<<{"description": "An integer corresponding to the direction the variable this kernel acts in. (0 for x, 1 for y, 2 for z, 3 for rot_x, 4 for rot_y and 5 for rot_z)."}>>> = 5
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_z
save_in<<<{"description": "The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)"}>>> = reaction_zz
[../]
[]
[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
[../]
[./rot_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"}>>> = rot_accel_x
displacement<<<{"description": "displacement variable"}>>> = rot_x
velocity<<<{"description": "velocity variable"}>>> = rot_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
[../]
[./rot_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"}>>> = rot_vel_x
acceleration<<<{"description": "acceleration variable"}>>> = rot_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
[../]
[./rot_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"}>>> = rot_accel_y
displacement<<<{"description": "displacement variable"}>>> = rot_y
velocity<<<{"description": "velocity variable"}>>> = rot_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
[../]
[./rot_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"}>>> = rot_vel_y
acceleration<<<{"description": "acceleration variable"}>>> = rot_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
[../]
[./rot_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"}>>> = rot_accel_z
displacement<<<{"description": "displacement variable"}>>> = rot_z
velocity<<<{"description": "velocity variable"}>>> = rot_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
[../]
[./rot_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"}>>> = rot_vel_z
acceleration<<<{"description": "acceleration variable"}>>> = rot_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
[../]
[]
[BCs<<<{"href": "../../../syntax/BCs/index.html"}>>>]
[./fixrx0]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_x
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = left
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixry0]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_y
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = left
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixrz0]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_z
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = left
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixrx1]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_x
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = right
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixry1]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_y
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = right
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./fixrz1]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = rot_z
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = right
value<<<{"description": "Value of the BC"}>>> = 0.0
[../]
[./accel_x0]
type = PresetAcceleration<<<{"description": "Prescribe acceleration on a given boundary in a given direction", "href": "../../../source/bcs/PresetAcceleration.html"}>>>
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left'
function<<<{"description": "Function describing the velocity."}>>> = acceleration_x
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_x
beta<<<{"description": "beta parameter for Newmark time integration."}>>> = 0.25
acceleration<<<{"description": "The acceleration variable."}>>> = 'accel_x'
velocity<<<{"description": "The velocity variable."}>>> = 'vel_x'
[../]
[./accel_y0]
type = PresetAcceleration<<<{"description": "Prescribe acceleration on a given boundary in a given direction", "href": "../../../source/bcs/PresetAcceleration.html"}>>>
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left'
function<<<{"description": "Function describing the velocity."}>>> = acceleration_y
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_y
beta<<<{"description": "beta parameter for Newmark time integration."}>>> = 0.25
acceleration<<<{"description": "The acceleration variable."}>>> = 'accel_y'
velocity<<<{"description": "The velocity variable."}>>> = 'vel_y'
[../]
[./accel_z0]
type = PresetAcceleration<<<{"description": "Prescribe acceleration on a given boundary in a given direction", "href": "../../../source/bcs/PresetAcceleration.html"}>>>
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left'
function<<<{"description": "Function describing the velocity."}>>> = acceleration_z
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_z
beta<<<{"description": "beta parameter for Newmark time integration."}>>> = 0.25
acceleration<<<{"description": "The acceleration variable."}>>> = 'accel_z'
velocity<<<{"description": "The velocity variable."}>>> = 'vel_z'
[../]
[]
[NodalKernels<<<{"href": "../../../syntax/NodalKernels/index.html"}>>>]
[./x_inertial1]
type = NodalTranslationalInertia<<<{"description": "Computes the inertial forces and mass proportional damping terms corresponding to nodal mass.", "href": "../../../source/nodalkernels/NodalTranslationalInertia.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
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = right
beta<<<{"description": "beta parameter for Newmark Time integration"}>>> = 0.25
gamma<<<{"description": "gamma parameter for Newmark Time integration"}>>> = 0.5
mass<<<{"description": "Mass associated with the node"}>>> = 640745
alpha<<<{"description": "Alpha parameter for mass dependent numerical damping induced by HHT time integration scheme"}>>> =0
eta<<<{"description": "Constant real number defining the eta parameter for Rayleigh damping."}>>> =0
[../]
[./y_inertial1]
type = NodalTranslationalInertia<<<{"description": "Computes the inertial forces and mass proportional damping terms corresponding to nodal mass.", "href": "../../../source/nodalkernels/NodalTranslationalInertia.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
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = right
beta<<<{"description": "beta parameter for Newmark Time integration"}>>> = 0.25
gamma<<<{"description": "gamma parameter for Newmark Time integration"}>>> = 0.5
mass<<<{"description": "Mass associated with the node"}>>> = 640745
alpha<<<{"description": "Alpha parameter for mass dependent numerical damping induced by HHT time integration scheme"}>>> =0
eta<<<{"description": "Constant real number defining the eta parameter for Rayleigh damping."}>>> =0
[../]
[./z_inertial1]
type = NodalTranslationalInertia<<<{"description": "Computes the inertial forces and mass proportional damping terms corresponding to nodal mass.", "href": "../../../source/nodalkernels/NodalTranslationalInertia.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
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = right
beta<<<{"description": "beta parameter for Newmark Time integration"}>>> = 0.25
gamma<<<{"description": "gamma parameter for Newmark Time integration"}>>> = 0.5
mass<<<{"description": "Mass associated with the node"}>>> = 640745
alpha<<<{"description": "Alpha parameter for mass dependent numerical damping induced by HHT time integration scheme"}>>> =0
eta<<<{"description": "Constant real number defining the eta parameter for Rayleigh damping."}>>> =0
[../]
[./force_x]
type = UserForcingFunctionNodalKernel<<<{"description": "Residual contribution to an ODE from a source function acting at nodes.", "href": "../../../source/nodalkernels/UserForcingFunctionNodalKernel.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_x
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 'right'
function<<<{"description": "The forcing function"}>>> = force_x
[../]
[]
[Functions<<<{"href": "../../../syntax/Functions/index.html"}>>>]
[./acceleration_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
[../]
[./acceleration_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
[../]
[./acceleration_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
[../]
[./force_x]
type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../../../source/functions/PiecewiseLinear.html"}>>>
x<<<{"description": "The abscissa values"}>>>='0.0 0.05 50.11'
y<<<{"description": "The ordinate values"}>>>='0.0 -6285710 -6285710'
[../]
[]
[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
line_search = none
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
start_time = 0
end_time =0.15
dt = 0.001
dtmin = 0.0000001
timestep_tolerance = 1e-8
[]
[Materials<<<{"href": "../../../syntax/Materials/index.html"}>>>]
[./deformation]
type = ComputeIsolatorDeformation<<<{"description": "Compute the deformations and rotations in a two-noded isolator element.", "href": "../../../source/materials/ComputeIsolatorDeformation.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
sd_ratio<<<{"description": "Shear distance ratio."}>>> = 0.5
y_orientation<<<{"description": "Orientation of the local Y direction along which, Ky is provided. This should be perpendicular to the axis of the isolator."}>>> = '0.0 1.0 0.0'
displacements<<<{"description": "The displacement variables appropriate for the simulation geometry and coordinate system."}>>> = 'disp_x disp_y disp_z'
rotations<<<{"description": "The rotation variables appropriate for the simulation geometry and coordinate system."}>>> = 'rot_x rot_y rot_z'
velocities<<<{"description": "Translational velocity variables."}>>> = 'vel_x vel_y vel_z'
[../]
[./elasticity]
type = ComputeFPIsolatorElasticity<<<{"description": "Compute the forces and the stiffness matrix for a single concave Friction Pendulum isolator element.", "href": "../../../source/materials/ComputeFPIsolatorElasticity.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
mu_ref<<<{"description": "Reference co-efficient of friction."}>>> = 0.06
p_ref<<<{"description": "Reference axial pressure."}>>> = 50e6
diffusivity<<<{"description": "Thermal diffusivity of steel."}>>> = 4.4e-6
conductivity<<<{"description": "Thermal conductivity of steel."}>>> = 18
a<<<{"description": "Rate parameter."}>>> = 100
r_eff<<<{"description": "Effective radius of curvature of sliding surface."}>>> = 2.2352
r_contact<<<{"description": "Radius of contact area at sliding surface."}>>> = 0.2
uy<<<{"description": "Yield displacement of the bearing in shear."}>>> = 0.001
unit<<<{"description": "Tag for conversion in the pressure factor computation when different unit systems are used. Enter 1 for N m s C; 2 for kN m s C; 3 for N mm s C; 4 for kN mm s C; 5 for lb in s C; 6 for kip in s C; 7 for lb ft s C; 8 for kip ft s C. "}>>> = 1
gamma<<<{"description": "Gamma parameter of Newmark algorithm."}>>> = 0.5
beta<<<{"description": "Beta parameter of Newmark algorithm."}>>> = 0.25
pressure_dependent<<<{"description": "Switch for modeling friction dependence on the instantaneous pressure."}>>> = true
temperature_dependent<<<{"description": "Switch for modeling friction dependence on the instantaneous temperature."}>>> = true
velocity_dependent<<<{"description": "Switch for modeling friction dependence on the instantaneous sliding velocity."}>>> = true
[../]
[]
[Postprocessors<<<{"href": "../../../syntax/Postprocessors/index.html"}>>>]
[./disp_x0]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 0
variable<<<{"description": "The variable to be monitored"}>>> = disp_x
[../]
[./vel_x0]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 0
variable<<<{"description": "The variable to be monitored"}>>> = vel_x
[../]
[./accel_x0]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 0
variable<<<{"description": "The variable to be monitored"}>>> = accel_x
[../]
[./disp_x1]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 1
variable<<<{"description": "The variable to be monitored"}>>> = disp_x
[../]
[./vel_x1]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 1
variable<<<{"description": "The variable to be monitored"}>>> = vel_x
[../]
[./accel_x1]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 1
variable<<<{"description": "The variable to be monitored"}>>> = accel_x
[../]
[./reaction_x]
type = NodalSum<<<{"description": "Computes the sum of all of the nodal values of the specified variable. Note: This object sets the default \"unique_node_execute\" flag to true to avoid double counting nodes between shared blocks.", "href": "../../../source/postprocessors/NodalSum.html"}>>>
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = reaction_x
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = left
[../]
[./disp_y0]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 0
variable<<<{"description": "The variable to be monitored"}>>> = disp_y
[../]
[./vel_y0]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 0
variable<<<{"description": "The variable to be monitored"}>>> = vel_y
[../]
[./accel_y0]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 0
variable<<<{"description": "The variable to be monitored"}>>> = accel_y
[../]
[./disp_y1]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 1
variable<<<{"description": "The variable to be monitored"}>>> = disp_y
[../]
[./vel_y1]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 1
variable<<<{"description": "The variable to be monitored"}>>> = vel_y
[../]
[./accel_y1]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 1
variable<<<{"description": "The variable to be monitored"}>>> = accel_y
[../]
[./reaction_y]
type = NodalSum<<<{"description": "Computes the sum of all of the nodal values of the specified variable. Note: This object sets the default \"unique_node_execute\" flag to true to avoid double counting nodes between shared blocks.", "href": "../../../source/postprocessors/NodalSum.html"}>>>
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = reaction_y
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = left
[../]
[./disp_z0]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 0
variable<<<{"description": "The variable to be monitored"}>>> = disp_z
[../]
[./vel_z0]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 0
variable<<<{"description": "The variable to be monitored"}>>> = vel_z
[../]
[./accel_z0]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 0
variable<<<{"description": "The variable to be monitored"}>>> = accel_z
[../]
[./disp_z1]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 1
variable<<<{"description": "The variable to be monitored"}>>> = disp_z
[../]
[./vel_z1]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 1
variable<<<{"description": "The variable to be monitored"}>>> = vel_z
[../]
[./accel_z1]
type = NodalVariableValue<<<{"description": "Outputs values of a nodal variable at a particular location", "href": "../../../source/postprocessors/NodalVariableValue.html"}>>>
nodeid<<<{"description": "The ID of the node where we monitor"}>>> = 1
variable<<<{"description": "The variable to be monitored"}>>> = accel_z
[../]
[./reaction_z]
type = NodalSum<<<{"description": "Computes the sum of all of the nodal values of the specified variable. Note: This object sets the default \"unique_node_execute\" flag to true to avoid double counting nodes between shared blocks.", "href": "../../../source/postprocessors/NodalSum.html"}>>>
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = reaction_z
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = left
[../]
[]
[Outputs<<<{"href": "../../../syntax/Mastodon/Outputs/index.html"}>>>]
csv<<<{"description": "Output the scalar variable and postprocessors to a *.csv file using the default CSV output."}>>> = true
exodus<<<{"description": "Output the results using the default settings for Exodus output."}>>> = true
perf_graph<<<{"description": "Enable printing of the performance graph to the screen (Console)"}>>> = true
interval=1
[]
(test/tests/materials/fp_isolator/fp_isolator_seismic_PTV.i)The figures below show the response of the FP bearing to the prescribed seismic loading. The local co-ordinate system for the FP bearing can be identified here.

Figure 3: Response of the FP bearing in the shear (local y) direction to the prescribed seismic loading ().

Figure 4: Response of the FP bearing in the shear (local z) direction to the prescribed seismic loading ().
References
- S. Mazzoni, McKenna. F, Scott. M. H, and Fenves. G. L.
Opensees: open system for earthquake engineering simulation.
2009.[BibTeX]