- interfacesA list of layer interface locations to apply across the domain in the specified direction.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:A list of layer interface locations to apply across the domain in the specified direction.
- variableThe name of the variable that this object applies to
C++ Type:AuxVariableName
Unit:(no unit assumed)
Controllable:No
Description:The name of the variable that this object applies to
UniformLayerAuxKernel
Computes an AuxVariable for representing a layered structure in an arbitrary direction.
Description
The UniformLayerAuxKernel
is designed to create an arbitrary number of planar layers to be used as layer identifiers. The layers created can be oriented in any direction.
For example, the following input file syntax will create the AuxVariable field shown in Figure 1.
[AuxKernels<<<{"href": "../../syntax/AuxKernels/index.html"}>>>]
[./layers]
type = UniformLayerAuxKernel<<<{"description": "Computes an AuxVariable for representing a layered structure in an arbitrary direction.", "href": "UniformLayerAuxKernel.html"}>>>
variable<<<{"description": "The name of the variable that this object applies to"}>>> = layer_id
interfaces<<<{"description": "A list of layer interface locations to apply across the domain in the specified direction."}>>> = '20 40 78 1000'
layer_ids<<<{"description": "A list of layer identifiers to assign to each interface. If not provided integer values starting from 0 are utilized, if provided the length of this vector must be identical to the 'intefaces' vector."}>>> = '6 24 19 80'
direction<<<{"description": "The direction to apply layering."}>>> = '1 2 3'
execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = initial
[../]
[]
(test/tests/auxkernels/uniform_layer/uniform_layer_3d.i)The "interfaces" parameters is a list of layer interface locations in the direction of the "direction" vector parameter. Optionally, the "ids" of each of the layers that will be created may be provided in the "layer_ids" parameter, if this list is omitted then the "ids" are assigned in ascending order beginning at 0.

