- initial_shear_modulusThe initial shear modulus of the soil layers.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The initial shear modulus of the soil layers.
- layer_idsVector of layer ids that map one-to-one to the rest of the soil layer parameters provided as input.
C++ Type:std::vector<unsigned int>
Controllable:No
Description:Vector of layer ids that map one-to-one to the rest of the soil layer parameters provided as input.
- layer_variableThe auxvariable providing the soil layer identification.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The auxvariable providing the soil layer identification.
- poissons_ratioPoissons's ratio for the soil layers. The size of the vector should be same as the size of layer_ids.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Poissons's ratio for the soil layers. The size of the vector should be same as the size of layer_ids.
- soil_typeThis parameter determines the type of backbone curve used. Use 'user_defined' for a user defined backbone curve provided in a data file, 'darendeli' if the backbone curve is to be determined using Darandeli equations, 'gqh' if the backbone curve is determined using the GQ/H approach and 'thin_layer' if the soil is being used to simulate a thin-layer friction interface.
C++ Type:MooseEnum
Controllable:No
Description:This parameter determines the type of backbone curve used. Use 'user_defined' for a user defined backbone curve provided in a data file, 'darendeli' if the backbone curve is to be determined using Darandeli equations, 'gqh' if the backbone curve is determined using the GQ/H approach and 'thin_layer' if the soil is being used to simulate a thin-layer friction interface.
ComputeISoilStress
Compute total stress for the nonlinear material model I-Soil using a backbone curve.
Description
This material object computes the stress of an I-Soil element.
Input Parameters
- a01The first coefficient for pressure dependent yield strength calculation for all the soil layers. If a0 = 1, a1 = 0 and a2=0 for one soil layer, then the yield strength of that layer is independent of pressure.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The first coefficient for pressure dependent yield strength calculation for all the soil layers. If a0 = 1, a1 = 0 and a2=0 for one soil layer, then the yield strength of that layer is independent of pressure.
- a10The second coefficient for pressure dependent yield strength calculation for all the soil layers. If a0 = 1, a1 = 0, a2 = 0 for one soil layer, then the yield strength of that layer is independent of pressure.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The second coefficient for pressure dependent yield strength calculation for all the soil layers. If a0 = 1, a1 = 0, a2 = 0 for one soil layer, then the yield strength of that layer is independent of pressure.
- a20The third coefficient for pressure dependent yield strength calculation for all the soil layers. If a0 = 1, a1=0 and a2=0 for one soil layer, then the yield strength of that layer is independent of pressure.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The third coefficient for pressure dependent yield strength calculation for all the soil layers. If a0 = 1, a1=0 and a2=0 for one soil layer, then the yield strength of that layer is independent of pressure.
- b_exp0The exponential factors for pressure dependent stiffness for all the soil layers.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The exponential factors for pressure dependent stiffness for all the soil layers.
- backbone_curve_filesThe vector of file names of the files containing stress-strain backbone curves for the different soil layers. The size of the vector should be same as the size of layer_ids. All files should contain the same number of stress-strain points. Headers are not expected and it is assumed that the first column corresponds to strain values and the second column corresponds to the stress values. Additionally, two segments of a backbone curve cannot have the same slope.
C++ Type:std::vector<FileName>
Controllable:No
Description:The vector of file names of the files containing stress-strain backbone curves for the different soil layers. The size of the vector should be same as the size of layer_ids. All files should contain the same number of stress-strain points. Headers are not expected and it is assumed that the first column corresponds to strain values and the second column corresponds to the stress values. Additionally, two segments of a backbone curve cannot have the same slope.
- base_nameOptional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases
C++ Type:std::string
Controllable:No
Description:Optional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases
- 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
- computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
Default:True
C++ Type:bool
Controllable:No
Description:When false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
- constant_onNONEWhen ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
Default:NONE
C++ Type:MooseEnum
Options:NONE, ELEMENT, SUBDOMAIN
Controllable:No
Description:When ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
- declare_suffixAn optional suffix parameter that can be appended to any declared 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 declared properties. The suffix will be prepended with a '_' character.
- friction_coefficientFriction coefficients of the thin layers.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Friction coefficients of the thin layers.
- hardening_ratioPost-yield hardening ratios of the layers.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Post-yield hardening ratios of the layers.
- initial_soil_stressA list of functions describing the initial stress. There must be 9 functions, corresponding to the xx, yx, zx, xy, yy, zy, xz, yz, zz components respectively. If not provided, all components of the initial stress will be zero.
C++ Type:std::vector<FunctionName>
Unit:(no unit assumed)
Controllable:No
Description:A list of functions describing the initial stress. There must be 9 functions, corresponding to the xx, yx, zx, xy, yy, zy, xz, yz, zz components respectively. If not provided, all components of the initial stress will be zero.
- number_of_pointsThe total number of data points in which the backbone curve needs to be split for all soil layers (required for Darandeli or GQ/H type backbone curves).
C++ Type:unsigned int
Controllable:No
Description:The total number of data points in which the backbone curve needs to be split for all soil layers (required for Darandeli or GQ/H type backbone curves).
- over_consolidation_ratioThe over consolidation ratio of the soil layers. Required for Darandeli backbone curve.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The over consolidation ratio of the soil layers. Required for Darandeli backbone curve.
- p_refThe reference pressure at which the parameters are defined for each soil layer. If 'soil_type = darendeli', then the reference pressure must be input in kilopascals.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The reference pressure at which the parameters are defined for each soil layer. If 'soil_type = darendeli', then the reference pressure must be input in kilopascals.
- plasticity_indexThe plasticity index of the soil layers. Required for Darandeli backbone curve.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The plasticity index of the soil layers. Required for Darandeli backbone curve.
- pressure_dependencyFalseSet to true to turn on pressure dependent stiffness and yield strength calculation.
Default:False
C++ Type:bool
Controllable:No
Description:Set to true to turn on pressure dependent stiffness and yield strength calculation.
- shear_modulusName of Material Property or a constant real number defining the shear modulus of the materials.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:Name of Material Property or a constant real number defining the shear modulus of the materials.
- taumaxThe ultimate shear strength of the soil layers. Required for GQ/H model
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The ultimate shear strength of the soil layers. Required for GQ/H model
- tension_pressure_cut_off-1The tension cut-off for all the soil layers. If the pressure becomes lower than this value, then the stiffness of the soil reduces to zero. A negative pressure indicates tension. The default value is -1.0 for all the soil layers.
Default:-1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The tension cut-off for all the soil layers. If the pressure becomes lower than this value, then the stiffness of the soil reduces to zero. A negative pressure indicates tension. The default value is -1.0 for all the soil layers.
- theta_1The curve fit coefficient for GQ/H modelfor each soil layer.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The curve fit coefficient for GQ/H modelfor each soil layer.
- theta_2The curve fit coefficient for GQ/H modelfor each soil layer.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The curve fit coefficient for GQ/H modelfor each soil layer.
- theta_3The curve fit coefficient for GQ/H modelfor each soil layer.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The curve fit coefficient for GQ/H modelfor each soil layer.
- theta_4The curve fit coefficient for GQ/H modelfor each soil layer.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The curve fit coefficient for GQ/H modelfor each soil layer.
- theta_5The curve fit coefficient for GQ/H modelfor each soil layer.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The curve fit coefficient for GQ/H modelfor each soil layer.
- wave_speed_calculationTrueSet to false to turn off P and S wave speed calculation.
Default:True
C++ Type:bool
Controllable:No
Description:Set to false to turn off P and S wave speed calculation.
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.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- 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
Advanced Parameters
- output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)
C++ Type:std::vector<std::string>
Controllable:No
Description:List of material properties, from this material, to output (outputs must also be defined to an output type)
- outputsnone Vector of output names where you would like to restrict the output of variables(s) associated with this object
Default:none
C++ Type:std::vector<OutputName>
Controllable:No
Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object
Outputs 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_thin_layer_noaction.i)
- (examples/ex03b/shear_beam_Isoil_free_field_explicit.i)
- (test/tests/materials/isoil/HYS_GQH_twolayers_noaction.i)
- (examples/ex02b/HYS_GQH_Explicit.i)
- (test/tests/materials/isoil/HYS_data_file_pressure_contact.i)
- (test/tests/materials/isoil/HYS_darendeli_noaction.i)
- (examples/ex01b/HYS_darendeli_explicit.i)
- (test/tests/materials/isoil/HYS_GQH_noaction.i)
- (test/tests/materials/isoil/HYS_stiffness_and_strength_pressure_dependency_noaction.i)
- (test/tests/materials/isoil/HYS_data_file_noaction.i)
(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
[]
(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
[../]
[]
(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
[]
(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_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_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
[../]
[]
(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_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_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_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
[]