- vThe coupled variable whose components are coupled to AuxVariable
C++ Type:std::vector<VariableName>
Controllable:No
Description:The coupled variable whose components are coupled to AuxVariable
- variableThe name of the variable that this object applies to
C++ Type:AuxVariableName
Controllable:No
Description:The name of the variable that this object applies to
- vector_tagTag Name this Aux works on
C++ Type:TagName
Controllable:No
Description:Tag Name this Aux works on
TagVectorAux
The value of a tagged vector for a given node and a given variable is coupled to the current AuxVariable. TagVectorAux return the coupled nodal value. AuxVariable then is written out in an exodus file.
Couple a tag vector, and return its nodal value
Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- boundaryThe list of boundaries (ids or names) from the mesh where this object applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundaries (ids or names) from the mesh where this object applies
- check_boundary_restrictedTrueWhether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh
Default:True
C++ Type:bool
Controllable:No
Description:Whether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh
- execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed, the available options include FORWARD, ADJOINT, HOMOGENEOUS_FORWARD, ADJOINT_TIMESTEP_BEGIN, ADJOINT_TIMESTEP_END, NONE, INITIAL, LINEAR, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, PRE_DISPLACE.
Default:TIMESTEP_END
C++ Type:ExecFlagEnum
Options:FORWARD, ADJOINT, HOMOGENEOUS_FORWARD, ADJOINT_TIMESTEP_BEGIN, ADJOINT_TIMESTEP_END, NONE, INITIAL, LINEAR, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, PRE_DISPLACE
Controllable:No
Description:The list of flag(s) indicating when this object should be executed, the available options include FORWARD, ADJOINT, HOMOGENEOUS_FORWARD, ADJOINT_TIMESTEP_BEGIN, ADJOINT_TIMESTEP_END, NONE, INITIAL, LINEAR, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, PRE_DISPLACE.
- 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
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.
- scaledTrueReturn value depending on the variable scaling/autoscaling. Set this to false to obtain unscaled physical reaction forces.
Default:True
C++ Type:bool
Controllable:No
Description:Return value depending on the variable scaling/autoscaling. Set this to false to obtain unscaled physical reaction forces.
- 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.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
Input Files
- (modules/solid_mechanics/test/tests/uel/small_test_uel_states_fields.i)
- (modules/solid_mechanics/test/tests/torque_reaction/torque_reaction.i)
- (modules/scalar_transport/test/tests/ncp-lms/diagonal-ncp-lm-nodal-enforcement.i)
- (test/tests/tag/2d_diffusion_vector_tag_test.i)
- (modules/solid_mechanics/test/tests/generalized_plane_strain/generalized_plane_strain_ref_resid.i)
- (modules/solid_mechanics/test/tests/uel/small_test_umat_states_fields_gradient.i)
- (test/tests/tag/2d_diffusion_dg_tag.i)
- (test/tests/tag/tag_dirac_kernels.i)
- (modules/solid_mechanics/test/tests/uel/small_test_expanded.i)
- (modules/solid_mechanics/test/tests/uel/reference.i)
- (modules/solid_mechanics/test/tests/uel/uel_test_print.i)
- (test/tests/tag/2d_diffusion_tag_vector.i)
- (modules/scalar_transport/test/tests/ncp-lms/diagonal-ncp-lm-nodal-enforcement-nodal-forces.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_adaptivity.i)
- (modules/solid_mechanics/test/tests/uel/small_test_umat_states_fields.i)
- (modules/solid_mechanics/test/tests/torque_reaction/torque_reaction_cylinder.i)
- (modules/navier_stokes/examples/laser-welding/2d-fv.i)
- (modules/solid_mechanics/test/tests/plane_stress/3D_finite_tension_pull.i)
- (modules/optimization/test/tests/optimizationreporter/point_loads/adjoint.i)
- (modules/solid_mechanics/test/tests/uel/small_test.i)
- (modules/optimization/test/tests/optimizationreporter/general_opt/point_loads_gen_opt/adjoint.i)
- (modules/contact/test/tests/verification/patch_tests/mindlin/cylinder_friction_node_face.i)
- (modules/solid_mechanics/test/tests/uel/tensile_uel_umat_moose_temperature.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty.i)
- (modules/solid_mechanics/test/tests/uel/small.i)
- (modules/solid_mechanics/test/tests/torque_reaction/torque_reaction_3D.i)
- (modules/solid_mechanics/test/tests/uel/tensile_uel_umat_moose.i)
- (modules/heat_transfer/test/tests/convective_flux_function/convective_flux_function.i)
- (test/tests/tag/tag_nodal_kernels.i)
- (modules/solid_mechanics/test/tests/uel/small_test_expanded_umat.i)
- (modules/solid_mechanics/test/tests/uel/small_test_uel_states_fields_gradient.i)
- (test/tests/tag/tag-fv.i)
- (test/tests/tag/old_eigen_tag.i)
- (modules/solid_mechanics/test/tests/plane_stress/weak_plane_stress_finite_tension_pull.i)
- (test/tests/tag/eigen_tag.i)
- (test/tests/tag/tag_neumann.i)
- (modules/solid_mechanics/test/tests/free_expansion_abs_ref/free_expansion_abs_ref.i)
- (test/tests/tag/tag_interface_kernels.i)
References
No citations exist within this document.(modules/solid_mechanics/test/tests/uel/small_test_uel_states_fields.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
# nx = 10
# ny = 3
xmax = 10
ymax = 3
elem_type = TRI3
[]
[pin]
type = ExtraNodesetGenerator
nodes = 106
new_boundary = pin
input = gen
[]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1500
[]
[voltage]
initial_condition = 210
[]
[]
[AuxKernels]
[temperature]
type = FunctionAux
function = temperature_function
variable = temperature
[]
[voltage]
type = FunctionAux
function = voltage_function
variable = voltage
[]
[]
[Functions]
[voltage_function]
type = PiecewiseLinear
x = '0 15'
y = '210 450'
[]
[temperature_function]
type = PiecewiseLinear
x = '0 15'
y = '1500 800'
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = pin
value = 0
[]
inactive = 'right_dirichlet'
# inactive = 'right_neumann'
[right_neumann]
type = FunctionNeumannBC
variable = disp_x
function = t
boundary = right
[]
[right_dirichlet]
type = FunctionDirichletBC
variable = disp_x
function = t/10
boundary = right
[]
[]
[UserObjects]
[uel]
type = AbaqusUserElement
variables = 'disp_x disp_y'
plugin = ../../../examples/uel_tri_states_tests/uel
use_displaced_mesh = false
num_state_vars = 8
constant_properties = '100 0.3' # E nu
external_fields = 'temperature voltage'
extra_vector_tags = 'kernel_residual'
[]
[]
[Problem]
kernel_coverage_check = false
extra_tag_vectors = 'kernel_residual'
[]
[AuxVariables]
[res_x]
[]
[res_y]
[]
[]
[AuxKernels]
[res_x]
type = TagVectorAux
variable = res_x
v = disp_x
vector_tag = kernel_residual
[]
[res_y]
type = TagVectorAux
variable = res_y
v = disp_y
vector_tag = kernel_residual
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
dt = 1
num_steps = 15
[]
[Postprocessors]
[delta_l]
type = SideAverageValue
variable = disp_x
boundary = right
execute_on = 'INITIAL TIMESTEP_END'
[]
[V]
type = ElementIntegralMaterialProperty
mat_prop = 1
use_displaced_mesh = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/torque_reaction/torque_reaction.i)
# Scalar torque reaction
# This test computes the sum of the torques acting on a ten element 2D bar mesh
# and is intended to replicate the classical wrench problem from statics.
# A displacement in the y along the right face is applied to the bar end to create
# a shear force along the bar end. The rotation origin default (the global origin)
# and the axis of rotation direction vector used to compute the torque reaction
# is set to (0, 0, 1) out of the plane.
# Torque is calculated for the two nodes on the left of the bar. For the bottom
# node on the right, the torque/ moment lever is the x coordinate value, and for
# the top node on the right the torque lever is the hypotenuse of the x and y
# coordinates. The expected sum of the torque reaction is just over 37.
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 1
[]
[Problem]
extra_tag_vectors = 'ref'
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[]
[AuxKernels]
[saved_x]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_x'
variable = 'saved_x'
[]
[saved_y]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_y'
variable = 'saved_y'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[master]
strain = SMALL
generate_output = 'stress_xx stress_yy'
add_variables = true
extra_vector_tags = 'ref'
[]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./right_shear_y]
type = FunctionDirichletBC
variable = disp_y
boundary = right
function = '0.001*t'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 207000
poissons_ratio = 0.3
[../]
[./elastic_stress]
type = ComputeLinearElasticStress
[../]
[]
[Executioner]
type = Transient
line_search = 'none'
l_max_its = 30
nl_max_its = 20
nl_abs_tol = 1e-12
nl_rel_tol = 1e-10
l_tol = 1e-8
start_time = 0.0
dt = 0.5
end_time = 1
num_steps = 2
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./torque]
type = TorqueReaction
boundary = right
reaction_force_variables = 'saved_x saved_y'
direction_vector = '0. 0. 1.'
[../]
[]
[Outputs]
exodus = true
[]
(modules/scalar_transport/test/tests/ncp-lms/diagonal-ncp-lm-nodal-enforcement.i)
l=10
nx=100
num_steps=${l}
dt=1
[GlobalParams]
lm_sign_positive = false
[]
[Problem]
extra_tag_vectors = 'positive diffusion rest'
[]
[Mesh]
type = GeneratedMesh
dim = 1
xmax = ${l}
nx = ${nx}
elem_type = EDGE3
[]
[Variables]
[u]
order = SECOND
[]
[lm]
[]
[]
[AuxVariables]
[positive][]
[diffusion_lm][]
[rest_lm][]
[diffusion_primal]
order = SECOND
[]
[rest_primal]
order = SECOND
[]
[]
[AuxKernels]
[positive]
type = TagVectorAux
variable = positive
v = lm
vector_tag = positive
execute_on = timestep_end
[]
[diffusion_lm]
type = TagVectorAux
variable = diffusion_lm
v = lm
vector_tag = diffusion
execute_on = timestep_end
[]
[rest_lm]
type = TagVectorAux
variable = rest_lm
v = lm
vector_tag = rest
execute_on = timestep_end
[]
[diffusion_primal]
type = TagVectorAux
variable = diffusion_primal
v = u
vector_tag = diffusion
execute_on = timestep_end
[]
[rest_primal]
type = TagVectorAux
variable = rest_primal
v = u
vector_tag = rest
execute_on = timestep_end
[]
[]
[ICs]
[u]
type = FunctionIC
variable = u
function = '${l} - x'
[]
[]
[Kernels]
[time]
type = TimeDerivativeLM
variable = u
lm_variable = lm
extra_vector_tags = 'rest'
[]
[diff]
type = Diffusion
variable = u
extra_vector_tags = 'diffusion'
[]
[diff_lm]
type = LMDiffusion
variable = lm
primal_variable = u
extra_vector_tags = 'diffusion'
[]
[ffn]
type = BodyForceLM
variable = u
lm_variable = lm
function = '-1'
extra_vector_tags = 'rest'
[]
[lm_coupled_force]
type = CoupledForceLM
variable = u
v = lm
lm_variable = lm
extra_vector_tags = 'rest'
[]
[]
[NodalKernels]
[positive_constraint]
type = LowerBoundNodalKernel
extra_vector_tags = positive
variable = lm
v = u
[]
[]
[BCs]
[left]
type = DirichletBC
boundary = left
value = ${l}
variable = u
[]
[right]
type = DirichletBC
boundary = right
value = 0
variable = u
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
num_steps = ${num_steps}
dt = ${dt}
dtmin = ${dt}
solve_type = NEWTON
petsc_options_iname = '-snes_max_linear_solve_fail -ksp_max_it -pc_factor_levels -ksp_gmres_restart'
petsc_options_value = '0 99 16 99'
[]
[Outputs]
exodus = true
csv = true
[dof]
type = DOFMap
execute_on = 'initial'
[]
[]
[Postprocessors]
[active_lm]
type = GreaterThanLessThanPostprocessor
variable = lm
execute_on = 'nonlinear timestep_end'
value = 1e-12
[]
[violations]
type = GreaterThanLessThanPostprocessor
variable = u
execute_on = 'nonlinear timestep_end'
value = -1e-12
comparator = 'less'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/tag/2d_diffusion_vector_tag_test.i)
[Mesh]
[./square]
type = GeneratedMeshGenerator
nx = 2
ny = 2
dim = 2
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
initial_condition = 1.0
[../]
[]
[AuxVariables]
[./tag_variable1]
order = FIRST
family = LAGRANGE
[../]
[./tag_variable2]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./reaction1]
type = Reaction
variable = u
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[./reaction2]
type = Reaction
variable = u
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[./reaction3]
type = Reaction
variable = u
[../]
[./reaction4]
type = Reaction
variable = u
[../]
[]
[AuxKernels]
[./TagVectorAux1]
type = TagVectorAux
variable = tag_variable1
v = u
vector_tag = vec_tag1
execute_on = timestep_end
[../]
[./TagVectorAux2]
type = TagVectorAux
variable = tag_variable2
v = u
vector_tag = vec_tag2
execute_on = timestep_end
[../]
[]
[BCs]
active = 'left right'
[./left]
type = DirichletBC
variable = u
preset = false
boundary = 3
value = 10
extra_vector_tags = vec_tag1
[../]
[./right]
type = DirichletBC
variable = u
preset = false
boundary = 1
value = 100
extra_vector_tags = vec_tag2
[../]
[./right1]
type = DirichletBC
variable = u
preset = false
boundary = 1
value = 100
[../]
[./right2]
type = DirichletBC
variable = u
preset = false
boundary = 1
value = 100
[../]
[]
[Problem]
type = TagTestProblem
extra_tag_vectors = 'vec_tag1 vec_tag2'
test_tag_vectors = 'vec_tag1 vec_tag2'
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
[]
[Outputs]
file_base = vector_tag_test_out
exodus = true
[]
(modules/solid_mechanics/test/tests/generalized_plane_strain/generalized_plane_strain_ref_resid.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[square]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y'
[]
[Variables]
[scalar_strain_zz]
order = FIRST
family = SCALAR
[]
[]
[AuxVariables]
[temp]
order = FIRST
family = LAGRANGE
[]
[saved_x]
order = FIRST
family = LAGRANGE
[]
[saved_y]
order = FIRST
family = LAGRANGE
[]
[saved_strain_zz]
family = SCALAR
order = FIRST
[]
[]
[Postprocessors]
[react_z]
type = MaterialTensorIntegral
rank_two_tensor = stress
index_i = 2
index_j = 2
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = SMALL
add_variables = true
displacements = 'disp_x disp_y'
generate_output = 'stress_xx stress_xy stress_yy stress_zz strain_xx strain_xy strain_yy strain_zz'
planar_formulation = GENERALIZED_PLANE_STRAIN
eigenstrain_names = eigenstrain
scalar_out_of_plane_strain = scalar_strain_zz
temperature = temp
absolute_value_vector_tags = 'ref'
[]
[]
[AuxKernels]
[tempfuncaux]
type = FunctionAux
variable = temp
function = tempfunc
use_displaced_mesh = false
[]
[saved_x]
type = TagVectorAux
variable = 'saved_x'
vector_tag = 'ref'
v = 'disp_x'
execute_on = timestep_end
[]
[saved_y]
type = TagVectorAux
variable = 'saved_y'
vector_tag = 'ref'
execute_on = timestep_end
v = 'disp_y'
[]
[]
[AuxScalarKernels]
[saved_strain_zz]
type = ScalarTagVectorAux
variable = 'saved_strain_zz'
vector_tag = 'ref'
execute_on = timestep_end
v = 'scalar_strain_zz'
[]
[]
[Functions]
[tempfunc]
type = ParsedFunction
expression = '(1-x)*t'
[]
[]
[BCs]
[bottomx]
type = DirichletBC
boundary = 0
variable = disp_x
value = 0.0
[]
[bottomy]
type = DirichletBC
boundary = 0
variable = disp_y
value = 0.0
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 1e6
[]
[thermal_strain]
type = ComputeThermalExpansionEigenstrain
temperature = temp
thermal_expansion_coeff = 0.02
stress_free_temperature = 0.5
eigenstrain_name = eigenstrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
# controls for linear iterations
l_max_its = 100
l_tol = 1e-4
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-12
nl_abs_tol = 1e-8
# time control
start_time = 0.0
dt = 1.0
dtmin = 1.0
end_time = 2.0
num_steps = 5000
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/uel/small_test_umat_states_fields_gradient.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
xmax = 10
ymax = 3
elem_type = TRI3
[]
[pin]
type = ExtraNodesetGenerator
nodes = 106
new_boundary = pin
input = gen
[]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[temperature]
initial_condition = 400
[]
[voltage]
initial_condition = 210
[]
[]
[AuxKernels]
[temperature]
type = FunctionAux
function = '25* x + 40 * y + 400'
variable = temperature
[]
[voltage]
type = FunctionAux
function = '10 * x + 4 * y + 210'
variable = voltage
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = pin
value = 0
[]
inactive = 'right_dirichlet'
[right_neumann]
type = FunctionNeumannBC
variable = disp_x
function = t/10
boundary = right
[]
[right_dirichlet]
type = FunctionDirichletBC
variable = disp_x
function = t/10
boundary = right
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = SMALL
incremental = true
extra_vector_tags = 'kernel_residual'
[]
[]
[Materials]
[umat]
type = AbaqusUMATStress
constant_properties = '100 0.3'
plugin = '../../plugins/small_elastic_tri_states'
num_state_vars = 2
use_one_based_indexing = true
temperature = 'temperature'
external_fields = 'voltage'
[]
[]
[Problem]
kernel_coverage_check = false
extra_tag_vectors = 'kernel_residual'
[]
[AuxVariables]
[res_x]
[]
[res_y]
[]
[]
[AuxKernels]
[res_x]
type = TagVectorAux
variable = res_x
v = disp_x
vector_tag = kernel_residual
[]
[res_y]
type = TagVectorAux
variable = res_y
v = disp_y
vector_tag = kernel_residual
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
dt = 1
num_steps = 15
[Quadrature]
type = GAUSS
order = CONSTANT
[]
[]
[Postprocessors]
[delta_l]
type = SideAverageValue
variable = disp_x
boundary = right
execute_on = 'INITIAL TIMESTEP_END'
[]
[V]
type = ElementIntegralMaterialProperty
mat_prop = 1
use_displaced_mesh = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/tag/2d_diffusion_dg_tag.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
xmin = 0
xmax = 1
ymin = 0
ymax = 1
elem_type = QUAD4
[]
[Variables]
[./u]
order = FIRST
family = MONOMIAL
[./InitialCondition]
type = ConstantIC
value = 1
[../]
[../]
[]
[AuxVariables]
[./tag_variable1]
order = FIRST
family = MONOMIAL
[../]
[./tag_variable2]
order = FIRST
family = MONOMIAL
[../]
[]
[AuxKernels]
[./TagVectorAux1]
type = TagVectorAux
variable = tag_variable1
v = u
vector_tag = vec_tag2
execute_on = timestep_end
[../]
[./TagVectorAux2]
type = TagMatrixAux
variable = tag_variable2
v = u
matrix_tag = mat_tag2
execute_on = timestep_end
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = 2*pow(e,-x-(y*y))*(1-2*y*y)
[../]
[./exact_fn]
type = ParsedGradFunction
value = pow(e,-x-(y*y))
grad_x = -pow(e,-x-(y*y))
grad_y = -2*y*pow(e,-x-(y*y))
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[./abs]
type = Reaction
variable = u
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[./forcing]
type = BodyForce
variable = u
function = forcing_fn
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[]
[DGKernels]
[./dg_diff]
type = DGDiffusion
variable = u
epsilon = -1
sigma = 6
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[]
[BCs]
[./all]
type = DGFunctionDiffusionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
epsilon = -1
sigma = 6
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[]
[Problem]
type = TagTestProblem
test_tag_vectors = 'nontime residual vec_tag1 vec_tag2'
test_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_vectors = 'vec_tag1 vec_tag2'
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
nl_rel_tol = 1e-10
[]
[Postprocessors]
[./h]
type = AverageElementSize
[../]
[./dofs]
type = NumDOFs
[../]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Outputs]
exodus = true
[]
(test/tests/tag/tag_dirac_kernels.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 2
ny = 2
elem_type = QUAD4
uniform_refine = 4
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./ddt_u]
type = TimeDerivative
variable = u
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./diff_u]
type = Diffusion
variable = u
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./ddt_v]
type = TimeDerivative
variable = v
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./diff_v]
type = Diffusion
variable = v
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[]
[DiracKernels]
[./nonlinear_source]
type = NonlinearSource
variable = u
coupled_var = v
scale_factor = 1000
point = '0.2 0.3 0'
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[]
[BCs]
[./left_u]
type = DirichletBC
variable = u
boundary = 3
value = 0
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./right_u]
type = DirichletBC
variable = u
boundary = 1
value = 1
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./left_v]
type = DirichletBC
variable = v
boundary = 3
value = 1
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = 1
value = 0
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[]
[Preconditioning]
[./precond]
type = SMP
full = true
[../]
[]
[Problem]
type = TagTestProblem
test_tag_vectors = 'time nontime residual vec_tag1 vec_tag2'
test_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_vectors = 'vec_tag1 vec_tag2'
[]
[AuxVariables]
[./tag_variable1]
order = FIRST
family = LAGRANGE
[../]
[./tag_variable2]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./TagVectorAux1]
type = TagVectorAux
variable = tag_variable1
v = u
vector_tag = vec_tag2
execute_on = timestep_end
[../]
[./TagVectorAux2]
type = TagMatrixAux
variable = tag_variable2
v = u
matrix_tag = mat_tag2
execute_on = timestep_end
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON' # NEWTON provides a more stringent test of off-diagonal Jacobians
num_steps = 5
dt = 1
dtmin = 1
l_max_its = 100
nl_max_its = 6
nl_abs_tol = 1.e-13
[]
[Postprocessors]
[./point_value]
type = PointValue
variable = u
point = '0.2 0.3 0'
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/uel/small_test_expanded.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
xmax = 10
ymax = 3
elem_type = TRI3
[]
[pin]
type = ExtraNodesetGenerator
nodes = 106
new_boundary = pin
input = gen
[]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = pin
value = 0
[]
inactive = 'right_dirichlet'
[right_neumann]
type = FunctionNeumannBC
variable = disp_x
function = t
boundary = right
[]
[right_dirichlet]
type = FunctionDirichletBC
variable = disp_x
function = t/10
boundary = right
[]
[]
[UserObjects]
[uel]
type = AbaqusUserElement
variables = 'disp_x disp_y'
plugin = ../../../examples/uel_tri_tests/uel
use_displaced_mesh = false
num_state_vars = 18
constant_properties = '100 0.3' # E nu
extra_vector_tags = 'kernel_residual'
[]
[]
[Problem]
kernel_coverage_check = false
extra_tag_vectors = 'kernel_residual'
[]
[AuxVariables]
[res_x]
[]
[res_y]
[]
[]
[AuxKernels]
[res_x]
type = TagVectorAux
variable = res_x
v = disp_x
vector_tag = kernel_residual
[]
[res_y]
type = TagVectorAux
variable = res_y
v = disp_y
vector_tag = kernel_residual
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
dt = 1
num_steps = 15
[]
[Postprocessors]
[delta_l]
type = SideAverageValue
variable = disp_x
boundary = right
execute_on = 'INITIAL TIMESTEP_END'
[]
[V]
type = ElementIntegralMaterialProperty
mat_prop = 1
use_displaced_mesh = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/uel/reference.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
xmax = 10
ymax = 3
elem_type = TRI3
[]
[pin]
type = ExtraNodesetGenerator
nodes = 106
new_boundary = pin
input = gen
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = SMALL
incremental = false
add_variables = true
extra_vector_tags = 'kernel_residual'
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = pin
value = 0
[]
inactive = 'right_dirichlet'
[right_neumann]
type = FunctionNeumannBC
variable = disp_x
function = t
boundary = right
[]
[right_dirichlet]
type = FunctionDirichletBC
variable = disp_x
function = t/10
boundary = right
[]
[]
[Materials]
[stress]
type = ComputeLinearElasticStress
[]
[elasticity]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100
poissons_ratio = 0.3
[]
[]
[Problem]
extra_tag_vectors = 'kernel_residual'
[]
[AuxVariables]
[res_x]
[]
[res_y]
[]
[]
[AuxKernels]
[res_x]
type = TagVectorAux
variable = res_x
v = disp_x
vector_tag = kernel_residual
[]
[res_y]
type = TagVectorAux
variable = res_y
v = disp_y
vector_tag = kernel_residual
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
dt = 1
num_steps = 15
[]
[Postprocessors]
[delta_l]
type = SideAverageValue
variable = disp_x
boundary = right
execute_on = 'INITIAL TIMESTEP_END'
[]
[V]
type = ElementIntegralMaterialProperty
mat_prop = 1
use_displaced_mesh = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/uel/uel_test_print.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
elem_type = HEX8
[]
[extra_nodeset]
type = ExtraNodesetGenerator
input = mesh
new_boundary = 'master'
coord = '1.0 1.0 1.0'
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1500
[]
[voltage]
initial_condition = 210
[]
[]
[AuxKernels]
[temperature]
type = FunctionAux
function = temperature_function
variable = temperature
[]
[voltage]
type = FunctionAux
function = voltage_function
variable = voltage
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Functions]
[function_pull]
type = PiecewiseLinear
x = '0 100'
y = '0 0.1'
[]
[pressure_function]
type = PiecewiseLinear
x = '0 100'
y = '0 2.0e4'
[]
[voltage_function]
type = PiecewiseLinear
x = '0 100'
y = '210 450'
[]
[temperature_function]
type = PiecewiseLinear
x = '0 100'
y = '1500 800'
[]
[]
[Constraints]
[one]
type = LinearNodalConstraint
variable = disp_x
primary = '6'
secondary_node_ids = '1 2 5'
penalty = 1.0e8
formulation = kinematic
weights = '1'
[]
[two]
type = LinearNodalConstraint
variable = disp_z
primary = '6'
secondary_node_ids = '4 5 7'
penalty = 1.0e8
formulation = kinematic
weights = '1'
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[Pressure]
[press]
boundary = 'top'
displacements = 'disp_x disp_y disp_z'
function = pressure_function
[]
[]
[]
[UserObjects]
[uel]
type = AbaqusUserElement
variables = 'disp_x disp_y disp_z'
plugin = '../../../../solid_mechanics/examples/uel_build_tests/uel'
use_displaced_mesh = false
external_fields = 'temperature voltage'
jtype = 10
num_state_vars = 96 #
constant_properties = '2 1 2 210000 0.3'
extra_vector_tags = 'kernel_residual'
[]
[]
[Problem]
kernel_coverage_check = false
extra_tag_vectors = 'kernel_residual'
[]
[AuxVariables]
[res_x]
[]
[res_y]
[]
[]
[AuxKernels]
[res_x]
type = TagVectorAux
variable = res_x
v = disp_x
vector_tag = kernel_residual
[]
[res_y]
type = TagVectorAux
variable = res_y
v = disp_y
vector_tag = kernel_residual
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = ' lu superlu_dist'
line_search = none
l_max_its = 100
l_tol = 1e-8
nl_max_its = 1
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
error_on_dtmin = false
dtmin = 10
dt = 10
end_time = 10
[]
[Outputs]
exodus = true
[]
(test/tests/tag/2d_diffusion_tag_vector.i)
[Mesh]
[square]
type = GeneratedMeshGenerator
nx = 2
ny = 2
dim = 2
[]
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
[]
[]
[AuxVariables]
[tag_variable1]
order = FIRST
family = LAGRANGE
[]
[tag_variable2]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
extra_vector_tags = 'vec_tag1 vec_tag2'
[]
[]
[AuxKernels]
active = 'TagVectorAux1 TagVectorAux2'
[TagVectorAux1]
type = TagVectorAux
variable = tag_variable1
v = u
vector_tag = vec_tag1
[]
[on_the_fly]
type = OnTheFlyTagVectorAux
variable = tag_variable1
v = u
vector_tag = vec_tag1
[]
[TagVectorAux2]
type = TagVectorAux
variable = tag_variable2
v = u
vector_tag = vec_tag2
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = 3
value = 0
preset = false
extra_vector_tags = vec_tag1
[]
[right]
type = DirichletBC
variable = u
boundary = 1
value = 1
preset = false
extra_vector_tags = vec_tag2
[]
[]
[Problem]
type = FEProblem
extra_tag_vectors = 'vec_tag1 vec_tag2'
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
[]
[Outputs]
file_base = tag_vector_out
exodus = true
[]
(modules/scalar_transport/test/tests/ncp-lms/diagonal-ncp-lm-nodal-enforcement-nodal-forces.i)
l=10
nx=100
num_steps=${l}
dt=1
[GlobalParams]
lm_sign_positive = false
[]
[Problem]
extra_tag_vectors = 'positive diffusion rest'
[]
[Mesh]
type = GeneratedMesh
dim = 1
xmax = ${l}
nx = ${nx}
elem_type = EDGE3
[]
[Variables]
[u]
order = SECOND
[]
[lm]
order = SECOND
[]
[]
[AuxVariables]
[positive]
order = SECOND
[]
[diffusion_lm]
order = SECOND
[]
[rest_lm]
order = SECOND
[]
[diffusion_primal]
order = SECOND
[]
[rest_primal]
order = SECOND
[]
[]
[AuxKernels]
[positive]
type = TagVectorAux
variable = positive
v = lm
vector_tag = positive
execute_on = timestep_end
[]
[diffusion_lm]
type = TagVectorAux
variable = diffusion_lm
v = lm
vector_tag = diffusion
execute_on = timestep_end
[]
[rest_lm]
type = TagVectorAux
variable = rest_lm
v = lm
vector_tag = rest
execute_on = timestep_end
[]
[diffusion_primal]
type = TagVectorAux
variable = diffusion_primal
v = u
vector_tag = diffusion
execute_on = timestep_end
[]
[rest_primal]
type = TagVectorAux
variable = rest_primal
v = u
vector_tag = rest
execute_on = timestep_end
[]
[]
[ICs]
[u]
type = FunctionIC
variable = u
function = '${l} - x'
[]
[]
[Kernels]
[time]
type = TimeDerivativeLM
variable = u
lm_variable = lm
extra_vector_tags = 'rest'
[]
[diff]
type = Diffusion
variable = u
extra_vector_tags = 'diffusion'
[]
[diff_lm]
type = LMDiffusion
variable = lm
primal_variable = u
extra_vector_tags = 'diffusion'
[]
[ffn]
type = BodyForceLM
variable = u
lm_variable = lm
function = '-1'
extra_vector_tags = 'rest'
[]
[]
[NodalKernels]
[forces]
type = CoupledForceNodalKernel
variable = u
v = lm
extra_vector_tags = 'rest'
[]
[corresponding_lm_portion]
type = ReactionNodalKernel
variable = lm
coeff = 1
extra_vector_tags = 'rest'
[]
[positive_constraint]
type = LowerBoundNodalKernel
extra_vector_tags = positive
variable = lm
v = u
# exclude_boundaries = 'left right'
[]
[]
[BCs]
[left]
type = DirichletBC
boundary = left
value = ${l}
variable = u
[]
[right]
type = DirichletBC
boundary = right
value = 0
variable = u
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
num_steps = ${num_steps}
dt = ${dt}
dtmin = ${dt}
solve_type = NEWTON
petsc_options_iname = '-snes_max_linear_solve_fail -ksp_max_it -pc_factor_levels'
petsc_options_value = '0 30 16'
[]
[Outputs]
exodus = true
csv = true
[dof]
type = DOFMap
execute_on = 'initial'
[]
[]
[Postprocessors]
[active_lm]
type = GreaterThanLessThanPostprocessor
variable = lm
execute_on = 'nonlinear timestep_end'
value = 1e-12
[]
[violations]
type = GreaterThanLessThanPostprocessor
variable = u
execute_on = 'nonlinear timestep_end'
value = -1e-12
comparator = 'less'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_adaptivity.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = hertz_cyl_coarser.e
[]
[secondary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10001
new_block_name = 'secondary_lower'
sidesets = '3'
input = input_file
[]
[primary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10000
sidesets = '2'
new_block_name = 'primary_lower'
input = secondary
[]
allow_renumbering = false
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[AuxVariables]
[penalty_normal_pressure]
[]
[penalty_frictional_pressure]
[]
[accumulated_slip_one]
[]
[tangential_vel_one]
[]
[normal_gap]
[]
[react_x]
[]
[react_y]
[]
[]
[Functions]
[disp_ramp_vert]
type = PiecewiseLinear
x = '0. 1. 3.5'
y = '0. -0.020 -0.020'
[]
[disp_ramp_horz]
type = PiecewiseLinear
x = '0. 1. 3.5'
y = '0. 0.0 0.015'
[]
[]
[Modules/TensorMechanics/Master/all]
strain = FINITE
add_variables = true
extra_vector_tags = 'ref'
block = '1 2 3 4 5 6 7'
generate_output = 'stress_xx stress_yy stress_xy'
[]
[AuxKernels]
[penalty_normal_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = friction_uo
contact_quantity = tangential_pressure_one
[]
[penalty_accumulated_slip]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = friction_uo
contact_quantity = accumulated_slip_one
[]
[penalty_tangential_vel]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = friction_uo
contact_quantity = tangential_velocity_one
[]
[penalty_gap]
type = PenaltyMortarUserObjectAux
variable = normal_gap
user_object = friction_uo
contact_quantity = normal_gap
[]
[react_x]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_x'
variable = 'react_x'
[]
[react_y]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_y'
variable = 'react_y'
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = react_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = react_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = react_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = react_y
boundary = 4
[]
[_dt]
type = TimestepSize
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[gap]
type = SideExtremeValue
value_type = min
variable = normal_gap
boundary = 3
[]
[num_al]
type = NumAugmentedLagrangeIterations
[]
[]
[BCs]
[side_x]
type = DirichletBC
variable = disp_y
boundary = '1 2'
value = 0.0
[]
[bot_y]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[]
[top_y_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = disp_ramp_vert
[]
[top_x_disp]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = disp_ramp_horz
[]
[]
[Materials]
[stuff1_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e10
poissons_ratio = 0.0
[]
[stuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[stuff2_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2 3 4 5 6 7'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '2 3 4 5 6 7'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu superlu_dist NONZERO 1e-15 1e-5'
line_search = 'none'
nl_abs_tol = 1e-10
start_time = 0.0
end_time = 0.3 # 3.5
l_tol = 1e-4
dt = 0.1
dtmin = 0.001
[Predictor]
type = SimplePredictor
scale = 1.0
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[VectorPostprocessors]
[surface]
type = NodalValueSampler
use_displaced_mesh = false
variable = 'disp_x disp_y penalty_normal_pressure penalty_frictional_pressure normal_gap'
boundary = '3'
sort_by = id
[]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
exodus = true
csv = false
[console]
type = Console
max_rows = 5
[]
[vectorpp_output]
type = CSV
create_final_symlink = true
file_base = cylinder_friction_penalty_adaptivity
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
[]
[UserObjects]
[friction_uo]
type = PenaltyFrictionUserObject
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
disp_x = disp_x
disp_y = disp_y
friction_coefficient = 0.4
secondary_variable = disp_x
penalty = 5e7
penalty_friction = 5e8
[]
[geo]
type = GeometrySphere
boundary = 3
center = '0 4 0'
radius = 3
[]
[]
[Adaptivity]
[Markers]
[contact]
type = BoundaryMarker
mark = REFINE
next_to = 3
[]
[]
initial_marker = contact
initial_steps = 2
[]
[Constraints]
[x]
type = NormalMortarMechanicalContact
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = friction_uo
[]
[y]
type = NormalMortarMechanicalContact
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = friction_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 2
secondary_boundary = 3
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 2
secondary_boundary = 3
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[]
(modules/solid_mechanics/test/tests/uel/small_test_umat_states_fields.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
xmax = 10
ymax = 3
elem_type = TRI3
[]
[pin]
type = ExtraNodesetGenerator
nodes = 106
new_boundary = pin
input = gen
[]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[temperature]
initial_condition = 1500
[]
[voltage]
initial_condition = 210
[]
[]
[AuxKernels]
[temperature]
type = FunctionAux
function = temperature_function
variable = temperature
[]
[voltage]
type = FunctionAux
function = voltage_function
variable = voltage
[]
[]
[Functions]
[voltage_function]
type = PiecewiseLinear
x = '0 15'
y = '210 450'
[]
[temperature_function]
type = PiecewiseLinear
x = '0 15'
y = '1500 800'
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = pin
value = 0
[]
inactive = 'right_dirichlet'
[right_neumann]
type = FunctionNeumannBC
variable = disp_x
function = t
boundary = right
[]
[right_dirichlet]
type = FunctionDirichletBC
variable = disp_x
function = t/10
boundary = right
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = SMALL
incremental = true
extra_vector_tags = 'kernel_residual'
[]
[]
[Materials]
[umat]
type = AbaqusUMATStress
constant_properties = '100 0.3'
plugin = '../../plugins/small_elastic_tri_states'
num_state_vars = 2
use_one_based_indexing = false
temperature = 'temperature'
external_fields = 'voltage'
[]
[]
[Problem]
kernel_coverage_check = false
extra_tag_vectors = 'kernel_residual'
[]
[AuxVariables]
[res_x]
[]
[res_y]
[]
[]
[AuxKernels]
[res_x]
type = TagVectorAux
variable = res_x
v = disp_x
vector_tag = kernel_residual
[]
[res_y]
type = TagVectorAux
variable = res_y
v = disp_y
vector_tag = kernel_residual
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
dt = 1
num_steps = 15
[]
[Postprocessors]
[delta_l]
type = SideAverageValue
variable = disp_x
boundary = right
execute_on = 'INITIAL TIMESTEP_END'
[]
[V]
type = ElementIntegralMaterialProperty
mat_prop = 1
use_displaced_mesh = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/torque_reaction/torque_reaction_cylinder.i)
# This test uses the DisplacementAboutAxis boundary condition to twist the top
# of a cylinder while the bottom face of the cylinder remains fixed. The
# TorqueReaction postprocessor is used to calculate the applied torque acting
# on the cylinder at the top face. This test can be extended, with a new mesh,
# to model a crack in the center of the cylinder face under type III loading.
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = cylinder.e
[]
[Problem]
extra_tag_vectors = 'ref'
[]
[GlobalParams]
volumetric_locking_correction=true
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_z]
[../]
[]
[AuxKernels]
[saved_x]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_x'
variable = 'saved_x'
[]
[saved_y]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_y'
variable = 'saved_y'
[]
[saved_z]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_z'
variable = 'saved_z'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[master]
strain = FINITE
generate_output = 'stress_xx'
add_variables = true
extra_vector_tags = 'ref'
[]
[]
[BCs]
[./bottom_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0.0
[../]
[./top_x]
type = DisplacementAboutAxis
boundary = 2
function = '0.1*t'
angle_units = degrees
axis_origin = '10. 10. 10.'
axis_direction = '0 -1.0 1.0'
component = 0
variable = disp_x
[../]
[./top_y]
type = DisplacementAboutAxis
boundary = 2
function = '0.1*t'
angle_units = degrees
axis_origin = '10. 10. 10.'
axis_direction = '0 -1.0 1.0'
component = 1
variable = disp_y
[../]
[./top_z]
type = DisplacementAboutAxis
boundary = 2
function = '0.1*t'
angle_units = degrees
axis_origin = '10. 10. 10.'
axis_direction = '0 -1.0 1.0'
component = 2
variable = disp_z
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 207000
poissons_ratio = 0.3
[../]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 50
nl_max_its = 20
nl_abs_tol = 1e-12
nl_rel_tol = 1e-11
l_tol = 1e-10
start_time = 0.0
dt = 0.25
end_time = 0.5
[]
[Postprocessors]
[./torque]
type = TorqueReaction
boundary = 2
reaction_force_variables = 'saved_x saved_y saved_z'
axis_origin = '10. 10. 10.'
direction_vector = '0 -1.0 1.0'
[../]
[]
[Outputs]
exodus = true
[]
(modules/navier_stokes/examples/laser-welding/2d-fv.i)
period=.2e-4 # s
endtime=${fparse 3 * period} # s
timestep=${fparse period / 100} # s
surfacetemp=2700 # K
bottomtemp=2700 # K
sb=5.67e-8 # W/(m^2 K^4)
advected_interp_method='upwind'
velocity_interp_method='rc'
rho='rho'
mu='mu'
[GlobalParams]
rhie_chow_user_object = 'rc'
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -.7e-3 # m
xmax = 0.7e-3 # m
ymin = -.35e-3 # m
ymax = 0
nx = 75
ny = 20
displacements = 'disp_x disp_y'
[]
[UserObjects]
[rc]
type = INSFVRhieChowInterpolator
u = vel_x
v = vel_y
pressure = pressure
use_displaced_mesh = true
disp_x = disp_x
disp_y = disp_y
[]
[]
[Problem]
extra_tag_vectors = 'e_time e_advection e_conduction e_laser e_radiation e_mesh_advection'
[]
[AuxVariables]
[mu_out]
type = MooseVariableFVReal
[]
[e_time]
type = MooseVariableFVReal
[]
[e_advection]
type = MooseVariableFVReal
[]
[e_mesh_advection]
type = MooseVariableFVReal
[]
[e_conduction]
type = MooseVariableFVReal
[]
[e_laser]
type = MooseVariableFVReal
[]
[e_radiation]
type = MooseVariableFVReal
[]
[]
[AuxKernels]
[mu_out]
type = FunctorAux
functor = mu
variable = mu_out
execute_on = timestep_end
[]
[e_time]
variable = e_time
vector_tag = e_time
v = T
execute_on = 'timestep_end'
type = TagVectorAux
[]
[e_advection]
variable = e_advection
vector_tag = e_advection
v = T
execute_on = 'timestep_end'
type = TagVectorAux
[]
[e_mesh_advection]
variable = e_mesh_advection
vector_tag = e_mesh_advection
v = T
execute_on = 'timestep_end'
type = TagVectorAux
[]
[e_conduction]
variable = e_conduction
vector_tag = e_conduction
v = T
execute_on = 'timestep_end'
type = TagVectorAux
[]
[e_laser]
variable = e_laser
vector_tag = e_laser
v = T
execute_on = 'timestep_end'
type = TagVectorAux
[]
[e_radiation]
variable = e_radiation
vector_tag = e_radiation
v = T
execute_on = 'timestep_end'
type = TagVectorAux
[]
[]
[Variables]
[vel_x]
type = INSFVVelocityVariable
[]
[vel_y]
type = INSFVVelocityVariable
[]
[T]
type = INSFVEnergyVariable
[]
[pressure]
type = INSFVPressureVariable
[]
[disp_x]
[]
[disp_y]
[]
[]
[ICs]
[T]
type = FunctionIC
variable = T
function = '${surfacetemp} + ((${surfacetemp} - ${bottomtemp}) / .35e-3) * y'
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
diffusivity = 1e6
[]
[disp_y]
type = MatDiffusion
variable = disp_y
diffusivity = 1e6
[]
[]
[FVKernels]
# pressure equation
[mass]
type = INSFVMassAdvection
variable = pressure
advected_interp_method = ${advected_interp_method}
velocity_interp_method = ${velocity_interp_method}
rho = ${rho}
use_displaced_mesh = true
boundaries_to_force = top
[]
# momentum equations
# u equation
[u_time]
type = INSFVMomentumTimeDerivative
variable = vel_x
rho = ${rho}
momentum_component = 'x'
use_displaced_mesh = true
[]
[u_advection]
type = INSFVMomentumAdvection
variable = vel_x
advected_interp_method = ${advected_interp_method}
velocity_interp_method = ${velocity_interp_method}
rho = ${rho}
momentum_component = 'x'
use_displaced_mesh = true
[]
[u_viscosity]
type = INSFVMomentumDiffusion
variable = vel_x
mu = ${mu}
momentum_component = 'x'
use_displaced_mesh = true
[]
[u_pressure]
type = INSFVMomentumPressureFlux
variable = vel_x
momentum_component = 'x'
pressure = pressure
use_displaced_mesh = true
[]
[u_mesh_advection_volumetric]
type = INSFVMomentumMeshAdvection
variable = vel_x
momentum_component = 'x'
rho = ${rho}
disp_x = disp_x
disp_y = disp_y
add_to_a = false
use_displaced_mesh = true
[]
# v equation
[v_time]
type = INSFVMomentumTimeDerivative
variable = vel_y
rho = ${rho}
momentum_component = 'y'
use_displaced_mesh = true
[]
[v_advection]
type = INSFVMomentumAdvection
variable = vel_y
advected_interp_method = ${advected_interp_method}
velocity_interp_method = ${velocity_interp_method}
rho = ${rho}
momentum_component = 'y'
use_displaced_mesh = true
[]
[v_viscosity]
type = INSFVMomentumDiffusion
variable = vel_y
mu = ${mu}
momentum_component = 'y'
use_displaced_mesh = true
[]
[v_pressure]
type = INSFVMomentumPressureFlux
variable = vel_y
momentum_component = 'y'
pressure = pressure
use_displaced_mesh = true
[]
[v_mesh_advection_volumetric]
type = INSFVMomentumMeshAdvection
variable = vel_y
momentum_component = 'y'
rho = ${rho}
disp_x = disp_x
disp_y = disp_y
add_to_a = false
use_displaced_mesh = true
[]
# energy equation
[temperature_time]
type = INSFVEnergyTimeDerivative
variable = T
rho = ${rho}
dh_dt = dh_dt
use_displaced_mesh = true
extra_vector_tags = 'e_time'
[]
[temperature_advection]
type = INSFVEnergyAdvection
variable = T
use_displaced_mesh = true
extra_vector_tags = 'e_advection'
[]
[temperature_conduction]
type = FVDiffusion
coeff = 'k'
variable = T
use_displaced_mesh = true
extra_vector_tags = 'e_conduction'
[]
[temperature_mesh_advection_volumetric]
type = INSFVMeshAdvection
variable = T
rho = ${rho}
disp_x = disp_x
disp_y = disp_y
advected_quantity = 'h'
use_displaced_mesh = true
extra_vector_tags = 'e_mesh_advection'
[]
[]
[FVBCs]
# momentum boundary conditions
[no_slip_x]
type = INSFVNoSlipWallBC
variable = vel_x
boundary = 'bottom right left'
function = 0
[]
[no_slip_y]
type = INSFVNoSlipWallBC
variable = vel_y
boundary = 'bottom right left'
function = 0
[]
[vapor_recoil_x]
type = INSFVVaporRecoilPressureMomentumFluxBC
variable = vel_x
boundary = 'top'
momentum_component = 'x'
rc_pressure = rc_pressure
use_displaced_mesh = true
[]
[vapor_recoil_y]
type = INSFVVaporRecoilPressureMomentumFluxBC
variable = vel_y
boundary = 'top'
momentum_component = 'y'
rc_pressure = rc_pressure
use_displaced_mesh = true
[]
# energy boundary conditions
[T_cold]
type = FVDirichletBC
variable = T
boundary = 'bottom'
value = '${bottomtemp}'
[]
[radiation_flux]
type = FVFunctorRadiativeBC
variable = T
boundary = 'top'
emissivity = '1'
Tinfinity = 300
stefan_boltzmann_constant = ${sb}
use_displaced_mesh = true
extra_vector_tags = 'e_radiation'
[]
[weld_flux]
type = FVGaussianEnergyFluxBC
variable = T
boundary = 'top'
P0 = 159.96989792079225
R = 1.25e-4
x_beam_coord = '2e-4 * sin(t * 2 * pi / ${period})'
y_beam_coord = 0
z_beam_coord = 0
use_displaced_mesh = true
extra_vector_tags = 'e_laser'
[]
[]
[BCs]
# displacement boundary conditions
[x_no_disp]
type = DirichletBC
variable = disp_x
boundary = 'bottom'
value = 0
[]
[y_no_disp]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[]
[displace_x_top]
type = INSADDisplaceBoundaryBC
boundary = 'top'
variable = 'disp_x'
velocity = 'vel'
component = 0
associated_subdomain = 0
[]
[displace_y_top]
type = INSADDisplaceBoundaryBC
boundary = 'top'
variable = 'disp_y'
velocity = 'vel'
component = 1
associated_subdomain = 0
[]
[displace_x_top_dummy]
type = INSADDummyDisplaceBoundaryIntegratedBC
boundary = 'top'
variable = 'disp_x'
velocity = 'vel'
component = 0
[]
[displace_y_top_dummy]
type = INSADDummyDisplaceBoundaryIntegratedBC
boundary = 'top'
variable = 'disp_y'
velocity = 'vel'
component = 1
[]
[]
[FunctorMaterials]
[steel]
type = AriaLaserWeld304LStainlessSteelFunctorMaterial
temperature = T
beta = 1e7
[]
[disp_vec_value_and_dot]
type = ADGenericVectorFunctorMaterial
prop_names = 'disp_vec'
prop_values = 'disp_x disp_y 0'
[]
[vel]
type = ADGenericVectorFunctorMaterial
prop_names = 'vel'
prop_values = 'vel_x vel_y 0'
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_type -mat_mffd_err'
petsc_options_value = 'lu NONZERO strumpack 1e-6'
[]
[]
[Executioner]
type = Transient
end_time = ${endtime}
dtmin = 1e-8
dtmax = ${timestep}
petsc_options = '-snes_converged_reason -ksp_converged_reason -options_left'
solve_type = 'PJFNK'
line_search = 'none'
nl_max_its = 12
l_max_its = 100
[TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 7
dt = ${timestep}
linear_iteration_ratio = 1e6
growth_factor = 1.1
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Debug]
show_var_residual_norms = true
[]
[Postprocessors]
[laser_flux]
type = TagVectorSum
vector = 'e_laser'
[]
[volume_rho_cp_dT]
type = TagVectorSum
vector = 'e_time'
[]
[conduction]
type = TagVectorSum
vector = 'e_conduction'
[]
[advection]
type = TagVectorSum
vector = 'e_advection'
[]
[mesh_advection]
type = TagVectorSum
vector = 'e_mesh_advection'
[]
[radiation]
type = TagVectorSum
vector = 'e_radiation'
[]
[total_sum]
type = ParsedPostprocessor
function = 'laser_flux + volume_rho_cp_dT + advection + mesh_advection + conduction + radiation'
pp_names = 'laser_flux volume_rho_cp_dT advection mesh_advection conduction radiation'
[]
[]
(modules/solid_mechanics/test/tests/plane_stress/3D_finite_tension_pull.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y disp_z'
[]
[Problem]
extra_tag_vectors = 'ref'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[]
[AuxVariables]
[react_x]
[]
[]
[Postprocessors]
[react_x]
type = NodalSum
variable = 'react_x'
boundary = 'right'
[]
[stress_xx]
type = ElementalVariableValue
variable = 'stress_xx'
elementid = 0
[]
[strain_zz]
type = ElementalVariableValue
variable = 'strain_zz'
elementid = 0
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[plane_stress]
strain = FINITE
extra_vector_tags = 'ref'
generate_output = 'stress_xx stress_xy stress_yy stress_zz strain_xx strain_xy strain_yy strain_zz'
add_variables = true
[]
[]
[AuxKernels]
[react_x]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_x'
variable = 'react_x'
[]
[]
[BCs]
[leftx]
type = DirichletBC
boundary = left
variable = disp_x
value = 0.0
[]
[bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[]
[backz]
type = DirichletBC
boundary = back
variable = disp_z
value = 0.0
[]
[rightx]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = 't'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 1e6
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
# time control
start_time = 0.0
dt = 0.01
dtmin = 0.01
end_time = 0.2
[]
[Outputs]
csv = true
[]
(modules/optimization/test/tests/optimizationreporter/point_loads/adjoint.i)
# DO NOT CHANGE THIS TEST
# this test is documented as an example in forceInv_pointLoads.md
# if this test is changed, the figures will need to be updated.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmax = 1
ymax = 1.4
[]
[Variables]
[adjoint]
[]
[]
[Problem]
extra_tag_vectors = 'ref'
[]
[AuxVariables]
[residual_src]
[]
[]
[AuxKernels]
[residual_src]
type = TagVectorAux
vector_tag = 'ref'
v = 'adjoint'
variable = 'residual_src'
[]
[]
[Variables]
[adjoint]
[]
[]
[Kernels]
[heat_conduction]
type = MatDiffusion
variable = adjoint
diffusivity = thermal_conductivity
[]
[]
#-----every adjoint problem should have these two
[DiracKernels]
[pt]
type = ReporterPointSource
variable = adjoint
x_coord_name = misfit/measurement_xcoord
y_coord_name = misfit/measurement_ycoord
z_coord_name = misfit/measurement_zcoord
value_name = misfit/misfit_values
extra_vector_tags = 'ref'
[]
[]
[Reporters]
[misfit]
type = OptimizationData
[]
[]
[BCs]
[left]
type = DirichletBC
variable = adjoint
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = adjoint
boundary = right
value = 0
[]
[bottom]
type = DirichletBC
variable = adjoint
boundary = bottom
value = 0
[]
[top]
type = DirichletBC
variable = adjoint
boundary = top
value = 0
[]
[]
[Materials]
[steel]
type = GenericConstantMaterial
prop_names = thermal_conductivity
prop_values = 5
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-6
nl_rel_tol = 1e-8
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[VectorPostprocessors]
[gradient]
type = PointValueSampler
points = '0.2 0.2 0
0.7 0.56 0
0.4 1 0'
variable = adjoint
sort_by = id
[]
[]
[Outputs]
console = false
exodus = false
file_base = 'adjoint'
[]
(modules/solid_mechanics/test/tests/uel/small_test.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
xmax = 10
ymax = 3
elem_type = TRI3
[]
[pin]
type = ExtraNodesetGenerator
nodes = 106
new_boundary = pin
input = gen
[]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = pin
value = 0
[]
inactive = 'right_dirichlet'
[right_neumann]
type = FunctionNeumannBC
variable = disp_x
function = t
boundary = right
[]
[right_dirichlet]
type = FunctionDirichletBC
variable = disp_x
function = t/10
boundary = right
[]
[]
[UserObjects]
[uel]
type = AbaqusUserElement
variables = 'disp_x disp_y'
plugin = ../../../examples/uel_tri_tests/uel
use_displaced_mesh = false
num_state_vars = 6
constant_properties = '100 0.3' # E nu
extra_vector_tags = 'kernel_residual'
[]
[]
[Problem]
kernel_coverage_check = false
extra_tag_vectors = 'kernel_residual'
[]
[AuxVariables]
[res_x]
[]
[res_y]
[]
[]
[AuxKernels]
[res_x]
type = TagVectorAux
variable = res_x
v = disp_x
vector_tag = kernel_residual
[]
[res_y]
type = TagVectorAux
variable = res_y
v = disp_y
vector_tag = kernel_residual
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
dt = 1
num_steps = 15
[]
[Postprocessors]
[delta_l]
type = SideAverageValue
variable = disp_x
boundary = right
execute_on = 'INITIAL TIMESTEP_END'
[]
[V]
type = ElementIntegralMaterialProperty
mat_prop = 1
use_displaced_mesh = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(modules/optimization/test/tests/optimizationreporter/general_opt/point_loads_gen_opt/adjoint.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmax = 1
ymax = 1.4
[]
[Variables]
[adjoint]
[]
[]
[Problem]
extra_tag_vectors = 'ref'
[]
[AuxVariables]
[residual_src]
[]
[]
[AuxKernels]
[residual_src]
type = TagVectorAux
vector_tag = 'ref'
v = 'adjoint'
variable = 'residual_src'
[]
[]
[Variables]
[adjoint]
[]
[]
[Kernels]
[heat_conduction]
type = MatDiffusion
variable = adjoint
diffusivity = thermal_conductivity
[]
[]
#-----every adjoint problem should have these two
[DiracKernels]
[pt]
type = ReporterPointSource
variable = adjoint
x_coord_name = misfit/measurement_xcoord
y_coord_name = misfit/measurement_ycoord
z_coord_name = misfit/measurement_zcoord
value_name = misfit/misfit_values
extra_vector_tags = 'ref'
[]
[]
[Reporters]
[misfit]
type = OptimizationData
measurement_points = ${measurement_points}
measurement_values = ${measurement_values}
[]
[]
[BCs]
[left]
type = DirichletBC
variable = adjoint
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = adjoint
boundary = right
value = 0
[]
[bottom]
type = DirichletBC
variable = adjoint
boundary = bottom
value = 0
[]
[top]
type = DirichletBC
variable = adjoint
boundary = top
value = 0
[]
[]
[Materials]
[steel]
type = GenericConstantMaterial
prop_names = thermal_conductivity
prop_values = 5
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_abs_tol = 1e-6
nl_rel_tol = 1e-8
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[VectorPostprocessors]
[gradient]
type = PointValueSampler
points = '0.2 0.2 0
0.7 0.56 0
0.4 1 0'
variable = adjoint
sort_by = id
[]
[]
[Outputs]
console = false
exodus = false
file_base = 'adjoint'
[]
(modules/contact/test/tests/verification/patch_tests/mindlin/cylinder_friction_node_face.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = hertz_cyl_coarser.e
[]
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[react_x]
[]
[react_y]
[]
[penetration]
[]
[inc_slip_x]
[]
[inc_slip_y]
[]
[accum_slip_x]
[]
[accum_slip_y]
[]
[]
[Functions]
[disp_ramp_vert]
type = PiecewiseLinear
x = '0. 1. 3.5'
y = '0. -0.020 -0.020'
[]
[disp_ramp_horz]
type = PiecewiseLinear
x = '0. 1. 3.5'
y = '0. 0.0 0.015'
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
extra_vector_tags = 'ref'
block = '1 2 3 4 5 6 7'
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
block = '1 2 3 4 5 6 7'
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
block = '1 2 3 4 5 6 7'
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
block = '1 2 3 4 5 6 7'
[]
[incslip_x]
type = PenetrationAux
variable = inc_slip_x
quantity = incremental_slip_x
boundary = 3
paired_boundary = 2
[]
[incslip_y]
type = PenetrationAux
variable = inc_slip_y
quantity = incremental_slip_y
boundary = 3
paired_boundary = 2
[]
[accum_slip_x]
type = AccumulateAux
variable = accum_slip_x
accumulate_from_variable = inc_slip_x
execute_on = timestep_end
[]
[accum_slip_y]
type = AccumulateAux
variable = accum_slip_y
accumulate_from_variable = inc_slip_y
execute_on = timestep_end
[]
[penetration]
type = PenetrationAux
variable = penetration
boundary = 3
paired_boundary = 2
[]
[react_x]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_x'
variable = 'react_x'
[]
[react_y]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_y'
variable = 'react_y'
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = react_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = react_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = react_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = react_y
boundary = 4
[]
[penetration]
type = NodalExtremeValue
variable = penetration
value_type = max
boundary = 3
[]
[inc_slip_x_max]
type = NodalExtremeValue
variable = inc_slip_x
value_type = max
boundary = 3
[]
[inc_slip_x_min]
type = NodalExtremeValue
variable = inc_slip_x
value_type = min
boundary = 3
[]
[inc_slip_y_max]
type = NodalExtremeValue
variable = inc_slip_y
value_type = max
boundary = 3
[]
[inc_slip_y_min]
type = NodalExtremeValue
variable = inc_slip_y
value_type = min
boundary = 3
[]
[accum_slip_x]
type = NodalExtremeValue
variable = accum_slip_x
value_type = max
boundary = 3
[]
[accum_slip_y]
type = NodalExtremeValue
variable = accum_slip_y
value_type = max
boundary = 3
[]
[_dt]
type = TimestepSize
[]
[]
[BCs]
[side_x]
type = DirichletBC
variable = disp_y
boundary = '1 2'
value = 0.0
[]
[bot_y]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[]
[top_y_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = disp_ramp_vert
[]
[top_x_disp]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = disp_ramp_horz
[]
[]
[Materials]
[stuff1_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e10
poissons_ratio = 0.0
[]
[stuff1_strain]
type = ComputeFiniteStrain
block = '1'
[]
[stuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[stuff2_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2 3 4 5 6 7'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[stuff2_strain]
type = ComputeFiniteStrain
block = '2 3 4 5 6 7'
[]
[stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '2 3 4 5 6 7'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type '
'-pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu superlu_dist NONZERO 1e-15 '
' 1e-5'
line_search = 'none'
nl_abs_tol = 1e-8
start_time = 0.0
end_time = 0.3
l_tol = 1e-4
dt = 0.1
dtmin = 0.1
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[VectorPostprocessors]
[x_disp]
type = NodalValueSampler
variable = disp_x
boundary = '3 4'
sort_by = id
[]
[y_disp]
type = NodalValueSampler
variable = disp_y
boundary = '3 4'
sort_by = id
[]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
exodus = true
csv = true
[console]
type = Console
max_rows = 5
[]
[chkfile]
type = CSV
show = 'x_disp y_disp'
file_base = cylinder_friction_check
create_final_symlink = true
execute_on = 'FINAL'
[]
[]
[Contact]
[leftright]
primary = 2
secondary = 3
model = coulomb
formulation = penalty
penalty = 5e9
normalize_penalty = true
friction_coefficient = '0.2'
[]
[]
(modules/solid_mechanics/test/tests/uel/tensile_uel_umat_moose_temperature.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
elem_type = HEX8
[]
[extra_nodeset]
type = ExtraNodesetGenerator
input = mesh
new_boundary = 'master'
coord = '1.0 1.0 1.0'
[]
[]
[AuxVariables]
[temperature]
initial_condition = 500
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Functions]
[function_pull]
type = PiecewiseLinear
x = '0 100'
y = '0 0.1'
[]
[]
[Constraints]
[one]
type = LinearNodalConstraint
variable = disp_x
primary = '6'
secondary_node_ids = '1 2 5'
penalty = 1.0e8
formulation = kinematic
weights = '1'
[]
[two]
type = LinearNodalConstraint
variable = disp_z
primary = '6'
secondary_node_ids = '4 5 7'
penalty = 1.0e8
formulation = kinematic
weights = '1'
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
# What's done below is to capture the weird constraints
[axial_load]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = function_pull
[]
[]
[UserObjects]
[uel]
type = AbaqusUserElement
variables = 'disp_x disp_y'
plugin = '../../../../solid_mechanics/examples/uel_build/uel'
use_displaced_mesh = false
aux_variables = temperature # TODO
#use_one_based_indexing = true # TODO
jtype = 17
num_state_vars = 177
constant_properties = '190 28.0 3.0 1.0 6.0 0.0 0.0 23.0 25.0 26.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 '
'0.0 0.0 0.0 0.0 0.0 31700000.0 0.32 6.67e-06 1e-08 5000.0 4.0' # 28 properties
extra_vector_tags = 'kernel_residual'
[]
[]
[Problem]
kernel_coverage_check = false
extra_tag_vectors = 'kernel_residual'
[]
[AuxVariables]
[res_x]
[]
[res_y]
[]
[]
[AuxKernels]
[res_x]
type = TagVectorAux
variable = res_x
v = disp_x
vector_tag = kernel_residual
[]
[res_y]
type = TagVectorAux
variable = res_y
v = disp_y
vector_tag = kernel_residual
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
l_max_its = 100
l_tol = 1e-8
nl_max_its = 50
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
dtmin = 1
dt = 5
end_time = 100
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = hertz_cyl_coarser.e
[]
[secondary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10001
new_block_name = 'secondary_lower'
sidesets = '3'
input = input_file
[]
[primary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10000
sidesets = '2'
new_block_name = 'primary_lower'
input = secondary
[]
allow_renumbering = false
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[AuxVariables]
[penalty_normal_pressure]
order = FIRST
family = LAGRANGE
[]
[penalty_frictional_pressure]
order = FIRST
family = LAGRANGE
[]
[accumulated_slip_one]
order = FIRST
family = LAGRANGE
[]
[tangential_vel_one]
order = FIRST
family = LAGRANGE
[]
[weighted_gap]
order = FIRST
family = LAGRANGE
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[react_x]
[]
[react_y]
[]
[]
[Functions]
[disp_ramp_vert]
type = PiecewiseLinear
x = '0. 1. 3.5'
y = '0. -0.020 -0.020'
[]
[disp_ramp_horz]
type = PiecewiseLinear
x = '0. 1. 3.5'
y = '0. 0.0 0.015'
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
extra_vector_tags = 'ref'
block = '1 2 3 4 5 6 7'
[]
[]
[AuxKernels]
[penalty_normal_pressure_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
[]
[penalty_frictional_pressure_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = friction_uo
contact_quantity = tangential_pressure_one
[]
[penalty_accumulated_slip_auxk]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = friction_uo
contact_quantity = accumulated_slip_one
[]
[penalty_tangential_vel_auxk]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = friction_uo
contact_quantity = tangential_velocity_one
[]
[penalty_weighted_gap_auxk]
type = PenaltyMortarUserObjectAux
variable = weighted_gap
user_object = friction_uo
contact_quantity = normal_gap
[]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
block = '1 2 3 4 5 6 7'
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
block = '1 2 3 4 5 6 7'
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
block = '1 2 3 4 5 6 7'
[]
[react_x]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_x'
variable = 'react_x'
[]
[react_y]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_y'
variable = 'react_y'
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = react_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = react_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = react_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = react_y
boundary = 4
[]
[]
[BCs]
[side_x]
type = DirichletBC
variable = disp_y
boundary = '1 2'
value = 0.0
[]
[bot_y]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[]
[top_y_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = disp_ramp_vert
[]
[top_x_disp]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = disp_ramp_horz
[]
[]
[Materials]
[stuff1_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e10
poissons_ratio = 0.0
[]
[stuff1_strain]
type = ComputeFiniteStrain
block = '1'
[]
[stuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[stuff2_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2 3 4 5 6 7'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[stuff2_strain]
type = ComputeFiniteStrain
block = '2 3 4 5 6 7'
[]
[stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '2 3 4 5 6 7'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type '
'-pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu superlu_dist NONZERO 1e-15 '
' 1e-5'
line_search = 'none'
nl_abs_tol = 1e-14
nl_rel_tol = 1e-10
start_time = 0.0
end_time = 0.3 # 3.5
l_tol = 1e-4
dt = 0.1
dtmin = 0.001
[Predictor]
type = SimplePredictor
scale = 1.0
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[VectorPostprocessors]
[x_disp]
type = NodalValueSampler
variable = disp_x
boundary = '3'
sort_by = id
[]
[y_disp]
type = NodalValueSampler
variable = disp_y
boundary = '3'
sort_by = id
[]
[cont_press]
type = NodalValueSampler
variable = penalty_normal_pressure
boundary = '3'
sort_by = id
[]
[friction]
type = NodalValueSampler
variable = penalty_frictional_pressure
boundary = '3'
sort_by = id
[]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
exodus = true
csv = false
[console]
type = Console
max_rows = 5
[]
[chkfile]
type = CSV
show = 'x_disp y_disp cont_press friction'
file_base = cylinder_friction_penalty_check
create_final_symlink = true
execute_on = 'FINAL'
[]
[]
[UserObjects]
[friction_uo]
type = PenaltyFrictionUserObject
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
disp_x = disp_x
disp_y = disp_y
friction_coefficient = 0.4 # with 2.0 works
secondary_variable = disp_x
penalty = 5e9
penalty_friction = 1e7
[]
[]
[Constraints]
[x]
type = NormalMortarMechanicalContact
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = friction_uo
[]
[y]
type = NormalMortarMechanicalContact
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = friction_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 2
secondary_boundary = 3
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 2
secondary_boundary = 3
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[]
(modules/solid_mechanics/test/tests/uel/small.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
xmax = 10
ymax = 3
elem_type = TRI3
[]
[pin]
type = ExtraNodesetGenerator
nodes = 106
new_boundary = pin
input = gen
[]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = pin
value = 0
[]
inactive = 'right_dirichlet'
[right_neumann]
type = FunctionNeumannBC
variable = disp_x
function = t
boundary = right
[]
[right_dirichlet]
type = FunctionDirichletBC
variable = disp_x
function = t/10
boundary = right
[]
[]
[UserObjects]
[uel]
type = AbaqusUserElement
variables = 'disp_x disp_y'
plugin = ../../plugins/small_strain_tri_uel
use_displaced_mesh = false
num_state_vars = 8
constant_properties = '100 0.3' # E nu
extra_vector_tags = 'kernel_residual'
[]
[]
[Problem]
kernel_coverage_check = false
extra_tag_vectors = 'kernel_residual'
[]
[AuxVariables]
[res_x]
[]
[res_y]
[]
[]
[AuxKernels]
[res_x]
type = TagVectorAux
variable = res_x
v = disp_x
vector_tag = kernel_residual
[]
[res_y]
type = TagVectorAux
variable = res_y
v = disp_y
vector_tag = kernel_residual
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
dt = 1
num_steps = 15
[]
[Postprocessors]
[delta_l]
type = SideAverageValue
variable = disp_x
boundary = right
execute_on = 'INITIAL TIMESTEP_END'
[]
[V]
type = ElementIntegralMaterialProperty
mat_prop = 1
use_displaced_mesh = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/torque_reaction/torque_reaction_3D.i)
# Scalar torque reaction
# This test computes the sum of the torques acting on a single element cube mesh.
# Equal displacements in the x and the z are applied along the cube top to
# create a shear force along the (1, 0, 1) direction. The rotation origin is
# set to the middle of the bottom face of the cube (0.5, 0, 0.5), and the axis of
# rotation direction vector used to compute the torque reaction is set to (-1, 0, 1).
# Torque is calculated for the four nodes on the top of the cube. The projection
# of the node coordinates is zero for nodes 3 and 6, +1 for node 7, and -1 for
# node 2 from the selection of the direction vector and the rotation axis origin.
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[Problem]
extra_tag_vectors = 'ref'
[]
[GlobalParams]
volumetric_locking_correction=true
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_z]
[../]
[]
[AuxKernels]
[saved_x]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_x'
variable = 'saved_x'
[]
[saved_y]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_y'
variable = 'saved_y'
[]
[saved_z]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_z'
variable = 'saved_z'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[master]
strain = SMALL
generate_output = 'stress_xx stress_yy stress_zz'
add_variables = true
extra_vector_tags = 'ref'
[]
[]
[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
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[../]
[./top_shear_z]
type = FunctionDirichletBC
variable = disp_z
boundary = top
function = '0.01*t'
[../]
[./top_shear_x]
type = FunctionDirichletBC
variable = disp_x
boundary = top
function = '0.01*t'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 207000
poissons_ratio = 0.3
[../]
[./elastic_stress]
type = ComputeLinearElasticStress
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 30
nl_max_its = 20
nl_abs_tol = 1e-14
nl_rel_tol = 1e-12
l_tol = 1e-8
start_time = 0.0
dt = 0.5
end_time = 1
num_steps = 2
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./torque]
type = TorqueReaction
boundary = top
reaction_force_variables = 'saved_x saved_y saved_z'
axis_origin = '0.5 0. 0.5'
direction_vector = '-1. 0. 1.'
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/uel/tensile_uel_umat_moose.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
elem_type = HEX8
[]
[extra_nodeset]
type = ExtraNodesetGenerator
input = mesh
new_boundary = 'master'
coord = '1.0 1.0 1.0'
[]
[]
# [AuxVariables]
# [temperature]
# initial_condition = 500
# []
# []
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Functions]
[function_pull]
type = PiecewiseLinear
x = '0 100'
y = '0 0.1'
[]
[]
[Constraints]
[one]
type = LinearNodalConstraint
variable = disp_x
primary = '6'
secondary_node_ids = '1 2 5'
penalty = 1.0e8
formulation = kinematic
weights = '1'
[]
[two]
type = LinearNodalConstraint
variable = disp_z
primary = '6'
secondary_node_ids = '4 5 7'
penalty = 1.0e8
formulation = kinematic
weights = '1'
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
# What's done below is to capture the weird constraints
[axial_load]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = function_pull
[]
[]
[UserObjects]
[uel]
type = AbaqusUserElement
variables = 'disp_x disp_y'
plugin = '../../../../solid_mechanics/examples/uel_build/uel'
use_displaced_mesh = false
#temperature = temperature # TODO
#use_one_based_indexing = true # TODO
jtype = 17
num_state_vars = 177
constant_properties = '190.0 28.0 3.0 1.0 6.0 0.0 0.0 23.0 25.0 26.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 '
'0.0 0.0 0.0 0.0 0.0 31700000.0 0.32 6.67e-06 1e-08 5000.0 4.0' # 27 properties
extra_vector_tags = 'kernel_residual'
[]
[]
[Problem]
kernel_coverage_check = false
extra_tag_vectors = 'kernel_residual'
[]
[AuxVariables]
[res_x]
[]
[res_y]
[]
[]
[AuxKernels]
[res_x]
type = TagVectorAux
variable = res_x
v = disp_x
vector_tag = kernel_residual
[]
[res_y]
type = TagVectorAux
variable = res_y
v = disp_y
vector_tag = kernel_residual
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
l_max_its = 100
l_tol = 1e-8
nl_max_its = 50
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
dtmin = 1
dt = 5
end_time = 100
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/convective_flux_function/convective_flux_function.i)
# This is a test of the ConvectiveFluxFunction BC.
# There is a single 1x1 element with a prescribed temperature
# on the left side and a convective flux BC on the right side.
# The temperature on the left is 100, and the far-field temp is 200.
# The conductance of the body (conductivity * length) is 10
#
# If the conductance in the BC is also 10, the temperature on the
# right side of the solid element should be 150 because half of the
# temperature drop should occur over the body and half in the BC.
#
# The integrated flux is deltaT * conductance, or -50 * 10 = -500.
# The negative sign indicates that heat is going into the body.
#
# The conductance is defined multiple ways using this input, and
# as long as it evaluates to 10, the result described above will
# be obtained.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
[]
[Problem]
extra_tag_vectors = 'bcs'
[]
[Variables]
[temp]
initial_condition = 100.0
[]
[]
[AuxVariables]
[flux]
[]
[]
[AuxKernels]
[flux]
type = TagVectorAux
variable = flux
v = temp
vector_tag = 'bcs'
execute_on = timestep_end
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = temp
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 10.0
[]
[]
[BCs]
[left]
type = DirichletBC
variable = temp
boundary = left
value = 100.0
[]
[right]
type = ConvectiveFluxFunction
variable = temp
boundary = right
T_infinity = 200.0
coefficient = 10.0 #This will behave as described in the header of this file if this evaluates to 10
extra_vector_tags = 'bcs'
[]
[]
[Postprocessors]
[integrated_flux]
type = NodalSum
variable = flux
boundary = right
[]
[]
[Executioner]
type = Transient
start_time = 0.0
end_time = 1.0
dt = 1.0
nl_rel_tol=1e-12
[]
[Outputs]
csv = true
[]
(test/tests/tag/tag_nodal_kernels.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[./nodal_ode]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./time]
type = TimeDerivative
variable = u
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[]
[NodalKernels]
[./td]
type = TimeDerivativeNodalKernel
variable = nodal_ode
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./constant_rate]
type = ConstantRate
variable = nodal_ode
rate = 1.0
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 10
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[]
[Problem]
type = TagTestProblem
test_tag_vectors = 'time nontime residual vec_tag1 vec_tag2'
test_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_vectors = 'vec_tag1 vec_tag2'
[]
[AuxVariables]
[./tag_variable1]
order = FIRST
family = LAGRANGE
[../]
[./tag_variable2]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./TagVectorAux1]
type = TagVectorAux
variable = tag_variable1
v = nodal_ode
vector_tag = vec_tag2
execute_on = timestep_end
[../]
[./TagVectorAux2]
type = TagMatrixAux
variable = tag_variable2
v = u
matrix_tag = mat_tag2
execute_on = timestep_end
[../]
[]
[Executioner]
type = Transient
num_steps = 10
nl_rel_tol = 1e-08
dt = 0.01
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/uel/small_test_expanded_umat.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
xmax = 10
ymax = 3
elem_type = TRI3
[]
[pin]
type = ExtraNodesetGenerator
nodes = 106
new_boundary = pin
input = gen
[]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = pin
value = 0
[]
inactive = 'right_dirichlet'
[right_neumann]
type = FunctionNeumannBC
variable = disp_x
function = t
boundary = right
[]
[right_dirichlet]
type = FunctionDirichletBC
variable = disp_x
function = t/10
boundary = right
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = SMALL
incremental = true
extra_vector_tags = 'kernel_residual'
[]
[]
[Materials]
[umat]
type = AbaqusUMATStress
constant_properties = '100 0.3'
plugin = '../../plugins/small_elastic_tri'
num_state_vars = 8
use_one_based_indexing = false
[]
[]
[Problem]
kernel_coverage_check = false
extra_tag_vectors = 'kernel_residual'
[]
[AuxVariables]
[res_x]
[]
[res_y]
[]
[]
[AuxKernels]
[res_x]
type = TagVectorAux
variable = res_x
v = disp_x
vector_tag = kernel_residual
[]
[res_y]
type = TagVectorAux
variable = res_y
v = disp_y
vector_tag = kernel_residual
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
dt = 1
num_steps = 15
[]
[Postprocessors]
[delta_l]
type = SideAverageValue
variable = disp_x
boundary = right
execute_on = 'INITIAL TIMESTEP_END'
[]
[V]
type = ElementIntegralMaterialProperty
mat_prop = 1
use_displaced_mesh = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/uel/small_test_uel_states_fields_gradient.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
xmax = 10
ymax = 3
elem_type = TRI3
[]
[pin]
type = ExtraNodesetGenerator
nodes = 106
new_boundary = pin
input = gen
[]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 400
[]
[voltage]
initial_condition = 210
[]
[]
[AuxKernels]
[temperature]
type = FunctionAux
function = '25* x + 40 * y + 400'
variable = temperature
[]
[voltage]
type = FunctionAux
function = '10 * x + 4 * y + 210'
variable = voltage
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = pin
value = 0
[]
inactive = 'right_dirichlet'
[right_neumann]
type = FunctionNeumannBC
variable = disp_x
function = t/10
boundary = right
[]
[right_dirichlet]
type = FunctionDirichletBC
variable = disp_x
function = t/10
boundary = right
[]
[]
[UserObjects]
[uel]
type = AbaqusUserElement
variables = 'disp_x disp_y'
plugin = ../../../examples/uel_tri_states_tests/uel
use_displaced_mesh = false
num_state_vars = 8
constant_properties = '100 0.3' # E nu
external_fields = 'temperature voltage'
extra_vector_tags = 'kernel_residual'
[]
[]
[Problem]
kernel_coverage_check = false
extra_tag_vectors = 'kernel_residual'
[]
[AuxVariables]
[res_x]
[]
[res_y]
[]
[]
[AuxKernels]
[res_x]
type = TagVectorAux
variable = res_x
v = disp_x
vector_tag = kernel_residual
[]
[res_y]
type = TagVectorAux
variable = res_y
v = disp_y
vector_tag = kernel_residual
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
dt = 1
num_steps = 15
[]
[Postprocessors]
[delta_l]
type = SideAverageValue
variable = disp_x
boundary = right
execute_on = 'INITIAL TIMESTEP_END'
[]
[V]
type = ElementIntegralMaterialProperty
mat_prop = 1
use_displaced_mesh = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/tag/tag-fv.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 5
[]
[Variables]
[v]
type = MooseVariableFVReal
initial_condition = 7
[]
[]
[AuxVariables]
[soln_dof]
type = MooseVariableFVReal
[]
[soln_old_dof]
type = MooseVariableFVReal
[]
[soln_older_dof]
type = MooseVariableFVReal
[]
[resid_nontime_dof]
type = MooseVariableFVReal
[]
[soln]
type = MooseVariableFVReal
[]
[soln_old]
type = MooseVariableFVReal
[]
[soln_older]
type = MooseVariableFVReal
[]
[resid_nontime]
type = MooseVariableFVReal
[]
[]
[AuxKernels]
[soln_dof]
type = TagVectorDofValueAux
variable = soln_dof
v = v
vector_tag = 'solution'
[]
[soln_old_dof]
type = TagVectorDofValueAux
variable = soln_old_dof
v = v
vector_tag = 'solution_state_1'
[]
[soln_older_dof]
type = TagVectorDofValueAux
variable = soln_older_dof
v = v
vector_tag = 'solution_state_2'
[]
[nontime_dof]
type = TagVectorDofValueAux
variable = resid_nontime_dof
v = v
vector_tag = 'nontime'
[]
[soln]
type = TagVectorAux
variable = soln
v = v
vector_tag = 'solution'
[]
[soln_old]
type = TagVectorAux
variable = soln_old
v = v
vector_tag = 'solution_state_1'
[]
[soln_older]
type = TagVectorAux
variable = soln_older
v = v
vector_tag = 'solution_state_2'
[]
[nontime]
type = TagVectorAux
variable = resid_nontime
v = v
vector_tag = 'nontime'
[]
[]
[FVKernels]
[time]
type = FVTimeKernel
variable = v
[]
[diff]
type = FVDiffusion
variable = v
coeff = coeff
[]
[]
[FVBCs]
[left]
type = FVDirichletBC
variable = v
boundary = left
value = 7
[]
[right]
type = FVDirichletBC
variable = v
boundary = right
value = 42
[]
[]
[Materials]
[diff]
type = ADGenericFunctorMaterial
prop_names = 'coeff'
prop_values = '.2'
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
num_steps = 5
dt = 0.1
[]
[Outputs]
exodus = true
[]
(test/tests/tag/old_eigen_tag.i)
[Mesh/gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
[]
[Variables]
[u]
[]
[v]
[]
[]
[AuxVariables]
[u_vec_tag_diff]
[]
[u_vec_tag_rhs]
[]
[u_mat_tag_diff]
[]
[u_mat_tag_rhs]
[]
[u_mat_savein_rhs]
[]
[v_vec_tag_diff]
[]
[v_vec_tag_rhs]
[]
[v_mat_tag_diff]
[]
[v_mat_tag_rhs]
[]
[]
[Kernels]
[diff_u]
type = Diffusion
variable = u
extra_vector_tags = 'tag_diff'
extra_matrix_tags = 'tag_diff'
[]
[rhs_u]
type = MassEigenKernel
variable = u
extra_vector_tags = 'tag_rhs'
extra_matrix_tags = 'tag_rhs'
diag_save_in = 'u_mat_savein_rhs'
[]
[diff_v]
type = Diffusion
variable = v
extra_vector_tags = 'tag_diff'
extra_matrix_tags = 'tag_diff'
[]
[rhs_v]
type = MassEigenKernel
variable = v
extra_vector_tags = 'tag_rhs'
extra_matrix_tags = 'tag_rhs'
[]
[rhs_uv]
type = CoupledEigenKernel
variable = u
v = v
extra_vector_tags = 'tag_rhs'
extra_matrix_tags = 'tag_rhs'
[]
[rhs_vu]
type = CoupledEigenKernel
variable = v
v = u
extra_vector_tags = 'tag_rhs'
extra_matrix_tags = 'tag_rhs'
[]
[]
[AuxKernels]
[u_vec_tag_diff]
type = TagVectorAux
variable = u_vec_tag_diff
v = u
vector_tag = tag_diff
[]
[u_vec_tag_rhs]
type = TagVectorAux
variable = u_vec_tag_rhs
v = u
vector_tag = tag_rhs
[]
[u_mat_tag_diff]
type = TagVectorAux
variable = u_mat_tag_diff
v = u
vector_tag = tag_diff
[]
[u_mat_tag_rhs]
type = TagVectorAux
variable = u_mat_tag_diff
v = u
vector_tag = tag_rhs
[]
[v_vec_tag_diff]
type = TagVectorAux
variable = v_vec_tag_diff
v = v
vector_tag = tag_diff
[]
[v_vec_tag_rhs]
type = TagVectorAux
variable = v_vec_tag_rhs
v = v
vector_tag = tag_rhs
[]
[v_mat_tag_diff]
type = TagVectorAux
variable = v_mat_tag_diff
v = v
vector_tag = tag_diff
[]
[v_mat_tag_rhs]
type = TagVectorAux
variable = v_mat_tag_diff
v = v
vector_tag = tag_rhs
[]
[]
[BCs]
[homogeneous_u]
type = DirichletBC
boundary = 'top right bottom left'
variable = u
value = 0
[]
[homogeneous_v]
type = DirichletBC
boundary = 'top right bottom left'
variable = v
value = 0
[]
[]
[Problem]
extra_tag_vectors = 'tag_diff tag_rhs'
extra_tag_matrices = 'tag_diff tag_rhs'
[]
[Postprocessors]
[unorm]
type = NodalL2Norm
variable = u
execute_on = linear
[]
[vnorm]
type = NodalL2Norm
variable = v
execute_on = linear
[]
[uvnorm]
type = ParsedPostprocessor
function = 'sqrt(unorm*unorm + vnorm*vnorm)'
pp_names = 'unorm vnorm'
execute_on = linear
[]
[]
[Preconditioning/smp]
type = SMP
full = true
[]
[Executioner]
type = NonlinearEigen
bx_norm = uvnorm
free_l_tol = 1e-8
nl_abs_tol = 1e-12
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/plane_stress/weak_plane_stress_finite_tension_pull.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
out_of_plane_strain = strain_zz
[]
[Problem]
extra_tag_vectors = 'ref'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 1
ny = 1
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[strain_zz]
[]
[]
[AuxVariables]
[react_x]
[]
[]
[Postprocessors]
[react_x]
type = NodalSum
variable = 'react_x'
boundary = 'right'
[]
[stress_xx]
type = ElementalVariableValue
variable = 'stress_xx'
elementid = 0
[]
[strain_zz]
type = ElementalVariableValue
variable = 'strain_zz'
elementid = 0
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[plane_stress]
strain = FINITE
planar_formulation = WEAK_PLANE_STRESS
extra_vector_tags = 'ref'
generate_output = 'stress_xx stress_xy stress_yy stress_zz strain_xx strain_xy strain_yy'
[]
[]
[AuxKernels]
[react_x]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_x'
variable = 'react_x'
[]
[]
[BCs]
[leftx]
type = DirichletBC
boundary = left
variable = disp_x
value = 0.0
[]
[bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[]
[rightx]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = 't'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 1e6
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
# time control
start_time = 0.0
dt = 0.01
dtmin = 0.01
end_time = 0.2
[]
[Outputs]
csv = true
[]
(test/tests/tag/eigen_tag.i)
[Mesh/gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
[]
[Variables/u]
[]
[AuxVariables]
[vec_tag_diff]
order = FIRST
family = LAGRANGE
[]
[vec_tag_rhs]
order = FIRST
family = LAGRANGE
[]
[mat_tag_diff]
order = FIRST
family = LAGRANGE
[]
[mat_tag_rhs]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
extra_vector_tags = 'tag_diff'
extra_matrix_tags = 'tag_diff'
[]
[rhs]
type = CoefReaction
variable = u
extra_vector_tags = 'eigen tag_rhs'
extra_matrix_tags = 'tag_rhs'
[]
[]
[AuxKernels]
[vec_tag_diff]
type = TagVectorAux
variable = vec_tag_diff
v = u
vector_tag = tag_diff
[]
[vec_tag_rhs]
type = TagVectorAux
variable = vec_tag_rhs
v = u
vector_tag = tag_rhs
[]
[mat_tag_diff]
type = TagVectorAux
variable = mat_tag_diff
v = u
vector_tag = tag_diff
[]
[mat_tag_rhs]
type = TagVectorAux
variable = mat_tag_diff
v = u
vector_tag = tag_rhs
[]
[]
[BCs/homogeneous]
type = DirichletBC
boundary = 'top right bottom left'
variable = u
value = 0
[]
[Problem]
extra_tag_vectors = 'tag_diff tag_rhs'
extra_tag_matrices = 'tag_diff tag_rhs'
[]
[Executioner]
type = Eigenvalue
solve_type = NEWTON
eigen_problem_type = GEN_NON_HERMITIAN
[]
[Outputs]
exodus = true
[]
(test/tests/tag/tag_neumann.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
construct_side_list_from_node_list = true
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[]
[AuxVariables]
[./tag_variable1]
order = FIRST
family = LAGRANGE
[../]
[./tag_variable2]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./TagVectorAux1]
type = TagVectorAux
variable = tag_variable1
v = u
vector_tag = vec_tag2
execute_on = timestep_end
[../]
[./TagVectorAux2]
type = TagMatrixAux
variable = tag_variable2
v = u
matrix_tag = mat_tag2
execute_on = timestep_end
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = 2
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[]
[Problem]
type = TagTestProblem
test_tag_vectors = 'nontime residual vec_tag1 vec_tag2'
test_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_vectors = 'vec_tag1 vec_tag2'
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/free_expansion_abs_ref/free_expansion_abs_ref.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y'
[]
[Mesh]
[square]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[]
[eng1]
type = ExtraNodesetGenerator
input = square
new_boundary = 'lower_left'
coord = '0 0'
[]
[eng2]
type = ExtraNodesetGenerator
input = eng1
new_boundary = 'lower_right'
coord = '1 0'
[]
[]
[AuxVariables]
[temp]
[]
[ref_x]
[]
[ref_y]
[]
[]
[AuxKernels]
[tempfuncaux]
type = FunctionAux
variable = temp
function = '(1-x)*t'
use_displaced_mesh = false
[]
[ref_x]
type = TagVectorAux
variable = 'ref_x'
vector_tag = 'ref'
v = 'disp_x'
execute_on = timestep_end
[]
[ref_y]
type = TagVectorAux
variable = 'ref_y'
vector_tag = 'ref'
execute_on = timestep_end
v = 'disp_y'
[]
[]
[BCs]
[fix_x]
type = DirichletBC
boundary = 'lower_left'
variable = disp_x
value = 0.0
[]
[fix_y]
type = DirichletBC
boundary = 'lower_left lower_right'
variable = disp_y
value = 0.0
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = SMALL
add_variables = true
temperature = temp
generate_output = 'stress_xx stress_xy stress_yy stress_zz strain_xx strain_xy strain_yy strain_zz'
planar_formulation = PLANE_STRAIN
eigenstrain_names = eigenstrain
absolute_value_vector_tags = 'ref'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elastic_stress]
type = ComputeLinearElasticStress
[]
[thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 0.02
temperature = temp
stress_free_temperature = 0.5
eigenstrain_name = eigenstrain
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
l_max_its = 100
l_tol = 1e-8
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
start_time = 0.0
dt = 1.0
dtmin = 1.0
end_time = 2.0
[]
[Outputs]
exodus = true
[]
(test/tests/tag/tag_interface_kernels.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
nx = 2
xmax = 2
ny = 2
ymax = 2
nz = 2
zmax = 2
[]
[./subdomain1]
input = gen
type = SubdomainBoundingBoxGenerator
bottom_left = '0 0 0'
top_right = '1 1 1'
block_id = 1
[../]
[./break_boundary]
input = subdomain1
type = BreakBoundaryOnSubdomainGenerator
[../]
[./interface]
type = SideSetsBetweenSubdomainsGenerator
input = break_boundary
primary_block = '0'
paired_block = '1'
new_boundary = 'primary0_interface'
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./v]
order = FIRST
family = LAGRANGE
block = 1
[../]
[]
[Kernels]
[./diff_u]
type = CoeffParamDiffusion
variable = u
D = 4
block = 0
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./diff_v]
type = CoeffParamDiffusion
variable = v
D = 2
block = 1
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./source_u]
type = BodyForce
variable = u
value = 1
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[]
[InterfaceKernels]
[./interface]
type = PenaltyInterfaceDiffusion
variable = u
neighbor_var = v
boundary = primary0_interface
penalty = 1e6
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[]
[BCs]
[./u]
type = VacuumBC
variable = u
boundary = 'left_to_0 bottom_to_0 back_to_0 right top front'
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./v]
type = VacuumBC
variable = v
boundary = 'left_to_1 bottom_to_1 back_to_1'
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[]
[AuxVariables]
[./tag_variable1]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./tag_variable2]
order = FIRST
family = LAGRANGE
block = 1
[../]
[]
[AuxKernels]
[./TagVectorAux1]
type = TagVectorAux
variable = tag_variable1
v = u
block = 0
vector_tag = vec_tag2
execute_on = timestep_end
[../]
[./TagVectorAux2]
type = TagMatrixAux
variable = tag_variable2
v = v
block = 1
matrix_tag = mat_tag2
execute_on = timestep_end
[../]
[]
[Postprocessors]
[./u_int]
type = ElementIntegralVariablePostprocessor
variable = u
block = 0
[../]
[./v_int]
type = ElementIntegralVariablePostprocessor
variable = v
block = 1
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Problem]
type = TagTestProblem
test_tag_vectors = 'nontime residual vec_tag1 vec_tag2'
test_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_vectors = 'vec_tag1 vec_tag2'
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
[]