Figure 1: Example of oriented "layers" in 3D.
Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- boundaryThe list of boundaries (ids or names) from the mesh where this object applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundaries (ids or names) from the mesh where this object applies
- check_boundary_restrictedTrueWhether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh
Default:True
C++ Type:bool
Controllable:No
Description:Whether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh
- direction1 0 0The direction to apply layering.
Default:1 0 0
C++ Type:libMesh::VectorValue<double>
Unit:(no unit assumed)
Controllable:No
Description:The direction to apply layering.
- execute_onLINEAR TIMESTEP_ENDThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
Default:LINEAR TIMESTEP_END
C++ Type:ExecFlagEnum
Options:XFEM_MARK, NONE, INITIAL, LINEAR, LINEAR_CONVERGENCE, NONLINEAR, NONLINEAR_CONVERGENCE, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, MULTIAPP_FIXED_POINT_CONVERGENCE, FINAL, CUSTOM, PRE_DISPLACE
Controllable:No
Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
- layer_idsA list of layer identifiers to assign to each interface. If not provided integer values starting from 0 are utilized, if provided the length of this vector must be identical to the 'intefaces' vector.
C++ Type:std::vector<unsigned int>
Controllable:No
Description:A list of layer identifiers to assign to each interface. If not provided integer values starting from 0 are utilized, if provided the length of this vector must be identical to the 'intefaces' vector.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Material Property Retrieval Parameters
Input Files
- (test/tests/materials/isoil/HYS_stiffness_and_strength_pressure_dependency_noaction_AD.i)
- (test/tests/mastodonblock/model/noaction_dynamic_2D.i)
- (test/tests/mastodonblock/combined/noaction.i)
- (examples/ex07/small_model.i)
- (test/tests/auxkernels/uniform_layer/uniform_layer_1d.i)
- (test/tests/materials/isoil/HYS_thin_layer.i)
- (test/tests/materials/isoil/HYS_GQH.i)
- (test/tests/materials/isoil/HYS_darendeli_verification.i)
- (tutorial/site_response_1.i)
- (test/tests/materials/isoil/HYS_data_file_pressure_contact.i)
- (test/tests/materials/isoil/HYS_GQH_twolayers.i)
- (test/tests/materials/isoil/HYS_GQH_noaction.i)
- (test/tests/materials/isoil/HYS_data_file_AD_jac.i)
- (test/tests/auxkernels/uniform_layer/uniform_layer.i)
- (test/tests/auxkernels/uniform_layer/uniform_layer_2d.i)
- (test/tests/materials/isoil/HYS_darendeli_AD.i)
- (examples/ex09/SSI_Response.i)
- (test/tests/mastodonblock/model/noaction_dynamic.i)
- (test/tests/materials/isoil/HYS_GQH_noaction_AD.i)
- (examples/ex01a/HYS_darendeli.i)
- (test/tests/materials/isoil/HYS_data_file.i)
- (examples/ex03a/shear_beam_Isoil_free_field.i)
- (test/tests/materials/isoil/HYS_darendeli.i)
- (test/tests/materials/isoil/HYS_darendeli_noaction_AD.i)
- (test/tests/auxkernels/uniform_layer/uniform_layer_3d.i)
- (examples/ex02b/HYS_GQH_Explicit.i)
- (test/tests/materials/isoil/HYS_stiffness_and_strength_pressure_dependency_AD.i)
- (examples/ex03a/shear_beam_Isoil_free_field_AD.i)
- (examples/ex02a/HYS_GQH.i)
- (test/tests/mastodonblock/outputs/noaction_stress_strain_output.i)
- (examples/ex07/fixed_inner.i)
- (examples/ex09/Soil_Response.i)
- (test/tests/auxkernels/uniform_layer/uniform_layer_3d_default_layers.i)
- (test/tests/vectorpostprocessors/response_spectra_calculator/response_spectra_calculator.i)
- (test/tests/materials/isoil/HYS_thin_layer_noaction.i)
- (test/tests/materials/isoil/HYS_data_file_pressure_contact_AD.i)
- (test/tests/auxkernels/uniform_layer/uniform_layer_2d_nodal.i)
- (test/tests/materials/isoil/HYS_darendeli_noaction.i)
- (test/tests/mastodonblock/combined/mastodon_block_actions.i)
- (examples/ex01b/HYS_darendeli_explicit.i)
- (test/tests/materials/isoil/HYS_pressure_dependent_strength.i)
- (examples/ex04/2BlockFriction_Isoilunit.i)
- (test/tests/materials/isoil/HYS_stiffness_and_strength_pressure_dependency_noaction.i)
- (test/tests/materials/isoil/HYS_stiffness_and_strength_pressure_dependency.i)
- (examples/ex07/fixed_outer.i)
- (test/tests/materials/isoil/HYS_data_file_verification.i)
- (test/tests/mastodonblock/model/model_static.i)
- (test/tests/mastodonblock/combined/mastodon_block_actions_2D.i)
- (test/tests/mastodonblock/model/model_dynamic_2D.i)
- (test/tests/pra/sub_sub.i)
- (test/tests/materials/isoil/HYS_data_file_AD.i)
- (examples/ex03b/shear_beam_Isoil_free_field_explicit.i)
- (examples/ex07/big_model.i)
- (test/tests/materials/isoil/HYS_pressure_dependent_stiffness.i)
- (test/tests/materials/isoil/HYS_GQH_twolayers_noaction.i)
- (test/tests/materials/isoil/HYS_data_file_noaction_AD.i)
- (examples/ex13/site_response/sr_input.i)
- (test/tests/materials/isoil/HYS_thin_layer_noaction_AD.i)
- (test/tests/mastodonblock/combined/noaction_2D.i)
- (test/tests/materials/isoil/HYS_GQH_verification.i)
- (test/tests/bcs/seismic_force/seismic_force_test_z.i)
- (test/tests/mastodonblock/outputs/stress_strain_output.i)
- (test/tests/mastodonblock/model/noaction_static.i)
- (test/tests/materials/isoil/HYS_data_file_noaction.i)
- (test/tests/materials/isoil/HYS_GQH_AD.i)
- (test/tests/materials/isoil/HYS_thin_layer_AD.i)
- (test/tests/vectorpostprocessors/housner_spectrum_intensity/housner_spectrum_intensity.i)
- (examples/ex06b/actual_simulation_isoil.i)
- (test/tests/mastodonblock/model/model_dynamic.i)
(test/tests/auxkernels/uniform_layer/uniform_layer_3d.i)
#@requirement F3.3
#@requirement DI1.3
[Mesh]
type = GeneratedMesh
dim = 3
nx = 20
ny = 20
nz = 20
xmax = 100
ymax = 100
zmax = 100
[]
[AuxVariables]
[./layer_id]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '20 40 78 1000'
layer_ids = '6 24 19 80'
direction = '1 2 3'
execute_on = initial
[../]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = true
[]
(test/tests/materials/isoil/HYS_stiffness_and_strength_pressure_dependency_noaction_AD.i)
# One element test to check pressure dependent stiffness and yield strength calcualtion.
# The element is first intialized with stresses corresponding to acceleration due to gravity (g).
# Then a body force equal to 3 * g is applied to the element thereby increasing the pressure experienced
# by the element. The element is then sheared by moving the front surface (z = 0) in the x direction.
# The resulting stress-strain curve is stiffer due to the increase in pressure and also the maximum/ultimate shear
# stress at which the material completely fails is also higher due to the yield strength pressure correction.
# This file DOESNOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -29.43
use_displaced_mesh = false
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = 'initial'
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain20.csv'
poissons_ratio = '0.3'
initial_soil_stress = '-12613 0 0 0 -12613 0 0 0 -29430'
pressure_dependency = true
b_exp = 0.5
p_ref = 6072.86
tension_pressure_cut_off = -1
a0 = 0
a1 = 0
a2 = 1
[../]
[./sample_isoil_strain]
type = ADComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '0'
elastic_modulus = '1.0'
poissons_ratio = '0.3'
density = '2000'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 10
dt = 0.05
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
[./out]
type = Exodus
hide = 'vel_x vel_y vel_z accel_x accel_y accel_z'
[../]
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/model/noaction_dynamic_2D.i)
# One element 2D model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 2 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
[]
[Mastodon]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
block = 0
displacements = 'disp_x disp_y'
stiffness_damping_coefficient = 0.000781
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 0.64026
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 0.64026
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 1 0'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = bottom
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y'
primary = left
secondary = right
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_2x]
type = NodalVariableValue
nodeid = 2
variable = disp_x
[../]
[./disp_2y]
type = NodalVariableValue
nodeid = 2
variable = disp_y
[../]
[./vel_2x]
type = NodalVariableValue
nodeid = 2
variable = vel_x
[../]
[./vel_2y]
type = NodalVariableValue
nodeid = 2
variable = vel_y
[../]
[./accel_2x]
type = NodalVariableValue
nodeid = 2
variable = accel_x
[../]
[./accel_2y]
type = NodalVariableValue
nodeid = 2
variable = accel_y
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/combined/noaction.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(examples/ex07/small_model.i)
[Mesh]
[./generate]
type = GeneratedMeshGenerator
dim = 2
xmin = 400.0
xmax = 600.0
ymin = 400.0
ymax = 500.0
nx = 20
ny = 10
[../]
[./outer_1]
type = ParsedAddSidesetGenerator
input = generate
combinatorial_geometry = 'x > 449.9 & x < 450.1 & y > 449.9'
new_sideset_name = outer_1
normal = '-1.0 0.0 0.0'
[../]
[./outer_2]
type = ParsedAddSidesetGenerator
input = outer_1
combinatorial_geometry = 'x > 459.1 & x < 541.0 & y > 449.9 & y < 450.1'
new_sideset_name = outer_2
normal = '0.0 -1.0 0.0'
[../]
[./outer_3]
type = ParsedAddSidesetGenerator
input = outer_2
combinatorial_geometry = 'x > 549.1 & x < 550.1 & y > 449.9'
new_sideset_name = outer_3
normal = '1.0 0.0 0.0'
[../]
[./inner_1]
type = ParsedAddSidesetGenerator
input = outer_3
combinatorial_geometry = 'x > 459.9 & x < 460.1 & y > 459.9'
new_sideset_name = inner_1
normal = '1.0 0.0 0.0'
[../]
[./inner_2]
type = ParsedAddSidesetGenerator
input = inner_1
combinatorial_geometry = 'x > 469.1 & x < 530.1 & y > 459.9 & y < 460.1'
new_sideset_name = inner_2
normal = '0.0 1.0 0.0'
[../]
[./inner_3]
type = ParsedAddSidesetGenerator
input = inner_2
combinatorial_geometry = 'x > 539.9 & x < 540.1 & y > 459.9'
new_sideset_name = inner_3
normal = '-1.0 0.0 0.0'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./layer]
[../]
[./resid_x]
[../]
[./resid_y]
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
block = 0
save_in = 'resid_x resid_y'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
save_in = resid_x
block = 0
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
save_in = resid_y
block = 0
eta = 7.854
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
interfaces = '550.0'
direction = '0 1 0'
variable = layer
execute_on = initial
[../]
[]
[UserObjects]
[./solution_uo_outer_react_x]
type = SolutionUserObject
mesh = output/DRM_layer_2d_outer_out.e
system_variables = resid_x
[../]
[./solution_uo_outer_react_y]
type = SolutionUserObject
mesh = output/DRM_layer_2d_outer_out.e
system_variables = resid_y
[../]
[./solution_uo_inner_react_x]
type = SolutionUserObject
mesh = output/DRM_layer_2d_inner_out.e
system_variables = resid_x
[../]
[./solution_uo_inner_react_y]
type = SolutionUserObject
mesh = output/DRM_layer_2d_inner_out.e
system_variables = resid_y
[../]
[]
[Functions]
[./react_x_outer_fn]
type = SolutionFunction
solution = solution_uo_outer_react_x
[../]
[./react_y_outer_fn]
type = SolutionFunction
solution = solution_uo_outer_react_y
[../]
[./react_x_inner_fn]
type = SolutionFunction
solution = solution_uo_inner_react_x
[../]
[./react_y_inner_fn]
type = SolutionFunction
solution = solution_uo_inner_react_y
[../]
[]
[NodalKernels]
[./xforce_inner_1]
type = UserForcingFunctionNodalKernel
variable = disp_x
function = react_x_inner_fn
boundary = inner_1
[../]
[./xforce_inner_2]
type = UserForcingFunctionNodalKernel
variable = disp_x
function = react_x_inner_fn
boundary = inner_2
[../]
[./xforce_inner_3]
type = UserForcingFunctionNodalKernel
variable = disp_x
function = react_x_inner_fn
boundary = inner_3
[../]
[./yforce_inner_1]
type = UserForcingFunctionNodalKernel
variable = disp_y
function = react_y_inner_fn
boundary = inner_1
[../]
[./yforce_inner_2]
type = UserForcingFunctionNodalKernel
variable = disp_y
function = react_y_inner_fn
boundary = inner_2
[../]
[./yforce_inner_3]
type = UserForcingFunctionNodalKernel
variable = disp_y
function = react_y_inner_fn
boundary = inner_3
[../]
[./xforce_outer_1]
type = UserForcingFunctionNodalKernel
variable = disp_x
function = react_x_outer_fn
boundary = outer_1
[../]
[./xforce_outer_2]
type = UserForcingFunctionNodalKernel
variable = disp_x
function = react_x_outer_fn
boundary = outer_2
[../]
[./xforce_outer_3]
type = UserForcingFunctionNodalKernel
variable = disp_x
function = react_x_outer_fn
boundary = outer_3
[../]
[./yforce_outer_1]
type = UserForcingFunctionNodalKernel
variable = disp_y
function = react_y_outer_fn
boundary = outer_1
[../]
[./yforce_outer_2]
type = UserForcingFunctionNodalKernel
variable = disp_y
function = react_y_outer_fn
boundary = outer_2
[../]
[./yforce_outer_3]
type = UserForcingFunctionNodalKernel
variable = disp_y
function = react_y_outer_fn
boundary = outer_3
[../]
[]
[BCs]
[./NonReflectingBC]
[./back]
displacements = 'disp_x disp_y'
velocities = 'vel_x vel_y'
accelerations = 'accel_x accel_y'
beta = 0.25
gamma = 0.5
boundary = 'left right bottom'
shear_wave_speed = 1000.0
density = 1700.0
p_wave_speed=1870.829
[../]
[../]
[]
[Materials]
[./linear]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer
block = 0
layer_ids = '0'
shear_modulus = '1.7e9'
density = '1700.0'
poissons_ratio = '0.3'
[../]
[./strain_1]
type = ComputeSmallStrain
block = '0'
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = '0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_abs_tol = 1e-8
start_time = 0.0
end_time = 1.0
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[./node_x_50]
type = PointValue
point = '500.0 500.0 0.0'
variable = vel_x
[../]
[./node_y_50]
type = PointValue
point = '500.0 500.0 0.0'
variable = vel_y
[../]
[]
[Outputs]
file_base = output/small_model_out
exodus = true
csv = true
[]
(test/tests/auxkernels/uniform_layer/uniform_layer_1d.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 20
xmax = 100
[]
[AuxVariables]
[./layer_id]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '10 20 50 1000'
layer_ids = '6 24 19 80'
execute_on = initial
[../]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = true
[]
(test/tests/materials/isoil/HYS_thin_layer.i)
# One element test to test the auto-generated thin_layer backbone curve for
# Coulomb friction. The top surface of the element (z=0) is fixed and the
# bottom surface (z=1) is moved by applying a cyclic preset displacement.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = '0 1 2 3 4'
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = '0 1 2 3 4'
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_thin_layer]
soil_type = 'thin_layer'
layer_variable = layer_id
layer_ids = '0'
initial_shear_modulus = '20000'
poissons_ratio = '0.45'
block = 0
density = '2.0'
friction_coefficient = '0.7'
hardening_ratio = '0.001'
p_ref = '8.6209091'
initial_soil_stress = '-8.0263636 0 0 0 -8.0263636 0 0 0 -9.810'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_GQH.i)
# One element test to test the auto-generated GQ/H backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve was verified against obtained from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'gqh'
layer_variable = layer_id
layer_ids = '0'
theta_1 = '-2.28'
theta_2 = '-5.54'
theta_3 = '1.0'
theta_4 = '1.0'
theta_5 = '0.99'
taumax = '7500'
initial_shear_modulus = '20000000'
number_of_points = 10
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
density = '2000'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_darendeli_verification.i)
# One element test to test the auto-generated Darendeli backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# This test is identical to HYS_darendeli.i except that the element was assumed
# to have zero initial stresses, no self-weight (i.e., zero gravity), and
# undamped vibration. Also, the backbone curve was generated using 100 points
# instead of 10 to increase smoothness.
# The resulting backbone curve was verified against the analytical solution.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'darendeli'
layer_variable = layer_id
layer_ids = '0'
over_consolidation_ratio = '1'
plasticity_index = '0'
initial_shear_modulus = '20000'
number_of_points = 100
poissons_ratio = '0.3'
block = 0
density = '2'
p_ref = '6.07286'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./gamma_zx_el] # engineering shear strain
type = ScalePostprocessor
value = strain_zx_el
scaling_factor = 2
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
[]
(tutorial/site_response_1.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
nx = 1
ny = 1
nz = 100
xmin = -0.5
ymin = -0.5
zmin = 0.0
xmax = 0.5
ymax = 0.5
zmax = 100.0
dim = 3
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./layer_id]
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
# displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '20 60 100.1'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[BCs]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./bottom_accel]
type = PresetAcceleration
boundary = 'back'
function = accel_bottom
variable = 'disp_x'
beta = 0.25
acceleration = 'accel_x'
velocity = 'vel_x'
[../]
[./Periodic]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom]
type = PiecewiseLinear
data_file = 'acceleration_hist.csv'
format = 'columns'
[../]
[]
[Materials]
[./linear_soil]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer_id
layer_ids = '0 1 2'
shear_modulus = '3e6 2e6 1e6'
poissons_ratio = '0.2 0.2 0.2'
density = '1200 1000 800'
[../]
[./strain]
type = ComputeSmallStrain
# displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0
end_time = 4
dt = 0.01
timestep_tolerance = 1e-6
[]
[Postprocessors]
[top_ax_pv]
type = PointValue
point = '0 0 100'
variable = 'accel_x'
[]
[./top_ax_nvv]
type = NodalVariableValue
variable = accel_x
nodeid = 401
[../]
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x accel_y accel_z'
nodes = '401'
[../]
[./accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.01
# outputs = out
[../]
[]
[Outputs]
csv = true
exodus = true
[]
(test/tests/materials/isoil/HYS_data_file_pressure_contact.i)
# Test for cyclic tensile and compressive nonlinear soil behavior (without AD)
# Soil column consists of 3 elements, each 1m x 1m x 1m, stacked on top of one
# another vertically. The middle element is nonlinear, while the top and bottom
# elements are linear elastic. The bottom boundary is fixed in all directions.
# A sawtooth pulse is applied in both X and Z directions of the soil column.
# The hydrostatic and vonMises stresses of the nonlinear element are printed out
# as output. When the nonlinear soil element is under tension, the hydrostatic
# stress reduces to zero, and the vonMises stress also reduces to zero
# indicating that the nonlinear soil element has failed. When the element is
# compressed, it regains strength. So, the hydrostatic stress becomes negative
# and vonMises stress becomes non-zero.
[Mesh]
[./generate]
type = GeneratedMeshGenerator # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 3 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 3.0
[../]
[./block1]
type = SubdomainBoundingBoxGenerator
input = generate
bottom_left = '0.0 0.0 0.0'
top_right = '1.0 1.0 1.0'
block_id = '1'
[../]
[./block2]
type = SubdomainBoundingBoxGenerator
input = block1
bottom_left = '0.0 0.0 1.0'
top_right = '1.0 1.0 2.0'
block_id = '2'
[../]
[./block3]
type = SubdomainBoundingBoxGenerator
input = block2
bottom_left = '0.0 0.0 2.0'
top_right = '1.0 1.0 3.0'
block_id = '3'
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '4.0'
direction = '0 0 1'
execute_on = initial
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = vonmisesStress
[../]
[./hydrostatic]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic
scalar_type = hydrostatic
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 'back'
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./top_disp]
type = FunctionDirichletBC
variable = disp_x
function = top_disp
boundary = front
[../]
[./top_disp_z]
type = FunctionDirichletBC
variable = disp_z
function = top_disp_z
boundary = front
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0 8.0'
y = '0.0 1.0 0.0 -1.0 0.0 0.0'
scale_factor = 5e-3
[../]
[./top_disp_z]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0 5.0 6.0 8.0'
y = '0.0 -2.0 0.0 3.0 0.0 -2.0 0.0 0.0'
scale_factor = -5e-3
[../]
[]
[Materials]
[./sample_isoil]
type = ComputeISoilStress
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain_test_1.csv'
poissons_ratio = '0.3'
pressure_dependency = true
a0 = 0
a1 = 0
a2 = 1
b_exp = 0.5
p_ref = 1e-4
tension_pressure_cut_off = -1e-9
initial_shear_modulus = '5e-4'
block = 2
[../]
[./sample_isoil_strain]
type = ComputeIncrementalSmallStrain
block = '1 2 3'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ComputeIsotropicElasticityTensorSoil
block = '2'
shear_modulus = '5e-4'
poissons_ratio = '0.3'
density = '6'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[./sample_isoil_elasticitytensor2]
type = ComputeIsotropicElasticityTensorSoil
block = '1 3'
elastic_modulus = '1.0e-2'
poissons_ratio = '0.3'
density = '2e-2'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[./sample_soil]
type = ComputeFiniteStrainElasticStress
block = '1 3'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 6.0
dt = 0.01
dtmin = 0.01
nl_max_its = 200
timestep_tolerance = 1e-6
nl_rel_tol = 5e-5
nl_abs_tol = 1e-7
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_x
[../]
[./disp_6y]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_y
[../]
[./disp_6z]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_z
[../]
[./strain_zx]
type = ElementalVariableValue
variable = strain_zx
elementid = 1
[../]
[./stress_zx]
type = ElementalVariableValue
variable = stress_zx
elementid = 1
[../]
[./hydrostatic]
type = ElementalVariableValue
variable = hydrostatic
elementid = 1
[../]
[./vonmises]
type = ElementalVariableValue
variable = vonmises
elementid = 1
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[./console]
type = Console
max_rows = 1
[../]
[]
(test/tests/materials/isoil/HYS_GQH_twolayers.i)
[Mesh]
type = GeneratedMesh
nx = 1
ny = 1
nz = 2
xmin = -0.5
ymin = -0.5
zmin = 0.0
xmax = 0.5
ymax = 0.5
zmax = 2.0
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 0.64026
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 0.64026
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 0.64026
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '1.0 2.02'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[BCs]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./bottom_disp]
type = PresetDisplacement
boundary = 'back'
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = disp_bottom
[../]
[./Periodic]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./disp_bottom]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[./initial_zz]
type = ParsedFunction
value = '-2000.0 * 9.81 * (2.0 - z)'
[../]
[./initial_xx]
type = ParsedFunction
value = '-2000.0 * 9.81 * (2.0 - z) * 0.3/0.7'
[../]
[]
[Materials]
[./I_Soil]
[./soil_all]
block = 0
layer_variable = layer_id
layer_ids = '0 1'
initial_soil_stress = 'initial_xx 0 0 0 initial_xx 0 0 0 initial_zz'
poissons_ratio = '0.3 0.3'
soil_type = 'gqh'
number_of_points = 100
### GQ/H ####
initial_shear_modulus = '125000000 118098000'
theta_1 = '-6.66 -6.86'
theta_2 = '5.5 5.7'
theta_3 = '1.0 1.0'
theta_4 = '1.0 1.0'
theta_5 = '0.99 0.99'
taumax = '292500 277500'
p_ref = '236841 224695'
density = '2000.0 2000.0'
a0 = 1.0
a1 = 0.0
a2 = 0.0
b_exp = 0.0
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.05
timestep_tolerance = 1e-8
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 10
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 10
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 10
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 10
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 10
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 10
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 10
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 10
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 10
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 1
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 1
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 1
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 1
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 1
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 1
[../]
[./gamma_zx_el] # engineering shear strain
type = ScalePostprocessor
value = strain_zx_el
scaling_factor = 2
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 1
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 1
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 1
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 1
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 1
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 1
[../]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/materials/isoil/HYS_GQH_noaction.i)
# One element test to test the auto-generated GQ/H backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve was verified against obtained from DEEPSOIL.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ComputeISoilStress
soil_type = 'gqh'
layer_variable = layer_id
layer_ids = '0'
theta_1 = '-2.28'
theta_2 = '-5.54'
theta_3 = '1.0'
theta_4 = '1.0'
theta_5 = '0.99'
taumax = '7500'
initial_shear_modulus = '20000000'
number_of_points = 10
poissons_ratio = '0.3'
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
[../]
[./sample_isoil_strain]
type = ComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20000000'
poissons_ratio = '0.3'
density = '2000'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_data_file_AD_jac.i)
# One element test to test the auto-generated GQ/H backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve was verified against obtained from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 2 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
#use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_automatic_differentiation = true
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '4.0'
direction = '0 0 1'
execute_on = initial
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 'back'
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 'left right top bottom'
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 'left right top bottom'
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = FunctionDirichletBC
boundary = front
variable = disp_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0 8.0'
y = '0.0 1.0 0.0 -1.0 0.0 0.0'
scale_factor = 3e-3
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain_test_1.csv'
poissons_ratio = '0.3'
[../]
[./sample_isoil_strain]
type = ADComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '0'
elastic_modulus = '1.0'
poissons_ratio = '0.3'
density = '2'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 4.0
dt = 0.5
dtmin = 0.5
timestep_tolerance = 1e-6
nl_rel_tol = 5e-5
nl_abs_tol = 1e-7
#petsc_options = '-snes_test_jacobian_view'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_x
[../]
[./disp_6y]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_y
[../]
[./disp_6z]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_z
[../]
[./strain_zx]
type = ElementalVariableValue
variable = strain_zx
elementid = 1
[../]
[./stress_zx]
type = ElementalVariableValue
variable = stress_zx
elementid = 1
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/auxkernels/uniform_layer/uniform_layer.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 20
ny = 20
nz = 20
xmax = 100
ymax = 100
zmax = 100
[]
[AuxVariables]
[./layer_id]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '10 20 50 1000'
direction = '1 1 2'
execute_on = initial
[../]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = true
[]
(test/tests/auxkernels/uniform_layer/uniform_layer_2d.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 20
ny = 20
xmax = 100
ymax = 100
[]
[AuxVariables]
[./layer_id]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '20 40 78 1000'
layer_ids = '6 24 19 80'
direction = '1 2 0'
execute_on = initial
[../]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = true
[]
(test/tests/materials/isoil/HYS_darendeli_AD.i)
# One element test to test the auto-generated Darendeli backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress vs shear strain curve was verified against that obtained
# from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'darendeli'
layer_variable = layer_id
layer_ids = '0'
over_consolidation_ratio = '1'
plasticity_index = '0'
initial_shear_modulus = '20000'
number_of_points = 10
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-4.204286 0 0 0 -4.204286 0 0 0 -9.810'
density = '2'
p_ref = '6.07286'
use_automatic_differentiation = true
[../]
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
file_base = HYS_darendeli_out
[./out]
type = Exodus
sync_times = '0 1 2 3 4 5 6 7 8'
sync_only = true
[../]
[]
(examples/ex09/SSI_Response.i)
[Mesh]
type = FileMesh
file = Full_3D_Str_red.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./rot_x]
block = '3 4 6'
[../]
[./rot_y]
block = '3 4 6'
[../]
[./rot_z]
block = '3 4 6'
[../]
[]
[AuxVariables]
[./stress_x]
[../]
[./stress_y]
[../]
[./stress_z]
[../]
[./vel_x]
[../]
[./vel_y]
[../]
[./vel_z]
[../]
[./accel_x]
[../]
[./accel_y]
[../]
[./accel_z]
[../]
[./rot_vel_x]
block = '3 4 6'
[../]
[./rot_vel_y]
block = '3 4 6'
[../]
[./rot_vel_z]
block = '3 4 6'
[../]
[./rot_accel_x]
block = '3 4 6'
[../]
[./rot_accel_y]
block = '3 4 6'
[../]
[./rot_accel_z]
block = '3 4 6'
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Physics/SolidMechanics/LineElement/QuasiStatic]
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
# dynamic simulation using consistent mass/inertia matrix
dynamic_nodal_translational_inertia = true
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25 # Newmark time integration parameter
gamma = 0.5 # Newmark time integration parameter
[./block_3]
block = 3
area = 500
Iy = 1e3
Iz = 1e3
y_orientation = '0.0 1.0 0.0'
nodal_mass = 0.1
boundary = 'B0'
[../]
[./block_4]
block = 4
area = 500
Iy = 1e3
Iz = 1e3
y_orientation = '1.0 0.0 0.0'
nodal_mass = 0.1
boundary = 'B0'
[../]
[./block_6]
block = 6
area = 500
Iy = 1e3
Iz = 1e3
y_orientation = '0.0 1.0 0.0'
nodal_mass = 166.0
density = 2.7
boundary = 'B1'
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
block = '1 2'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
block = '1 2'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
block = '1 2'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
block = '1 2'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = 'timestep_end'
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = 'timestep_end'
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = 'timestep_end'
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = 'timestep_end'
[../]
[./layer_id]
type = UniformLayerAuxKernel
block = '1'
variable = layer_id
interfaces = '29.6'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[Materials]
[./elastic_soil]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer_id
layer_ids = '0'
poissons_ratio = '0.3'
density = '1.7'
shear_modulus = '46282.5'
block = '1'
[../]
[./elasticity_base]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e10
poissons_ratio = 0
block = '2'
[../]
[./stress_beam2]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[./strain_15]
type = ComputeFiniteStrain
block = '1 2'
displacements = 'disp_x disp_y disp_z'
[../]
[./density]
type = GenericConstantMaterial
block = '2'
prop_names = density
prop_values = 2.7
[../]
[./elasticity_beam_rigid]
type = ComputeElasticityBeam
youngs_modulus = 1e10
poissons_ratio = 0.3
shear_coefficient = 0.85
block = '3 4 6'
[../]
[./stress_beam]
type = ComputeBeamResultants
block = '3 4 6'
[../]
[]
[BCs]
[./disp_x]
type = PresetAcceleration
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
function = accel_bottom
boundary = 'NZ'
[../]
[./disp_y]
type = DirichletBC
boundary = 'NZ'
variable = disp_y
value = 0.0
[../]
[./disp_z]
type = DirichletBC
boundary = 'NZ'
variable = disp_z
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'NX'
secondary = 'PX'
translation = '75.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'NY'
secondary = 'PY'
translation = '0.0 75.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom]
type = PiecewiseLinear
data_file = Ormsby_USE1.csv
format = 'columns'
scale_factor = 1
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-7
nl_rel_tol = 1e-7
l_tol = 1e-7
l_max_its = 12
start_time = 0.0
end_time = 3.0
dt = 0.001
timestep_tolerance = 1e-6
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x'
nodes = '23935 2331 104 5'
outputs = out
[../]
[./accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.001
damping_ratio = 0.01
start_frequency = 0.1
end_frequency = 1000
outputs = out
[../]
[]
[Outputs]
csv = true
exodus = true
perf_graph = true
print_linear_residuals = true
[./out]
execute_on = 'FINAL'
type = CSV
file_base = SSI_NoDamp_RigidStr
[../]
[./out2]
type = Exodus
file_base = Exod_SSI_NoDamp_RigidStr
interval = 10
[../]
[]
(test/tests/mastodonblock/model/noaction_dynamic.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
eta = 0.64026
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
eta = 0.64026
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
eta = 0.64026
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_GQH_noaction_AD.i)
# One element test to test the auto-generated GQ/H backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve was verified against obtained from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./stress_div_x]
type = ADDynamicStressDivergenceTensors
variable = disp_x
component = 0
zeta = 0.00006366
use_displaced_mesh = false
[../]
[./stress_div_y]
type = ADDynamicStressDivergenceTensors
variable = disp_y
component = 1
zeta = 0.00006366
use_displaced_mesh = false
[../]
[./stress_div_z]
type = ADDynamicStressDivergenceTensors
variable = disp_z
component = 2
zeta = 0.00006366
use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'gqh'
layer_variable = layer_id
layer_ids = '0'
theta_1 = '-2.28'
theta_2 = '-5.54'
theta_3 = '1.0'
theta_4 = '1.0'
theta_5 = '0.99'
taumax = '7500'
initial_shear_modulus = '20000000'
number_of_points = 10
poissons_ratio = '0.3'
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
[../]
[./sample_isoil_strain]
type = ADComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20000000'
poissons_ratio = '0.3'
density = '2000'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
dtmin = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_check_jacobian'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(examples/ex01a/HYS_darendeli.i)
# One element test to test the auto-generated Darendeli backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress vs shear strain curve was verified against that obtained
# from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'darendeli'
layer_variable = layer_id
layer_ids = '0'
over_consolidation_ratio = '1'
plasticity_index = '0'
initial_shear_modulus = '20000'
number_of_points = 10
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-4.204286 0 0 0 -4.204286 0 0 0 -9.810'
density = '2'
p_ref = '6.07286'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_data_file.i)
#@requirement F4.2
# One element test to test the user-defined backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve is same as the one provided as input.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
#use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
#use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
#use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.85
#use_displaced_mesh = false
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
#use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
layer_variable = layer_id
layer_ids = '0'
soil_type = 'user_defined'
backbone_curve_files = 'stress_strain_darendeli.csv'
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
initial_shear_modulus = '20155518.98'
density = '2000'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(examples/ex03a/shear_beam_Isoil_free_field.i)
[Mesh]
type = GeneratedMesh
nx = 1
ny = 1
nz = 20
xmin = -0.5
ymin = -0.5
zmin = 0.0
xmax = 0.5
ymax = 0.5
zmax = 20.0
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 0.64026
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 0.64026
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 0.64026
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20.2'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[BCs]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./bottom_accel]
type = PresetAcceleration
boundary = 'back'
function = accel_bottom
variable = 'disp_x'
beta = 0.25
acceleration = 'accel_x'
velocity = 'vel_x'
[../]
[./Periodic]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom]
type = PiecewiseLinear
data_file = chichi_bc_mpss_xp20.csv
format = 'columns'
[../]
[./initial_zz]
type = ParsedFunction
value = '-2000.0 * 9.81 * (20.0 - z)'
[../]
[./initial_xx]
type = ParsedFunction
value = '-2000.0 * 9.81 * (20.0 - z) * 0.3/0.7'
[../]
[]
[Materials]
[./I_Soil]
[./soil_all]
block = 0
layer_variable = layer_id
layer_ids = '0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19'
initial_soil_stress = 'initial_xx 0 0 0 initial_xx 0 0 0 initial_zz'
poissons_ratio = '0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3'
soil_type = 'gqh'
number_of_points = 100
### GQ/H ####
initial_shear_modulus = '125000000 118098000 111392000 103968000 96800000 89888000 83232000 76832000 70688000 64800000 59168000 53792000 48672000 43808000 39200000 34848000 30752000 26912000 23328000 20000000'
theta_1 = '-6.66 -6.86 -7.06 -7.35 -7.65 -7.95 -8.3 -8.61 -8.95 -9.3 -9.61 -9.92 -10.0 -10.0 -10.0 -10.0 -10.0 -9.31 -7.17 -5.54'
theta_2 = '5.5 5.7 5.9 6.2 6.6 6.9 7.3 7.6 8.0 8.4 8.6 8.8 8.82 8.71 8.55 8.3 7.88 6.4 2.4 -2.28'
theta_3 = '1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0'
theta_4 = '1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0'
theta_5 = '0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99'
taumax = '292500 277500 262500 247500 232500 217500 202500 187500 172500 157500 142500 127500 112500 97500 82500 67500 52500 37500 22500 7500'
p_ref = '236841 224695 212550 200404 188258 176112 163967 151821 139675 127530 115384 103238 91092 78947 66801 54655 42510 30364 18218 6072'
######
density = '2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0'
a0 = 1.0
a1 = 0.0
a2 = 0.0
b_exp = 0.0
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-6
nl_rel_tol = 1e-6
l_tol = 1e-6
l_max_its = 50
start_time = 0.0
end_time = 85.4
dt = 0.005
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./accelx_top]
type = PointValue
point = '0.0 0.0 20.0'
variable = accel_x
[../]
[./accelx_top1]
type = PointValue
point = '0.0 0.0 19.0'
variable = accel_x
[../]
[./accelx_mid]
type = PointValue
point = '0.0 0.0 10.0'
variable = accel_x
[../]
[./accelx_bot]
type = PointValue
point = '0.0 0.0 0.0'
variable = accel_x
[../]
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x'
nodes = '80'
[../]
[./accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.005
outputs = out
[../]
[]
[Outputs]
csv = true
exodus = true
perf_graph = true
print_linear_residuals = true
[./out]
type = CSV
execute_on = 'timestep_begin'
file_base = topsoil_response
[../]
[./screen]
type = Console
max_rows = 1
interval = 1000
[../]
[]
(test/tests/materials/isoil/HYS_darendeli.i)
# One element test to test the auto-generated Darendeli backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress vs shear strain curve was verified against that obtained
# from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'darendeli'
layer_variable = layer_id
layer_ids = '0'
over_consolidation_ratio = '1'
plasticity_index = '0'
initial_shear_modulus = '20000'
number_of_points = 10
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-4.204286 0 0 0 -4.204286 0 0 0 -9.810'
density = '2'
p_ref = '6.07286'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
[./out]
type = Exodus
sync_times = '0 1 2 3 4 5 6 7 8'
sync_only = true
[../]
[]
(test/tests/materials/isoil/HYS_darendeli_noaction_AD.i)
# One element test to test the auto-generated Darendeli backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress vs shear strain curve was verified against that obtained
# from DEEPSOIL.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
#use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'darendeli'
layer_variable = layer_id
layer_ids = '0'
over_consolidation_ratio = '1'
plasticity_index = '0'
initial_shear_modulus = '20000'
number_of_points = 10
poissons_ratio = '0.3'
initial_soil_stress = '-4.204286 0 0 0 -4.204286 0 0 0 -9.810'
p_ref = '6.07286'
wave_speed_calculation = true
[../]
[./sample_isoil_strain]
type = ADComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20000'
poissons_ratio = '0.3'
density = '2'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
[./out]
type = Exodus
sync_times = '0 1 2 3 4 5 6 7 8'
sync_only = true
[../]
[]
(test/tests/auxkernels/uniform_layer/uniform_layer_3d.i)
#@requirement F3.3
#@requirement DI1.3
[Mesh]
type = GeneratedMesh
dim = 3
nx = 20
ny = 20
nz = 20
xmax = 100
ymax = 100
zmax = 100
[]
[AuxVariables]
[./layer_id]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '20 40 78 1000'
layer_ids = '6 24 19 80'
direction = '1 2 3'
execute_on = initial
[../]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = true
[]
(examples/ex02b/HYS_GQH_Explicit.i)
# One element test to test the auto-generated GQ/H backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve was verified against obtained from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
# stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
eta = 7.854
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
eta = 7.854
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[../]
[./vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[../]
[./accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[../]
[./vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_y
[../]
[./accel_z]
type = TestNewmarkTI
variable = accel_z
displacement = disp_z
first = false
[../]
[./vel_z]
type = TestNewmarkTI
variable = vel_z
displacement = disp_z
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = FunctionDirichletBC
boundary = 5
function = top_disp
variable = 'disp_x'
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = '../ex01a/Displacement2.csv'
format = columns
[../]
[]
# [Materials]
# [./sample_isoil]
# type = ComputeISoilStress
# soil_type = 'gqh'
# layer_variable = layer_id
# layer_ids = '0'
# initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
# poissons_ratio = '0.3'
# number_of_points = 10
# ### GQ/H ####
# initial_shear_modulus = '20000000'
# theta_1 = '-2.28'
# theta_2 = '-5.54'
# theta_3 = '1.0'
# theta_4 = '1.0'
# theta_5 = '0.99'
# taumax = '7500'
# block = '0'
# [../]
# [./sample_isoil_strain]
# type = ComputeIncrementalSmallStrain
# block = '0'
# displacements = 'disp_x disp_y disp_z'
# implicit = false
# [../]
# [./sample_isoil_elasticitytensor]
# type = ComputeIsotropicElasticityTensorSoil
# block = '0'
# density = '2000'
# wave_speed_calculation = false
# layer_ids = '0'
# poissons_ratio = '0.3'
# shear_modulus = '20000000'
# layer_variable = layer_id
# [../]
# []
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'gqh'
layer_variable = layer_id
layer_ids = '0'
theta_1 = '-2.28'
theta_2 = '-5.54'
theta_3 = '1.0'
theta_4 = '1.0'
theta_5 = '0.99'
taumax = '7500'
initial_shear_modulus = '20000000'
number_of_points = 10
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
density = '2000'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
end_time = 8.0
timestep_tolerance = 1e-6
l_abs_tol = 1e-12
[./TimeIntegrator]
type = CentralDifference
[../]
[./TimeStepper]
type = PostprocessorDT
postprocessor = time_step
dt = 0.001
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[./time_step]
type = CriticalTimeStep
factor = 0.9
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
file_base = HYS_GQH_explicit
[]
(test/tests/materials/isoil/HYS_stiffness_and_strength_pressure_dependency_AD.i)
# One element test to check pressure dependent stiffness and yield strength calcualtion.
# The element is first intialized with stresses corresponding to acceleration due to gravity (g).
# Then a body force equal to 3 * g is applied to the element thereby increasing the pressure experienced
# by the element. The element is then sheared by moving the front surface (z = 0) in the x direction.
# The resulting stress-strain curve is stiffer due to the increase in pressure and also the maximum/ultimate shear
# stress at which the material completely fails is also higher due to the yield strength pressure correction.
# Two combinations of the parameters a_0, a_1, and a_2 were tested using this input file, but only
# one case can be used at a time.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -29.43
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = 'initial'
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain20.csv'
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-12613 0 0 0 -12613 0 0 0 -29430'
pressure_dependency = true
b_exp = 0.5
p_ref = 6072.86
tension_pressure_cut_off = -1
density = '2000'
initial_shear_modulus = '19683812.98'
# Case 1
a0 = 0
a1 = 0
a2 = 1
# Case 2
#a0 = 0
#a1 = 1
#a2 = 0
use_automatic_differentiation = true
[../]
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 10
dt = 0.05
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
file_base = HYS_stiffness_and_strength_pressure_dependency_out
[./out]
type = Exodus
hide = 'vel_x vel_y vel_z accel_x accel_y accel_z'
[../]
csv = true
perf_graph = false
[]
(examples/ex03a/shear_beam_Isoil_free_field_AD.i)
[Mesh]
type = GeneratedMesh
nx = 1
ny = 1
nz = 20
xmin = -0.5
ymin = -0.5
zmin = 0.0
xmax = 0.5
ymax = 0.5
zmax = 20.0
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 0.64026
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 0.64026
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 0.64026
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20.2'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[BCs]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./bottom_accel]
type = PresetAcceleration
boundary = 'back'
function = accel_bottom
variable = 'disp_x'
beta = 0.25
acceleration = 'accel_x'
velocity = 'vel_x'
[../]
[./Periodic]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom]
type = PiecewiseLinear
data_file = chichi_bc_mpss_xp20.csv
format = 'columns'
[../]
[./initial_zz]
type = ParsedFunction
value = '-2000.0 * 9.81 * (20.0 - z)'
[../]
[./initial_xx]
type = ParsedFunction
value = '-2000.0 * 9.81 * (20.0 - z) * 0.3/0.7'
[../]
[]
[Materials]
[./I_Soil]
[./soil_all]
block = 0
layer_variable = layer_id
layer_ids = '0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19'
initial_soil_stress = 'initial_xx 0 0 0 initial_xx 0 0 0 initial_zz'
poissons_ratio = '0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3'
soil_type = 'gqh'
number_of_points = 100
### GQ/H ####
initial_shear_modulus = '125000000 118098000 111392000 103968000 96800000 89888000 83232000 76832000 70688000 64800000 59168000 53792000 48672000 43808000 39200000 34848000 30752000 26912000 23328000 20000000'
theta_1 = '-6.66 -6.86 -7.06 -7.35 -7.65 -7.95 -8.3 -8.61 -8.95 -9.3 -9.61 -9.92 -10.0 -10.0 -10.0 -10.0 -10.0 -9.31 -7.17 -5.54'
theta_2 = '5.5 5.7 5.9 6.2 6.6 6.9 7.3 7.6 8.0 8.4 8.6 8.8 8.82 8.71 8.55 8.3 7.88 6.4 2.4 -2.28'
theta_3 = '1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0'
theta_4 = '1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0'
theta_5 = '0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99'
taumax = '292500 277500 262500 247500 232500 217500 202500 187500 172500 157500 142500 127500 112500 97500 82500 67500 52500 37500 22500 7500'
p_ref = '236841 224695 212550 200404 188258 176112 163967 151821 139675 127530 115384 103238 91092 78947 66801 54655 42510 30364 18218 6072'
######
density = '2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0'
a0 = 1.0
a1 = 0.0
a2 = 0.0
b_exp = 0.0
use_automatic_differentiation = true
[../]
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-6
nl_rel_tol = 1e-6
start_time = 0
end_time = 85.4
dt = 0.001
l_max_its = 50
timestep_tolerance = 1e-6
[]
[Postprocessors]
[./accelx_top]
type = PointValue
point = '0.0 0.0 20.0'
variable = accel_x
[../]
[./accelx_top1]
type = PointValue
point = '0.0 0.0 19.0'
variable = accel_x
[../]
[./accelx_mid]
type = PointValue
point = '0.0 0.0 10.0'
variable = accel_x
[../]
[./accelx_bot]
type = PointValue
point = '0.0 0.0 0.0'
variable = accel_x
[../]
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x'
nodes = '80'
[../]
[./accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.005
outputs = out
[../]
[]
[Outputs]
csv = true
exodus = true
perf_graph = true
print_linear_residuals = true
[./out]
type = CSV
execute_on = 'final'
file_base = topsoil_response_AD
[../]
[./screen]
type = Console
max_rows = 1
interval = 1000
[../]
[]
(examples/ex02a/HYS_GQH.i)
# One element test to test the auto-generated GQ/H backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve was verified against obtained from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = '../ex01a/Displacement2.csv'
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'gqh'
layer_variable = layer_id
layer_ids = '0'
theta_1 = '-2.28'
theta_2 = '-5.54'
theta_3 = '1.0'
theta_4 = '1.0'
theta_5 = '0.99'
taumax = '7500'
initial_shear_modulus = '20000000'
number_of_points = 10
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
density = '2000'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/outputs/noaction_stress_strain_output.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(examples/ex07/fixed_inner.i)
[Mesh]
[./generate]
type = GeneratedMeshGenerator
dim = 2
xmin = 450.0
xmax = 550.0
ymin = 450.0
ymax = 500.0
nx = 10
ny = 5
[../]
[./SubdomainBoundingBoxGenerator]
type = SubdomainBoundingBoxGenerator
input = generate
block_id = 1
bottom_left = '460.0 460.0 0.0'
top_right = '540.0 500.0 0.0'
[../]
[./ed0]
type = BlockDeletionGenerator
input = SubdomainBoundingBoxGenerator
block_id = 1
depends_on = SubdomainBoundingBoxGenerator
[../]
[./outer_1]
type = ParsedAddSidesetGenerator
input = ed0
combinatorial_geometry = 'x > 449.9 & x < 450.1 & y > 449.9'
new_sideset_name = outer_1
normal = '-1.0 0.0 0.0'
[../]
[./outer_2]
type = ParsedAddSidesetGenerator
input = outer_1
combinatorial_geometry = 'x > 459.1 & x < 541.0 & y > 449.9 & y < 450.1'
new_sideset_name = outer_2
normal = '0.0 -1.0 0.0'
[../]
[./outer_3]
type = ParsedAddSidesetGenerator
input = outer_2
combinatorial_geometry = 'x > 549.1 & x < 550.1 & y > 449.9'
new_sideset_name = outer_3
normal = '1.0 0.0 0.0'
[../]
[./inner_1]
type = ParsedAddSidesetGenerator
input = outer_3
combinatorial_geometry = 'x > 459.9 & x < 460.1 & y > 459.9'
new_sideset_name = inner_1
normal = '1.0 0.0 0.0'
[../]
[./inner_2]
type = ParsedAddSidesetGenerator
input = inner_1
combinatorial_geometry = 'x > 469.1 & x < 530.1 & y > 459.9 & y < 460.1'
new_sideset_name = inner_2
normal = '0.0 1.0 0.0'
[../]
[./inner_3]
type = ParsedAddSidesetGenerator
input = inner_2
combinatorial_geometry = 'x > 539.9 & x < 540.1 & y > 459.9'
new_sideset_name = inner_3
normal = '-1.0 0.0 0.0'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./layer]
order = CONSTANT
family = MONOMIAL
[../]
[./resid_x]
[../]
[./resid_y]
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
block = 0
save_in = 'resid_x resid_y'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
save_in = resid_x
block = 0
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
save_in = resid_y
block = 0
eta = 7.854
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
interfaces = '550.0'
direction = '0 1 0'
variable = layer
execute_on = initial
[../]
[]
[UserObjects]
[./solution_disp_x]
type = SolutionUserObject
mesh = output/big_model_out.e
system_variables = disp_x
[../]
[./solution_disp_y]
type = SolutionUserObject
mesh = output/big_model_out.e
system_variables = disp_y
[../]
[]
[Functions]
[./soln_dispx_fn]
type = SolutionFunction
solution = solution_disp_x
scale_factor = -1.0
[../]
[./soln_dispy_fn]
type = SolutionFunction
solution = solution_disp_y
scale_factor = -1.0
[../]
[]
[BCs]
[./disp_outer_1x]
type = FunctionDirichletBC
variable = disp_x
boundary = outer_1
function = soln_dispx_fn
[../]
[./disp_outer_2x]
type = FunctionDirichletBC
variable = disp_x
boundary = outer_2
function = soln_dispx_fn
[../]
[./disp_outer_3x]
type = FunctionDirichletBC
variable = disp_x
boundary = outer_3
function = soln_dispx_fn
[../]
[./disp_inner_1x]
type = DirichletBC
variable = disp_x
boundary = inner_1
value = 0.0
[../]
[./disp_inner_2x]
type = DirichletBC
variable = disp_x
boundary = inner_2
value = 0.0
[../]
[./disp_inner_3x]
type = DirichletBC
variable = disp_x
boundary = inner_3
value = 0.0
[../]
[./disp_outer_1y]
type = FunctionDirichletBC
variable = disp_y
boundary = outer_1
function = soln_dispy_fn
[../]
[./disp_outer_2y]
type = FunctionDirichletBC
variable = disp_y
boundary = outer_2
function = soln_dispy_fn
[../]
[./disp_outer_3y]
type = FunctionDirichletBC
variable = disp_y
boundary = outer_3
function = soln_dispy_fn
[../]
[./disp_inner_1y]
type = DirichletBC
variable = disp_y
boundary = inner_1
value = 0.0
[../]
[./disp_inner_2y]
type = DirichletBC
variable = disp_y
boundary = inner_2
value = 0.0
[../]
[./disp_inner_3y]
type = DirichletBC
variable = disp_y
boundary = inner_3
value = 0.0
[../]
[]
[Materials]
[./linear]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer
block = 0
layer_ids = '0'
shear_modulus = '1.7e9'
density = '1700.0'
poissons_ratio = '0.3'
[../]
[./strain_1]
type = ComputeSmallStrain
block = '0'
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = '0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_abs_tol = 1e-8
start_time = 0.0
end_time = 1.0
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[]
[Outputs]
file_base = output/DRM_layer_2d_inner_out
exodus = true
csv = true
[]
(examples/ex09/Soil_Response.i)
[Mesh]
type = GeneratedMesh
nx = 1
ny = 1
nz = 15
xmin = 0
ymin = 0
zmin = 0.0
xmax = 1
ymax = 1
zmax = 29.47
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '29.8'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[BCs]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./bottom_accel]
type = PresetAcceleration
boundary = 'back'
function = accel_bottom
variable = 'disp_x'
beta = 0.25
acceleration = 'accel_x'
velocity = 'vel_x'
[../]
[./Periodic]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom]
type = PiecewiseLinear
data_file = Ormsby_USE1.csv
scale_factor = 1.0
format = 'columns'
[../]
[./initial_zz]
type = ParsedFunction
value = '-1.7 * 9.81 * (29.47 - z)'
[../]
[./initial_xx]
type = ParsedFunction
value = '-1.7 * 9.81 * (29.47 - z) * 0.3/0.7'
[../]
[]
[Materials]
[./elastic_soil]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer_id
layer_ids = '0'
poissons_ratio = '0.3'
density = '1.7'
shear_modulus = '46282.5'
[../]
[./stress_beam2]
type = ComputeFiniteStrainElasticStress
[../]
[./strain_15]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
start_time = 0.0
end_time = 4.0
dt = 0.001
dtmin = 0.0001
nl_abs_tol = 1e-4
nl_rel_tol = 1e-5
l_tol = 1e-5
l_max_its = 25
timestep_tolerance = 1e-8
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x'
nodes = '3 63'
[../]
[./accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.001
damping_ratio = 0.01
start_frequency = 0.1
end_frequency = 1000
outputs = out
[../]
[]
[Outputs]
csv = true
exodus = true
perf_graph = true
print_linear_residuals = true
[./out]
execute_on = 'FINAL'
type = CSV
file_base = Soil_Final_NoDamp
[../]
[./out2]
type = Exodus
file_base = Exod_Soil_Final_NoDamp
interval = 10
[../]
[]
(test/tests/auxkernels/uniform_layer/uniform_layer_3d_default_layers.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 20
ny = 20
nz = 20
xmax = 100
ymax = 100
zmax = 100
[]
[AuxVariables]
[./layer_id]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '20 40 78 1000'
direction = '1 1 1'
execute_on = initial
[../]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = true
[]
(test/tests/vectorpostprocessors/response_spectra_calculator/response_spectra_calculator.i)
#@requirement F8.2
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 4
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
zmin = 0.0
zmax = 4.0
[]
[Controls]
[./period0]
type = TimePeriod
disable_objects = 'Kernels/inertia_x Kernels/inertia_y Kernels/inertia_z AuxKernels/accel_x AuxKernels/accel_y AuxKernels/accel_z AuxKernels/vel_x AuxKernels/vel_y AuxKernels/vel_z'
start_time = 0.0
end_time = 0.005 # same as dt used in the analysis
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
static_initialization = True
use_displaced_mesh = True
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = True
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 2
index_j = 0
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '20'
direction = '0 0 1'
execute_on = initial
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
poissons_ratio = '0.3'
density = '2000.0'
shear_modulus = '325e7'
[../]
[./stress1]
#Computes the stress, using linear elasticity
type = ComputeLinearElasticStress
block = 0
[../]
[./strain1]
#Computes the strain, assuming small strains
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./bottom_accel_x]
type = PresetAcceleration
boundary = back
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./bottom_accel_y]
type = PresetAcceleration
boundary = back
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./Periodic]
[./x_dir]
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
l_tol = 1e-8
start_time = 32
end_time = 33
dt = 0.005 # should be 0.005
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Outputs]
[./out]
type = CSV
execute_on = 'final'
[../]
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x accel_y'
nodes = '8 9'
[../]
[./accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.005
outputs = out
[../]
[]
(test/tests/materials/isoil/HYS_thin_layer_noaction.i)
# One element test to test the auto-generated thin_layer backbone curve for
# Coulomb friction. The top surface of the element (z=0) is fixed and the
# bottom surface (z=1) is moved by applying a cyclic preset displacement.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = '0 1 2 3 4'
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = '0 1 2 3 4'
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ComputeISoilStress
soil_type = 'thin_layer'
layer_variable = layer_id
layer_ids = '0'
initial_shear_modulus = '20000'
poissons_ratio = '0.45'
friction_coefficient = '0.7'
hardening_ratio = '0.001'
p_ref = '8.6209091'
initial_soil_stress = '-8.0263636 0 0 0 -8.0263636 0 0 0 -9.810'
[../]
[./sample_isoil_strain]
## Use ComputeFiniteStrain for soil_type = thin_layer since large strains are expected
type = ComputeFiniteStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20000'
poissons_ratio = '0.45'
density = '2.0'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_data_file_pressure_contact_AD.i)
# Test for cyclic tensile and compressive nonlinear soil behavior
# Soil column consists of 3 elements, each 1m x 1m x 1m, stacked on top of one
# another vertically. The middle element is nonlinear, while the top and bottom
# elements are linear elastic. The bottom boundary is fixed in all directions.
# A sawtooth pulse is applied in both X and Z directions of the soil column.
# The hydrostatic and vonMises stresses of the nonlinear element are printed out
# as output. When the nonlinear soil element is under tension, the hydrostatic
# stress reduces to zero, and the vonMises stress also reduces to zero
# indicating that the nonlinear soil element has failed. When the element is
# compressed, it regains strength. So, the hydrostatic stress becomes negative
# and vonMises stress becomes non-zero.
# Running this test with -snes_test_jacobian petsc option shows that the relative
# difference between the hand-coded and the FD jacobian is in the order of 2e-7
# throughout the simulation.
[Mesh]
[./generate]
type = GeneratedMeshGenerator # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 3 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 3.0
[../]
[./block1]
type = SubdomainBoundingBoxGenerator
input = generate
bottom_left = '0.0 0.0 0.0'
top_right = '1.0 1.0 1.0'
block_id = '1'
[../]
[./block2]
type = SubdomainBoundingBoxGenerator
input = block1
bottom_left = '0.0 0.0 1.0'
top_right = '1.0 1.0 2.0'
block_id = '2'
[../]
[./block3]
type = SubdomainBoundingBoxGenerator
input = block2
bottom_left = '0.0 0.0 2.0'
top_right = '1.0 1.0 3.0'
block_id = '3'
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_automatic_differentiation = true
use_displaced_mesh = false
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '4.0'
direction = '0 0 1'
execute_on = initial
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./vonmises]
type = ADRankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = vonmisesStress
[../]
[./hydrostatic]
type = ADRankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic
scalar_type = hydrostatic
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 'back'
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./top_disp]
type = FunctionDirichletBC
variable = disp_x
function = top_disp
boundary = front
[../]
[./top_disp_z]
type = FunctionDirichletBC
variable = disp_z
function = top_disp_z
boundary = front
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0 8.0'
y = '0.0 1.0 0.0 -1.0 0.0 0.0'
scale_factor = 5e-3
[../]
[./top_disp_z]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0 5.0 6.0 8.0'
y = '0.0 -2.0 0.0 3.0 0.0 -2.0 0.0 0.0'
scale_factor = -5e-3
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain_test_1.csv'
poissons_ratio = '0.3'
pressure_dependency = true
a0 = 0
a1 = 0
a2 = 1
b_exp = 0.5
p_ref = 1e-4
tension_pressure_cut_off = -1e-9
block = 2
[../]
[./sample_isoil_strain]
type = ADComputeIncrementalSmallStrain
block = '1 2 3'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '2'
elastic_modulus = '1.0'
poissons_ratio = '0.3'
density = '6'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[./sample_isoil_elasticitytensor2]
type = ADComputeIsotropicElasticityTensorSoil
block = '1 3'
elastic_modulus = '1.0e-2'
poissons_ratio = '0.3'
density = '2e-2'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[./sample_soil]
type = ADComputeFiniteStrainElasticStress
block = '1 3'
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 6.0
dt = 0.01
dtmin = 0.01
nl_max_its = 200
timestep_tolerance = 1e-6
nl_rel_tol = 5e-5
nl_abs_tol = 1e-7
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_x
[../]
[./disp_6y]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_y
[../]
[./disp_6z]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_z
[../]
[./strain_zx]
type = ElementalVariableValue
variable = strain_zx
elementid = 1
[../]
[./stress_zx]
type = ElementalVariableValue
variable = stress_zx
elementid = 1
[../]
[./hydrostatic]
type = ElementalVariableValue
variable = hydrostatic
elementid = 1
[../]
[./vonmises]
type = ElementalVariableValue
variable = vonmises
elementid = 1
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[./console]
type = Console
max_rows = 1
[../]
[]
(test/tests/auxkernels/uniform_layer/uniform_layer_2d_nodal.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 20
ny = 20
xmax = 100
ymax = 100
[]
[AuxVariables]
[./layer_id]
[../]
[]
[AuxKernels]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '20 40 78 1000'
layer_ids = '6 24 19 80'
direction = '1 1 0'
execute_on = initial
[../]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = true
[]
(test/tests/materials/isoil/HYS_darendeli_noaction.i)
# One element test to test the auto-generated Darendeli backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress vs shear strain curve was verified against that obtained
# from DEEPSOIL.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
#use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ComputeISoilStress
soil_type = 'darendeli'
layer_variable = layer_id
layer_ids = '0'
over_consolidation_ratio = '1'
plasticity_index = '0'
initial_shear_modulus = '20000'
number_of_points = 10
poissons_ratio = '0.3'
initial_soil_stress = '-4.204286 0 0 0 -4.204286 0 0 0 -9.810'
p_ref = '6.07286'
wave_speed_calculation = true
[../]
[./sample_isoil_strain]
type = ComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20000'
poissons_ratio = '0.3'
density = '2'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
[./out]
type = Exodus
sync_times = '0 1 2 3 4 5 6 7 8'
sync_only = true
[../]
[]
(test/tests/mastodonblock/combined/mastodon_block_actions.i)
# One element model to test Mastodon Block Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
# UPDATE THIS FILE WITH MASTODON BLOCK ACTIONS AS THEY ARE IMPLEMENTED
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[./Model]
dynamic_analysis = true
[../]
[./Outputs]
stress_strain_output = true
[../]
[]
[AuxVariables]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(examples/ex01b/HYS_darendeli_explicit.i)
# One element test to test the auto-generated Darendeli backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress vs shear strain curve was verified against that obtained
# from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
# stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
eta = 7.854
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
eta = 7.854
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[../]
[./vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[../]
[./accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[../]
[./vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_y
[../]
[./accel_z]
type = TestNewmarkTI
variable = accel_z
displacement = disp_z
first = false
[../]
[./vel_z]
type = TestNewmarkTI
variable = vel_z
displacement = disp_z
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = FunctionDirichletBC
boundary = 5
function = top_disp
variable = 'disp_x'
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = '../ex01a/Displacement2.csv'
format = columns
[../]
[]
# [Materials]
# [./sample_isoil]
# type = ComputeISoilStress
# soil_type = 'darendeli'
# layer_variable = layer_id
# layer_ids = '0'
# initial_soil_stress = '-4.204286 0 0 0 -4.204286 0 0 0 -9.810'
# poissons_ratio = '0.3'
# number_of_points = 10
# over_consolidation_ratio = '1'
# plasticity_index = '0'
# initial_shear_modulus = '20000'
# p_ref = '6.07286'
# block = '0'
# [../]
# [./sample_isoil_strain]
# type = ComputeIncrementalSmallStrain
# block = '0'
# displacements = 'disp_x disp_y disp_z'
# implicit = false
# [../]
# [./sample_isoil_elasticitytensor]
# type = ComputeIsotropicElasticityTensorSoil
# block = '0'
# density = '2'
# wave_speed_calculation = false
# layer_ids = '0'
# poissons_ratio = '0.3'
# shear_modulus = '20000'
# layer_variable = layer_id
# [../]
# []
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'darendeli'
layer_variable = layer_id
layer_ids = '0'
over_consolidation_ratio = '1'
plasticity_index = '0'
initial_shear_modulus = '20000'
number_of_points = 10
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-4.204286 0 0 0 -4.204286 0 0 0 -9.810'
density = '2'
p_ref = '6.07286'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
end_time = 8.0
timestep_tolerance = 1e-6
l_abs_tol = 1e-12
[./TimeIntegrator]
type = CentralDifference
[../]
[./TimeStepper]
type = PostprocessorDT
postprocessor = time_step
dt = 0.001
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[./time_step]
type = CriticalTimeStep
factor = 0.9
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
file_base = Test # HYS_Darendeli_explicit
[]
(test/tests/materials/isoil/HYS_pressure_dependent_strength.i)
# One element test to check pressure dependent strength calcualtion.
# The element is first intialized with stresses corresponding to acceleration due to gravity (g).
# Then a body force equal to 3 * g is applied to the element thereby increasing the pressure experienced
# by the element. The element is then sheared by moving the front surface (z = 0) in the x direction.
# The stength of the resulting stress-strain can be varied with pressure dependent stength parameters,
# a0, a1, and a2, and with p_ref. Setting b_exp = 0 assures that MASTODON does not directly modify the
# backbone stiffness. Although, a change in strength naturally leads to one in stiffness.
# Five combinations of the parameters a_0, a_1, a_2, and p_ref were tested using this input file,
# but only one case can be used at a time.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -29.43
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain20.csv'
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-12613 0 0 0 -12613 0 0 0 -29430'
pressure_dependency = true
b_exp = 0.0
tension_pressure_cut_off = -1
density = '2000'
initial_shear_modulus = '19683812.98'
## Case 1
a0 = 0
a1 = 0
a2 = 1
p_ref = 6072.86
## Case 2
#a0 = 0
#a1 = 1
#a2 = 0
#p_ref = 6072.86
## Case 3
#a0 = 1
#a1 = 0
#a2 = 0
#p_ref = 6072.86
## Case 4
#a0 = 0
#a1 = 1
#a2 = 0
#p_ref = 29430
## Case 5
#a0 = 0
#a1 = 1
#a2 = 0
#p_ref = 42043
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8.0
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./gamma_zx_el]
type = ScalePostprocessor
value = strain_zx_el
scaling_factor = 2
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[./mean_stress]
type = LinearCombinationPostprocessor
pp_names = 'stress_xx_el stress_yy_el stress_zz_el'
pp_coefs = '-0.3333 -0.3333 -0.3333'
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(examples/ex04/2BlockFriction_Isoilunit.i)
[Mesh]
type = FileMesh
file = '2blockfriction_isoilunit.e'
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta=0.0
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta=0.0
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 0.0
[../]
[]
[AuxKernels]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 2
index_j = 0
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '11.0'
direction = '0.0 0.0 1.0'
block = 1002
execute_on = initial
[../]
[]
[BCs]
[./bottom_x]
type = DirichletBC
variable = disp_x
boundary = 109
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 109
value = 0.0
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 109
value = 0.0
[../]
[./Periodic]
[./x_dir1]
variable = 'disp_x disp_y disp_z'
primary = '101'
secondary = '103'
translation = '10.0 0.0 0.0'
[../]
[./y_dir1]
variable = 'disp_x disp_y disp_z'
primary = '102'
secondary = '104'
translation = '0.0 10.0 0.0'
[../]
[./x_dir2]
variable = 'disp_x disp_y disp_z'
primary = '105'
secondary = '107'
translation = '10.0 0.0 0.0'
[../]
[./y_dir2]
variable = 'disp_x disp_y disp_z'
primary = '106'
secondary = '108'
translation = '0.0 10.0 0.0'
[../]
[../]
[./X-dir]
type = FunctionDirichletBC
boundary = 110
variable = disp_x
function = loading_bc
[../]
[]
[Functions]
[./loading_bc]
type = PiecewiseLinear
data_file = 'rampload8_unit.csv'
format = columns
[../]
[./initial_zztop]
type = ParsedFunction
value = '8792.0 * -9.81 * (21.0 - z)'
[../]
[./initial_ytop]
type = ParsedFunction
value = '8792.0 * -9.81 * (21.0 - z) * 0.2/0.8'
[../]
[./initial_zzmid]
type = ParsedFunction
value = '-862495.2 - 2500.0 * -9.81 * (11.0 - z)'
[../]
[./initial_ymid]
type = ParsedFunction
value = '(-862495.2 - 2500.0 * -9.81 * (11.0 - z)) * 0.45/0.55'
[../]
[./initial_zzbot]
type = ParsedFunction
value = '-887020.2 - 2500.0 * -9.81 * (10.0 - z)'
[../]
[./initial_ybot]
type = ParsedFunction
value = '(-887020.2 - 2500.0 * -9.81 * (10.0 - z)) * 0.3/0.7'
[../]
[]
[Materials]
[./elasticity_tensor_top]
youngs_modulus = 6.5e10 #Pa
poissons_ratio = 0.2
type = ComputeIsotropicElasticityTensor
block = 1003
[../]
[./strain_top]
#Computes the strain, assuming small strains
type = ComputeIncrementalSmallStrain
block = 1003
displacements = 'disp_x disp_y disp_z'
eigenstrain_names = ini_stress
[../]
[./strain_from_initial_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '0 0 0 0 0 0 0 0 initial_zztop'
eigenstrain_name = ini_stress
[../]
[./stress_top]
#Computes the stress, using linear elasticity
type = ComputeFiniteStrainElasticStress
block = 1003
[../]
[./den_top]
type = GenericConstantMaterial
block = 1003
prop_names = density
prop_values = 8792 #kg/m3
[../]
[./elasticity_tensor_bot]
youngs_modulus = 7e9#Pa
poissons_ratio = 0.3
type = ComputeIsotropicElasticityTensor
block = 1001
[../]
[./strain_bot]
#Computes the strain, assuming small strains
type = ComputeIncrementalSmallStrain
block = 1001
displacements = 'disp_x disp_y disp_z'
eigenstrain_names = 'ini_stress_bot'
[../]
[./stress_bot]
#Computes the stress, using linear elasticity
type = ComputeFiniteStrainElasticStress
block = 1001
[../]
[./strain_from_initial_stress_bot]
type = ComputeEigenstrainFromInitialStress
block = 1001
initial_stress = 'initial_ybot 0 0 0 initial_ybot 0 0 0 initial_zzbot'
eigenstrain_name = ini_stress_bot
[../]
[./den_bot]
type = GenericConstantMaterial
block = 1001
prop_names = density
prop_values = 2500 #kg/m3
[../]
[./I_Soil]
[./soil1]
layer_variable = layer_id
layer_ids = '0'
soil_type = 'user_defined'
backbone_curve_files = 'backbone_curveunit.csv'
poissons_ratio = '0.45'
block = 1002
initial_soil_stress = 'initial_ymid 0 0 0 initial_ymid 0 0 0 initial_zzmid'
density = '2500'
#initial_bulk_modulus = '7.83e10'
initial_shear_modulus = '2.70588e11'
#taumax = 275998
# theta_1 = '0'
# theta_2 = '0'
# theta_3 = '0'
# theta_4 = '0'
# theta_5 = '0'
pressure_dependency = true
#b_exp = 0.0
p_ref = 880500
#tension_pressure_cut_off = -1
a0 = 0
a1 = 0
a2 = 1
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-7
nl_rel_tol = 1e-7
l_tol = 1e-6
l_max_its = 20
start_time = 0
end_time = 1.2
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./stres_xx_interface]
type = ElementAverageValue
block = '1002'
variable = stress_xx
[../]
[./stres_xy_interface]
type = ElementAverageValue
block = '1002'
variable = stress_xy
[../]
[./stres_yy_interface]
type = ElementAverageValue
block = '1002'
variable = stress_yy
[../]
[./stres_yz_interface]
type = ElementAverageValue
block = '1002'
variable = stress_yz
[../]
[./stres_zz_interface]
type = ElementAverageValue
block = '1002'
variable = stress_zz
[../]
[./stress_zx_interface]
type = ElementAverageValue
block = '1002'
variable = stress_zx
[../]
[./strain_zx_interface]
type = ElementAverageValue
block = '1002'
variable = strain_zx
[../]
[]
[Outputs]
csv = true
exodus = true
perf_graph = true
print_linear_residuals = false
[./screen]
type = Console
max_rows = 1
[../]
[]
(test/tests/materials/isoil/HYS_stiffness_and_strength_pressure_dependency_noaction.i)
# One element test to check pressure dependent stiffness and yield strength calcualtion.
# The element is first intialized with stresses corresponding to acceleration due to gravity (g).
# Then a body force equal to 3 * g is applied to the element thereby increasing the pressure experienced
# by the element. The element is then sheared by moving the front surface (z = 0) in the x direction.
# The resulting stress-strain curve is stiffer due to the increase in pressure and also the maximum/ultimate shear
# stress at which the material completely fails is also higher due to the yield strength pressure correction.
# This file DOESNOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -29.43
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = 'initial'
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ComputeISoilStress
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain20.csv'
poissons_ratio = '0.3'
initial_soil_stress = '-12613 0 0 0 -12613 0 0 0 -29430'
pressure_dependency = true
b_exp = 0.5
p_ref = 6072.86
tension_pressure_cut_off = -1
initial_shear_modulus = '19683812.98'
a0 = 0
a1 = 0
a2 = 1
[../]
[./sample_isoil_strain]
type = ComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '19683812.98'
poissons_ratio = '0.3'
density = '2000'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 10
dt = 0.05
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
[./out]
type = Exodus
hide = 'vel_x vel_y vel_z accel_x accel_y accel_z'
[../]
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_stiffness_and_strength_pressure_dependency.i)
# One element test to check pressure dependent stiffness and yield strength calcualtion.
# The element is first intialized with stresses corresponding to acceleration due to gravity (g).
# Then a body force equal to 3 * g is applied to the element thereby increasing the pressure experienced
# by the element. The element is then sheared by moving the front surface (z = 0) in the x direction.
# The resulting stress-strain curve is stiffer due to the increase in pressure and also the maximum/ultimate shear
# stress at which the material completely fails is also higher due to the yield strength pressure correction.
# Two combinations of the parameters a_0, a_1, and a_2 were tested using this input file, but only
# one case can be used at a time.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -29.43
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = 'initial'
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain20.csv'
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-12613 0 0 0 -12613 0 0 0 -29430'
pressure_dependency = true
b_exp = 0.5
p_ref = 6072.86
tension_pressure_cut_off = -1
density = '2000'
initial_shear_modulus = '19683812.98'
# Case 1
a0 = 0
a1 = 0
a2 = 1
# Case 2
#a0 = 0
#a1 = 1
#a2 = 0
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 10
dt = 0.05
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
[./out]
type = Exodus
hide = 'vel_x vel_y vel_z accel_x accel_y accel_z'
[../]
csv = true
perf_graph = false
[]
(examples/ex07/fixed_outer.i)
[Mesh]
[./generate]
type = GeneratedMeshGenerator
dim = 2
xmin = 450.0
xmax = 550.0
ymin = 450.0
ymax = 500.0
nx = 10
ny = 5
[../]
[./SubdomainBoundingBox]
type = SubdomainBoundingBox
input = generate
block_id = 1
bottom_left = '460.0 460.0 0.0'
top_right = '540.0 500.0 0.0'
[../]
[./ed0]
type = BlockDeletionGenerator
input = SubdomainBoundingBoxGenerator
block_id = 1
[../]
[./outer_1] # outer-left boundary
type = ParsedAddSidesetGenerator
input = ed0
combinatorial_geometry = 'x > 449.9 & x < 450.1 & y > 449.9'
new_sideset_name = outer_1
normal = '-1.0 0.0 0.0'
[../]
[./outer_2] # outer-bottom boundary
type = ParsedAddSidesetGenerator
input = outer_1
combinatorial_geometry = 'x > 459.1 & x < 541.0 & y > 449.9 & y < 450.1'
new_sideset_name = outer_2
normal = '0.0 -1.0 0.0'
[../]
[./outer_3] # outer-right boundary
type = ParsedAddSidesetGenerator
input = outer_2
combinatorial_geometry = 'x > 549.1 & x < 550.1 & y > 449.9'
new_sideset_name = outer_3
normal = '1.0 0.0 0.0'
[../]
[./inner_1] # inner-left boundary
type = ParsedAddSidesetGenerator
input = outer_3
combinatorial_geometry = 'x > 459.9 & x < 460.1 & y > 459.9'
new_sideset_name = inner_1
normal = '1.0 0.0 0.0'
[../]
[./inner_2] # inner-bottom boundary
type = ParsedAddSidesetGenerator
input = inner_1
combinatorial_geometry = 'x > 469.1 & x < 530.1 & y > 459.9 & y < 460.1'
new_sideset_name = inner_2
normal = '0.0 1.0 0.0'
[../]
[./inner_3] # inner-right boundary
type = ParsedAddSidesetGenerator
input = inner_2
combinatorial_geometry = 'x > 539.9 & x < 540.1 & y > 459.9'
new_sideset_name = inner_3
normal = '-1.0 0.0 0.0'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./layer]
[../]
[./resid_x]
[../]
[./resid_y]
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
block = 0
save_in = 'resid_x resid_y'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
save_in = resid_x
block = 0
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
save_in = resid_y
block = 0
eta = 7.854
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
interfaces = '550.0'
direction = '0 1 0'
variable = layer
execute_on = initial
[../]
[]
[UserObjects]
[./solution_disp_x]
type = SolutionUserObject
mesh = output/big_model_out.e
system_variables = disp_x
[../]
[./solution_disp_y]
type = SolutionUserObject
mesh = output/big_model_out.e
system_variables = disp_y
[../]
[]
[Functions]
[./soln_dispx_fn]
type = SolutionFunction
solution = solution_disp_x
[../]
[./soln_dispy_fn]
type = SolutionFunction
solution = solution_disp_y
[../]
[]
[BCs]
[./disp_inner_1x]
type = FunctionDirichletBC
variable = disp_x
boundary = inner_1
function = soln_dispx_fn
[../]
[./disp_inner_2x]
type = FunctionDirichletBC
variable = disp_x
boundary = inner_2
function = soln_dispx_fn
[../]
[./disp_inner_3x]
type = FunctionDirichletBC
variable = disp_x
boundary = inner_3
function = soln_dispx_fn
[../]
[./disp_outer_1x]
type = DirichletBC
variable = disp_x
boundary = outer_1
value = 0.0
[../]
[./disp_outer_2x]
type = DirichletBC
variable = disp_x
boundary = outer_2
value = 0.0
[../]
[./disp_outer_3x]
type = DirichletBC
variable = disp_x
boundary = outer_3
value = 0.0
[../]
[./disp_inner_1y]
type = FunctionDirichletBC
variable = disp_y
boundary = inner_1
function = soln_dispy_fn
[../]
[./disp_inner_2y]
type = FunctionDirichletBC
variable = disp_y
boundary = inner_2
function = soln_dispy_fn
[../]
[./disp_inner_3y]
type = FunctionDirichletBC
variable = disp_y
boundary = inner_3
function = soln_dispy_fn
[../]
[./disp_outer_1y]
type = DirichletBC
variable = disp_y
boundary = outer_1
value = 0.0
[../]
[./disp_outer_2y]
type = DirichletBC
variable = disp_y
boundary = outer_2
value = 0.0
[../]
[./disp_outer_3y]
type = DirichletBC
variable = disp_y
boundary = outer_3
value = 0.0
[../]
[]
[Materials]
[./linear]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer
block = 0
layer_ids = '0'
shear_modulus = '1.7e9'
density = '1700.0'
poissons_ratio = '0.3'
[../]
[./strain_1]
type = ComputeSmallStrain
block = '0'
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = '0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_abs_tol = 1e-8
start_time = 0.0
end_time = 1.0
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[]
[Outputs]
file_base = output/DRM_layer_2d_outer_out
exodus = true
csv = true
[]
(test/tests/materials/isoil/HYS_data_file_verification.i)
# One element test to test the user-defined backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# This test is identical to HYS_data_file.i except that the element was assumed
# to have zero initial stresses, no self-weight (i.e., zero gravity), and
# undamped vibration.
# The resulting backbone curve is identical to the one provided as input.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
#use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
#use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
#use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
#use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
layer_variable = layer_id
layer_ids = '0'
soil_type = 'user_defined'
backbone_curve_files = 'stress_strain_darendeli.csv'
poissons_ratio = '0.3'
initial_shear_modulus = '19571500'
block = 0
density = '2000'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./gamma_zx_el] # engineering shear strain
type = ScalePostprocessor
value = strain_zx_el
scaling_factor = 2
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/mastodonblock/model/model_static.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[./Model]
dynamic_analysis = false
[../]
[]
[Variables]
inactive = 'disp_x disp_y disp_z'
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
inactive = 'DynamicTensorMechanics'
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[AuxKernels]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
boundary = 0
variable = disp_x
value = 0
[../]
[./y_bot]
type = DirichletBC
boundary = 0
variable = disp_y
value = 0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./x_top]
type = FunctionDirichletBC
boundary = 5
variable = disp_x
function = disp_top_x
[../]
[./y_top]
type = FunctionDirichletBC
boundary = 5
variable = disp_y
function = disp_top_y
[../]
[]
[Functions]
[./disp_top_x]
type = PiecewiseLinear
data_file = 'disp.csv'
format = columns
scale_factor = 1.0
[../]
[./disp_top_y]
type = PiecewiseLinear
data_file = 'disp.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.3'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/combined/mastodon_block_actions_2D.i)
# One element model to test Mastodon Block Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
# UPDATE THIS FILE WITH MASTODON BLOCK ACTIONS AS THEY ARE IMPLEMENTED
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 2 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
[]
[Mastodon]
[./Model]
dynamic_analysis = true
dim = 2
eta = 0.64026
zeta = 0.000781
[../]
[./Outputs]
stress_strain_output = true
[../]
[]
[AuxVariables]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 1 0'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = bottom
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y'
primary = left
secondary = right
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_2x]
type = NodalVariableValue
nodeid = 2
variable = disp_x
[../]
[./disp_2y]
type = NodalVariableValue
nodeid = 2
variable = disp_y
[../]
[./vel_2x]
type = NodalVariableValue
nodeid = 2
variable = vel_x
[../]
[./vel_2y]
type = NodalVariableValue
nodeid = 2
variable = vel_y
[../]
[./accel_2x]
type = NodalVariableValue
nodeid = 2
variable = accel_x
[../]
[./accel_2y]
type = NodalVariableValue
nodeid = 2
variable = accel_y
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/model/model_dynamic_2D.i)
# One element 2D model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 2 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
[]
[Mastodon]
[./Model]
block = 0
dynamic_analysis = true
dim = 2
eta = 0.64026
zeta = 0.000781
[../]
[]
[Variables]
inactive = 'disp_x disp_y'
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
inactive = 'accel_x vel_x accel_y vel_y'
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
inactive = 'DynamicTensorMechanics inertia_x inertia_y'
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[]
[AuxKernels]
inactive = 'accel_x vel_x accel_y vel_y'
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 1 0'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = bottom
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y'
primary = left
secondary = right
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_2x]
type = NodalVariableValue
nodeid = 2
variable = disp_x
[../]
[./disp_2y]
type = NodalVariableValue
nodeid = 2
variable = disp_y
[../]
[./vel_2x]
type = NodalVariableValue
nodeid = 2
variable = vel_x
[../]
[./vel_2y]
type = NodalVariableValue
nodeid = 2
variable = vel_y
[../]
[./accel_2x]
type = NodalVariableValue
nodeid = 2
variable = accel_x
[../]
[./accel_2y]
type = NodalVariableValue
nodeid = 2
variable = accel_y
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/pra/sub_sub.i)
# Test to demonstrate the Seismic Probabilistic Risk Assessment (SPRA)
# infrastructure in MASTODON. This test involves three input files:
#
# 1. master.i - The Master file that bins the hazard curve and scales ground
# motions for each bin for use in probabilistic simulations.
#
# 2. sub.i - The file that obtains the scaled ground motions from master.i and
# transfers these ground motions as inputs to the finite-element model and also
# contains the parameters for probabilistic simulation. This file acts as the
# sub file for master.i and master file for subsub.i.
#
# 3. subsub.i - The file that contains the finite-element model.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Controls]
# needed for probabilistic simulations
[./stochastic]
type = SamplerReceiver
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
# PiecewiseLinear function that is receiving scaled GMs from sub.i. Inputs here are dummy.
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'gm_data/ground_motion_00.csv'
format = columns
scale_factor = 1.0
xy_in_file_only = false
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
poissons_ratio = '0.3'
density = '2000.0'
shear_modulus = '1.2e5'
scale_factor_density = 1.0
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
end_time = 0.05
dt = 0.005
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./accel_2x]
type = NodalVariableValue
nodeid = 2
variable = accel_x
[../]
[./accel_2y]
type = NodalVariableValue
nodeid = 2
variable = accel_y
[../]
[./accel_2z]
type = NodalVariableValue
nodeid = 2
variable = accel_z
[../]
[]
[Outputs]
csv = true
[]
(test/tests/materials/isoil/HYS_data_file_AD.i)
#@requirement F4.2
# One element test to test the user-defined backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve is same as the one provided as input.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
#use_displaced_mesh = false
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
#use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
#use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.85
density = 'reg_density'
#use_displaced_mesh = false
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
density = 'reg_density'
#use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
layer_variable = layer_id
layer_ids = '0'
soil_type = 'user_defined'
backbone_curve_files = 'stress_strain_darendeli.csv'
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
density = '2000'
initial_shear_modulus = '20155518.98'
use_automatic_differentiation = true
[../]
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(examples/ex03b/shear_beam_Isoil_free_field_explicit.i)
[Mesh]
type = GeneratedMesh
nx = 1
ny = 1
nz = 20
xmin = -0.5
ymin = -0.5
zmin = 0.0
xmax = 0.5
ymax = 0.5
zmax = 20.0
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
# stiffness_damping_coefficient = 0.000781
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
# eta = 0.64026
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
# eta = 0.64026
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
# eta = 0.64026
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[../]
[./vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[../]
[./accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[../]
[./vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_y
[../]
[./accel_z]
type = TestNewmarkTI
variable = accel_z
displacement = disp_z
first = false
[../]
[./vel_z]
type = TestNewmarkTI
variable = vel_z
displacement = disp_z
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20.2'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[BCs]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./bottom_shake]
type = FunctionDirichletBC
boundary = 'back'
function = disp_bottom
variable = 'disp_x'
[../]
[./Periodic]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./disp_bottom]
type = PiecewiseLinear
data_file = chichi_bc_mpss_xp20_disp.csv
format = 'columns'
[../]
[./initial_zz]
type = ParsedFunction
value = '-2000.0 * 9.81 * (20.0 - z)'
[../]
[./initial_xx]
type = ParsedFunction
value = '-2000.0 * 9.81 * (20.0 - z) * 0.3/0.7'
[../]
[]
# [Materials]
# [./sample_isoil]
# type = ComputeISoilStress
# soil_type = 'gqh'
# layer_variable = layer_id
# layer_ids = '0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19'
# initial_soil_stress = 'initial_xx 0 0 0 initial_xx 0 0 0 initial_zz'
# poissons_ratio = '0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3'
# number_of_points = 100
# ### GQ/H ####
# initial_shear_modulus = '125000000 118098000 111392000 103968000 96800000 89888000 83232000 76832000 70688000 64800000 59168000 53792000 48672000 43808000 39200000 34848000 30752000 26912000 23328000 20000000'
# theta_1 = '-6.66 -6.86 -7.06 -7.35 -7.65 -7.95 -8.3 -8.61 -8.95 -9.3 -9.61 -9.92 -10.0 -10.0 -10.0 -10.0 -10.0 -9.31 -7.17 -5.54'
# theta_2 = '5.5 5.7 5.9 6.2 6.6 6.9 7.3 7.6 8.0 8.4 8.6 8.8 8.82 8.71 8.55 8.3 7.88 6.4 2.4 -2.28'
# theta_3 = '1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0'
# theta_4 = '1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0'
# theta_5 = '0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99'
# taumax = '292500 277500 262500 247500 232500 217500 202500 187500 172500 157500 142500 127500 112500 97500 82500 67500 52500 37500 22500 7500'
# p_ref = '236841 224695 212550 200404 188258 176112 163967 151821 139675 127530 115384 103238 91092 78947 66801 54655 42510 30364 18218 6072'
# ######
# a0 = 1.0
# a1 = 0.0
# a2 = 0.0
# b_exp = 0.0
# block = '0'
# [../]
# [./sample_isoil_strain]
# type = ComputeIncrementalSmallStrain
# block = '0'
# displacements = 'disp_x disp_y disp_z'
# implicit = false
# [../]
# [./sample_isoil_elasticitytensor]
# type = ComputeIsotropicElasticityTensorSoil
# block = '0'
# density = '2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0'
# wave_speed_calculation = false
# layer_ids = '0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19'
# poissons_ratio = '0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3'
# shear_modulus = '125000000 118098000 111392000 103968000 96800000 89888000 83232000 76832000 70688000 64800000 59168000 53792000 48672000 43808000 39200000 34848000 30752000 26912000 23328000 20000000'
# layer_variable = layer_id
# [../]
# []
[Materials]
[./I_Soil]
[./soil_all]
block = 0
layer_variable = layer_id
layer_ids = '0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19'
initial_soil_stress = 'initial_xx 0 0 0 initial_xx 0 0 0 initial_zz'
poissons_ratio = '0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3'
soil_type = 'gqh'
number_of_points = 100
### GQ/H ####
initial_shear_modulus = '125000000 118098000 111392000 103968000 96800000 89888000 83232000 76832000 70688000 64800000 59168000 53792000 48672000 43808000 39200000 34848000 30752000 26912000 23328000 20000000'
theta_1 = '-6.66 -6.86 -7.06 -7.35 -7.65 -7.95 -8.3 -8.61 -8.95 -9.3 -9.61 -9.92 -10.0 -10.0 -10.0 -10.0 -10.0 -9.31 -7.17 -5.54'
theta_2 = '5.5 5.7 5.9 6.2 6.6 6.9 7.3 7.6 8.0 8.4 8.6 8.8 8.82 8.71 8.55 8.3 7.88 6.4 2.4 -2.28'
theta_3 = '1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0'
theta_4 = '1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0'
theta_5 = '0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99'
taumax = '292500 277500 262500 247500 232500 217500 202500 187500 172500 157500 142500 127500 112500 97500 82500 67500 52500 37500 22500 7500'
p_ref = '236841 224695 212550 200404 188258 176112 163967 151821 139675 127530 115384 103238 91092 78947 66801 54655 42510 30364 18218 6072'
######
density = '2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0'
a0 = 1.0
a1 = 0.0
a2 = 0.0
b_exp = 0.0
[../]
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
end_time = 85.4
timestep_tolerance = 1e-6
l_abs_tol = 1e-12
# dt = 0.001
[./TimeIntegrator]
type = CentralDifference
[../]
[./TimeStepper]
type = PostprocessorDT
postprocessor = time_step
dt = 0.001
[../]
[]
[Postprocessors]
[./accelx_top]
type = PointValue
point = '0.0 0.0 20.0'
variable = accel_x
[../]
[./accelx_top1]
type = PointValue
point = '0.0 0.0 19.0'
variable = accel_x
[../]
[./accelx_mid]
type = PointValue
point = '0.0 0.0 10.0'
variable = accel_x
[../]
[./accelx_bot]
type = PointValue
point = '0.0 0.0 0.0'
variable = accel_x
[../]
[./time_step]
type = CriticalTimeStep
factor = 0.9
[../]
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x'
nodes = '80'
[../]
[./accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.001
outputs = out
[../]
[]
[Outputs]
csv = true
exodus = true
perf_graph = true
print_linear_residuals = true
[./out]
type = CSV
execute_on = 'timestep_begin'
file_base = topsoil_response_explicit
[../]
[./screen]
type = Console
max_rows = 1
interval = 1000
[../]
[]
(examples/ex07/big_model.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 100
ny = 50
xmin = 0.0
xmax = 1000.0
ymin = 0.0
ymax = 500.0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./layer]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
block = 0
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x1]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
block = 0
eta = 7.854
[../]
[./inertia_y1]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
block = 0
eta = 7.854
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
interfaces = '550.0'
direction = '0 1 0'
variable = layer
execute_on = initial
[../]
[]
[DiracKernels]
[./SeismicSource]
[./one_source]
displacements = 'disp_x disp_y'
slip = y_force
strike = 0.0 # strike angle =0, x aligned with North
dip = 0.0 # dip angle = 0, angle fault makes with horizontal
rake = 90.0 # rake angle = pi/2, gives slip direction
shear_modulus = 1.996e7
area = 1.0
number = 501
position_function = 'x_pos y_pos'
[../]
[../]
[]
[BCs]
[./NonReflectingBC]
[./back]
displacements = 'disp_x disp_y'
velocities = 'vel_x vel_y'
accelerations = 'accel_x accel_y'
beta = 0.25
gamma = 0.5
boundary = 'left right bottom'
shear_wave_speed = 1000.0
density = 1700.0
p_wave_speed=1870.829
[../]
[../]
[]
[Functions]
[./y_force]
type = PiecewiseLinear
data_file = 'slip_displacement_6_5_hz.csv'
format = 'columns'
[../]
[./x_pos]
type = PiecewiseLinear
data_file = 'x_position.csv'
format = 'columns'
[../]
[./y_pos]
type = PiecewiseLinear
data_file = 'y_position.csv'
format = 'columns'
[../]
[]
[Materials]
[./linear]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer
block = 0
layer_ids = '0'
shear_modulus = '1.7e9'
density = '1700.0'
poissons_ratio = '0.3'
[../]
[./strain_1]
type = ComputeSmallStrain
block = '0'
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = '0'
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[./node_x_50]
type = PointValue
point = '500.0 500.0 0.0'
variable = vel_x
[../]
[./node_y_50]
type = PointValue
point = '500.0 500.0 0.0'
variable = vel_y
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
nl_abs_tol = 1e-8
start_time = 0.0
end_time = 1.0
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Outputs]
file_base = output/big_model_out
exodus = true
csv = true
[]
(test/tests/materials/isoil/HYS_pressure_dependent_stiffness.i)
# One element test to check pressure dependent stiffness calcualtion.
# The element is first intialized with stresses corresponding to acceleration due to gravity (g).
# Then a body force equal to 3 * g is applied to the element thereby increasing the pressure experienced
# by the element. The element is then sheared by moving the front surface (z = 0) in the x direction.
# The resulting stress-strain curve is stiffer due to the increase in pressure but the maximum/ultimate shear
# stress at which the material completely fails still remains the same.
# Three different values of the parameter b_exp were tested using this input file, but only one case
# case can be used at a time.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -29.43
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain20.csv'
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-12613 0 0 0 -12613 0 0 0 -29430'
pressure_dependency = true
#b_exp = 1.0 # Case 1
b_exp = 0.5 # Case 2
#b_exp = 0.0 # Case 3
p_ref = 6072.86
initial_shear_modulus = '19683812.98'
tension_pressure_cut_off = -1
a0 = 1
a1 = 0
a2 = 0
density = '2000'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8.0
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./gamma_zx_el]
type = ScalePostprocessor
value = strain_zx_el
scaling_factor = 2
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[./mean_stress]
type = LinearCombinationPostprocessor
pp_names = 'stress_xx_el stress_yy_el stress_zz_el'
pp_coefs = '-0.3333 -0.3333 -0.3333'
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_GQH_twolayers_noaction.i)
[Mesh]
type = GeneratedMesh
nx = 1
ny = 1
nz = 2
xmin = -0.5
ymin = -0.5
zmin = 0.0
xmax = 0.5
ymax = 0.5
zmax = 2.0
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 0.64026
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 0.64026
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 0.64026
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '1.0 2.02'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[BCs]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./bottom_disp]
type = PresetDisplacement
boundary = 'back'
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = disp_bottom
[../]
[./Periodic]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./disp_bottom]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[./initial_zz]
type = ParsedFunction
value = '-2000.0 * 9.81 * (20.0 - z)'
[../]
[./initial_xx]
type = ParsedFunction
value = '-2000.0 * 9.81 * (20.0 - z) * 0.3/0.7'
[../]
[]
[Materials]
[./sample_isoil]
type = ComputeISoilStress
soil_type = 'gqh'
layer_variable = layer_id
layer_ids = '0 1'
theta_1 = '-6.66 -6.86'
theta_2 = '5.5 5.7'
theta_3 = '1.0 1.0'
theta_4 = '1.0 1.0'
theta_5 = '0.99 0.99'
taumax = '292500 277500'
p_ref = '236841 224695'
initial_shear_modulus = '125000000 118098000'
number_of_points = 100
poissons_ratio = '0.3 0.3'
initial_soil_stress = 'initial_xx 0 0 0 initial_xx 0 0 0 initial_zz'
[../]
[./sample_isoil_strain]
type = ComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '125000000 118098000'
poissons_ratio = '0.3 0.3'
density = '2000.0 2000.0'
wave_speed_calculation = false
layer_ids = '0 1'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.05
timestep_tolerance = 1e-8
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 10
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 10
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 10
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 10
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 10
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 10
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 10
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 10
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 10
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 1
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 1
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 1
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 1
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 1
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 1
[../]
[./gamma_zx_el] # engineering shear strain
type = ScalePostprocessor
value = strain_zx_el
scaling_factor = 2
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 1
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 1
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 1
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 1
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 1
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 1
[../]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/materials/isoil/HYS_data_file_noaction_AD.i)
#@requirement F4.2
# One element test to test the user-defined backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve is same as the one provided as input.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.85
use_displaced_mesh = false
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain_darendeli.csv'
poissons_ratio = '0.3'
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
[../]
[./sample_isoil_strain]
type = ADComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '0'
elastic_modulus = '19571500'
poissons_ratio = '0.3'
density = '2000'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(examples/ex13/site_response/sr_input.i)
[Mesh]
type = GeneratedMesh
nx = 1
ny = 1
nz = 17
xmin = -0.05
ymin = -0.05
zmin = 0.0
xmax = 0.05
ymax = 0.05
zmax = 32.0
dim = 3
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[disp_z]
order = FIRST
family = LAGRANGE
[]
[]
[AuxVariables]
[vel_x]
[]
[accel_x]
[]
[vel_y]
[]
[accel_y]
[]
[vel_z]
[]
[accel_z]
[]
[layer_id]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[DynamicTensorMechanics]
stiffness_damping_coefficient = 0.0017490 #1.5% 1-20hz
displacements = 'disp_x disp_y disp_z'
static_initialization = true
[]
[inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 0.0607069 #1.5% 1-20hz
[]
[inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 0.0607069 #1.5% 1-20hz
[]
[inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 0.0607069 #1.5% 1-20hz
[]
[gravity]
type = Gravity
variable = disp_z
value = -9.81
[]
[]
[AuxKernels]
[accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[]
[vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[]
[accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[]
[vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[]
[layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '32'
direction = '0.0 0.0 1.0'
execute_on = initial
[]
[]
[Materials]
[I_Soil]
[soil_all]
block = 0
layer_variable = layer_id
layer_ids = '0'
soil_type = 'user_defined'
backbone_curve_files = '../backbone.csv'
displacements = 'disp_x disp_y disp_z'
poissons_ratio = '0.3'
initial_shear_modulus = '0.523325'
density = '1.730e-6'
a0 = 1.0
a1 = 0.0
a2 = 0.0
b_exp = 0.0
[]
[]
[]
[Controls]
[inertia_switch]
type = TimePeriod
start_time = 0.0
end_time = 0.01
disable_objects = '*/inertia_x */inertia_y */inertia_z */vel_x */vel_y */vel_z */accel_x */accel_y */accel_z'
set_sync_times = true
execute_on = 'timestep_begin timestep_end'
[]
[]
[Functions]
[input_motion_x]
type = PiecewiseLinear
data_file = '../ground_motion.csv'
format = columns
xy_in_file_only = false
y_index_in_file = 1
[]
[input_motion_y]
type = PiecewiseLinear
data_file = '../ground_motion.csv'
format = columns
xy_in_file_only = false
y_index_in_file = 2
[]
[input_motion_z]
type = PiecewiseLinear
data_file = '../ground_motion.csv'
format = columns
xy_in_file_only = false
y_index_in_file = 3
[]
[]
[BCs]
[x_motion]
type = PresetAcceleration
acceleration = accel_x
velocity = vel_x
variable = disp_x
beta = 0.25
boundary = 'back'
function = 'input_motion_x'
[]
[y_motion]
type = PresetAcceleration
acceleration = accel_y
velocity = vel_y
variable = disp_y
beta = 0.25
boundary = 'back'
function = 'input_motion_y'
[]
[z_motion]
type = PresetAcceleration
acceleration = accel_z
velocity = vel_z
variable = disp_z
beta = 0.25
boundary = 'back'
function = 'input_motion_z'
[]
[Periodic]
[y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 0.1 0.0'
[]
[x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '0.1 0.0 0.0'
[]
[]
[]
[VectorPostprocessors]
[accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x accel_y accel_z'
nodes = '0 71'
[]
[accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.002
damping_ratio = 0.05
start_frequency = 0.1
end_frequency = 1000
outputs = out1
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
petsc_options = '-ksp_snes_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
solve_type = 'NEWTON'
nl_rel_tol = 1e-7
nl_abs_tol = 1e-12
# l_tol = 1e-2
dt = 0.01
end_time = 28.0
timestep_tolerance = 1e-6
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Outputs]
exodus = true
perf_graph = true
csv = true
[out1]
type = CSV
execute_on = 'final'
[]
[]
(test/tests/materials/isoil/HYS_thin_layer_noaction_AD.i)
# One element test to test the auto-generated thin_layer backbone curve for
# Coulomb friction. The top surface of the element (z=0) is fixed and the
# bottom surface (z=1) is moved by applying a cyclic preset displacement.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = '0 1 2 3 4'
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = '0 1 2 3 4'
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'thin_layer'
layer_variable = layer_id
layer_ids = '0'
initial_shear_modulus = '20000'
poissons_ratio = '0.45'
friction_coefficient = '0.7'
hardening_ratio = '0.001'
p_ref = '8.6209091'
initial_soil_stress = '-8.0263636 0 0 0 -8.0263636 0 0 0 -9.810'
[../]
[./sample_isoil_strain]
## Use ComputeFiniteStrain for soil_type = thin_layer since large strains are expected
type = ADComputeFiniteStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20000'
poissons_ratio = '0.45'
density = '2.0'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/combined/noaction_2D.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 2 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
[]
[Mastodon]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
stiffness_damping_coefficient = 0.000781
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 0.64026
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 0.64026
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xy
index_i = 1
index_j = 0
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 1 0'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = bottom
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y'
primary = left
secondary = right
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_2x]
type = NodalVariableValue
nodeid = 2
variable = disp_x
[../]
[./disp_2y]
type = NodalVariableValue
nodeid = 2
variable = disp_y
[../]
[./vel_2x]
type = NodalVariableValue
nodeid = 2
variable = vel_x
[../]
[./vel_2y]
type = NodalVariableValue
nodeid = 2
variable = vel_y
[../]
[./accel_2x]
type = NodalVariableValue
nodeid = 2
variable = accel_x
[../]
[./accel_2y]
type = NodalVariableValue
nodeid = 2
variable = accel_y
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_GQH_verification.i)
# One element test to test the auto-generated GQ/H backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# This test is identical to HYS_GQH.i except that the element was assumed to
# have zero initial stresses, no self-weight (i.e., zero gravity), and
# undamped vibration. Also, the backbone curve was generated using 100 points
# instead of 10 to increase smoothness.
# The resulting backbone curve was verified against the analytical solution.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'gqh'
layer_variable = layer_id
layer_ids = '0'
theta_1 = '-2.28'
theta_2 = '-5.54'
theta_3 = '1.0'
theta_4 = '1.0'
theta_5 = '0.99'
taumax = '7500'
initial_shear_modulus = '20000000'
number_of_points = 100
poissons_ratio = '0.3'
block = 0
density = '2000'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./gamma_zx_el] # engineering shear strain
type = ScalePostprocessor
value = strain_zx_el
scaling_factor = 2
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/bcs/seismic_force/seismic_force_test_z.i)
#@requirement F6.4
# Test for application of seismic force which converts ground velocity in z directions into normal stress.
# This test consists of 20 elements for algorithm testing purposes (use 200 elements and dt of 0.005s to get a much cleaner wave).
# Non-reflecting boundary condition is applied on the back surface (z=0) to simulate an infinitely long soil column.
# Seismic stress proportional to a input velocity in z direction is applied to the front surface (z=1).
# The nodes on the sides are constrained to move together to using periodic boundary.
# Since an infinite soil column is being modeled using the non-reflecting boundary condition, there is no wave reflection from z = 0 boundary.
#Result : The velocity at the front surface should be same as the input velocity provided to the Seismic Force boundary condition.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 40
xmin = 0.0
xmax = 25.0
ymin = 0.0
ymax = 25.0
zmin = 0.0
zmax = 5000.0
[]
[Controls]
[./period0]
type = TimePeriod
disable_objects = 'Kernels/inertia_x Kernels/inertia_y Kernels/inertia_z AuxKernels/accel_x AuxKernels/accel_y AuxKernels/accel_z AuxKernels/vel_x AuxKernels/vel_y AuxKernels/vel_z'
start_time = 0.0
end_time = 0.00125 # same as dt used in the analysis
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
static_initialization = True
use_displaced_mesh = True
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '5000'
direction = '0 0 1'
execute_on = initial
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = 0
poissons_ratio = 0.33
density = 4.9419e-3
shear_modulus = 68322.
[../]
[./stress1]
#Computes the stress, using linear elasticity
type = ComputeLinearElasticStress
block = 0
[../]
[./strain1]
#Computes the strain, assuming small strains
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./SeismicForce]
[./top_stress]
displacements = 'disp_x disp_y disp_z'
input_components = '2'
boundary = 'front'
velocity_functions = 'z_vel'
shear_wave_speed = 3718.204815052883833
p_wave_speed = 7381.527628151251754
density = 4.9419e-3
[../]
[../]
[./NonReflectingBC]
[./back]
displacements = 'disp_x disp_y disp_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
beta = 0.25
gamma = 0.5
boundary = 'back'
shear_wave_speed = 3718.204815052883833
p_wave_speed = 7381.527628151251754
density = 4.9419e-3
[../]
[../]
[./Periodic]
[./x_dir]
primary = 'left'
secondary = 'right'
translation = '25.0 0.0 0.0'
[../]
[./y_dir]
primary = 'bottom'
secondary = 'top'
translation = '0.0 25.0 0.0'
[../]
[../]
[]
[Functions]
[./z_vel]
type = PiecewiseLinear
data_file = 'vel_wav_00125.csv'
format = columns
scale_factor = -10.0
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
l_tol = 1e-12
start_time = 0
end_time = 2.6
dt = 0.1
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_top_x]
type = PointValue
point = '0 0 5000'
variable = disp_x
[../]
[./disp_top_y]
type = PointValue
point = '0 0 5000'
variable = disp_y
[../]
[./disp_top_z]
type = PointValue
point = '0 0 5000'
variable = disp_z
[../]
[./vel_top_x]
type = PointValue
point = '0 0 5000'
variable = vel_x
[../]
[./vel_top_y]
type = PointValue
point = '0 0 5000'
variable = vel_y
[../]
[./vel_top_z]
type = PointValue
point = '0 0 5000'
variable = vel_z
[../]
[./accel_top_x]
type = PointValue
point = '0 0 5000'
variable = accel_x
[../]
[./accel_top_y]
type = PointValue
point = '0 0 5000'
variable = accel_y
[../]
[./accel_top_z]
type = PointValue
point = '0 0 5000'
variable = accel_z
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = true
[./screen]
type = Console
max_rows = 1
[../]
[]
(test/tests/mastodonblock/outputs/stress_strain_output.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[./Outputs]
stress_strain_output = true
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
inactive = 'stress_xx stress_yy stress_xy stress_zz stress_zx stress_yz strain_xx strain_yy strain_xy strain_zz strain_zx strain_yz'
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[]
[AuxKernels]
inactive = 'stress_xx stress_yy stress_xy stress_zz stress_zx stress_yz strain_xx strain_yy strain_xy strain_zz strain_zx strain_yz'
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/model/noaction_static.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[AuxKernels]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
boundary = 0
variable = disp_x
value = 0
[../]
[./y_bot]
type = DirichletBC
boundary = 0
variable = disp_y
value = 0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./x_top]
type = FunctionDirichletBC
boundary = 5
variable = disp_x
function = disp_top_x
[../]
[./y_top]
type = FunctionDirichletBC
boundary = 5
variable = disp_y
function = disp_top_y
[../]
[]
[Functions]
[./disp_top_x]
type = PiecewiseLinear
data_file = 'disp.csv'
format = columns
scale_factor = 1.0
[../]
[./disp_top_y]
type = PiecewiseLinear
data_file = 'disp.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.3'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_data_file_noaction.i)
#@requirement F4.2
# One element test to test the user-defined backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve is same as the one provided as input.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.85
use_displaced_mesh = false
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ComputeISoilStress
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain_darendeli.csv'
poissons_ratio = '0.3'
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
initial_shear_modulus = '20155518.98'
[../]
[./sample_isoil_strain]
type = ComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20155518.98'
poissons_ratio = '0.3'
density = '2000'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_GQH_AD.i)
# One element test to test the auto-generated GQ/H backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve was verified against obtained from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'gqh'
layer_variable = layer_id
layer_ids = '0'
theta_1 = '-2.28'
theta_2 = '-5.54'
theta_3 = '1.0'
theta_4 = '1.0'
theta_5 = '0.99'
taumax = '7500'
initial_shear_modulus = '20000000'
number_of_points = 10
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
density = '2000'
use_automatic_differentiation = true
[../]
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_check_jacobian'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_thin_layer_AD.i)
# One element test to test the auto-generated thin_layer backbone curve for
# Coulomb friction. The top surface of the element (z=0) is fixed and the
# bottom surface (z=1) is moved by applying a cyclic preset displacement.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = '0 1 2 3 4'
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = '0 1 2 3 4'
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./I_Soil]
[./soil_thin_layer]
soil_type = 'thin_layer'
layer_variable = layer_id
layer_ids = '0'
initial_shear_modulus = '20000'
poissons_ratio = '0.45'
block = 0
density = '2.0'
friction_coefficient = '0.7'
hardening_ratio = '0.001'
p_ref = '8.6209091'
initial_soil_stress = '-8.0263636 0 0 0 -8.0263636 0 0 0 -9.810'
use_automatic_differentiation = true
[../]
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
file_base = HYS_thin_layer_out
exodus = true
csv = true
perf_graph = false
[]
(test/tests/vectorpostprocessors/housner_spectrum_intensity/housner_spectrum_intensity.i)
#@requirement F8.3
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 4
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
zmin = 0.0
zmax = 4.0
[]
[Controls]
[./period0]
type = TimePeriod
disable_objects = 'Kernels/inertia_x Kernels/inertia_y Kernels/inertia_z AuxKernels/accel_x AuxKernels/accel_y AuxKernels/accel_z AuxKernels/vel_x AuxKernels/vel_y AuxKernels/vel_z'
start_time = 0.0
end_time = 0.005 # same as dt used in the analysis
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
static_initialization = True
use_displaced_mesh = True
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = True
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 2
index_j = 0
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '20'
direction = '0 0 1'
execute_on = initial
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
poissons_ratio = '0.3'
density = '2000.0'
shear_modulus = '325e7'
[../]
[./stress1]
#Computes the stress, using linear elasticity
type = ComputeLinearElasticStress
block = 0
[../]
[./strain1]
#Computes the strain, assuming small strains
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./bottom_accel_x]
type = PresetAcceleration
boundary = back
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./bottom_accel_y]
type = PresetAcceleration
boundary = back
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./Periodic]
[./x_dir]
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
l_tol = 1e-8
start_time = 32
end_time = 33
dt = 0.005 # should be 0.005
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Outputs]
[./out]
type = CSV
execute_on = 'final'
[../]
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x accel_y'
nodes = '8 9'
[../]
[./accel_hsi]
type = HousnerSpectrumIntensity
vectorpostprocessor = accel_hist
regularize_dt = 0.005
outputs = out
[../]
[]
(examples/ex06b/actual_simulation_isoil.i)
[Mesh]
type = FileMesh
file = ../ex06b/stabilize_isoil_out1_cp/LATEST #end file of previous simulation
patch_update_strategy = iteration
patch_size = 40
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
restart_file_base = ../ex06b/stabilize_isoil_out1_cp/LATEST
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[AuxVariables]
[vel_x]
[]
[accel_x]
[]
[accel_y]
[]
[vel_y]
[]
[vel_z]
[]
[accel_z]
[]
[nor_forc]
order = FIRST
family = LAGRANGE
[]
[tang_forc_x]
order = FIRST
family = LAGRANGE
[]
[layer_id]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
displacements = 'disp_x disp_y disp_z'
[]
[gravity]
type = Gravity
variable = disp_z
value = -386.09 #in/s2
[]
[inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 0.0
[]
[inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 0.0
[]
[inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 0.0
[]
[]
[AuxKernels]
[nor_forc]
type = PenetrationAux
variable = nor_forc
quantity = normal_force_magnitude
boundary = 102
paired_boundary = 103
[]
[tang_forc_x]
type = PenetrationAux
variable = tang_forc_x
quantity = tangential_force_x
boundary = 102
paired_boundary = 103
[]
[accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[]
[vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[]
[accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[]
[vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[]
[layer_1]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '48'
direction = '0.0 0.0 1.0'
block = 1
execute_on = initial
[]
[]
[BCs]
[fix_x_soil]
type = DirichletBC
variable = disp_x
boundary = 100
value = 0.0
[]
[fix_y_soil]
type = DirichletBC
variable = disp_y
boundary = 100
value = 0.0
[]
[fix_z_soil]
type = DirichletBC
variable = disp_z
boundary = 100
value = 0.0
[]
[concrete_pressure]
type = Pressure
boundary = 101
variable = disp_z
component = 2
factor = 5 #psi
[]
[top_x]
type = PresetDisplacement
boundary = 1000
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = loading_bc
[]
[]
[Functions]
[loading_bc]
type = PiecewiseLinear
data_file = 'input_motion.csv'
format = columns
[]
[]
[Materials]
[elasticity_tensor_block]
youngs_modulus = 4e6 #psi
poissons_ratio = 0.25
type = ComputeIsotropicElasticityTensor
block = 2
[]
[strain_block]
type = ComputeFiniteStrain
block = 2
displacements = 'disp_x disp_y disp_z'
[]
[stress_block]
type = ComputeFiniteStrainElasticStress
# store_stress_old = true
block = 2
[]
[den_block]
type = GenericConstantMaterial
block = 2
prop_names = density
prop_values = 0.0002248 #slug/in^3
[]
[I_Soil]
[soil_1]
soil_type = 'darendeli'
layer_variable = layer_id
layer_ids = '0'
over_consolidation_ratio = '1'
plasticity_index = '0'
initial_shear_modulus = '7251'
number_of_points = 10
poissons_ratio = '0.3'
block = 1
density = '0.0001536'
p_ref = '5'
pressure_dependency = false
[]
[]
[]
[Contact]
[leftright]
secondary = 102
primary = 103
model = coulomb
formulation = penalty
normalize_penalty = true
friction_coefficient = 0.2
penalty = 1e4
displacements = 'disp_x disp_y disp_z'
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
[]
[]
[Postprocessors]
[nor_forc]
type = NodalSum
variable = nor_forc
boundary = 102
[]
[tang_forc_x]
type = NodalSum
variable = tang_forc_x
boundary = 102
[]
[dispx]
type = NodalExtremeValue
value_type = max
block = '2'
variable = disp_x
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
start_time = 0
end_time = 2.5
dt = 0.005
dtmin = 0.001
nl_abs_tol = 1e-1
nl_rel_tol = 1e-4
l_tol = 1e-2
l_max_its = 20
timestep_tolerance = 1e-3
[]
[Outputs]
csv = true
exodus = true
file_base = finalresult
print_linear_residuals = false
[screen]
type = Console
max_rows = 1
[]
[]
(test/tests/mastodonblock/model/model_dynamic.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[./Model]
dynamic_analysis = true
eta = 0.64026
zeta = 0.000781
[../]
[]
[Variables]
inactive = 'disp_x disp_y disp_z'
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
inactive = 'accel_x vel_x accel_y vel_y accel_z vel_z'
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
inactive = 'DynamicTensorMechanics inertia_x inertia_y inertia_z'
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[]
[AuxKernels]
inactive = 'accel_x vel_x accel_y vel_y accel_z vel_z'
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]