- densityVector of density values that map one-to-one with the number 'layer_ids' parameter.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Vector of density values that map one-to-one with the number 'layer_ids' parameter.
- layer_idsVector of layer ids that map one-to-one with the 'shear_modulus' or 'elastic_modulus', 'poissons_ratio' and 'density' input parameters.
C++ Type:std::vector<unsigned int>
Controllable:No
Description:Vector of layer ids that map one-to-one with the 'shear_modulus' or 'elastic_modulus', 'poissons_ratio' and 'density' input parameters.
- layer_variableThe variable providing the soil layer identification.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The variable providing the soil layer identification.
- poissons_ratioVector of Poisson's ratio values that map one-to-one with the number 'layer_ids' parameter.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Vector of Poisson's ratio values that map one-to-one with the number 'layer_ids' parameter.
ComputeIsotropicElasticityTensorSoil
Compute an isotropic elasticity tensor for a layered soil material when shear modulus or elastic modulus, poisson's ratio and density are provided as input for each layer.
Description
There are three essential components which describe the mechanical behavior of a material. These are strain formulation, stress formulation and an elasticity tensor which connects the strains to stresses. In MASTODON, these three can be specified separately. This class defines the elasticity tensor for an isotropic material.
The elasticity tensor () is a fourth order tensor containing 81 components. In the case of an isotropic material, can be constructed using just 2 independent constants which in this case are the shear modulus () and the Poisson's ratio (). The elasticity tensor is a material property which is defined at quadrature point. So different parts of the domain can have different values for .
This material has been designed for a layered soil material in which each layer can have a different shear modulus, Poisson's ratio and density (). The different layers are distinguished using an elemental AuxVariable that defines a "layer id" for each element within the mesh. Thus, the layer variable is a required parameter in the input. The shear modulus, Poisson's ratio and density are mapped to this "layer id".
This material also computes and stores the shear wave speed (), P wave speed () for quadrature point from the layer id, shear modulus, Poisson's ratio and density of the material.
The shear wave speed is calculated as: V_s = \sqrt{\frac{G}{\rho}}
The P wave speed is calculated as: V_p = \sqrt{\frac{2G(1-\nu)}{(1-2\nu)\rho}}
Input Parameters
- 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.
- elastic_modulusVector of elastic modulus values that map one-to-one with the number 'layer_ids' parameter.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Vector of elastic modulus values that map one-to-one with the number 'layer_ids' parameter.
- elasticity_tensor_prefactorOptional function to use as a scalar prefactor on the elasticity tensor.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:Optional function to use as a scalar prefactor on the elasticity tensor.
- scale_factor_density1Scale factor for density.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:Yes
Description:Scale factor for density.
- shear_modulusVector of shear modulus values that map one-to-one with the number 'layer_ids' parameter.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Vector of shear modulus values that map one-to-one with the number 'layer_ids' parameter.
- 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
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
- 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_stiffness_and_strength_pressure_dependency_noaction_AD.i)
- (test/tests/mastodonblock/model/noaction_dynamic_2D.i)
- (test/tests/mastodonblock/combined/noaction.i)
- (examples/ex07/small_model.i)
- (test/tests/materials/isoil/HYS_data_file_pressure_contact.i)
- (tutorial/site_response_1.i)
- (test/tests/materials/isoil/HYS_GQH_noaction.i)
- (test/tests/materials/isoil/HYS_data_file_AD_jac.i)
- (test/tests/bcs/nonreflecting_bc/non_reflecting_bc_test.i)
- (examples/ex09/SSI_Response.i)
- (test/tests/materials/isoil/HYS_GQH_noaction_AD.i)
- (test/tests/mastodonblock/model/noaction_dynamic.i)
- (test/tests/bcs/seismic_displacement/seismic_displacement.i)
- (test/tests/materials/isoil/HYS_darendeli_noaction_AD.i)
- (examples/ex02b/HYS_GQH_Explicit.i)
- (test/tests/materials/linear_isotropic_elasticity_tensor_soil/layered_soil_test_shear.i)
- (test/tests/mastodonblock/outputs/noaction_stress_strain_output.i)
- (examples/ex07/fixed_inner.i)
- (examples/ex09/Soil_Response.i)
- (test/tests/vectorpostprocessors/response_spectra_calculator/response_spectra_calculator.i)
- (test/tests/materials/linear_isotropic_elasticity_tensor_soil/layered_soil_test_elastic.i)
- (test/tests/materials/isoil/HYS_thin_layer_noaction.i)
- (test/tests/materials/isoil/HYS_data_file_pressure_contact_AD.i)
- (test/tests/bcs/seismic_force/seismic_force_test_x_y.i)
- (test/tests/materials/isoil/HYS_darendeli_noaction.i)
- (test/tests/mastodonblock/combined/mastodon_block_actions.i)
- (examples/ex01b/HYS_darendeli_explicit.i)
- (test/tests/materials/isoil/HYS_stiffness_and_strength_pressure_dependency_noaction.i)
- (examples/ex07/fixed_outer.i)
- (test/tests/mastodonblock/model/model_static.i)
- (test/tests/mastodonblock/combined/mastodon_block_actions_2D.i)
- (test/tests/mastodonblock/model/model_dynamic_2D.i)
- (test/tests/pra/sub_sub.i)
- (examples/ex03b/shear_beam_Isoil_free_field_explicit.i)
- (examples/ex07/big_model.i)
- (test/tests/materials/isoil/HYS_data_file_noaction_AD.i)
- (test/tests/materials/isoil/HYS_GQH_twolayers_noaction.i)
- (test/tests/materials/isoil/HYS_thin_layer_noaction_AD.i)
- (test/tests/mastodonblock/combined/noaction_2D.i)
- (test/tests/bcs/seismic_force/seismic_force_test_z.i)
- (test/tests/mastodonblock/outputs/stress_strain_output.i)
- (test/tests/mastodonblock/model/noaction_static.i)
- (test/tests/materials/isoil/HYS_data_file_noaction.i)
- (test/tests/vectorpostprocessors/housner_spectrum_intensity/housner_spectrum_intensity.i)
- (test/tests/mastodonblock/model/model_dynamic.i)
(test/tests/materials/isoil/HYS_stiffness_and_strength_pressure_dependency_noaction_AD.i)
# One element test to check pressure dependent stiffness and yield strength calcualtion.
# The element is first intialized with stresses corresponding to acceleration due to gravity (g).
# Then a body force equal to 3 * g is applied to the element thereby increasing the pressure experienced
# by the element. The element is then sheared by moving the front surface (z = 0) in the x direction.
# The resulting stress-strain curve is stiffer due to the increase in pressure and also the maximum/ultimate shear
# stress at which the material completely fails is also higher due to the yield strength pressure correction.
# This file DOESNOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -29.43
use_displaced_mesh = false
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = 'initial'
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain20.csv'
poissons_ratio = '0.3'
initial_soil_stress = '-12613 0 0 0 -12613 0 0 0 -29430'
pressure_dependency = true
b_exp = 0.5
p_ref = 6072.86
tension_pressure_cut_off = -1
a0 = 0
a1 = 0
a2 = 1
[../]
[./sample_isoil_strain]
type = ADComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '0'
elastic_modulus = '1.0'
poissons_ratio = '0.3'
density = '2000'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 10
dt = 0.05
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
[./out]
type = Exodus
hide = 'vel_x vel_y vel_z accel_x accel_y accel_z'
[../]
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/model/noaction_dynamic_2D.i)
# One element 2D model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 2 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
[]
[Mastodon]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
block = 0
displacements = 'disp_x disp_y'
stiffness_damping_coefficient = 0.000781
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 0.64026
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 0.64026
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 1 0'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = bottom
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y'
primary = left
secondary = right
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_2x]
type = NodalVariableValue
nodeid = 2
variable = disp_x
[../]
[./disp_2y]
type = NodalVariableValue
nodeid = 2
variable = disp_y
[../]
[./vel_2x]
type = NodalVariableValue
nodeid = 2
variable = vel_x
[../]
[./vel_2y]
type = NodalVariableValue
nodeid = 2
variable = vel_y
[../]
[./accel_2x]
type = NodalVariableValue
nodeid = 2
variable = accel_x
[../]
[./accel_2y]
type = NodalVariableValue
nodeid = 2
variable = accel_y
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/combined/noaction.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(examples/ex07/small_model.i)
[Mesh]
[./generate]
type = GeneratedMeshGenerator
dim = 2
xmin = 400.0
xmax = 600.0
ymin = 400.0
ymax = 500.0
nx = 20
ny = 10
[../]
[./outer_1]
type = ParsedAddSidesetGenerator
input = generate
combinatorial_geometry = 'x > 449.9 & x < 450.1 & y > 449.9'
new_sideset_name = outer_1
normal = '-1.0 0.0 0.0'
[../]
[./outer_2]
type = ParsedAddSidesetGenerator
input = outer_1
combinatorial_geometry = 'x > 459.1 & x < 541.0 & y > 449.9 & y < 450.1'
new_sideset_name = outer_2
normal = '0.0 -1.0 0.0'
[../]
[./outer_3]
type = ParsedAddSidesetGenerator
input = outer_2
combinatorial_geometry = 'x > 549.1 & x < 550.1 & y > 449.9'
new_sideset_name = outer_3
normal = '1.0 0.0 0.0'
[../]
[./inner_1]
type = ParsedAddSidesetGenerator
input = outer_3
combinatorial_geometry = 'x > 459.9 & x < 460.1 & y > 459.9'
new_sideset_name = inner_1
normal = '1.0 0.0 0.0'
[../]
[./inner_2]
type = ParsedAddSidesetGenerator
input = inner_1
combinatorial_geometry = 'x > 469.1 & x < 530.1 & y > 459.9 & y < 460.1'
new_sideset_name = inner_2
normal = '0.0 1.0 0.0'
[../]
[./inner_3]
type = ParsedAddSidesetGenerator
input = inner_2
combinatorial_geometry = 'x > 539.9 & x < 540.1 & y > 459.9'
new_sideset_name = inner_3
normal = '-1.0 0.0 0.0'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./layer]
[../]
[./resid_x]
[../]
[./resid_y]
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
block = 0
save_in = 'resid_x resid_y'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
save_in = resid_x
block = 0
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
save_in = resid_y
block = 0
eta = 7.854
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
interfaces = '550.0'
direction = '0 1 0'
variable = layer
execute_on = initial
[../]
[]
[UserObjects]
[./solution_uo_outer_react_x]
type = SolutionUserObject
mesh = output/DRM_layer_2d_outer_out.e
system_variables = resid_x
[../]
[./solution_uo_outer_react_y]
type = SolutionUserObject
mesh = output/DRM_layer_2d_outer_out.e
system_variables = resid_y
[../]
[./solution_uo_inner_react_x]
type = SolutionUserObject
mesh = output/DRM_layer_2d_inner_out.e
system_variables = resid_x
[../]
[./solution_uo_inner_react_y]
type = SolutionUserObject
mesh = output/DRM_layer_2d_inner_out.e
system_variables = resid_y
[../]
[]
[Functions]
[./react_x_outer_fn]
type = SolutionFunction
solution = solution_uo_outer_react_x
[../]
[./react_y_outer_fn]
type = SolutionFunction
solution = solution_uo_outer_react_y
[../]
[./react_x_inner_fn]
type = SolutionFunction
solution = solution_uo_inner_react_x
[../]
[./react_y_inner_fn]
type = SolutionFunction
solution = solution_uo_inner_react_y
[../]
[]
[NodalKernels]
[./xforce_inner_1]
type = UserForcingFunctionNodalKernel
variable = disp_x
function = react_x_inner_fn
boundary = inner_1
[../]
[./xforce_inner_2]
type = UserForcingFunctionNodalKernel
variable = disp_x
function = react_x_inner_fn
boundary = inner_2
[../]
[./xforce_inner_3]
type = UserForcingFunctionNodalKernel
variable = disp_x
function = react_x_inner_fn
boundary = inner_3
[../]
[./yforce_inner_1]
type = UserForcingFunctionNodalKernel
variable = disp_y
function = react_y_inner_fn
boundary = inner_1
[../]
[./yforce_inner_2]
type = UserForcingFunctionNodalKernel
variable = disp_y
function = react_y_inner_fn
boundary = inner_2
[../]
[./yforce_inner_3]
type = UserForcingFunctionNodalKernel
variable = disp_y
function = react_y_inner_fn
boundary = inner_3
[../]
[./xforce_outer_1]
type = UserForcingFunctionNodalKernel
variable = disp_x
function = react_x_outer_fn
boundary = outer_1
[../]
[./xforce_outer_2]
type = UserForcingFunctionNodalKernel
variable = disp_x
function = react_x_outer_fn
boundary = outer_2
[../]
[./xforce_outer_3]
type = UserForcingFunctionNodalKernel
variable = disp_x
function = react_x_outer_fn
boundary = outer_3
[../]
[./yforce_outer_1]
type = UserForcingFunctionNodalKernel
variable = disp_y
function = react_y_outer_fn
boundary = outer_1
[../]
[./yforce_outer_2]
type = UserForcingFunctionNodalKernel
variable = disp_y
function = react_y_outer_fn
boundary = outer_2
[../]
[./yforce_outer_3]
type = UserForcingFunctionNodalKernel
variable = disp_y
function = react_y_outer_fn
boundary = outer_3
[../]
[]
[BCs]
[./NonReflectingBC]
[./back]
displacements = 'disp_x disp_y'
velocities = 'vel_x vel_y'
accelerations = 'accel_x accel_y'
beta = 0.25
gamma = 0.5
boundary = 'left right bottom'
shear_wave_speed = 1000.0
density = 1700.0
p_wave_speed=1870.829
[../]
[../]
[]
[Materials]
[./linear]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer
block = 0
layer_ids = '0'
shear_modulus = '1.7e9'
density = '1700.0'
poissons_ratio = '0.3'
[../]
[./strain_1]
type = ComputeSmallStrain
block = '0'
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = '0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_abs_tol = 1e-8
start_time = 0.0
end_time = 1.0
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[./node_x_50]
type = PointValue
point = '500.0 500.0 0.0'
variable = vel_x
[../]
[./node_y_50]
type = PointValue
point = '500.0 500.0 0.0'
variable = vel_y
[../]
[]
[Outputs]
file_base = output/small_model_out
exodus = true
csv = true
[]
(test/tests/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
[../]
[]
(tutorial/site_response_1.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
nx = 1
ny = 1
nz = 100
xmin = -0.5
ymin = -0.5
zmin = 0.0
xmax = 0.5
ymax = 0.5
zmax = 100.0
dim = 3
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./layer_id]
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
# displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '20 60 100.1'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[BCs]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./bottom_accel]
type = PresetAcceleration
boundary = 'back'
function = accel_bottom
variable = 'disp_x'
beta = 0.25
acceleration = 'accel_x'
velocity = 'vel_x'
[../]
[./Periodic]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom]
type = PiecewiseLinear
data_file = 'acceleration_hist.csv'
format = 'columns'
[../]
[]
[Materials]
[./linear_soil]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer_id
layer_ids = '0 1 2'
shear_modulus = '3e6 2e6 1e6'
poissons_ratio = '0.2 0.2 0.2'
density = '1200 1000 800'
[../]
[./strain]
type = ComputeSmallStrain
# displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0
end_time = 4
dt = 0.01
timestep_tolerance = 1e-6
[]
[Postprocessors]
[top_ax_pv]
type = PointValue
point = '0 0 100'
variable = 'accel_x'
[]
[./top_ax_nvv]
type = NodalVariableValue
variable = accel_x
nodeid = 401
[../]
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x accel_y accel_z'
nodes = '401'
[../]
[./accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.01
# outputs = out
[../]
[]
[Outputs]
csv = true
exodus = true
[]
(test/tests/materials/isoil/HYS_GQH_noaction.i)
# One element test to test the auto-generated GQ/H backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve was verified against obtained from DEEPSOIL.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ComputeISoilStress
soil_type = 'gqh'
layer_variable = layer_id
layer_ids = '0'
theta_1 = '-2.28'
theta_2 = '-5.54'
theta_3 = '1.0'
theta_4 = '1.0'
theta_5 = '0.99'
taumax = '7500'
initial_shear_modulus = '20000000'
number_of_points = 10
poissons_ratio = '0.3'
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
[../]
[./sample_isoil_strain]
type = ComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20000000'
poissons_ratio = '0.3'
density = '2000'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_data_file_AD_jac.i)
# One element test to test the auto-generated GQ/H backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve was verified against obtained from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 2 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
#use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_automatic_differentiation = true
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '4.0'
direction = '0 0 1'
execute_on = initial
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 'back'
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 'left right top bottom'
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 'left right top bottom'
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = FunctionDirichletBC
boundary = front
variable = disp_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0 8.0'
y = '0.0 1.0 0.0 -1.0 0.0 0.0'
scale_factor = 3e-3
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain_test_1.csv'
poissons_ratio = '0.3'
[../]
[./sample_isoil_strain]
type = ADComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '0'
elastic_modulus = '1.0'
poissons_ratio = '0.3'
density = '2'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 4.0
dt = 0.5
dtmin = 0.5
timestep_tolerance = 1e-6
nl_rel_tol = 5e-5
nl_abs_tol = 1e-7
#petsc_options = '-snes_test_jacobian_view'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_x
[../]
[./disp_6y]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_y
[../]
[./disp_6z]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_z
[../]
[./strain_zx]
type = ElementalVariableValue
variable = strain_zx
elementid = 1
[../]
[./stress_zx]
type = ElementalVariableValue
variable = stress_zx
elementid = 1
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/bcs/nonreflecting_bc/non_reflecting_bc_test.i)
#@requirement F6.2
# Test for non-reflecting boundary condition and application of seismic input
# This test consists of 20 brick elements stacked in the z direction.
# Back surface (z=0) is a non-reflecting boundary modeled using Lysmer damper.
# A sawtooth displacement of period 1 s is applied in the x direction to the front surface (z=1).
# The shear wave velocity of the soil material is 10 m/s. So the wave would take 0.1 second to reach from the front to back surface.
# The nodes on the sides are constrained to move together to periodic boundary.
# Result: The displacement at the back surface should almost be zero once the end of the wave has passed the back boundary (i.e., after 1.35 seconds in this case). This implies that most of the wave that that is incident on the boundary is absorbed by the boundary. Less than 1% of the incident wave is reflected back into the soil domain.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 20
xmin = 0.0
ymin = 0.0
zmin = 0.0
xmax = 1.0
ymax = 1.0
zmax = 1.0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./layer]
order = CONSTANT
family = MONOMIAL
[../]
[]
[ICs]
[./layer_ic]
type = FunctionIC
variable = layer
function = layers
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[]
[BCs]
[./front]
type = PresetDisplacement
variable = disp_x
function = x_vel
boundary = front
acceleration = accel_x
velocity = vel_x
beta = 0.25
[../]
[./NonReflectingBC]
[./back]
displacements = 'disp_x disp_y disp_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
beta = 0.25
gamma = 0.5
boundary = 'back'
shear_wave_speed = 10.0
p_wave_speed = 16.329931618554521
density = 1.0
[../]
[../]
[./Periodic]
[./left_right]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1 0 0'
[../]
[./top_bottom]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0 1 0'
[../]
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer
layer_ids = '10'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0
end_time = 3.0
l_tol = 1e-6
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
dt = 0.01
timestep_tolerance = 1e-12
[]
[Functions]
[./x_vel]
type = PiecewiseLinear
x = '0.0 0.25 0.5 0.75 1.0 1.25 2.0 3.0'
y = '0.0 0.0 0.5 0.0 -0.5 0.0 0.0 0.0'
[../]
[./layers]
type = ConstantFunction
value = 10
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_1]
type = NodalVariableValue
nodeid = 83 # z=1(input)
variable = disp_x
[../]
[./disp_2]
type = NodalVariableValue
nodeid = 77 # z=0.95
variable = disp_x
[../]
[./disp_3]
type = NodalVariableValue
nodeid = 0 # z=0 (location of non-reflecting boundary)
variable = disp_x
[../]
[]
[Outputs]
exodus = true
csv = true
print_linear_residuals = true
perf_graph = true
[]
(examples/ex09/SSI_Response.i)
[Mesh]
type = FileMesh
file = Full_3D_Str_red.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./rot_x]
block = '3 4 6'
[../]
[./rot_y]
block = '3 4 6'
[../]
[./rot_z]
block = '3 4 6'
[../]
[]
[AuxVariables]
[./stress_x]
[../]
[./stress_y]
[../]
[./stress_z]
[../]
[./vel_x]
[../]
[./vel_y]
[../]
[./vel_z]
[../]
[./accel_x]
[../]
[./accel_y]
[../]
[./accel_z]
[../]
[./rot_vel_x]
block = '3 4 6'
[../]
[./rot_vel_y]
block = '3 4 6'
[../]
[./rot_vel_z]
block = '3 4 6'
[../]
[./rot_accel_x]
block = '3 4 6'
[../]
[./rot_accel_y]
block = '3 4 6'
[../]
[./rot_accel_z]
block = '3 4 6'
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Physics/SolidMechanics/LineElement/QuasiStatic]
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
# dynamic simulation using consistent mass/inertia matrix
dynamic_nodal_translational_inertia = true
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25 # Newmark time integration parameter
gamma = 0.5 # Newmark time integration parameter
[./block_3]
block = 3
area = 500
Iy = 1e3
Iz = 1e3
y_orientation = '0.0 1.0 0.0'
nodal_mass = 0.1
boundary = 'B0'
[../]
[./block_4]
block = 4
area = 500
Iy = 1e3
Iz = 1e3
y_orientation = '1.0 0.0 0.0'
nodal_mass = 0.1
boundary = 'B0'
[../]
[./block_6]
block = 6
area = 500
Iy = 1e3
Iz = 1e3
y_orientation = '0.0 1.0 0.0'
nodal_mass = 166.0
density = 2.7
boundary = 'B1'
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
block = '1 2'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
block = '1 2'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
block = '1 2'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
block = '1 2'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = 'timestep_end'
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = 'timestep_end'
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = 'timestep_end'
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = 'timestep_end'
[../]
[./layer_id]
type = UniformLayerAuxKernel
block = '1'
variable = layer_id
interfaces = '29.6'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[Materials]
[./elastic_soil]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer_id
layer_ids = '0'
poissons_ratio = '0.3'
density = '1.7'
shear_modulus = '46282.5'
block = '1'
[../]
[./elasticity_base]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e10
poissons_ratio = 0
block = '2'
[../]
[./stress_beam2]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[./strain_15]
type = ComputeFiniteStrain
block = '1 2'
displacements = 'disp_x disp_y disp_z'
[../]
[./density]
type = GenericConstantMaterial
block = '2'
prop_names = density
prop_values = 2.7
[../]
[./elasticity_beam_rigid]
type = ComputeElasticityBeam
youngs_modulus = 1e10
poissons_ratio = 0.3
shear_coefficient = 0.85
block = '3 4 6'
[../]
[./stress_beam]
type = ComputeBeamResultants
block = '3 4 6'
[../]
[]
[BCs]
[./disp_x]
type = PresetAcceleration
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
function = accel_bottom
boundary = 'NZ'
[../]
[./disp_y]
type = DirichletBC
boundary = 'NZ'
variable = disp_y
value = 0.0
[../]
[./disp_z]
type = DirichletBC
boundary = 'NZ'
variable = disp_z
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'NX'
secondary = 'PX'
translation = '75.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'NY'
secondary = 'PY'
translation = '0.0 75.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom]
type = PiecewiseLinear
data_file = Ormsby_USE1.csv
format = 'columns'
scale_factor = 1
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-7
nl_rel_tol = 1e-7
l_tol = 1e-7
l_max_its = 12
start_time = 0.0
end_time = 3.0
dt = 0.001
timestep_tolerance = 1e-6
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x'
nodes = '23935 2331 104 5'
outputs = out
[../]
[./accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.001
damping_ratio = 0.01
start_frequency = 0.1
end_frequency = 1000
outputs = out
[../]
[]
[Outputs]
csv = true
exodus = true
perf_graph = true
print_linear_residuals = true
[./out]
execute_on = 'FINAL'
type = CSV
file_base = SSI_NoDamp_RigidStr
[../]
[./out2]
type = Exodus
file_base = Exod_SSI_NoDamp_RigidStr
interval = 10
[../]
[]
(test/tests/materials/isoil/HYS_GQH_noaction_AD.i)
# One element test to test the auto-generated GQ/H backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve was verified against obtained from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./stress_div_x]
type = ADDynamicStressDivergenceTensors
variable = disp_x
component = 0
zeta = 0.00006366
use_displaced_mesh = false
[../]
[./stress_div_y]
type = ADDynamicStressDivergenceTensors
variable = disp_y
component = 1
zeta = 0.00006366
use_displaced_mesh = false
[../]
[./stress_div_z]
type = ADDynamicStressDivergenceTensors
variable = disp_z
component = 2
zeta = 0.00006366
use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'gqh'
layer_variable = layer_id
layer_ids = '0'
theta_1 = '-2.28'
theta_2 = '-5.54'
theta_3 = '1.0'
theta_4 = '1.0'
theta_5 = '0.99'
taumax = '7500'
initial_shear_modulus = '20000000'
number_of_points = 10
poissons_ratio = '0.3'
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
[../]
[./sample_isoil_strain]
type = ADComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20000000'
poissons_ratio = '0.3'
density = '2000'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
dtmin = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_check_jacobian'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/model/noaction_dynamic.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
eta = 0.64026
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
eta = 0.64026
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
eta = 0.64026
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/bcs/seismic_displacement/seismic_displacement.i)
# Test for within soil seismic input. Test for outcrop seismic input is
# with non reflecting boundary condition
# This test consists of one brick element.
# A sawtooth displacement history is applied as seismic input to the bottom surface.
# Result: The result at the bottom should be same as the input displacement.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./layer]
order = CONSTANT
family = MONOMIAL
[../]
[]
[ICs]
[./layer_ic]
type = FunctionIC
variable = layer
function = layer_y
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
hht_alpha = -0.3
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.4225
gamma = 0.8
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.4225
gamma = 0.8
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.4225
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.8
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.4225
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.8
execute_on = timestep_end
[../]
[]
[BCs]
[./SeismicDisplacement]
[./top_x]
displacements = 'disp_x disp_y'
velocities = 'vel_x vel_y'
accelerations = 'accel_x accel_y'
input_components = '0 1'
input_functions = 'x_disp y_disp' #input displacements
boundary = bottom
beta = 0.4225
[../]
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer
layer_ids = '10'
shear_modulus = '71.42857'
poissons_ratio = '0.4'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0
end_time = 2.0
l_tol = 1e-12
nl_abs_tol = 1e-15
nl_rel_tol = 1e-12
dt = 0.01
timestep_tolerance = 1e-12
[]
[Functions]
[./x_disp]
type = PiecewiseLinear
x = '0.0 0.25 0.5 0.75 1.0 1.25 1.5 2.0 3.0'
y = '0.0 0.0 0.5 0.0 -0.5 0.0 0.0 0.0 0.0'
[../]
[./y_disp]
type = PiecewiseLinear
x = '0.0 0.25 0.5 0.75 1.0 1.25 1.5 2.0 3.0'
y = '0.0 0.0 0.5 0.0 -0.5 0.0 0.0 0.0 0.0'
[../]
[./layer_y]
type = ConstantFunction
value = 10
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_1]
type = NodalVariableValue
nodeid = 0
variable = disp_x
[../]
[./disp_2]
type = NodalVariableValue
nodeid = 0
variable = disp_y
[../]
[]
[Outputs]
exodus = true
csv = true
print_linear_residuals = true
perf_graph = true
[]
(test/tests/materials/isoil/HYS_darendeli_noaction_AD.i)
# One element test to test the auto-generated Darendeli backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress vs shear strain curve was verified against that obtained
# from DEEPSOIL.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
#use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'darendeli'
layer_variable = layer_id
layer_ids = '0'
over_consolidation_ratio = '1'
plasticity_index = '0'
initial_shear_modulus = '20000'
number_of_points = 10
poissons_ratio = '0.3'
initial_soil_stress = '-4.204286 0 0 0 -4.204286 0 0 0 -9.810'
p_ref = '6.07286'
wave_speed_calculation = true
[../]
[./sample_isoil_strain]
type = ADComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20000'
poissons_ratio = '0.3'
density = '2'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
[./out]
type = Exodus
sync_times = '0 1 2 3 4 5 6 7 8'
sync_only = true
[../]
[]
(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/linear_isotropic_elasticity_tensor_soil/layered_soil_test_shear.i)
#@requirement F4.1
# Test for layered soil material using traditional approach.
# In this test, a 1x1 soil domain is split into 9 elements (3x3 mesh).
# The bottom edge of this element is fixed and the top edge is pulled by
# applying nodal forces in the +y direction. The soil domain is made of 3
# different soil layers distributed in the y direction.
# Result: The bottom nodes remain fixed. The other nodes have a x and y displacement which
# increases with +y.
# At x = -0.5, y = -0.5, displacement: 0,0
# At x = -0.5, y = -0.1667, displacement: 0.019364, 0.035915
# At x = -0.5, y = 0.1667, displacement:0.035965, 0.095781
# At x = -0.5, y = 0.5, displacement: 0.096357, 0.24403
# The above result was obtained by running a similar model in which three different blocks
# were constructed for each soil material and a different input block was written for each
# soil material.
[Mesh]
type = GeneratedMesh
nx = 3
ny = 3
dim = 2
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
[../]
[]
[AuxVariables]
[./layer]
order = CONSTANT
family = MONOMIAL
[../]
[]
[ICs]
[./layer_ic]
type = FunctionIC
variable = layer
function = layers_y
[../]
[]
[Functions]
[./layers_y]
type = PiecewiseConstant
x = '-0.1667 0.1667 0.5'
y = ' 30 20 10'
axis=Y
direction = right
[../]
[]
[NodalKernels]
[./top_y]
variable = disp_y
type = ConstantRate
rate = 20.0
boundary = top
[../]
[]
[BCs]
[./bottom_x]
type = DirichletBC
variable = disp_x
boundary = bottom
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer
layer_ids = '10 20 30'
poissons_ratio = '0.3 0.3 0.3'
density = '2.0 2.0 2.0'
shear_modulus = '100.0 200.0 300.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
output_linear = true
[../]
[]
(test/tests/mastodonblock/outputs/noaction_stress_strain_output.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(examples/ex07/fixed_inner.i)
[Mesh]
[./generate]
type = GeneratedMeshGenerator
dim = 2
xmin = 450.0
xmax = 550.0
ymin = 450.0
ymax = 500.0
nx = 10
ny = 5
[../]
[./SubdomainBoundingBoxGenerator]
type = SubdomainBoundingBoxGenerator
input = generate
block_id = 1
bottom_left = '460.0 460.0 0.0'
top_right = '540.0 500.0 0.0'
[../]
[./ed0]
type = BlockDeletionGenerator
input = SubdomainBoundingBoxGenerator
block_id = 1
depends_on = SubdomainBoundingBoxGenerator
[../]
[./outer_1]
type = ParsedAddSidesetGenerator
input = ed0
combinatorial_geometry = 'x > 449.9 & x < 450.1 & y > 449.9'
new_sideset_name = outer_1
normal = '-1.0 0.0 0.0'
[../]
[./outer_2]
type = ParsedAddSidesetGenerator
input = outer_1
combinatorial_geometry = 'x > 459.1 & x < 541.0 & y > 449.9 & y < 450.1'
new_sideset_name = outer_2
normal = '0.0 -1.0 0.0'
[../]
[./outer_3]
type = ParsedAddSidesetGenerator
input = outer_2
combinatorial_geometry = 'x > 549.1 & x < 550.1 & y > 449.9'
new_sideset_name = outer_3
normal = '1.0 0.0 0.0'
[../]
[./inner_1]
type = ParsedAddSidesetGenerator
input = outer_3
combinatorial_geometry = 'x > 459.9 & x < 460.1 & y > 459.9'
new_sideset_name = inner_1
normal = '1.0 0.0 0.0'
[../]
[./inner_2]
type = ParsedAddSidesetGenerator
input = inner_1
combinatorial_geometry = 'x > 469.1 & x < 530.1 & y > 459.9 & y < 460.1'
new_sideset_name = inner_2
normal = '0.0 1.0 0.0'
[../]
[./inner_3]
type = ParsedAddSidesetGenerator
input = inner_2
combinatorial_geometry = 'x > 539.9 & x < 540.1 & y > 459.9'
new_sideset_name = inner_3
normal = '-1.0 0.0 0.0'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./layer]
order = CONSTANT
family = MONOMIAL
[../]
[./resid_x]
[../]
[./resid_y]
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
block = 0
save_in = 'resid_x resid_y'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
save_in = resid_x
block = 0
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
save_in = resid_y
block = 0
eta = 7.854
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
interfaces = '550.0'
direction = '0 1 0'
variable = layer
execute_on = initial
[../]
[]
[UserObjects]
[./solution_disp_x]
type = SolutionUserObject
mesh = output/big_model_out.e
system_variables = disp_x
[../]
[./solution_disp_y]
type = SolutionUserObject
mesh = output/big_model_out.e
system_variables = disp_y
[../]
[]
[Functions]
[./soln_dispx_fn]
type = SolutionFunction
solution = solution_disp_x
scale_factor = -1.0
[../]
[./soln_dispy_fn]
type = SolutionFunction
solution = solution_disp_y
scale_factor = -1.0
[../]
[]
[BCs]
[./disp_outer_1x]
type = FunctionDirichletBC
variable = disp_x
boundary = outer_1
function = soln_dispx_fn
[../]
[./disp_outer_2x]
type = FunctionDirichletBC
variable = disp_x
boundary = outer_2
function = soln_dispx_fn
[../]
[./disp_outer_3x]
type = FunctionDirichletBC
variable = disp_x
boundary = outer_3
function = soln_dispx_fn
[../]
[./disp_inner_1x]
type = DirichletBC
variable = disp_x
boundary = inner_1
value = 0.0
[../]
[./disp_inner_2x]
type = DirichletBC
variable = disp_x
boundary = inner_2
value = 0.0
[../]
[./disp_inner_3x]
type = DirichletBC
variable = disp_x
boundary = inner_3
value = 0.0
[../]
[./disp_outer_1y]
type = FunctionDirichletBC
variable = disp_y
boundary = outer_1
function = soln_dispy_fn
[../]
[./disp_outer_2y]
type = FunctionDirichletBC
variable = disp_y
boundary = outer_2
function = soln_dispy_fn
[../]
[./disp_outer_3y]
type = FunctionDirichletBC
variable = disp_y
boundary = outer_3
function = soln_dispy_fn
[../]
[./disp_inner_1y]
type = DirichletBC
variable = disp_y
boundary = inner_1
value = 0.0
[../]
[./disp_inner_2y]
type = DirichletBC
variable = disp_y
boundary = inner_2
value = 0.0
[../]
[./disp_inner_3y]
type = DirichletBC
variable = disp_y
boundary = inner_3
value = 0.0
[../]
[]
[Materials]
[./linear]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer
block = 0
layer_ids = '0'
shear_modulus = '1.7e9'
density = '1700.0'
poissons_ratio = '0.3'
[../]
[./strain_1]
type = ComputeSmallStrain
block = '0'
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = '0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_abs_tol = 1e-8
start_time = 0.0
end_time = 1.0
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[]
[Outputs]
file_base = output/DRM_layer_2d_inner_out
exodus = true
csv = true
[]
(examples/ex09/Soil_Response.i)
[Mesh]
type = GeneratedMesh
nx = 1
ny = 1
nz = 15
xmin = 0
ymin = 0
zmin = 0.0
xmax = 1
ymax = 1
zmax = 29.47
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '29.8'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[BCs]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./bottom_accel]
type = PresetAcceleration
boundary = 'back'
function = accel_bottom
variable = 'disp_x'
beta = 0.25
acceleration = 'accel_x'
velocity = 'vel_x'
[../]
[./Periodic]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom]
type = PiecewiseLinear
data_file = Ormsby_USE1.csv
scale_factor = 1.0
format = 'columns'
[../]
[./initial_zz]
type = ParsedFunction
value = '-1.7 * 9.81 * (29.47 - z)'
[../]
[./initial_xx]
type = ParsedFunction
value = '-1.7 * 9.81 * (29.47 - z) * 0.3/0.7'
[../]
[]
[Materials]
[./elastic_soil]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer_id
layer_ids = '0'
poissons_ratio = '0.3'
density = '1.7'
shear_modulus = '46282.5'
[../]
[./stress_beam2]
type = ComputeFiniteStrainElasticStress
[../]
[./strain_15]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
start_time = 0.0
end_time = 4.0
dt = 0.001
dtmin = 0.0001
nl_abs_tol = 1e-4
nl_rel_tol = 1e-5
l_tol = 1e-5
l_max_its = 25
timestep_tolerance = 1e-8
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x'
nodes = '3 63'
[../]
[./accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.001
damping_ratio = 0.01
start_frequency = 0.1
end_frequency = 1000
outputs = out
[../]
[]
[Outputs]
csv = true
exodus = true
perf_graph = true
print_linear_residuals = true
[./out]
execute_on = 'FINAL'
type = CSV
file_base = Soil_Final_NoDamp
[../]
[./out2]
type = Exodus
file_base = Exod_Soil_Final_NoDamp
interval = 10
[../]
[]
(test/tests/vectorpostprocessors/response_spectra_calculator/response_spectra_calculator.i)
#@requirement F8.2
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 4
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
zmin = 0.0
zmax = 4.0
[]
[Controls]
[./period0]
type = TimePeriod
disable_objects = 'Kernels/inertia_x Kernels/inertia_y Kernels/inertia_z AuxKernels/accel_x AuxKernels/accel_y AuxKernels/accel_z AuxKernels/vel_x AuxKernels/vel_y AuxKernels/vel_z'
start_time = 0.0
end_time = 0.005 # same as dt used in the analysis
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
static_initialization = True
use_displaced_mesh = True
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = True
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 2
index_j = 0
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '20'
direction = '0 0 1'
execute_on = initial
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
poissons_ratio = '0.3'
density = '2000.0'
shear_modulus = '325e7'
[../]
[./stress1]
#Computes the stress, using linear elasticity
type = ComputeLinearElasticStress
block = 0
[../]
[./strain1]
#Computes the strain, assuming small strains
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./bottom_accel_x]
type = PresetAcceleration
boundary = back
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./bottom_accel_y]
type = PresetAcceleration
boundary = back
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./Periodic]
[./x_dir]
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
l_tol = 1e-8
start_time = 32
end_time = 33
dt = 0.005 # should be 0.005
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Outputs]
[./out]
type = CSV
execute_on = 'final'
[../]
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x accel_y'
nodes = '8 9'
[../]
[./accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.005
outputs = out
[../]
[]
(test/tests/materials/linear_isotropic_elasticity_tensor_soil/layered_soil_test_elastic.i)
#@requirement F4.1
# Test for layered soil material using traditional approach.
# In this test, a 1x1 soil domain is split into 9 elements (3x3 mesh).
# The bottom edge of this element is fixed and the top edge is pulled by
# applying nodal forces in the +y direction. The soil domain is made of 3
# different soil layers distributed in the y direction.
# Result: The bottom nodes remain fixed. The other nodes have a x and y displacement which
# increases with +y.
# At x = -0.5, y = -0.5, displacement: 0,0
# At x = -0.5, y = -0.1667, displacement: 0.019364, 0.035915
# At x = -0.5, y = 0.1667, displacement:0.035965, 0.095781
# At x = -0.5, y = 0.5, displacement: 0.096357, 0.24403
# The above result was obtained by running a similar model in which three different blocks
# were constructed for each soil material and a different input block was written for each
# soil material.
[Mesh]
type = GeneratedMesh
nx = 3
ny = 3
dim = 2
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
[../]
[]
[AuxVariables]
[./layer]
order = CONSTANT
family = MONOMIAL
[../]
[]
[ICs]
[./layer_ic]
type = FunctionIC
variable = layer
function = layers_y
[../]
[]
[Functions]
[./layers_y]
type = PiecewiseConstant
x = '-0.1667 0.1667 0.5'
y = ' 30 20 10'
axis=Y
direction = right
[../]
[]
[NodalKernels]
[./top_y]
variable = disp_y
type = ConstantRate
rate = 20.0
boundary = top
[../]
[]
[BCs]
[./bottom_x]
type = DirichletBC
variable = disp_x
boundary = bottom
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer
layer_ids = '10 20 30'
poissons_ratio = '0.3 0.3 0.3'
density = '2.0 2.0 2.0'
elastic_modulus = '260.0 520.0 780.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
output_linear = true
[../]
[]
(test/tests/materials/isoil/HYS_thin_layer_noaction.i)
# One element test to test the auto-generated thin_layer backbone curve for
# Coulomb friction. The top surface of the element (z=0) is fixed and the
# bottom surface (z=1) is moved by applying a cyclic preset displacement.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = '0 1 2 3 4'
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = '0 1 2 3 4'
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ComputeISoilStress
soil_type = 'thin_layer'
layer_variable = layer_id
layer_ids = '0'
initial_shear_modulus = '20000'
poissons_ratio = '0.45'
friction_coefficient = '0.7'
hardening_ratio = '0.001'
p_ref = '8.6209091'
initial_soil_stress = '-8.0263636 0 0 0 -8.0263636 0 0 0 -9.810'
[../]
[./sample_isoil_strain]
## Use ComputeFiniteStrain for soil_type = thin_layer since large strains are expected
type = ComputeFiniteStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20000'
poissons_ratio = '0.45'
density = '2.0'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_data_file_pressure_contact_AD.i)
# Test for cyclic tensile and compressive nonlinear soil behavior
# Soil column consists of 3 elements, each 1m x 1m x 1m, stacked on top of one
# another vertically. The middle element is nonlinear, while the top and bottom
# elements are linear elastic. The bottom boundary is fixed in all directions.
# A sawtooth pulse is applied in both X and Z directions of the soil column.
# The hydrostatic and vonMises stresses of the nonlinear element are printed out
# as output. When the nonlinear soil element is under tension, the hydrostatic
# stress reduces to zero, and the vonMises stress also reduces to zero
# indicating that the nonlinear soil element has failed. When the element is
# compressed, it regains strength. So, the hydrostatic stress becomes negative
# and vonMises stress becomes non-zero.
# Running this test with -snes_test_jacobian petsc option shows that the relative
# difference between the hand-coded and the FD jacobian is in the order of 2e-7
# throughout the simulation.
[Mesh]
[./generate]
type = GeneratedMeshGenerator # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 3 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 3.0
[../]
[./block1]
type = SubdomainBoundingBoxGenerator
input = generate
bottom_left = '0.0 0.0 0.0'
top_right = '1.0 1.0 1.0'
block_id = '1'
[../]
[./block2]
type = SubdomainBoundingBoxGenerator
input = block1
bottom_left = '0.0 0.0 1.0'
top_right = '1.0 1.0 2.0'
block_id = '2'
[../]
[./block3]
type = SubdomainBoundingBoxGenerator
input = block2
bottom_left = '0.0 0.0 2.0'
top_right = '1.0 1.0 3.0'
block_id = '3'
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
use_automatic_differentiation = true
use_displaced_mesh = false
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '4.0'
direction = '0 0 1'
execute_on = initial
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./vonmises]
type = ADRankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = vonmisesStress
[../]
[./hydrostatic]
type = ADRankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic
scalar_type = hydrostatic
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 'back'
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./top_disp]
type = FunctionDirichletBC
variable = disp_x
function = top_disp
boundary = front
[../]
[./top_disp_z]
type = FunctionDirichletBC
variable = disp_z
function = top_disp_z
boundary = front
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0 8.0'
y = '0.0 1.0 0.0 -1.0 0.0 0.0'
scale_factor = 5e-3
[../]
[./top_disp_z]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0 5.0 6.0 8.0'
y = '0.0 -2.0 0.0 3.0 0.0 -2.0 0.0 0.0'
scale_factor = -5e-3
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain_test_1.csv'
poissons_ratio = '0.3'
pressure_dependency = true
a0 = 0
a1 = 0
a2 = 1
b_exp = 0.5
p_ref = 1e-4
tension_pressure_cut_off = -1e-9
block = 2
[../]
[./sample_isoil_strain]
type = ADComputeIncrementalSmallStrain
block = '1 2 3'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '2'
elastic_modulus = '1.0'
poissons_ratio = '0.3'
density = '6'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[./sample_isoil_elasticitytensor2]
type = ADComputeIsotropicElasticityTensorSoil
block = '1 3'
elastic_modulus = '1.0e-2'
poissons_ratio = '0.3'
density = '2e-2'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[./sample_soil]
type = ADComputeFiniteStrainElasticStress
block = '1 3'
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 6.0
dt = 0.01
dtmin = 0.01
nl_max_its = 200
timestep_tolerance = 1e-6
nl_rel_tol = 5e-5
nl_abs_tol = 1e-7
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_x
[../]
[./disp_6y]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_y
[../]
[./disp_6z]
type = PointValue
point = '0.0 0.0 1.0'
variable = disp_z
[../]
[./strain_zx]
type = ElementalVariableValue
variable = strain_zx
elementid = 1
[../]
[./stress_zx]
type = ElementalVariableValue
variable = stress_zx
elementid = 1
[../]
[./hydrostatic]
type = ElementalVariableValue
variable = hydrostatic
elementid = 1
[../]
[./vonmises]
type = ElementalVariableValue
variable = vonmises
elementid = 1
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[./console]
type = Console
max_rows = 1
[../]
[]
(test/tests/bcs/seismic_force/seismic_force_test_x_y.i)
#@requirement F6.4
# Test for application of seismic force which converts ground velocity in x and y directions into shear stress.
# This test consists of 20 brick elements stacked in the z direction.
# Back surface (z=0) is fixed in all three coordinate directions.
# Seismic stress proportional to a 2D input velocity is applied to the front surface (z=1).
# The nodes on the sides are constrained to move together to using periodic boundary.
# The shear wave speed in the soil is 1 m/s. So it will take 1 second for a shear wave from the front surface to reach the back surface and 2 seconds for the wave reflected off the back surface to reach the front surface.
# Result: The velocity at the front surface should almost be same as input velocity in the x and y directions before 2 seconds (i.e., before the reflected shear wave reaches the front surface).
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 25
xmin = 0.0
ymin = 0.0
zmin = 0.0
xmax = 1.0
ymax = 1.0
zmax = 1.0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./layer]
order = CONSTANT
family = MONOMIAL
[../]
[]
[ICs]
[./layer_ic]
type = FunctionIC
variable = layer
function = layers
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[]
[BCs]
[./SeismicForce]
[./front]
displacements = 'disp_x disp_y disp_z'
input_components = '0 1'
boundary = 'front'
velocity_functions = 'x_vel y_vel' # input velocity functions
shear_wave_speed = 1.0
p_wave_speed = 3.5
density = 1.0
[../]
[../]
[./back_x]
type = DirichletBC
variable = disp_x
value = 0.0
boundary = back
[../]
[./back_y]
type = DirichletBC
variable = disp_y
value = 0.0
boundary = back
[../]
[./back_z]
type = DirichletBC
variable = disp_z
value = 0.0
boundary = back
[../]
[./Periodic]
[./left_right]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1 0 0'
[../]
[./top_bottom]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0 1 0'
[../]
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer
layer_ids = '10'
shear_modulus = '1.0'
poissons_ratio = '0.3'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0
end_time = 2.0
l_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
dt = 0.02
timestep_tolerance = 1e-12
[]
[Functions]
[./y_vel]
type = PiecewiseLinear
x = '0.0 0.25 0.5 0.75 1.0 1.25 1.5 2.0 3.0'
y = '0.0 0.0 0.5 0.0 -0.5 0.0 0.0 0.0 0.0'
[../]
[./x_vel]
type = ParsedFunction
value = 'if (t<=1.0, sin(pi*t), 0.0)'
[../]
[./layers]
type = ConstantFunction
value = 10
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_1]
type = NodalVariableValue
nodeid = 103
variable = vel_x
[../]
[./disp_2]
type = NodalVariableValue
nodeid = 103
variable = vel_y
[../]
[]
[Outputs]
exodus = true
csv = true
print_linear_residuals = true
perf_graph = true
[]
(test/tests/materials/isoil/HYS_darendeli_noaction.i)
# One element test to test the auto-generated Darendeli backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress vs shear strain curve was verified against that obtained
# from DEEPSOIL.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
#use_displaced_mesh = false
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ComputeISoilStress
soil_type = 'darendeli'
layer_variable = layer_id
layer_ids = '0'
over_consolidation_ratio = '1'
plasticity_index = '0'
initial_shear_modulus = '20000'
number_of_points = 10
poissons_ratio = '0.3'
initial_soil_stress = '-4.204286 0 0 0 -4.204286 0 0 0 -9.810'
p_ref = '6.07286'
wave_speed_calculation = true
[../]
[./sample_isoil_strain]
type = ComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20000'
poissons_ratio = '0.3'
density = '2'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
[./out]
type = Exodus
sync_times = '0 1 2 3 4 5 6 7 8'
sync_only = true
[../]
[]
(test/tests/mastodonblock/combined/mastodon_block_actions.i)
# One element model to test Mastodon Block Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
# UPDATE THIS FILE WITH MASTODON BLOCK ACTIONS AS THEY ARE IMPLEMENTED
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[./Model]
dynamic_analysis = true
[../]
[./Outputs]
stress_strain_output = true
[../]
[]
[AuxVariables]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(examples/ex01b/HYS_darendeli_explicit.i)
# One element test to test the auto-generated Darendeli backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress vs shear strain curve was verified against that obtained
# from DEEPSOIL.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
# stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
eta = 7.854
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
eta = 7.854
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[../]
[./vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[../]
[./accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[../]
[./vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_y
[../]
[./accel_z]
type = TestNewmarkTI
variable = accel_z
displacement = disp_z
first = false
[../]
[./vel_z]
type = TestNewmarkTI
variable = vel_z
displacement = disp_z
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = FunctionDirichletBC
boundary = 5
function = top_disp
variable = 'disp_x'
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = '../ex01a/Displacement2.csv'
format = columns
[../]
[]
# [Materials]
# [./sample_isoil]
# type = ComputeISoilStress
# soil_type = 'darendeli'
# layer_variable = layer_id
# layer_ids = '0'
# initial_soil_stress = '-4.204286 0 0 0 -4.204286 0 0 0 -9.810'
# poissons_ratio = '0.3'
# number_of_points = 10
# over_consolidation_ratio = '1'
# plasticity_index = '0'
# initial_shear_modulus = '20000'
# p_ref = '6.07286'
# block = '0'
# [../]
# [./sample_isoil_strain]
# type = ComputeIncrementalSmallStrain
# block = '0'
# displacements = 'disp_x disp_y disp_z'
# implicit = false
# [../]
# [./sample_isoil_elasticitytensor]
# type = ComputeIsotropicElasticityTensorSoil
# block = '0'
# density = '2'
# wave_speed_calculation = false
# layer_ids = '0'
# poissons_ratio = '0.3'
# shear_modulus = '20000'
# layer_variable = layer_id
# [../]
# []
[Materials]
[./I_Soil]
[./soil_1]
soil_type = 'darendeli'
layer_variable = layer_id
layer_ids = '0'
over_consolidation_ratio = '1'
plasticity_index = '0'
initial_shear_modulus = '20000'
number_of_points = 10
poissons_ratio = '0.3'
block = 0
initial_soil_stress = '-4.204286 0 0 0 -4.204286 0 0 0 -9.810'
density = '2'
p_ref = '6.07286'
[../]
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
end_time = 8.0
timestep_tolerance = 1e-6
l_abs_tol = 1e-12
[./TimeIntegrator]
type = CentralDifference
[../]
[./TimeStepper]
type = PostprocessorDT
postprocessor = time_step
dt = 0.001
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[./time_step]
type = CriticalTimeStep
factor = 0.9
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
file_base = Test # HYS_Darendeli_explicit
[]
(test/tests/materials/isoil/HYS_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
[]
(examples/ex07/fixed_outer.i)
[Mesh]
[./generate]
type = GeneratedMeshGenerator
dim = 2
xmin = 450.0
xmax = 550.0
ymin = 450.0
ymax = 500.0
nx = 10
ny = 5
[../]
[./SubdomainBoundingBox]
type = SubdomainBoundingBox
input = generate
block_id = 1
bottom_left = '460.0 460.0 0.0'
top_right = '540.0 500.0 0.0'
[../]
[./ed0]
type = BlockDeletionGenerator
input = SubdomainBoundingBoxGenerator
block_id = 1
[../]
[./outer_1] # outer-left boundary
type = ParsedAddSidesetGenerator
input = ed0
combinatorial_geometry = 'x > 449.9 & x < 450.1 & y > 449.9'
new_sideset_name = outer_1
normal = '-1.0 0.0 0.0'
[../]
[./outer_2] # outer-bottom boundary
type = ParsedAddSidesetGenerator
input = outer_1
combinatorial_geometry = 'x > 459.1 & x < 541.0 & y > 449.9 & y < 450.1'
new_sideset_name = outer_2
normal = '0.0 -1.0 0.0'
[../]
[./outer_3] # outer-right boundary
type = ParsedAddSidesetGenerator
input = outer_2
combinatorial_geometry = 'x > 549.1 & x < 550.1 & y > 449.9'
new_sideset_name = outer_3
normal = '1.0 0.0 0.0'
[../]
[./inner_1] # inner-left boundary
type = ParsedAddSidesetGenerator
input = outer_3
combinatorial_geometry = 'x > 459.9 & x < 460.1 & y > 459.9'
new_sideset_name = inner_1
normal = '1.0 0.0 0.0'
[../]
[./inner_2] # inner-bottom boundary
type = ParsedAddSidesetGenerator
input = inner_1
combinatorial_geometry = 'x > 469.1 & x < 530.1 & y > 459.9 & y < 460.1'
new_sideset_name = inner_2
normal = '0.0 1.0 0.0'
[../]
[./inner_3] # inner-right boundary
type = ParsedAddSidesetGenerator
input = inner_2
combinatorial_geometry = 'x > 539.9 & x < 540.1 & y > 459.9'
new_sideset_name = inner_3
normal = '-1.0 0.0 0.0'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./layer]
[../]
[./resid_x]
[../]
[./resid_y]
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
block = 0
save_in = 'resid_x resid_y'
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
save_in = resid_x
block = 0
eta = 7.854
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
save_in = resid_y
block = 0
eta = 7.854
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
interfaces = '550.0'
direction = '0 1 0'
variable = layer
execute_on = initial
[../]
[]
[UserObjects]
[./solution_disp_x]
type = SolutionUserObject
mesh = output/big_model_out.e
system_variables = disp_x
[../]
[./solution_disp_y]
type = SolutionUserObject
mesh = output/big_model_out.e
system_variables = disp_y
[../]
[]
[Functions]
[./soln_dispx_fn]
type = SolutionFunction
solution = solution_disp_x
[../]
[./soln_dispy_fn]
type = SolutionFunction
solution = solution_disp_y
[../]
[]
[BCs]
[./disp_inner_1x]
type = FunctionDirichletBC
variable = disp_x
boundary = inner_1
function = soln_dispx_fn
[../]
[./disp_inner_2x]
type = FunctionDirichletBC
variable = disp_x
boundary = inner_2
function = soln_dispx_fn
[../]
[./disp_inner_3x]
type = FunctionDirichletBC
variable = disp_x
boundary = inner_3
function = soln_dispx_fn
[../]
[./disp_outer_1x]
type = DirichletBC
variable = disp_x
boundary = outer_1
value = 0.0
[../]
[./disp_outer_2x]
type = DirichletBC
variable = disp_x
boundary = outer_2
value = 0.0
[../]
[./disp_outer_3x]
type = DirichletBC
variable = disp_x
boundary = outer_3
value = 0.0
[../]
[./disp_inner_1y]
type = FunctionDirichletBC
variable = disp_y
boundary = inner_1
function = soln_dispy_fn
[../]
[./disp_inner_2y]
type = FunctionDirichletBC
variable = disp_y
boundary = inner_2
function = soln_dispy_fn
[../]
[./disp_inner_3y]
type = FunctionDirichletBC
variable = disp_y
boundary = inner_3
function = soln_dispy_fn
[../]
[./disp_outer_1y]
type = DirichletBC
variable = disp_y
boundary = outer_1
value = 0.0
[../]
[./disp_outer_2y]
type = DirichletBC
variable = disp_y
boundary = outer_2
value = 0.0
[../]
[./disp_outer_3y]
type = DirichletBC
variable = disp_y
boundary = outer_3
value = 0.0
[../]
[]
[Materials]
[./linear]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer
block = 0
layer_ids = '0'
shear_modulus = '1.7e9'
density = '1700.0'
poissons_ratio = '0.3'
[../]
[./strain_1]
type = ComputeSmallStrain
block = '0'
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = '0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_abs_tol = 1e-8
start_time = 0.0
end_time = 1.0
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[]
[Outputs]
file_base = output/DRM_layer_2d_outer_out
exodus = true
csv = true
[]
(test/tests/mastodonblock/model/model_static.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[./Model]
dynamic_analysis = false
[../]
[]
[Variables]
inactive = 'disp_x disp_y disp_z'
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
inactive = 'DynamicTensorMechanics'
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[AuxKernels]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
boundary = 0
variable = disp_x
value = 0
[../]
[./y_bot]
type = DirichletBC
boundary = 0
variable = disp_y
value = 0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./x_top]
type = FunctionDirichletBC
boundary = 5
variable = disp_x
function = disp_top_x
[../]
[./y_top]
type = FunctionDirichletBC
boundary = 5
variable = disp_y
function = disp_top_y
[../]
[]
[Functions]
[./disp_top_x]
type = PiecewiseLinear
data_file = 'disp.csv'
format = columns
scale_factor = 1.0
[../]
[./disp_top_y]
type = PiecewiseLinear
data_file = 'disp.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.3'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/combined/mastodon_block_actions_2D.i)
# One element model to test Mastodon Block Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
# UPDATE THIS FILE WITH MASTODON BLOCK ACTIONS AS THEY ARE IMPLEMENTED
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 2 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
[]
[Mastodon]
[./Model]
dynamic_analysis = true
dim = 2
eta = 0.64026
zeta = 0.000781
[../]
[./Outputs]
stress_strain_output = true
[../]
[]
[AuxVariables]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 1 0'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = bottom
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y'
primary = left
secondary = right
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_2x]
type = NodalVariableValue
nodeid = 2
variable = disp_x
[../]
[./disp_2y]
type = NodalVariableValue
nodeid = 2
variable = disp_y
[../]
[./vel_2x]
type = NodalVariableValue
nodeid = 2
variable = vel_x
[../]
[./vel_2y]
type = NodalVariableValue
nodeid = 2
variable = vel_y
[../]
[./accel_2x]
type = NodalVariableValue
nodeid = 2
variable = accel_x
[../]
[./accel_2y]
type = NodalVariableValue
nodeid = 2
variable = accel_y
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/model/model_dynamic_2D.i)
# One element 2D model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 2 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
[]
[Mastodon]
[./Model]
block = 0
dynamic_analysis = true
dim = 2
eta = 0.64026
zeta = 0.000781
[../]
[]
[Variables]
inactive = 'disp_x disp_y'
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
inactive = 'accel_x vel_x accel_y vel_y'
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
inactive = 'DynamicTensorMechanics inertia_x inertia_y'
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[]
[AuxKernels]
inactive = 'accel_x vel_x accel_y vel_y'
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 1 0'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = bottom
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y'
primary = left
secondary = right
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_2x]
type = NodalVariableValue
nodeid = 2
variable = disp_x
[../]
[./disp_2y]
type = NodalVariableValue
nodeid = 2
variable = disp_y
[../]
[./vel_2x]
type = NodalVariableValue
nodeid = 2
variable = vel_x
[../]
[./vel_2y]
type = NodalVariableValue
nodeid = 2
variable = vel_y
[../]
[./accel_2x]
type = NodalVariableValue
nodeid = 2
variable = accel_x
[../]
[./accel_2y]
type = NodalVariableValue
nodeid = 2
variable = accel_y
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/pra/sub_sub.i)
# Test to demonstrate the Seismic Probabilistic Risk Assessment (SPRA)
# infrastructure in MASTODON. This test involves three input files:
#
# 1. master.i - The Master file that bins the hazard curve and scales ground
# motions for each bin for use in probabilistic simulations.
#
# 2. sub.i - The file that obtains the scaled ground motions from master.i and
# transfers these ground motions as inputs to the finite-element model and also
# contains the parameters for probabilistic simulation. This file acts as the
# sub file for master.i and master file for subsub.i.
#
# 3. subsub.i - The file that contains the finite-element model.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Controls]
# needed for probabilistic simulations
[./stochastic]
type = SamplerReceiver
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
# PiecewiseLinear function that is receiving scaled GMs from sub.i. Inputs here are dummy.
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'gm_data/ground_motion_00.csv'
format = columns
scale_factor = 1.0
xy_in_file_only = false
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
poissons_ratio = '0.3'
density = '2000.0'
shear_modulus = '1.2e5'
scale_factor_density = 1.0
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
end_time = 0.05
dt = 0.005
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./accel_2x]
type = NodalVariableValue
nodeid = 2
variable = accel_x
[../]
[./accel_2y]
type = NodalVariableValue
nodeid = 2
variable = accel_y
[../]
[./accel_2z]
type = NodalVariableValue
nodeid = 2
variable = accel_z
[../]
[]
[Outputs]
csv = true
[]
(examples/ex03b/shear_beam_Isoil_free_field_explicit.i)
[Mesh]
type = GeneratedMesh
nx = 1
ny = 1
nz = 20
xmin = -0.5
ymin = -0.5
zmin = 0.0
xmax = 0.5
ymax = 0.5
zmax = 20.0
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
# stiffness_damping_coefficient = 0.000781
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
# eta = 0.64026
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
# eta = 0.64026
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
# eta = 0.64026
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[../]
[./vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[../]
[./accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[../]
[./vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_y
[../]
[./accel_z]
type = TestNewmarkTI
variable = accel_z
displacement = disp_z
first = false
[../]
[./vel_z]
type = TestNewmarkTI
variable = vel_z
displacement = disp_z
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20.2'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[BCs]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./bottom_shake]
type = FunctionDirichletBC
boundary = 'back'
function = disp_bottom
variable = 'disp_x'
[../]
[./Periodic]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./disp_bottom]
type = PiecewiseLinear
data_file = chichi_bc_mpss_xp20_disp.csv
format = 'columns'
[../]
[./initial_zz]
type = ParsedFunction
value = '-2000.0 * 9.81 * (20.0 - z)'
[../]
[./initial_xx]
type = ParsedFunction
value = '-2000.0 * 9.81 * (20.0 - z) * 0.3/0.7'
[../]
[]
# [Materials]
# [./sample_isoil]
# type = ComputeISoilStress
# soil_type = 'gqh'
# layer_variable = layer_id
# layer_ids = '0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19'
# initial_soil_stress = 'initial_xx 0 0 0 initial_xx 0 0 0 initial_zz'
# poissons_ratio = '0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3'
# number_of_points = 100
# ### GQ/H ####
# initial_shear_modulus = '125000000 118098000 111392000 103968000 96800000 89888000 83232000 76832000 70688000 64800000 59168000 53792000 48672000 43808000 39200000 34848000 30752000 26912000 23328000 20000000'
# theta_1 = '-6.66 -6.86 -7.06 -7.35 -7.65 -7.95 -8.3 -8.61 -8.95 -9.3 -9.61 -9.92 -10.0 -10.0 -10.0 -10.0 -10.0 -9.31 -7.17 -5.54'
# theta_2 = '5.5 5.7 5.9 6.2 6.6 6.9 7.3 7.6 8.0 8.4 8.6 8.8 8.82 8.71 8.55 8.3 7.88 6.4 2.4 -2.28'
# theta_3 = '1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0'
# theta_4 = '1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0'
# theta_5 = '0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99'
# taumax = '292500 277500 262500 247500 232500 217500 202500 187500 172500 157500 142500 127500 112500 97500 82500 67500 52500 37500 22500 7500'
# p_ref = '236841 224695 212550 200404 188258 176112 163967 151821 139675 127530 115384 103238 91092 78947 66801 54655 42510 30364 18218 6072'
# ######
# a0 = 1.0
# a1 = 0.0
# a2 = 0.0
# b_exp = 0.0
# block = '0'
# [../]
# [./sample_isoil_strain]
# type = ComputeIncrementalSmallStrain
# block = '0'
# displacements = 'disp_x disp_y disp_z'
# implicit = false
# [../]
# [./sample_isoil_elasticitytensor]
# type = ComputeIsotropicElasticityTensorSoil
# block = '0'
# density = '2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0'
# wave_speed_calculation = false
# layer_ids = '0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19'
# poissons_ratio = '0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3'
# shear_modulus = '125000000 118098000 111392000 103968000 96800000 89888000 83232000 76832000 70688000 64800000 59168000 53792000 48672000 43808000 39200000 34848000 30752000 26912000 23328000 20000000'
# layer_variable = layer_id
# [../]
# []
[Materials]
[./I_Soil]
[./soil_all]
block = 0
layer_variable = layer_id
layer_ids = '0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19'
initial_soil_stress = 'initial_xx 0 0 0 initial_xx 0 0 0 initial_zz'
poissons_ratio = '0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3'
soil_type = 'gqh'
number_of_points = 100
### GQ/H ####
initial_shear_modulus = '125000000 118098000 111392000 103968000 96800000 89888000 83232000 76832000 70688000 64800000 59168000 53792000 48672000 43808000 39200000 34848000 30752000 26912000 23328000 20000000'
theta_1 = '-6.66 -6.86 -7.06 -7.35 -7.65 -7.95 -8.3 -8.61 -8.95 -9.3 -9.61 -9.92 -10.0 -10.0 -10.0 -10.0 -10.0 -9.31 -7.17 -5.54'
theta_2 = '5.5 5.7 5.9 6.2 6.6 6.9 7.3 7.6 8.0 8.4 8.6 8.8 8.82 8.71 8.55 8.3 7.88 6.4 2.4 -2.28'
theta_3 = '1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0'
theta_4 = '1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0'
theta_5 = '0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99'
taumax = '292500 277500 262500 247500 232500 217500 202500 187500 172500 157500 142500 127500 112500 97500 82500 67500 52500 37500 22500 7500'
p_ref = '236841 224695 212550 200404 188258 176112 163967 151821 139675 127530 115384 103238 91092 78947 66801 54655 42510 30364 18218 6072'
######
density = '2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0'
a0 = 1.0
a1 = 0.0
a2 = 0.0
b_exp = 0.0
[../]
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
end_time = 85.4
timestep_tolerance = 1e-6
l_abs_tol = 1e-12
# dt = 0.001
[./TimeIntegrator]
type = CentralDifference
[../]
[./TimeStepper]
type = PostprocessorDT
postprocessor = time_step
dt = 0.001
[../]
[]
[Postprocessors]
[./accelx_top]
type = PointValue
point = '0.0 0.0 20.0'
variable = accel_x
[../]
[./accelx_top1]
type = PointValue
point = '0.0 0.0 19.0'
variable = accel_x
[../]
[./accelx_mid]
type = PointValue
point = '0.0 0.0 10.0'
variable = accel_x
[../]
[./accelx_bot]
type = PointValue
point = '0.0 0.0 0.0'
variable = accel_x
[../]
[./time_step]
type = CriticalTimeStep
factor = 0.9
[../]
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x'
nodes = '80'
[../]
[./accel_spec]
type = ResponseSpectraCalculator
vectorpostprocessor = accel_hist
regularize_dt = 0.001
outputs = out
[../]
[]
[Outputs]
csv = true
exodus = true
perf_graph = true
print_linear_residuals = true
[./out]
type = CSV
execute_on = 'timestep_begin'
file_base = topsoil_response_explicit
[../]
[./screen]
type = Console
max_rows = 1
interval = 1000
[../]
[]
(examples/ex07/big_model.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 100
ny = 50
xmin = 0.0
xmax = 1000.0
ymin = 0.0
ymax = 500.0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./layer]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
block = 0
stiffness_damping_coefficient = 0.00006366
[../]
[./inertia_x1]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
block = 0
eta = 7.854
[../]
[./inertia_y1]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
block = 0
eta = 7.854
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
interfaces = '550.0'
direction = '0 1 0'
variable = layer
execute_on = initial
[../]
[]
[DiracKernels]
[./SeismicSource]
[./one_source]
displacements = 'disp_x disp_y'
slip = y_force
strike = 0.0 # strike angle =0, x aligned with North
dip = 0.0 # dip angle = 0, angle fault makes with horizontal
rake = 90.0 # rake angle = pi/2, gives slip direction
shear_modulus = 1.996e7
area = 1.0
number = 501
position_function = 'x_pos y_pos'
[../]
[../]
[]
[BCs]
[./NonReflectingBC]
[./back]
displacements = 'disp_x disp_y'
velocities = 'vel_x vel_y'
accelerations = 'accel_x accel_y'
beta = 0.25
gamma = 0.5
boundary = 'left right bottom'
shear_wave_speed = 1000.0
density = 1700.0
p_wave_speed=1870.829
[../]
[../]
[]
[Functions]
[./y_force]
type = PiecewiseLinear
data_file = 'slip_displacement_6_5_hz.csv'
format = 'columns'
[../]
[./x_pos]
type = PiecewiseLinear
data_file = 'x_position.csv'
format = 'columns'
[../]
[./y_pos]
type = PiecewiseLinear
data_file = 'y_position.csv'
format = 'columns'
[../]
[]
[Materials]
[./linear]
type = ComputeIsotropicElasticityTensorSoil
layer_variable = layer
block = 0
layer_ids = '0'
shear_modulus = '1.7e9'
density = '1700.0'
poissons_ratio = '0.3'
[../]
[./strain_1]
type = ComputeSmallStrain
block = '0'
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = '0'
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[./node_x_50]
type = PointValue
point = '500.0 500.0 0.0'
variable = vel_x
[../]
[./node_y_50]
type = PointValue
point = '500.0 500.0 0.0'
variable = vel_y
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
nl_abs_tol = 1e-8
start_time = 0.0
end_time = 1.0
dt = 0.01
timestep_tolerance = 1e-6
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Outputs]
file_base = output/big_model_out
exodus = true
csv = true
[]
(test/tests/materials/isoil/HYS_data_file_noaction_AD.i)
#@requirement F4.2
# One element test to test the user-defined backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve is same as the one provided as input.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.85
use_displaced_mesh = false
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain_darendeli.csv'
poissons_ratio = '0.3'
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
[../]
[./sample_isoil_strain]
type = ADComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '0'
elastic_modulus = '19571500'
poissons_ratio = '0.3'
density = '2000'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_GQH_twolayers_noaction.i)
[Mesh]
type = GeneratedMesh
nx = 1
ny = 1
nz = 2
xmin = -0.5
ymin = -0.5
zmin = 0.0
xmax = 0.5
ymax = 0.5
zmax = 2.0
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 0.64026
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 0.64026
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 0.64026
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '1.0 2.02'
direction = '0.0 0.0 1.0'
execute_on = initial
[../]
[]
[BCs]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./bottom_disp]
type = PresetDisplacement
boundary = 'back'
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = disp_bottom
[../]
[./Periodic]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./disp_bottom]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[./initial_zz]
type = ParsedFunction
value = '-2000.0 * 9.81 * (20.0 - z)'
[../]
[./initial_xx]
type = ParsedFunction
value = '-2000.0 * 9.81 * (20.0 - z) * 0.3/0.7'
[../]
[]
[Materials]
[./sample_isoil]
type = ComputeISoilStress
soil_type = 'gqh'
layer_variable = layer_id
layer_ids = '0 1'
theta_1 = '-6.66 -6.86'
theta_2 = '5.5 5.7'
theta_3 = '1.0 1.0'
theta_4 = '1.0 1.0'
theta_5 = '0.99 0.99'
taumax = '292500 277500'
p_ref = '236841 224695'
initial_shear_modulus = '125000000 118098000'
number_of_points = 100
poissons_ratio = '0.3 0.3'
initial_soil_stress = 'initial_xx 0 0 0 initial_xx 0 0 0 initial_zz'
[../]
[./sample_isoil_strain]
type = ComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '125000000 118098000'
poissons_ratio = '0.3 0.3'
density = '2000.0 2000.0'
wave_speed_calculation = false
layer_ids = '0 1'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.05
timestep_tolerance = 1e-8
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 10
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 10
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 10
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 10
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 10
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 10
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 10
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 10
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 10
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 1
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 1
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 1
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 1
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 1
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 1
[../]
[./gamma_zx_el] # engineering shear strain
type = ScalePostprocessor
value = strain_zx_el
scaling_factor = 2
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 1
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 1
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 1
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 1
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 1
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 1
[../]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/materials/isoil/HYS_thin_layer_noaction_AD.i)
# One element test to test the auto-generated thin_layer backbone curve for
# Coulomb friction. The top surface of the element (z=0) is fixed and the
# bottom surface (z=1) is moved by applying a cyclic preset displacement.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
density = 'reg_density'
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
density = 'reg_density'
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = ADRankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = '0 1 2 3 4'
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = '0 1 2 3 4'
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ADComputeISoilStress
soil_type = 'thin_layer'
layer_variable = layer_id
layer_ids = '0'
initial_shear_modulus = '20000'
poissons_ratio = '0.45'
friction_coefficient = '0.7'
hardening_ratio = '0.001'
p_ref = '8.6209091'
initial_soil_stress = '-8.0263636 0 0 0 -8.0263636 0 0 0 -9.810'
[../]
[./sample_isoil_strain]
## Use ComputeFiniteStrain for soil_type = thin_layer since large strains are expected
type = ADComputeFiniteStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ADComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20000'
poissons_ratio = '0.45'
density = '2.0'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[converter]
type = MaterialConverter
ad_props_in = 'density'
reg_props_out = 'reg_density'
[]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/combined/noaction_2D.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 2 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
[]
[Mastodon]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y'
stiffness_damping_coefficient = 0.000781
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 0.64026
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 0.64026
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xy
index_i = 1
index_j = 0
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 1 0'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = bottom
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y'
primary = left
secondary = right
translation = '1.0 0.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_2x]
type = NodalVariableValue
nodeid = 2
variable = disp_x
[../]
[./disp_2y]
type = NodalVariableValue
nodeid = 2
variable = disp_y
[../]
[./vel_2x]
type = NodalVariableValue
nodeid = 2
variable = vel_x
[../]
[./vel_2y]
type = NodalVariableValue
nodeid = 2
variable = vel_y
[../]
[./accel_2x]
type = NodalVariableValue
nodeid = 2
variable = accel_x
[../]
[./accel_2y]
type = NodalVariableValue
nodeid = 2
variable = accel_y
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/bcs/seismic_force/seismic_force_test_z.i)
#@requirement F6.4
# Test for application of seismic force which converts ground velocity in z directions into normal stress.
# This test consists of 20 elements for algorithm testing purposes (use 200 elements and dt of 0.005s to get a much cleaner wave).
# Non-reflecting boundary condition is applied on the back surface (z=0) to simulate an infinitely long soil column.
# Seismic stress proportional to a input velocity in z direction is applied to the front surface (z=1).
# The nodes on the sides are constrained to move together to using periodic boundary.
# Since an infinite soil column is being modeled using the non-reflecting boundary condition, there is no wave reflection from z = 0 boundary.
#Result : The velocity at the front surface should be same as the input velocity provided to the Seismic Force boundary condition.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 40
xmin = 0.0
xmax = 25.0
ymin = 0.0
ymax = 25.0
zmin = 0.0
zmax = 5000.0
[]
[Controls]
[./period0]
type = TimePeriod
disable_objects = 'Kernels/inertia_x Kernels/inertia_y Kernels/inertia_z AuxKernels/accel_x AuxKernels/accel_y AuxKernels/accel_z AuxKernels/vel_x AuxKernels/vel_y AuxKernels/vel_z'
start_time = 0.0
end_time = 0.00125 # same as dt used in the analysis
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
static_initialization = True
use_displaced_mesh = True
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '5000'
direction = '0 0 1'
execute_on = initial
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = 0
poissons_ratio = 0.33
density = 4.9419e-3
shear_modulus = 68322.
[../]
[./stress1]
#Computes the stress, using linear elasticity
type = ComputeLinearElasticStress
block = 0
[../]
[./strain1]
#Computes the strain, assuming small strains
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./SeismicForce]
[./top_stress]
displacements = 'disp_x disp_y disp_z'
input_components = '2'
boundary = 'front'
velocity_functions = 'z_vel'
shear_wave_speed = 3718.204815052883833
p_wave_speed = 7381.527628151251754
density = 4.9419e-3
[../]
[../]
[./NonReflectingBC]
[./back]
displacements = 'disp_x disp_y disp_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
beta = 0.25
gamma = 0.5
boundary = 'back'
shear_wave_speed = 3718.204815052883833
p_wave_speed = 7381.527628151251754
density = 4.9419e-3
[../]
[../]
[./Periodic]
[./x_dir]
primary = 'left'
secondary = 'right'
translation = '25.0 0.0 0.0'
[../]
[./y_dir]
primary = 'bottom'
secondary = 'top'
translation = '0.0 25.0 0.0'
[../]
[../]
[]
[Functions]
[./z_vel]
type = PiecewiseLinear
data_file = 'vel_wav_00125.csv'
format = columns
scale_factor = -10.0
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
l_tol = 1e-12
start_time = 0
end_time = 2.6
dt = 0.1
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_top_x]
type = PointValue
point = '0 0 5000'
variable = disp_x
[../]
[./disp_top_y]
type = PointValue
point = '0 0 5000'
variable = disp_y
[../]
[./disp_top_z]
type = PointValue
point = '0 0 5000'
variable = disp_z
[../]
[./vel_top_x]
type = PointValue
point = '0 0 5000'
variable = vel_x
[../]
[./vel_top_y]
type = PointValue
point = '0 0 5000'
variable = vel_y
[../]
[./vel_top_z]
type = PointValue
point = '0 0 5000'
variable = vel_z
[../]
[./accel_top_x]
type = PointValue
point = '0 0 5000'
variable = accel_x
[../]
[./accel_top_y]
type = PointValue
point = '0 0 5000'
variable = accel_y
[../]
[./accel_top_z]
type = PointValue
point = '0 0 5000'
variable = accel_z
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = true
[./screen]
type = Console
max_rows = 1
[../]
[]
(test/tests/mastodonblock/outputs/stress_strain_output.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[./Outputs]
stress_strain_output = true
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
inactive = 'stress_xx stress_yy stress_xy stress_zz stress_zx stress_yz strain_xx strain_yy strain_xy strain_zz strain_zx strain_yz'
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[]
[AuxKernels]
inactive = 'stress_xx stress_yy stress_xy stress_zz stress_zx stress_yz strain_xx strain_yy strain_xy strain_zz strain_zx strain_yz'
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/mastodonblock/model/noaction_static.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[AuxKernels]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
boundary = 0
variable = disp_x
value = 0
[../]
[./y_bot]
type = DirichletBC
boundary = 0
variable = disp_y
value = 0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./x_top]
type = FunctionDirichletBC
boundary = 5
variable = disp_x
function = disp_top_x
[../]
[./y_top]
type = FunctionDirichletBC
boundary = 5
variable = disp_y
function = disp_top_y
[../]
[]
[Functions]
[./disp_top_x]
type = PiecewiseLinear
data_file = 'disp.csv'
format = columns
scale_factor = 1.0
[../]
[./disp_top_y]
type = PiecewiseLinear
data_file = 'disp.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.3'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/materials/isoil/HYS_data_file_noaction.i)
#@requirement F4.2
# One element test to test the user-defined backbone curve.
# The back surface of the element (z=0) is fixed and the front surface (z=1)
# is moved by applying a cyclic preset displacement.
# The resulting shear stress-strain curve is same as the one provided as input.
# This file DOES NOT use ISoilAction
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.00006366
use_displaced_mesh = false
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
eta = 7.854
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
eta = 7.85
use_displaced_mesh = false
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = false
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layers]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 0
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 0
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[./top_x]
type = PresetDisplacement
boundary = 5
variable = disp_x
beta = 0.25
velocity = vel_x
acceleration = accel_x
function = top_disp
[../]
[]
[Functions]
[./top_disp]
type = PiecewiseLinear
data_file = Displacement2.csv
format = columns
[../]
[]
[Materials]
[./sample_isoil]
type = ComputeISoilStress
soil_type = 'user_defined'
layer_variable = layer_id
layer_ids = '0'
backbone_curve_files = 'stress_strain_darendeli.csv'
poissons_ratio = '0.3'
initial_soil_stress = '-4204.286 0 0 0 -4204.286 0 0 0 -9810'
initial_shear_modulus = '20155518.98'
[../]
[./sample_isoil_strain]
type = ComputeIncrementalSmallStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
[../]
[./sample_isoil_elasticitytensor]
type = ComputeIsotropicElasticityTensorSoil
block = '0'
shear_modulus = '20155518.98'
poissons_ratio = '0.3'
density = '2000'
wave_speed_calculation = false
layer_ids = '0'
layer_variable = layer_id
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 0
end_time = 8
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]
(test/tests/vectorpostprocessors/housner_spectrum_intensity/housner_spectrum_intensity.i)
#@requirement F8.3
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 4
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
zmin = 0.0
zmax = 4.0
[]
[Controls]
[./period0]
type = TimePeriod
disable_objects = 'Kernels/inertia_x Kernels/inertia_y Kernels/inertia_z AuxKernels/accel_x AuxKernels/accel_y AuxKernels/accel_z AuxKernels/vel_x AuxKernels/vel_y AuxKernels/vel_z'
start_time = 0.0
end_time = 0.005 # same as dt used in the analysis
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Kernels]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.000781
static_initialization = True
use_displaced_mesh = True
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
eta = 0.64026
beta = 0.25
gamma = 0.5
use_displaced_mesh = True
[../]
[./gravity]
type = Gravity
variable = disp_z
value = -9.81
use_displaced_mesh = True
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 2
index_j = 0
[../]
[./layer_id]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '20'
direction = '0 0 1'
execute_on = initial
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
poissons_ratio = '0.3'
density = '2000.0'
shear_modulus = '325e7'
[../]
[./stress1]
#Computes the stress, using linear elasticity
type = ComputeLinearElasticStress
block = 0
[../]
[./strain1]
#Computes the strain, assuming small strains
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./bottom_accel_x]
type = PresetAcceleration
boundary = back
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./bottom_accel_y]
type = PresetAcceleration
boundary = back
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./Periodic]
[./x_dir]
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
l_tol = 1e-8
start_time = 32
end_time = 33
dt = 0.005 # should be 0.005
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Outputs]
[./out]
type = CSV
execute_on = 'final'
[../]
[]
[VectorPostprocessors]
[./accel_hist]
type = ResponseHistoryBuilder
variables = 'accel_x accel_y'
nodes = '8 9'
[../]
[./accel_hsi]
type = HousnerSpectrumIntensity
vectorpostprocessor = accel_hist
regularize_dt = 0.005
outputs = out
[../]
[]
(test/tests/mastodonblock/model/model_dynamic.i)
# One element model to test Mastodon Actions. Periodic boundary conditions are
# applied and an acceleration is prescribed at the bottom surface.
[Mesh]
type = GeneratedMesh # Can generate simple lines, rectangles and rectangular prisms
dim = 3 # Dimension of the mesh
nx = 1 # Number of elements in the x direction
ny = 1 # Number of elements in the y direction
nz = 1 # Number of elements in the z direction
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 1
[]
[Mastodon]
[./Model]
dynamic_analysis = true
eta = 0.64026
zeta = 0.000781
[../]
[]
[Variables]
inactive = 'disp_x disp_y disp_z'
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
inactive = 'accel_x vel_x accel_y vel_y accel_z vel_z'
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./layer_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
inactive = 'DynamicTensorMechanics inertia_x inertia_y inertia_z'
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.25
gamma = 0.5
use_displaced_mesh = false
[../]
[]
[AuxKernels]
inactive = 'accel_x vel_x accel_y vel_y accel_z vel_z'
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 2
index_j = 1
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 0
index_j = 2
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = stress_xy
index_i = 1
index_j = 0
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 2
index_j = 1
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 0
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor =total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./layer]
type = UniformLayerAuxKernel
variable = layer_id
interfaces = '2.0'
direction = '0 0 1'
execute_on = initial
[../]
[]
[BCs]
[./x_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_x
variable = disp_x
beta = 0.25
acceleration = accel_x
velocity = vel_x
[../]
[./y_bot]
type = PresetAcceleration
boundary = 0
function = accel_bottom_y
variable = disp_y
beta = 0.25
acceleration = accel_y
velocity = vel_y
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = '4'
secondary = '2'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = '1'
secondary = '3'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./accel_bottom_x]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 1.0
[../]
[./accel_bottom_y]
type = PiecewiseLinear
data_file = 'accel.csv'
format = columns
scale_factor = 2.0
[../]
[]
[Materials]
[./Elasticity_tensor_1]
type = ComputeIsotropicElasticityTensorSoil
block = 0
layer_variable = layer_id
layer_ids = '0'
shear_modulus = '1.0e+2'
poissons_ratio = '0.2'
density = '1.0'
[../]
[./strain_1]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress_1]
type = ComputeLinearElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
nl_abs_tol = 1e-11
nl_rel_tol = 1e-11
start_time = 32
end_time = 33
dt = 0.01
timestep_tolerance = 1e-6
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_6x]
type = NodalVariableValue
nodeid = 6
variable = disp_x
[../]
[./disp_6y]
type = NodalVariableValue
nodeid = 6
variable = disp_y
[../]
[./disp_6z]
type = NodalVariableValue
nodeid = 6
variable = disp_z
[../]
[./vel_6x]
type = NodalVariableValue
nodeid = 6
variable = vel_x
[../]
[./vel_6y]
type = NodalVariableValue
nodeid = 6
variable = vel_y
[../]
[./vel_6z]
type = NodalVariableValue
nodeid = 6
variable = vel_z
[../]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[./accel_6y]
type = NodalVariableValue
nodeid = 6
variable = accel_y
[../]
[./accel_6z]
type = NodalVariableValue
nodeid = 6
variable = accel_z
[../]
[./stress_xy_el]
type = ElementalVariableValue
variable = stress_xy
elementid = 0
[../]
[./stress_yz_el]
type = ElementalVariableValue
variable = stress_yz
elementid = 0
[../]
[./stress_zx_el]
type = ElementalVariableValue
variable = stress_zx
elementid = 0
[../]
[./strain_xy_el]
type = ElementalVariableValue
variable = strain_xy
elementid = 0
[../]
[./strain_yz_el]
type = ElementalVariableValue
variable = strain_yz
elementid = 0
[../]
[./strain_zx_el]
type = ElementalVariableValue
variable = strain_zx
elementid = 0
[../]
[./stress_xx_el]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz_el]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./strain_xx_el]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./strain_yy_el]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./strain_zz_el]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = false
[]