- boundaryThe list of boundary IDs from the mesh where this object applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundary IDs from the mesh where this object applies
- functionThe forcing function.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:The forcing function.
- variableThe name of the variable that this residual object operates on
C++ Type:NonlinearVariableName
Unit:(no unit assumed)
Controllable:No
Description:The name of the variable that this residual object operates on
FunctionDirichletBC
Imposes the essential boundary condition , where is a (possibly) time and space-dependent MOOSE Function.
Description
FunctionDirichletBC
is a generalization of DirichletBC
which imposes a possibly temporally- and spatially-dependent value defined by a MOOSE Function
object on a particular set of degrees of freedom (DOFs) defined by the boundary
parameter. That is, for a PDE of the form
where is the domain, and is its boundary, a FunctionDirichletBC
object can be used to impose the condition (2) if the function is well-defined for . In this case, the function
parameter corresponds to a MOOSE Function
object which represents the mathematical function , and the user must define one or more sidesets corresponding to the boundary subset via the boundary
parameter.
Preset boundary conditions
With the parameter preset = true
, the value of the boundary condition is applied before the solve begins. With preset = false
, the boundary condition is only enforced as the solve progresses. In most situations, presetting the boundary condition is better.
Example Input Syntax
[BCs<<<{"href": "../../syntax/BCs/index.html"}>>>]
[./all]
type = FunctionDirichletBC<<<{"description": "Imposes the essential boundary condition $u=g(t,\\vec{x})$, where $g$ is a (possibly) time and space-dependent MOOSE Function.", "href": "FunctionDirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = u
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left right'
function<<<{"description": "The forcing function."}>>> = bc_func
[../]
[]
(test/tests/bcs/function_dirichlet_bc/test.i)Input Parameters
- diag_save_inThe name of auxiliary variables to save this BC's diagonal jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector<AuxVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The name of auxiliary variables to save this BC's diagonal jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- displacementsThe displacements
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The displacements
- matrix_onlyFalseWhether this object is only doing assembly to matrices (no vectors)
Default:False
C++ Type:bool
Controllable:No
Description:Whether this object is only doing assembly to matrices (no vectors)
- presetTrueWhether or not to preset the BC (apply the value before the solve begins).
Default:True
C++ Type:bool
Controllable:No
Description:Whether or not to preset the BC (apply the value before the solve begins).
- save_inThe name of auxiliary variables to save this BC's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector<AuxVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The name of auxiliary variables to save this BC's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
Optional Parameters
- absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution
C++ Type:std::vector<TagName>
Controllable:No
Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution
- extra_matrix_tagsThe extra tags for the matrices this Kernel should fill
C++ Type:std::vector<TagName>
Controllable:No
Description:The extra tags for the matrices this Kernel should fill
- extra_vector_tagsThe extra tags for the vectors this Kernel should fill
C++ Type:std::vector<TagName>
Controllable:No
Description:The extra tags for the vectors this Kernel should fill
Contribution To Tagged Field Data Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
- matrix_tagssystem timeThe tag for the matrices this Kernel should fill
Default:system time
C++ Type:MultiMooseEnum
Options:nontime, system, time
Controllable:No
Description:The tag for the matrices this Kernel should fill
- vector_tagsresidualThe tag for the vectors this Kernel should fill
Default:residual
C++ Type:MultiMooseEnum
Options:nontime, time, residual
Controllable:No
Description:The tag for the vectors this Kernel should fill
Tagging Parameters
Input Files
- (modules/navier_stokes/test/tests/finite_element/ins/nonzero-malloc/test.i)
- (modules/contact/test/tests/mechanical_constraint/glued_kinematic.i)
- (test/tests/preconditioners/smp/smp_single_adapt_test.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/patch_recovery.i)
- (modules/solid_mechanics/test/tests/tensile/planar4.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_substep.i)
- (test/tests/bcs/periodic/auto_dir_repeated_id.i)
- (modules/solid_mechanics/test/tests/smeared_cracking/cracking_xyz.i)
- (modules/solid_mechanics/test/tests/multi/three_surface13.i)
- (modules/solid_mechanics/test/tests/mean_cap/small_deform2.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence/3D/dirichlet.i)
- (modules/contact/test/tests/bouncing-block-contact/grid-sequencing/grid-sequencing.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg_tight.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test2qtt.i)
- (modules/solid_mechanics/test/tests/hyperelastic_viscoplastic/one_elem_linear_harden.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test4qnns.i)
- (modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_gps_small.i)
- (modules/solid_mechanics/test/tests/smeared_cracking/cracking_rz.i)
- (modules/xfem/test/tests/solid_mechanics_basic/crack_propagation_2d.i)
- (modules/solid_mechanics/test/tests/poro/vol_expansion_action.i)
- (modules/navier_stokes/test/tests/finite_element/ins/jeffery_hamel/wedge_natural.i)
- (modules/solid_mechanics/test/tests/multi/three_surface12.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_aprismatic_active.i)
- (modules/peridynamics/test/tests/failure_tests/2D_bond_status_convergence_BPD.i)
- (modules/xfem/test/tests/nucleation_uo/nucleate_edge_bulk_crack_2d.i)
- (test/tests/time_steppers/timesequence_stepper/csvtimesequence.i)
- (test/tests/userobjects/nodal_patch_recovery/nodal_patch_recovery.i)
- (modules/thermal_hydraulics/test/tests/components/hs_boundary_external_app_convection/plate.parent.i)
- (modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-fretting-wear-test.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform1.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_cosserat2.i)
- (modules/navier_stokes/test/tests/finite_element/ins/mms/pspg/pspg_mms_test.i)
- (modules/contact/test/tests/verification/hertz_cyl/half_symm_q4/hertz_cyl_half_1deg_template3.i)
- (test/tests/misc/check_error/old_integrity_check.i)
- (modules/solid_mechanics/test/tests/elem_prop_read_user_object/prop_elem_read.i)
- (modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-wear.i)
- (modules/solid_mechanics/tutorials/basics/part_3_1.i)
- (modules/combined/test/tests/elastic_patch/elastic_patch_plane_strain.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al_backup.i)
- (modules/contact/test/tests/sliding_block/in_and_out/frictionless_lm.i)
- (modules/fsi/test/tests/2d-small-strain-transient/fsi_flat_channel.i)
- (modules/solid_mechanics/test/tests/rate_independent_cyclic_hardening/nonlin_isokinharden_symmetric_strain_controlled.i)
- (modules/solid_mechanics/test/tests/finite_strain_tensor_mechanics_tests/elastic_rotation.i)
- (modules/solid_mechanics/test/tests/umat/plane_strain/plane_strain.i)
- (test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test4qns.i)
- (modules/solid_mechanics/test/tests/lagrangian/materials/convergence/hyperelastic_J2_plastic.i)
- (examples/ex13_functions/ex13.i)
- (modules/solid_mechanics/tutorials/basics/part_2.4.i)
- (modules/navier_stokes/test/tests/finite_element/ins/velocity_channel/velocity_inletBC_by_parts.i)
- (test/tests/postprocessors/side_extreme_value/nonlinear_variable.i)
- (modules/solid_mechanics/test/tests/uel/tensile_uel_umat_moose.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/small_deform_hard3.i)
- (test/tests/time_steppers/timesequence_stepper/timesequence.i)
- (modules/solid_mechanics/test/tests/multi/three_surface00.i)
- (test/tests/controls/time_periods/bcs/bcs.i)
- (modules/contact/test/tests/mortar_tm/2d/frictionless_first/finite.i)
- (modules/contact/test/tests/dual_mortar/dm_mechanical_contact.i)
- (test/tests/outputs/residual/output_residual_test.i)
- (modules/xfem/test/tests/nucleation_uo/nucleate_bulkCrack.i)
- (test/tests/restart/restart_steady_from_transient/transient.i)
- (modules/stochastic_tools/test/tests/actions/parameter_study_action/sub_not_controllable.i)
- (modules/navier_stokes/test/tests/finite_element/ins/lid_driven/lid_driven_stabilized.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/save_euler.i)
- (modules/solid_mechanics/test/tests/elem_prop_read_user_object/prop_grain_read.i)
- (test/tests/utils/2d_linear_interpolation/xyz_error.i)
- (modules/solid_mechanics/test/tests/hyperelastic_viscoplastic/one_elem_base.i)
- (test/tests/misc/check_error/bad_parsed_function_vars.i)
- (modules/contact/test/tests/hertz_spherical/hertz_contact.i)
- (test/tests/time_integrators/rk-2/2d-quadratic.i)
- (modules/contact/test/tests/3d-mortar-contact/frictionless-mortar-3d_pg.i)
- (test/tests/userobjects/internal_side_user_object/internal_side_user_object_two_materials.i)
- (test/tests/mesh/adapt/initial_adaptivity_test.i)
- (modules/contact/test/tests/mortar_dynamics/block-dynamics-action.i)
- (modules/combined/test/tests/power_law_hardening/PowerLawHardening.i)
- (modules/navier_stokes/test/tests/finite_element/ins/velocity_channel/traction-supg.i)
- (modules/contact/test/tests/mortar_dynamics/frictional-mortar-3d-dynamics.i)
- (modules/solid_mechanics/test/tests/capped_drucker_prager/random.i)
- (modules/solid_mechanics/test/tests/uel/small_test_umat_states_fields_gradient.i)
- (test/tests/variables/fe_monomial_const/monomial-const-1d.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform1_update_version.i)
- (modules/contact/test/tests/verification/patch_tests/single_pnt_2d/single_point_2d_frictional.i)
- (modules/contact/test/tests/sliding_block/in_and_out/frictionless_penalty.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform1_cosserat.i)
- (modules/navier_stokes/test/tests/finite_element/ins/lid_driven/lid_driven.i)
- (modules/solid_mechanics/test/tests/weak_plane_shear/large_deform3.i)
- (test/tests/bcs/nodal_normals/cylinder_hexes_2nd.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_radiation_test.i)
- (modules/solid_mechanics/test/tests/mean_cap_TC/random01.i)
- (modules/solid_mechanics/examples/uexternaldb_coupling/test.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform11.i)
- (modules/solid_mechanics/test/tests/multi/six_surface14.i)
- (modules/solid_mechanics/test/tests/multi/three_surface02.i)
- (modules/solid_mechanics/test/tests/drucker_prager/small_deform3_outer_tip.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test1q.i)
- (modules/solid_mechanics/test/tests/anisotropic_patch/anisotropic_patch_test.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/bicrystal_test.i)
- (modules/combined/test/tests/combined_plasticity_temperature/plasticity_temperature_dep_yield.i)
- (test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test4nns.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/small_deform_hard2.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform7.i)
- (test/tests/misc/initial_solution_copy/solutions_equal.i)
- (python/mms/test/mms_temporal.i)
- (modules/contact/test/tests/frictional/single_point_2d/single_point_2d_tp.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform9_cosserat.i)
- (modules/solid_mechanics/test/tests/weak_plane_tensile/large_deform2.i)
- (modules/solid_mechanics/test/tests/lagrangian/materials/correctness/stvenantkirchhoff.i)
- (test/tests/misc/check_error/uo_pps_name_collision_test.i)
- (modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-fretting-wear-test-action.i)
- (modules/combined/test/tests/elastic_patch/ad_elastic_patch_rz_nonlinear.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform_hard3_update_version.i)
- (modules/solid_mechanics/examples/hyper_elastic_test.i)
- (modules/contact/test/tests/verification/hertz_cyl/half_symm_q8/hertz_cyl_half_1deg_template1.i)
- (modules/heat_transfer/test/tests/heat_conduction/min_gap/min_gap.i)
- (modules/fsi/test/tests/fsi_acoustics/1D_struc_acoustic/1D_struc_acoustic.i)
- (test/tests/outputs/debug/show_var_residual_norms.i)
- (modules/combined/test/tests/phase_field_fracture/void2d_iso.i)
- (test/tests/predictors/simple/predictor_test.i)
- (test/tests/time_integrators/explicit-euler/ee-2d-linear.i)
- (test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test4ns.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/twinning/only_twinning_fcc.i)
- (modules/peridynamics/test/tests/failure_tests/2D_bond_status_convergence_H1NOSPD.i)
- (modules/heat_transfer/tutorials/introduction/therm_step03.i)
- (examples/ex14_pps/ex14.i)
- (framework/contrib/hit/test/input.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/RZ_cone_by_parts.i)
- (modules/solid_mechanics/test/tests/lagrangian/materials/correctness/hyperelastic_J2_plastic.i)
- (modules/solid_mechanics/test/tests/tensile/planar2.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/strip.i)
- (modules/solid_mechanics/test/tests/tensile/planar7.i)
- (modules/solid_mechanics/test/tests/weak_plane_shear/large_deform4.i)
- (modules/porous_flow/test/tests/poro_elasticity/mandel_constM.i)
- (test/tests/time_steppers/timesequence_stepper/timesequence_restart3.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl2D_xz.i)
- (modules/solid_mechanics/test/tests/lagrangian/axisymmetric_cylindrical/total/patch/small.i)
- (modules/solid_mechanics/test/tests/eigenstrain/reducedOrderRZLinearConstant.i)
- (modules/solid_mechanics/test/tests/weak_plane_tensile/large_deform1.i)
- (modules/contact/test/tests/sliding_block/edge_dropping/two_equal_blocks_slide_3d.i)
- (modules/contact/test/tests/mortar_tm/2d/frictionless_second/small.i)
- (modules/solid_mechanics/test/tests/jacobian_damper/cube_load_undisplaced.i)
- (modules/contact/test/tests/sliding_block/edge_dropping/two_equal_blocks_slide_2d.i)
- (modules/contact/test/tests/mortar_cartesian_lms/frictionless-mortar-3d-friction.i)
- (modules/contact/test/tests/mechanical_constraint/frictionless_kinematic_gap_offsets.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/RZ_cone_no_parts.i)
- (modules/contact/test/tests/cohesive_zone_model/mortar_czm_analysis.i)
- (modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian_pg.i)
- (test/tests/time_steppers/postprocessor_dt/postprocessor_dt.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test4.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/user_object.i)
- (test/tests/postprocessors/element_vec_l2_error_pps/element_vec_l2_error.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/generalized_plane_strain/pull_2D.i)
- (modules/contact/test/tests/fieldsplit/2blocks3d.i)
- (modules/solid_mechanics/test/tests/smeared_cracking/cracking_exponential.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test2q.i)
- (modules/stochastic_tools/examples/libtorch_drl_control/libtorch_drl_control_sub.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_cosserat1.i)
- (test/tests/time_integrators/explicit-euler/ee-1d-linear.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test2.i)
- (test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test3nns.i)
- (test/tests/postprocessors/side_extreme_value/aux_nodal.i)
- (test/tests/mesh/mesh_generation/disc_sector_deprecated.i)
- (modules/fluid_properties/test/tests/stiffened_gas/test.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test3qtt.i)
- (modules/solid_mechanics/test/tests/lagrangian/materials/kinematic_check/strain_check.i)
- (test/tests/geomsearch/2d_moving_penetration/restart.i)
- (modules/contact/test/tests/dual_mortar/dm_mechanical_contact_precon.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/sphere2DRZ.i)
- (modules/solid_mechanics/examples/coal_mining/cosserat_mc_only.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_inclined2.i)
- (modules/solid_mechanics/test/tests/weak_plane_shear/large_deform1.i)
- (modules/solid_mechanics/test/tests/uel/small.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform3.i)
- (modules/peridynamics/test/tests/failure_tests/2D_singular_shape_tensor_H1NOSPD.i)
- (test/tests/executioners/transient_sync_time/transient_time_interval_output_test.i)
- (modules/solid_mechanics/test/tests/drucker_prager/small_deform3_inner_edge.i)
- (modules/combined/test/tests/thermal_conductivity_temperature_function_test/thermal_conductivity_temperature_function_test.i)
- (test/tests/mesh/mesh_generation/annulus_sector.i)
- (test/tests/postprocessors/interface_value/interface_fe_variable_value_postprocessor.i)
- (modules/contact/test/tests/sliding_block/sliding/frictionless_aug.i)
- (modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform3_native.i)
- (modules/xfem/test/tests/moving_interface/verification/2D_rz_lsdep1mat.i)
- (modules/solid_mechanics/test/tests/uel/small_test.i)
- (modules/solid_mechanics/test/tests/central_difference/lumped/2D/2d_lumped_explicit.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_save_euler.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/update_method_011orientation.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence-auto/2D/dirichlet.i)
- (modules/solid_mechanics/test/tests/strain_energy_density/incr_model_elas_plas.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/substep.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform19.i)
- (modules/contact/test/tests/mortar_tm/2drz/frictionless_second/small.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/planar_hard5.i)
- (modules/solid_mechanics/test/tests/static_deformations/beam_cosserat_02_apply_stress.i)
- (modules/fluid_properties/test/tests/calorically_imperfect_gas/test.i)
- (modules/solid_mechanics/test/tests/drucker_prager/small_deform2_outer_tip.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform1.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/twinning/combined_twinning_slip_100compression.i)
- (modules/porous_flow/test/tests/hysteresis/hys_pc_2.i)
- (modules/solid_mechanics/test/tests/umat/time_step/elastic_timestep.i)
- (test/tests/outputs/debug/show_execution_kernels_bcs.i)
- (modules/solid_mechanics/test/tests/umat/multiple_blocks/multiple_blocks.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform13.i)
- (test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test4nstt.i)
- (modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform2_inner_edge.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_iso_wo_time.i)
- (modules/solid_mechanics/test/tests/recompute_radial_return/isotropic_plasticity_incremental_strain.i)
- (modules/combined/test/tests/j2_plasticity_vs_LSH/necking/j2_hard1_necking.i)
- (modules/navier_stokes/test/tests/finite_element/ins/mms/supg/supg_pspg_adv_dominated_mms.i)
- (modules/heat_transfer/test/tests/multiple_contact_pairs/multiple_contact_pairs.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/random5.i)
- (modules/solid_mechanics/test/tests/static_deformations/beam_cosserat_02_apply_disps.i)
- (modules/phase_field/test/tests/free_energy_material/RegularSolutionFreeEnergy_plog.i)
- (modules/phase_field/test/tests/free_energy_material/RegularSolutionFreeEnergy_const_T.i)
- (modules/contact/test/tests/fieldsplit/frictional_mortar_FS.i)
- (test/tests/mortar/continuity-2d-conforming/conforming_two_var.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence/L/small.i)
- (python/peacock/tests/common/oversample.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_test.i)
- (modules/contact/test/tests/mortar_tm/horizontal_blocks_mortar_TM.i)
- (modules/solid_mechanics/test/tests/static_deformations/layered_cosserat_01.i)
- (modules/solid_mechanics/test/tests/2D_geometries/2D-RZ_finiteStrain_resid.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al.i)
- (modules/contact/test/tests/mechanical_constraint/frictionless_penalty.i)
- (tutorials/tutorial03_verification/app/test/tests/step04_mms/2d_mms_spatial.i)
- (test/tests/postprocessors/postprocessor_dependency/element_side_pp.i)
- (modules/solid_mechanics/test/tests/uel/small_test_expanded_umat.i)
- (modules/contact/test/tests/normalized_penalty/normalized_penalty_Q8.i)
- (test/tests/kernels/ode/parsedode_sys_impl_test.i)
- (modules/peridynamics/test/tests/simple_tests/2D_regularD_constH_OSPD.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test2q.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform_hard22.i)
- (test/tests/misc/check_error/missing_required_coupled.i)
- (test/tests/time_integrators/newmark-beta/newmark_beta_default_parameters.i)
- (test/tests/time_integrators/newmark-beta/newmark_beta_prescribed_parameters.i)
- (modules/combined/test/tests/internal_volume/rz_displaced.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_cutback.i)
- (modules/contact/test/tests/normalized_penalty/normalized_penalty_kin_Q8.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_no_parts_steady_nobcbc.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence-auto/1D/dirichlet.i)
- (modules/solid_mechanics/test/tests/umat/analysis_steps/elastic_temperature_steps_uo_end_times.i)
- (modules/solid_mechanics/test/tests/tensile/planar3.i)
- (modules/solid_mechanics/test/tests/shell/static/finite_straintest.i)
- (modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_hex_template.i)
- (modules/contact/test/tests/sliding_block/in_and_out/frictionless_penalty_contact_line_search.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform11.i)
- (test/tests/auxscalarkernels/function_scalar_aux/function_scalar_aux.i)
- (modules/solid_mechanics/test/tests/thermal_expansion/ad_constant_expansion_coeff.i)
- (modules/solid_mechanics/test/tests/thermal_expansion/ad_constant_expansion_stress_free_temp.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence/1D/dirichlet.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform6.i)
- (test/tests/executioners/executioner/sln-time-adapt.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test4q.i)
- (modules/solid_mechanics/test/tests/multi/three_surface21.i)
- (modules/solid_mechanics/tutorials/basics/part_2.3.i)
- (modules/combined/test/tests/thermal_strain/thermal_strain.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/block_w_line.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform6.i)
- (modules/combined/test/tests/elastic_thermal_patch/elastic_thermal_patch_rz.i)
- (modules/contact/test/tests/3d-mortar-contact/frictional-mortar-3d.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg.i)
- (modules/contact/test/tests/bouncing-block-contact/frictionless-nodal-reduced-active-set.i)
- (modules/contact/test/tests/mortar_dynamics/frictional-mortar-3d-dynamics-light.i)
- (modules/solid_mechanics/test/tests/multi/special_rock1.i)
- (modules/contact/test/tests/3d-mortar-contact/frictional-mortar-3d-function.i)
- (modules/solid_mechanics/test/tests/plane_stress/3D_finite_tension_pull.i)
- (modules/contact/test/tests/bouncing-block-contact/frictional-mortar-min-lm-mortar-disp.i)
- (test/tests/functions/piecewise_linear_from_vectorpostprocessor/vector_postprocessor_function.i)
- (modules/solid_mechanics/test/tests/j2_plasticity/hard1.i)
- (modules/porous_flow/test/tests/hysteresis/hys_sat_02.i)
- (test/tests/postprocessors/element_integral_var_pps/pps_old_value.i)
- (modules/porous_flow/examples/ates/ates.i)
- (test/tests/time_integrators/crank-nicolson/cranic_adapt.i)
- (modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-wear-vel.i)
- (test/tests/multiapps/restart_multilevel/sub.i)
- (modules/solid_mechanics/test/tests/j2_plasticity/small_deform2.i)
- (modules/xfem/test/tests/init_solution_propagation/init_solution_propagation.i)
- (tutorials/darcy_thermo_mech/step07_adaptivity/problems/step7a_coarse.i)
- (modules/solid_mechanics/test/tests/lagrangian/centrosymmetric_spherical/total/jacobian/neumann.i)
- (modules/porous_flow/test/tests/hysteresis/hys_pc_02.i)
- (test/tests/time_integrators/explicit-euler/ee-1d-quadratic.i)
- (modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-pdass-tangential-lm-mortar-action.i)
- (modules/solid_mechanics/test/tests/transfer_from_displaced/child.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/linesearch.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/push_and_shear.i)
- (modules/solid_mechanics/test/tests/mean_cap_TC/small_deform2.i)
- (modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform3_inner_edge.i)
- (modules/solid_mechanics/test/tests/beam/fric_constraint/2_block_common_cross_stick.i)
- (test/tests/time_integrators/bdf2/bdf2.i)
- (test/tests/time_integrators/actually_explicit_euler_verification/ee-1d-quadratic.i)
- (modules/solid_mechanics/tutorials/basics/part_2.2.i)
- (modules/solid_mechanics/test/tests/elem_prop_read_user_object/prop_grain_read_3d.i)
- (modules/solid_mechanics/test/tests/rate_independent_cyclic_hardening/linear_kinharden_symmetric_strain_controlled.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_cosserat4.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/uni_axial2_planar.i)
- (modules/solid_mechanics/test/tests/multi/three_surface20.i)
- (test/tests/restart/restart_subapp_not_parent/two_step_solve_parent.i)
- (modules/solid_mechanics/test/tests/smeared_cracking/cracking.i)
- (modules/solid_mechanics/test/tests/lagrangian/materials/badproperties/stvenantkirchhoff.i)
- (modules/solid_mechanics/test/tests/weak_plane_shear/small_deform_harden4.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test1tt.i)
- (modules/heat_transfer/tutorials/introduction/therm_step02a.i)
- (test/tests/outputs/displacement/displaced_eq_transient_test.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence/L/small.i)
- (modules/solid_mechanics/test/tests/mean_cap_TC/small_deform1.i)
- (modules/solid_mechanics/test/tests/weak_plane_shear/small_deform2.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform_hard21.i)
- (modules/combined/test/tests/phase_field_fracture_viscoplastic/crack2d.i)
- (modules/contact/test/tests/normalized_penalty/normalized_penalty_kin.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence-auto/3D/dirichlet.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform24.i)
- (modules/contact/test/tests/ring_contact/ring_contact.i)
- (modules/solid_mechanics/test/tests/multi/eight_surface14.i)
- (modules/fluid_properties/test/tests/ideal_gas/test.i)
- (test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test3nnstt.i)
- (test/tests/utils/spline_interpolation/bicubic_spline_interpolation.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/uni_axial3_planar.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/substep.i)
- (modules/heat_transfer/test/tests/heat_conduction/3d_quadrature_gap_heat_transfer/moving.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/rot-eg1.i)
- (modules/contact/test/tests/pdass_problems/ironing_penalty_al.i)
- (modules/contact/test/tests/3d-mortar-contact/frictional-mortar-3d-penalty.i)
- (modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_plane_strain_small.i)
- (modules/xfem/test/tests/moving_interface/verification/2D_xy_homog1mat.i)
- (test/tests/postprocessors/interface_diffusive_flux/interface_diffusive_flux.i)
- (tutorials/darcy_thermo_mech/step11_action/problems/step11.i)
- (modules/contact/test/tests/cohesive_zone_model/mortar_czm.i)
- (modules/solid_mechanics/test/tests/neml2/plasticity/perfect.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al_test_nochange.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/pull_push_h.i)
- (modules/contact/test/tests/frictional/sliding_elastic_blocks_2d/sliding_elastic_blocks_2d.i)
- (modules/solid_mechanics/test/tests/finite_strain_elastic/finite_strain_fake_plastic.i)
- (modules/contact/test/tests/incremental_slip/incremental_slip.i)
- (modules/solid_mechanics/test/tests/uel/small_test_expanded.i)
- (modules/contact/test/tests/mortar_cartesian_lms/two_block_1st_order_constraint_lm_xy_friction_vcp.i)
- (test/tests/ics/from_exodus_solution/elem_part1.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform16.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_aprismatic_capyramidal.i)
- (modules/combined/test/tests/evolving_mass_density/uniform_expand_compress_test_tensors.i)
- (modules/contact/test/tests/nodal_area/nodal_area_Hex27.i)
- (test/tests/controls/time_periods/bcs/bcs_enable_disable.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform12.i)
- (modules/solid_mechanics/test/tests/lagrangian/axisymmetric_cylindrical/total/jacobian/dirichlet.i)
- (modules/navier_stokes/test/tests/finite_element/pins/channel-flow/pm_reverse_flow.i)
- (modules/heat_transfer/test/tests/verify_against_analytical/2d_steady_state.i)
- (modules/solid_mechanics/test/tests/central_difference/consistent/2D/2d_consistent_explicit.i)
- (modules/solid_mechanics/test/tests/finite_strain_jacobian/3d_bar.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test2tt.i)
- (python/peacock/tests/common/transient_with_date.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/use_substep_dt.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_by_parts_steady_stabilized_second_order.i)
- (test/tests/time_steppers/timesequence_stepper/exodustimesequence.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/action/action_L.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform21.i)
- (modules/porous_flow/test/tests/energy_conservation/heat03.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rz_test.i)
- (modules/solid_mechanics/test/tests/action/custom_output.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform2.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_computeCrackedStress_finitestrain_plastic.i)
- (modules/solid_mechanics/test/tests/neml2/viscoplasticity/radial_return.i)
- (modules/solid_mechanics/test/tests/shell/static/inclined_straintest_local_stress.i)
- (modules/solid_mechanics/test/tests/mean_cap_TC/random02.i)
- (modules/solid_mechanics/test/tests/multi/four_surface24.i)
- (modules/peridynamics/test/tests/simple_tests/2D_regularD_constH_BPD.i)
- (modules/solid_mechanics/test/tests/lagrangian/centrosymmetric_spherical/total/jacobian/dirichlet.i)
- (modules/navier_stokes/test/tests/finite_element/ins/mms/supg/supg_mms_test.i)
- (tutorials/darcy_thermo_mech/step07_adaptivity/problems/step7b_fine.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/cross_material/correctness/plastic_j2.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform9.i)
- (modules/solid_mechanics/test/tests/multi/three_surface09.i)
- (modules/solid_mechanics/test/tests/mean_cap/small_deform1.i)
- (test/tests/time_integrators/implicit-euler/ie.i)
- (modules/solid_mechanics/test/tests/weak_plane_shear/small_deform3.i)
- (modules/contact/test/tests/fieldsplit/frictionless_mortar_FS.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/uni_axial1_small_strain.i)
- (modules/combined/test/tests/elastic_patch/ad_elastic_patch_rspherical.i)
- (modules/combined/test/tests/poro_mechanics/selected_qp.i)
- (test/tests/time_integrators/rk-2/1d-linear.i)
- (modules/contact/test/tests/verification/patch_tests/mindlin/cylinder_friction_node_face.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/twinning/check_direction_twin_propagation.i)
- (modules/solid_mechanics/test/tests/multi/three_surface03.i)
- (modules/solid_mechanics/test/tests/umat/elastic_hardening/linear_strain_hardening.i)
- (test/tests/postprocessors/nodal_var_value/pps_output_test.i)
- (modules/solid_mechanics/test/tests/multi/three_surface16.i)
- (modules/combined/test/tests/cavity_pressure/negative_volume.i)
- (test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test3nstt.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/action/no_action_1D.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_representative_slip_systems.i)
- (modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_rayleigh_hht_AD.i)
- (modules/solid_mechanics/test/tests/cohesive_zone_model/ad_czm.i)
- (modules/solid_mechanics/test/tests/j2_plasticity/solid_mechanics_j2plasticity.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/cross_material/correctness/plastic_j2.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_convergence_issue_flag.i)
- (modules/contact/test/tests/bouncing-block-contact/variational-frictional-action.i)
- (modules/solid_mechanics/test/tests/mean_cap_TC/random04.i)
- (test/tests/outputs/sampled_output/over_sampling_second_file.i)
- (modules/solid_mechanics/test/tests/mean_cap/random.i)
- (modules/combined/test/tests/elastic_thermal_patch/elastic_thermal_patch_rz_smp.i)
- (modules/xfem/test/tests/high_order_elements/diffusion_2d.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform2_update_version.i)
- (modules/combined/test/tests/reference_residual/reference_residual.i)
- (test/tests/bcs/second_deriv/test_lap_bc.i)
- (test/tests/postprocessors/avg_nodal_var_value/avg_nodal_var_value_ts_begin.i)
- (modules/solid_mechanics/test/tests/multi/three_surface11.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test1q.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform5.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/random_planar.i)
- (modules/combined/test/tests/elastic_patch/elastic_patch_rspherical.i)
- (modules/combined/test/tests/combined_plasticity_temperature/ad_plasticity_temperature_dep_yield.i)
- (modules/contact/test/tests/pdass_problems/ironing_penalty.i)
- (test/tests/postprocessors/pps_interval/pps_bad_interval3.i)
- (modules/solid_mechanics/test/tests/1D_axisymmetric/axisymmetric_gps_small.i)
- (modules/combined/test/tests/j2_plasticity_vs_LSH/j2_hard1_mod_optimised.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/1D.i)
- (modules/peridynamics/test/tests/simple_tests/2D_small_strain_H1NOSPD.i)
- (modules/solid_mechanics/test/tests/drucker_prager/small_deform3_inner_tip.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/uni_axial3.i)
- (test/tests/restart/restart_add_variable/transient_with_stateful.i)
- (modules/contact/test/tests/frictional/single_point_2d/single_point_2d.i)
- (modules/solid_mechanics/test/tests/multi/two_surface03.i)
- (modules/solid_mechanics/test/tests/multi/three_surface05.i)
- (test/tests/kernels/simple_transient_diffusion/ill_conditioned_simple_diffusion.i)
- (modules/solid_mechanics/test/tests/truss/truss_3d.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl3D.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform10.i)
- (test/tests/postprocessors/nodal_extreme_value/nodal_max_value_test.i)
- (modules/solid_mechanics/test/tests/multiple_two_parameter_plasticity/dp_and_wp.i)
- (test/tests/postprocessors/nodal_var_value/nodal_aux_var_value.i)
- (modules/navier_stokes/test/tests/finite_element/ins/cg-dg-hybrid/mms/lid-driven-skewed/hybrid-skewed-vortex.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform2.i)
- (test/tests/mesh/mesh_generation/annulus.i)
- (test/tests/utils/spline_interpolation/spline_interpolation.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence/2D/dirichlet.i)
- (modules/contact/test/tests/3d-mortar-contact/frictionless-mortar-3d.i)
- (modules/porous_flow/test/tests/hysteresis/hys_pc_1.i)
- (test/tests/kernels/vector_fe/electromagnetic_coulomb_gauge.i)
- (modules/combined/test/tests/internal_volume/hex20.i)
- (modules/solid_mechanics/test/tests/multi/three_surface22.i)
- (modules/porous_flow/test/tests/energy_conservation/heat04_rz.i)
- (modules/contact/test/tests/non-singular-frictional-mortar/frictional-mortar.i)
- (modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_edge_template.i)
- (modules/porous_flow/test/tests/poro_elasticity/mandel_basicthm.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test3nns.i)
- (modules/solid_mechanics/test/tests/uel/tensile_uel_umat_moose_temperature.i)
- (modules/solid_mechanics/test/tests/j2_plasticity/small_deform1.i)
- (modules/solid_mechanics/test/tests/umat/multiple_blocks/multiple_blocks_two_materials.i)
- (modules/xfem/test/tests/moving_interface/moving_bimaterial.i)
- (modules/xfem/test/tests/high_order_elements/diffusion_3d.i)
- (test/tests/outputs/variables/show_hide.i)
- (test/tests/functions/parsed/mms_transient_coupled.i)
- (modules/solid_mechanics/test/tests/finite_strain_elastic/finite_strain_elastic_new_test.i)
- (test/tests/functions/function_file_format/function_file_format_test.i)
- (modules/navier_stokes/test/tests/finite_element/ins/rz-x-axial-coord/hand-coded-jac-pipe-flow-natural-bc.i)
- (modules/combined/test/tests/cavity_pressure/3d.i)
- (modules/solid_mechanics/test/tests/drucker_prager/small_deform2_inner_edge.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/rotation_matrix_update_euler_angle_111_orientation.i)
- (modules/contact/test/tests/sliding_block/sliding/frictional_02_penalty.i)
- (modules/solid_mechanics/test/tests/orthotropic_plasticity/orthotropic.i)
- (tutorials/tutorial03_verification/app/test/tests/step04_mms/2d_mms_temporal.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/except4.i)
- (modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform2_outer_tip.i)
- (modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_quad_template.i)
- (modules/solid_mechanics/test/tests/stress_recovery/patch/patch.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/cp_slip_rate_integ/crysp.i)
- (modules/contact/test/tests/mortar_cartesian_lms/frictionless-mortar-3d.i)
- (modules/solid_mechanics/test/tests/umat/multiple_blocks/rve_multimaterial.i)
- (modules/solid_mechanics/test/tests/elastic_patch/elastic_patch_quadratic.i)
- (modules/solid_mechanics/test/tests/uel/tensile_umat_moose_umat.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/random2.i)
- (modules/contact/test/tests/mortar_tm/2d/frictionless_first/finite_rr.i)
- (modules/solid_mechanics/test/tests/tensile/planar1.i)
- (test/tests/multiapps/restart/sub.i)
- (modules/combined/test/tests/poro_mechanics/mandel.i)
- (test/tests/auxkernels/error_function_aux/error_function_aux.i)
- (test/tests/bcs/nodal_normals/circle_tris.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_user_object.i)
- (test/tests/executioners/executioner/steady.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty.i)
- (modules/solid_mechanics/test/tests/weak_plane_shear/small_deform_harden3.i)
- (modules/contact/test/tests/catch_release/catch_release.i)
- (modules/stochastic_tools/test/tests/controls/libtorch_drl_control/libtorch_drl_control.i)
- (modules/contact/test/tests/mechanical_constraint/frictionless_kinematic.i)
- (test/tests/multiapps/restart_subapp_ic/sub.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_computeCrackedStress_smallstrain.i)
- (modules/contact/test/tests/sliding_block/sliding/frictional_02_aug.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/test.i)
- (modules/solid_mechanics/test/tests/notched_plastic_block/biaxial_planar.i)
- (modules/navier_stokes/test/tests/finite_element/ins/lid_driven/transient_fsp.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg_bussetta_simple.i)
- (modules/combined/test/tests/elastic_thermal_patch/elastic_thermal_jacobian_rz_smp.i)
- (test/tests/auxscalarkernels/aux_scalar_deps/aux_scalar_deps.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/rates/shear.i)
- (modules/combined/test/tests/ad_cavity_pressure/additional_volume.i)
- (modules/solid_mechanics/test/tests/static_deformations/layered_cosserat_02.i)
- (modules/solid_mechanics/test/tests/central_difference/consistent/3D/3d_consistent_explicit_mass_scaling.i)
- (test/tests/executioners/transient_sync_time/transient_sync_time_test.i)
- (modules/xfem/test/tests/moving_interface/moving_bimaterial_finite_strain_cut_mesh.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/rectangle_w_line.i)
- (test/tests/time_steppers/timesequence_stepper/timesequence_restart2.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/planar_hard2.i)
- (test/tests/postprocessors/nodal_var_value/screen_output_test.i)
- (test/tests/utils/spline_interpolation/bicubic_spline_interpolation_x_normal.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test2.i)
- (modules/solid_mechanics/test/tests/multi/paper3.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl2D.i)
- (modules/solid_mechanics/test/tests/truss/truss_plastic.i)
- (test/tests/executioners/time_period/time_period_test.i)
- (modules/solid_mechanics/test/tests/initial_stress/mc_tensile.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/generalized_plane_strain/pull_3D.i)
- (test/tests/mesh/mesh_generation/disc_sector.i)
- (test/tests/time_integrators/dirk/dirk-2d-heat-adap.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_aniso_hist_false.i)
- (modules/xfem/test/tests/mesh_cut_2D_fracture/edge_crack_2d_propagation.i)
- (modules/solid_mechanics/test/tests/notched_plastic_block/biaxial_abbo.i)
- (modules/peridynamics/test/tests/heat_conduction/2D_steady_state_BPD.i)
- (modules/porous_flow/test/tests/poro_elasticity/mandel.i)
- (modules/solid_mechanics/test/tests/umat/orient_umat/shear_top_umat.i)
- (modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_rayleigh_hht_ti.i)
- (modules/combined/test/tests/eigenstrain/variable_finite.i)
- (test/tests/functions/constant_function/constant_function_test.i)
- (modules/contact/test/tests/bouncing-block-contact/mixed-weighted-gap-swapped.i)
- (modules/porous_flow/test/tests/mass_conservation/mass04.i)
- (modules/contact/test/tests/mortar_cartesian_lms/two_block_1st_order_constraint_lm_xy_friction_pg.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_by_parts_traction_steady_stabilized.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence-auto/1D/dirichlet.i)
- (test/tests/outputs/console/console_final.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test4q.i)
- (modules/solid_mechanics/test/tests/cohesive_zone_model/czm_multiple_dimension_base.i)
- (test/tests/time_integrators/convergence/explicit_convergence.i)
- (modules/contact/test/tests/verification/hertz_cyl/quart_symm_q8/hertz_cyl_qsym_1deg_template1.i)
- (modules/solid_mechanics/test/tests/2D_geometries/planestrain.i)
- (modules/solid_mechanics/test/tests/umat/temperature/elastic_temperature.i)
- (modules/combined/test/tests/cavity_pressure/rz.i)
- (modules/contact/test/tests/mortar_tm/2drz/frictionless_second/finite_rr.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/twinning/coplanar_twin_hardening.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test3qnns.i)
- (modules/contact/test/tests/bouncing-block-contact/bouncing-block-ranfs.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/planar1.i)
- (test/tests/multiapps/auto_diff_auto_scaling/sub.i)
- (test/tests/multiapps/picard/function_dt_sub.i)
- (test/tests/multiapps/restart_multilevel/parent2.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/rectangle_w_strip.i)
- (modules/combined/test/tests/elastic_patch/elastic_patch_rz_nonlinear.i)
- (test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test4nnstt.i)
- (modules/contact/test/tests/ranfs-and-scaling/bouncing-block-ranfs.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform15.i)
- (modules/solid_mechanics/test/tests/multi/special_joint1.i)
- (test/tests/multiapps/picard_catch_up/sub_failing_problem.i)
- (modules/contact/test/tests/frictional/sliding_elastic_blocks_2d/sliding_elastic_blocks_2d_tp.i)
- (modules/navier_stokes/test/tests/finite_element/ins/cg-dg-hybrid/mms/lid-driven/hybrid-cg-dg-mms.i)
- (modules/porous_flow/test/tests/jacobian/linear_por.i)
- (modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform3_inner_tip.i)
- (modules/solid_mechanics/test/tests/material_limit_time_step/elas_plas/nafems_nl1_lim.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/random4.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform8_update_version.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test3ns.i)
- (modules/porous_flow/examples/groundwater/ex01.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence-auto/3D/dirichlet.i)
- (test/tests/executioners/executioner/transient.i)
- (test/tests/restart/restart_subapp_not_parent/two_step_solve_sub_restart.i)
- (modules/contact/test/tests/pdass_problems/ironing_penalty_action.i)
- (modules/solid_mechanics/test/tests/umat/analysis_steps/elastic_temperature_steps_uo_intervals.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test3qns.i)
- (modules/solid_mechanics/test/tests/multi/two_surface04.i)
- (modules/combined/test/tests/cavity_pressure/rz_abs_ref.i)
- (modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_rayleigh_hht.i)
- (test/tests/bcs/nodal_normals/cylinder_hexes.i)
- (modules/contact/test/tests/normalized_penalty/normalized_penalty.i)
- (modules/peridynamics/test/tests/failure_tests/2D_stretch_failure_BPD.i)
- (test/tests/time_steppers/iteration_adaptive/piecewise_linear.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test4qtt.i)
- (modules/solid_mechanics/test/tests/umat/elastic_shear/elastic_shear.i)
- (modules/combined/test/tests/nodal_patch_recovery/npr_with_lower_domains.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/except6.i)
- (modules/solid_mechanics/test/tests/notched_plastic_block/biaxial_smooth.i)
- (test/tests/outputs/sampled_output/over_sampling_test_file.i)
- (test/tests/time_integrators/crank-nicolson/cranic.i)
- (modules/xfem/test/tests/solid_mechanics_basic/test.i)
- (test/tests/interfacekernels/adaptivity/adaptivity.i)
- (modules/xfem/test/tests/solid_mechanics_basic/test_crack_counter.i)
- (test/tests/mortar/continuity-2d-conforming/equalgradient.i)
- (modules/xfem/test/tests/checkpoint/checkpoint.i)
- (modules/combined/test/tests/thermal_elastic/thermal_elastic.i)
- (modules/combined/test/tests/thermo_mech/youngs_modulus_function_temp.i)
- (modules/solid_mechanics/test/tests/neml2/plasticity/kinharden.i)
- (modules/solid_mechanics/test/tests/uel/test.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_no_parts_steady_stabilized.i)
- (test/tests/time_integrators/actually_explicit_euler_verification/ee-2d-linear-adapt.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform18.i)
- (modules/xfem/test/tests/pressure_bc/2d_pressure_displaced_mesh.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/small_deform6.i)
- (modules/solid_mechanics/test/tests/torque_reaction/torque_reaction.i)
- (test/tests/time_integrators/dirk/dirk-2d-heat.i)
- (modules/combined/tutorials/introduction/thermal_mechanical_contact/thermomech_cont_step02.i)
- (modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_rayleigh_newmark.i)
- (modules/porous_flow/test/tests/poro_elasticity/undrained_oedometer.i)
- (modules/level_set/test/tests/kernels/advection/advection_mms.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform22.i)
- (test/tests/time_integrators/tvdrk2/2d-quadratic.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test2qtt.i)
- (modules/solid_mechanics/test/tests/finite_strain_jacobian/bending_jacobian.i)
- (modules/contact/test/tests/sliding_block/sliding/frictionless_kinematic.i)
- (test/tests/functions/piecewise_constant/piecewise_constant.i)
- (test/tests/auxscalarkernels/constant_scalar_aux/constant_scalar_aux.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform5.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/action/action_1D.i)
- (modules/contact/test/tests/bouncing-block-contact/ping-ponging/kinematic-ping-pong.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/planar_xz.i)
- (modules/contact/test/tests/cohesive_zone_model/bilinear_mixed.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/update_euler_angle.i)
- (modules/solid_mechanics/test/tests/neml2/viscoplasticity/isokinharden.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/RZ_cone_high_reynolds.i)
- (test/tests/outputs/variables/show_single_vars.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform5.i)
- (modules/contact/test/tests/hertz_spherical/hertz_contact_hex27.i)
- (modules/thermal_hydraulics/test/tests/components/form_loss_from_external_app_1phase/phy.form_loss_1phase.parent.i)
- (modules/contact/test/tests/cohesive_zone_model/bilinear_mixed_mortar_only_czm.i)
- (test/tests/utils/2d_linear_interpolation/2d_linear_interpolation_test_internal.i)
- (tutorials/darcy_thermo_mech/step10_multiapps/problems/step10.i)
- (modules/xfem/test/tests/moving_interface/verification/2D_rz_homog1mat.i)
- (modules/contact/test/tests/multiple_contact_pairs/multiple_pairs.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/orthotropic_rotation_Cijkl.i)
- (modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_gps_finite.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform9.i)
- (framework/contrib/hit/test/output.i)
- (modules/solid_mechanics/test/tests/multiple_two_parameter_plasticity/cycled_dp_then_wp.i)
- (modules/solid_mechanics/test/tests/recompute_radial_return/isotropic_plasticity_finite_strain.i)
- (modules/combined/test/tests/evolving_mass_density/rz_tensors.i)
- (modules/peridynamics/test/tests/simple_tests/2D_finite_strain_H1NOSPD.i)
- (modules/porous_flow/test/tests/hysteresis/hys_sat_01.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/twinning/combined_twinning_slip_111tension.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform3.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test1qtt.i)
- (test/tests/time_integrators/newmark-beta/newmark_beta_inactive_steps.i)
- (modules/solid_mechanics/test/tests/recompute_radial_return/uniaxial_viscoplasticity_incrementalstrain.i)
- (test/tests/multiapps/restart_subapp_ic/parent2.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_no_parts_steady.i)
- (modules/solid_mechanics/test/tests/uel/small_test_uel_states_fields.i)
- (modules/heat_transfer/test/tests/heat_conduction_patch/heat_conduction_patch_hex20.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/sphere3D.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/orthotropic_rotation_Cijkl.i)
- (modules/solid_mechanics/test/tests/mean_cap_TC/small_deform5.i)
- (python/peacock/tests/common/transient.i)
- (modules/solid_mechanics/test/tests/smeared_cracking/cracking_rz_exponential.i)
- (test/tests/time_integrators/actually_explicit_euler_verification/ee-2d-linear.i)
- (modules/solid_mechanics/test/tests/j2_plasticity/hard2.i)
- (modules/contact/test/tests/mortar_tm/2d/frictionless_second/finite.i)
- (modules/navier_stokes/test/tests/finite_element/ins/jeffery_hamel/wedge_dirichlet.i)
- (test/tests/time_steppers/timesequence_stepper/timesequence_restart_failure.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test3qtt.i)
- (test/tests/restart/restart_steady_from_transient/steady_from_transient_restart.i)
- (modules/solid_mechanics/test/tests/shell/static/inclined_straintest.i)
- (modules/solid_mechanics/test/tests/neml2/viscoplasticity/isoharden.i)
- (modules/solid_mechanics/test/tests/lagrangian/materials/correctness/cauchy-elastic.i)
- (test/tests/restart/restart_add_variable/add_variable_restart.i)
- (modules/porous_flow/test/tests/poro_elasticity/mandel_fully_saturated.i)
- (modules/contact/test/tests/tan-pen-and-scaling/bouncing-block-tan-pen.i)
- (modules/combined/test/tests/heat_conduction_xfem/heat.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/small_deform2.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/prop_block_read.i)
- (modules/contact/examples/3d_berkovich/indenter_berkovich_friction.i)
- (modules/combined/test/tests/cavity_pressure/initial_temperature.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_radiation/gap_heat_transfer_radiation_test.i)
- (modules/porous_flow/test/tests/hysteresis/hys_pc_3.i)
- (modules/solid_mechanics/test/tests/multi/three_surface14.i)
- (modules/solid_mechanics/test/tests/weak_plane_tensile/small_deform_hard1.i)
- (modules/contact/test/tests/mortar_dynamics/block-dynamics-friction.i)
- (modules/solid_mechanics/test/tests/multi/paper1.i)
- (modules/contact/test/tests/cohesive_zone_model/bilinear_mixed_compare.i)
- (test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test4qnstt.i)
- (modules/contact/test/tests/verification/patch_tests/single_pnt_2d/single_point_2d_contact_line_search.i)
- (modules/contact/test/tests/mortar_aux_kernels/pressure-aux-friction-3d.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp.i)
- (modules/porous_flow/test/tests/flux_limited_TVD_pflow/pffltvd_2D_angle.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/planar_hard1.i)
- (modules/solid_mechanics/test/tests/multi/paper5.i)
- (test/tests/actions/add_auxkernel_action/flux_average.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/hcp_twinning/demonstration_combined_hcp_slip_twins.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/small_deform1_uo.i)
- (modules/solid_mechanics/test/tests/finite_strain_elastic/finite_strain_elastic_eigen_sol.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/random3.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/planar_hard3.i)
- (modules/contact/test/tests/mortar_cartesian_lms/frictionless-weighted-gap-lm.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/update_method_test.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/twinning/non_coplanar_twin_hardening.i)
- (modules/solid_mechanics/test/tests/drucker_prager/small_deform2_inner_tip.i)
- (test/tests/time_steppers/timesequence_stepper/timesequence_restart1.i)
- (modules/phase_field/test/tests/free_energy_material/RegularSolutionFreeEnergy.i)
- (test/tests/multiapps/auto_diff_auto_scaling/main.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform1.i)
- (modules/contact/test/tests/bouncing-block-contact/frictionless-weighted-gap-mixed-basis.i)
- (test/tests/geomsearch/patch_update_strategy/always-grid-sequence.i)
- (modules/solid_mechanics/test/tests/beam/fric_constraint/2_block_common_cross.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/except1.i)
- (test/tests/variables/fe_monomial_const/monomial-const-3d.i)
- (modules/contact/test/tests/hertz_spherical/hertz_contact_hex20.i)
- (modules/xfem/test/tests/moving_interface/verification/2D_xy_lsdep1mat.i)
- (modules/solid_mechanics/test/tests/strain_energy_density/rate_model_small.i)
- (modules/solid_mechanics/test/tests/central_difference/consistent/3D/3d_consistent_explicit.i)
- (modules/combined/test/tests/evolving_mass_density/expand_compress_test_tensors.i)
- (modules/contact/test/tests/frictional/single_point_2d/single_point_2d_predictor.i)
- (modules/solid_mechanics/test/tests/thermal_expansion/ad_constant_expansion_coeff_old.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/pull_and_shear.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_external_app_1phase/phy.T_wall_transfer_elem_3eqn.parent.i)
- (test/tests/predictors/simple/predictor_skip_test.i)
- (test/tests/outputs/debug/show_execution_userobjects.i)
- (modules/navier_stokes/test/tests/finite_element/pins/channel-flow/pm_friction.i)
- (modules/solid_mechanics/test/tests/volumetric_deform_grad/elastic_stress.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform7.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/random.i)
- (modules/solid_mechanics/test/tests/2D_geometries/2D-RZ_centerline_VLC.i)
- (modules/contact/test/tests/verification/hertz_cyl/quart_symm_q4/hertz_cyl_qsym_1deg_template1.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test1.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test4tt.i)
- (test/tests/userobjects/internal_side_user_object/internal_side_user_object.i)
- (test/tests/time_integrators/central-difference/central_difference.i)
- (modules/solid_mechanics/test/tests/neml2/plasticity/isoharden.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/cp_slip_rate_integ/crysp_substep.i)
- (modules/solid_mechanics/test/tests/multi/two_surface02.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/small_deform4.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/except2.i)
- (modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform2_inner_tip.i)
- (modules/solid_mechanics/test/tests/multi/four_surface14.i)
- (test/tests/materials/output/output_steady.i)
- (test/tests/predictors/simple/predictor_test_pre_smo.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/small_deform_hard1.i)
- (test/tests/outputs/sampled_output/over_sampling_test_gen.i)
- (modules/porous_flow/test/tests/hysteresis/hys_pc_01.i)
- (modules/combined/test/tests/elastic_patch/ad_elastic_patch_plane_strain.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/user_object_Voce_BCC.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/action/action_1D.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/many_deforms_cap.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/special/rotate.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_tight_slip.i)
- (modules/solid_mechanics/test/tests/umat/shear_order/shear_order_umat.i)
- (modules/solid_mechanics/test/tests/weak_plane_tensile/small_deform_hard_cubic.i)
- (modules/solid_mechanics/test/tests/smeared_cracking/cracking_plane_stress.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_basal_active.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform23.i)
- (modules/solid_mechanics/test/tests/postprocessors/material_tensor_average_test.i)
- (modules/solid_mechanics/test/tests/plane_stress/weak_plane_stress_finite_tension_pull.i)
- (test/tests/mortar/continuity-2d-conforming/conforming.i)
- (modules/porous_flow/test/tests/poro_elasticity/vol_expansion.i)
- (modules/contact/test/tests/bouncing-block-contact/frictional-penalty-weighted-vel.i)
- (modules/combined/test/tests/break_mesh_interface_contact/break_mesh_interface_contact.i)
- (test/tests/multiapps/picard/function_dt_parent.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/block_w_bar.i)
- (modules/contact/test/tests/3d-mortar-contact/frictional-mortar-3d-al.i)
- (modules/contact/test/tests/mortar_dynamics/block-dynamics-friction-creep.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/hcp_twinning/modified_kalidindi_for_hcp.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence/L/large.i)
- (modules/porous_flow/examples/tidal/atm_tides_open_hole.i)
- (modules/contact/test/tests/mortar_tm/2drz/frictionless_first/finite.i)
- (modules/contact/test/tests/sliding_block/sliding/frictionless_penalty.i)
- (modules/xfem/test/tests/moving_interface/verification/1D_xy_discrete2mat.i)
- (modules/solid_mechanics/test/tests/volumetric_eigenstrain/volumetric_mechanical.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence/L/large.i)
- (modules/contact/test/tests/3d-mortar-contact/frictionless-mortar-3d-test-derivative-trimming.i)
- (test/tests/kernels/ode/ode_expl_test.i)
- (test/tests/postprocessors/num_vars/num_vars.i)
- (modules/xfem/test/tests/moving_interface/moving_bimaterial_finite_strain_esm.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test3q.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction.i)
- (modules/xfem/test/tests/diffusion_xfem/diffusion.i)
- (modules/solid_mechanics/test/tests/rate_independent_cyclic_hardening/nonlin_isoharden_symmetric_strain_controlled.i)
- (modules/solid_mechanics/test/tests/uel/small_test_umat_states_fields.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_vol_dev.i)
- (modules/contact/test/tests/hertz_spherical/hertz_contact_rz_quad8.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform9_update_version.i)
- (modules/solid_mechanics/test/tests/neml2/solve_failure/moose.i)
- (modules/xfem/test/tests/moving_interface/moving_bimaterial_finite_strain_esm_using_cut_mesh.i)
- (test/tests/postprocessors/time_extreme_value/time_extreme_value.i)
- (modules/solid_mechanics/test/tests/mean_cap_TC/small_deform6.i)
- (modules/combined/test/tests/stateful_mortar_constraints/stateful_mortar_npr.i)
- (modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-vel.i)
- (modules/porous_flow/test/tests/heterogeneous_materials/vol_expansion_poroperm.i)
- (modules/solid_mechanics/test/tests/uel/reference.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rspherical.i)
- (modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform3_outer_tip.i)
- (modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-pdass-tangential-lm-mortar-disp.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_adaptivity.i)
- (modules/contact/test/tests/mortar_aux_kernels/pressure-aux-friction.i)
- (modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_plane_strain_finite.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_linear_fracture_energy.i)
- (tutorials/darcy_thermo_mech/step06_coupled_darcy_heat_conduction/problems/step6b_transient_inflow.i)
- (modules/porous_flow/examples/tidal/earth_tide_fullsat.i)
- (modules/combined/test/tests/poro_mechanics/undrained_oedometer.i)
- (modules/xfem/test/tests/mechanical_constraint/glued_penalty.i)
- (modules/solid_mechanics/test/tests/multi/three_surface04.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence/3D/dirichlet.i)
- (test/tests/restart/restart_subapp_not_parent/complete_solve_no_subapp.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform3_update_version.i)
- (modules/contact/test/tests/3d-mortar-contact/frictionless-mortar-3d-penalty.i)
- (modules/solid_mechanics/test/tests/weak_plane_shear/small_deform4.i)
- (test/tests/kernels/ode/ode_sys_impl_test.i)
- (modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_hht.i)
- (modules/solid_mechanics/test/tests/central_difference/lumped/2D/2d_nodalmass_explicit.i)
- (modules/porous_flow/test/tests/hysteresis/hys_pc_03.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/weak_plane_stress/pull_3D.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/action/no_action_L.i)
- (modules/solid_mechanics/test/tests/weak_plane_tensile/small_deform_hard2.i)
- (modules/solid_mechanics/test/tests/uel/small_test_uel_states_fields_gradient.i)
- (modules/combined/test/tests/umat/gap_heat_transfer_umat.i)
- (modules/solid_mechanics/test/tests/torque_reaction/torque_reaction_3D.i)
- (modules/porous_flow/test/tests/mass_conservation/mass13.i)
- (modules/stochastic_tools/test/tests/transfers/libtorch_nn_transfer/libtorch_drl_control_sub.i)
- (test/tests/multiapps/restart_subapp_ic/sub2.i)
- (modules/combined/test/tests/axisymmetric_2d3d_solution_function/2d.i)
- (modules/contact/test/tests/mortar_cartesian_lms/two_block_1st_order_constraint_lm_xy.i)
- (modules/contact/test/tests/kinematic-and-scaling/bouncing-block-kinematic.i)
- (test/tests/time_integrators/multiple-integrators/test.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/small_deform5.i)
- (modules/contact/test/tests/multiple_contact_pairs/multiple_pairs_mortar_friction.i)
- (modules/solid_mechanics/test/tests/rate_independent_cyclic_hardening/nonlin_kinharden_nonsymmetric_strain_controlled.i)
- (test/tests/multiapps/restart/sub2.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence/2D/dirichlet.i)
- (test/tests/outputs/debug/show_execution_auxkernels.i)
- (python/peacock/tests/input_tab/InputTree/gold/transient.i)
- (modules/solid_mechanics/test/tests/drucker_prager/small_deform2_native.i)
- (modules/contact/test/tests/glued/glued_contact_mechanical_constraint_test.i)
- (test/tests/auxkernels/time_integration/time_integration.i)
- (modules/contact/test/tests/mortar_tm/2drz/frictionless_second/finite.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/weak_plane_stress/convergence.i)
- (modules/solid_mechanics/test/tests/notched_plastic_block/cmc_smooth.i)
- (modules/combined/test/tests/cavity_pressure/additional_volume.i)
- (modules/solid_mechanics/test/tests/volumetric_deform_grad/volumetric_strain_interface.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/pull_push.i)
- (test/tests/bcs/bc_preset_nodal/bc_function_preset.i)
- (modules/solid_mechanics/test/tests/multi/rock1.i)
- (modules/solid_mechanics/test/tests/umat/analysis_steps/elastic_temperature_steps_uo_durations.i)
- (modules/stochastic_tools/test/tests/functions/drl_reward/drl_reward.i)
- (modules/solid_mechanics/test/tests/cohesive_zone_model/bilinear_mixed.i)
- (test/tests/vectorpostprocessors/least_squares_fit_history/least_squares_fit_history.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/rates/rotation.i)
- (modules/solid_mechanics/test/tests/mean_cap_TC/small_deform7.i)
- (modules/solid_mechanics/test/tests/weak_plane_shear/large_deform2.i)
- (modules/xfem/test/tests/solid_mechanics_basic/square_branch_tri_2d.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_fileread.i)
- (test/tests/geomsearch/2d_moving_penetration/restart2.i)
- (modules/solid_mechanics/test/tests/isotropicSD_plasticity/isotropicSD.i)
- (modules/solid_mechanics/test/tests/weak_plane_shear/small_deform_harden1.i)
- (modules/contact/test/tests/mortar_tm/2d/frictionless_first/small.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/uni_axial1.i)
- (test/tests/outputs/variables/nemesis_hide.i)
- (modules/solid_mechanics/test/tests/line_material_rank_two_sampler/rank_two_scalar_sampler.i)
- (modules/navier_stokes/test/tests/finite_element/ins/mms/supg/supg_adv_dominated_mms.i)
- (modules/solid_mechanics/test/tests/rate_independent_cyclic_hardening/nonlin_kinharden_symmetric_strain_controlled.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform25.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/patch_recovery.i)
- (test/tests/mortar/continuity-2d-conforming/conforming-2nd-order.i)
- (modules/contact/test/tests/mortar_dynamics/block-dynamics.i)
- (test/tests/postprocessors/element_integral_var_pps/initial_pps.i)
- (modules/contact/test/tests/adaptivity/contact_initial_adaptivity.i)
- (modules/solid_mechanics/test/tests/elastic_patch/elastic_patch.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_vi_solver.i)
- (modules/xfem/test/tests/nucleation_uo/nucleate_AllEdgeCracks.i)
- (modules/solid_mechanics/test/tests/mean_cap_TC/small_deform4.i)
- (modules/solid_mechanics/test/tests/mean_cap_TC/random03.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/karthik-eg-1.i)
- (modules/solid_mechanics/test/tests/lagrangian/axisymmetric_cylindrical/total/patch/large.i)
- (modules/solid_mechanics/test/tests/lagrangian/materials/correctness/neohookean.i)
- (modules/solid_mechanics/test/tests/isotropicSD_plasticity/powerRuleHardening.i)
- (modules/solid_mechanics/test/tests/neml2/crystal_plasticity/approx_kinematics.i)
- (modules/xfem/test/tests/moment_fitting/solid_mechanics_moment_fitting.i)
- (modules/combined/test/tests/j2_plasticity_vs_LSH/necking/j2_hard1_neckingRZ.i)
- (python/mms/test/mms_spatial.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/user_object_011orientation.i)
- (test/tests/utils/spline_interpolation/bicubic_spline_interpolation_y_normal.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test3.i)
- (tutorials/darcy_thermo_mech/step09_mechanics/problems/step9.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/action/no_action_L.i)
- (modules/solid_mechanics/test/tests/tensile/planar6.i)
- (modules/solid_mechanics/test/tests/temperature_dependent_hardening/temp_dep_hardening.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/uni_axial2.i)
- (test/tests/outputs/postprocessor/show_hide.i)
- (test/tests/postprocessors/pps_interval/pps_out_interval.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/exception.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/planar_hard4.i)
- (test/tests/postprocessors/pps_interval/pps_interval_mismatch.i)
- (modules/contact/examples/2d_indenter/indenter_rz_fine.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_inclined5.i)
- (modules/solid_mechanics/test/tests/recompute_radial_return/cp_affine_plasticity.i)
- (modules/contact/test/tests/verification/patch_tests/single_pnt_2d/single_point_2d.i)
- (modules/contact/test/tests/sliding_block/in_and_out/frictionless_kinematic.i)
- (modules/solid_mechanics/test/tests/neml2/viscoplasticity/chaboche.i)
- (modules/xfem/test/tests/moving_interface/cut_mesh_2d.i)
- (test/tests/postprocessors/element_time_derivative/element_time_derivative_test.i)
- (modules/solid_mechanics/test/tests/notched_plastic_block/cmc_planar.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/linesearch.i)
- (test/tests/variables/fe_monomial_const/monomial-const-2d.i)
- (test/tests/postprocessors/nodal_var_value/nodal_var_value.i)
- (test/tests/postprocessors/pps_interval/pps_bad_interval2.i)
- (modules/solid_mechanics/test/tests/stickyBC/push_up.i)
- (modules/contact/test/tests/bouncing-block-contact/frictionless-penalty-weighted-gap-action.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform17.i)
- (modules/solid_mechanics/examples/coal_mining/cosserat_wp_only.i)
- (modules/combined/test/tests/j2_plasticity_vs_LSH/j2_hard1_mod.i)
- (modules/solid_mechanics/test/tests/auxkernels/ranktwoscalaraux.i)
- (tutorials/darcy_thermo_mech/step08_postprocessors/problems/step8.i)
- (modules/solid_mechanics/test/tests/tensile/random_planar.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al.i)
- (modules/solid_mechanics/test/tests/smeared_cracking/cracking_rotation.i)
- (modules/contact/test/tests/simple_contact/two_block_compress/two_equal_blocks_compress_2d.i)
- (modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_BPD.i)
- (modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_newmark.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence-auto/2D/dirichlet.i)
- (modules/solid_mechanics/test/tests/mean_cap_TC/small_deform3.i)
- (modules/contact/test/tests/nodal_area/nodal_area_Hex20.i)
- (modules/contact/test/tests/3d-mortar-contact/frictionless-mortar-3d-action.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test3q.i)
- (modules/contact/test/tests/sliding_block/sliding/frictional_04_penalty.i)
- (modules/navier_stokes/test/tests/auxkernels/reynolds-number-functor-aux/fe.i)
- (test/tests/time_steppers/timesequence_stepper/timesequence_failed_solve.i)
- (modules/solid_mechanics/test/tests/drucker_prager/random_hyperbolic.i)
- (test/tests/scaling/up-to-date-scale-factors/up-to-date-scale-factors.i)
- (test/tests/userobjects/coupling_to_kernel/user_object_test.i)
- (modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_plane_strain_incremental.i)
- (modules/contact/test/tests/verification/patch_tests/automatic_patch_update/sliding_update.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform8.i)
- (modules/solid_mechanics/test/tests/multi/three_surface15.i)
- (modules/contact/test/tests/mortar_tm/2drz/frictionless_first/small.i)
- (modules/contact/test/tests/bouncing-block-contact/variational-frictional.i)
- (test/tests/time_steppers/function_dt/function_dt_no_interpolation.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/special/objective_shear.i)
- (modules/solid_mechanics/test/tests/weak_plane_shear/small_deform_harden2.i)
- (test/tests/executioners/executioner/steady_state_check_test.i)
- (modules/thermal_hydraulics/test/tests/components/hs_boundary_external_app_temperature/phy.parent.i)
- (test/tests/time_integrators/actually_explicit_euler_verification/ee-1d-linear.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform7.i)
- (modules/combined/test/tests/inelastic_strain/creep/creep_nl1.i)
- (modules/combined/test/tests/reference_residual/reference_residual_perfgraph.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/action/no_action_1D.i)
- (modules/solid_mechanics/test/tests/creep_tangent_operator/creep.i)
- (modules/contact/test/tests/mortar_tm/2d/frictionless_second/finite_rr.i)
- (modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_OSPD.i)
- (modules/combined/test/tests/inelastic_strain/elas_plas/elas_plas_nl1.i)
- (modules/heat_transfer/test/tests/heat_conduction_patch/heat_conduction_patch_rz.i)
- (test/tests/kernels/ad_mat_diffusion/2d_steady_state.i)
- (modules/solid_mechanics/test/tests/strain_energy_density/rate_incr_model_elas_plas.i)
- (test/tests/time_integrators/multi_stage_time_integrator/unconverged_1st_stage.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/fileread.i)
- (modules/solid_mechanics/test/tests/truss/truss_3d_action.i)
- (framework/contrib/hit/test/rules.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform3.i)
- (modules/peridynamics/test/tests/simple_tests/2D_regularD_variableH_BPD.i)
- (modules/porous_flow/examples/tidal/atm_tides.i)
- (modules/contact/test/tests/verification/hertz_cyl/half_symm_q8/hertz_cyl_half_1deg_template3.i)
- (modules/contact/test/tests/tension_release/4ElemTensionRelease.i)
- (test/tests/ics/from_exodus_solution/nodal_part2.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test1qtt.i)
- (tutorials/darcy_thermo_mech/step07_adaptivity/problems/step7c_adapt.i)
- (modules/solid_mechanics/test/tests/postprocessors/sideset_reaction/sideset_reaction.i)
- (modules/contact/test/tests/mortar_aux_kernels/pressure-aux-frictionless-3d.i)
- (modules/solid_mechanics/test/tests/shell/static/straintest.i)
- (modules/misc/test/tests/arrhenius_material_property/exact.i)
- (test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test3ns.i)
- (test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test3qnstt.i)
- (modules/contact/test/tests/mortar_cartesian_lms/two_block_1st_order_constraint_lm_xy_friction.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_by_parts_steady_nobcbc.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/pull_and_shear_1step.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_external_app_1phase/phy.T_wall_transfer_3eqn.parent.i)
- (test/tests/time_integrators/implicit-euler/ie_adapt.i)
- (modules/heat_transfer/test/tests/heat_conduction_patch/heat_conduction_patch_rz_quad8.i)
- (test/tests/auxkernels/flux_average/flux_average.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_cosserat3.i)
- (modules/solid_mechanics/test/tests/neml2/elasticity/elasticity.i)
- (test/tests/misc/check_error/coupled_grad_without_declare.i)
- (test/tests/restart/restart_subapp_not_parent/two_step_solve_sub.i)
- (test/tests/time_steppers/function_dt/function_dt_min.i)
- (modules/navier_stokes/test/tests/finite_element/ins/scalar_adr/supg/2d_advection_error_testing.i)
- (modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian.i)
- (modules/contact/test/tests/bouncing-block-contact/frictionless-weighted-gap.i)
- (modules/contact/examples/2d_indenter/indenter_rz_nodeface_friction.i)
- (modules/solid_mechanics/test/tests/lagrangian/centrosymmetric_spherical/total/action/action.i)
- (modules/combined/test/tests/axisymmetric_2d3d_solution_function/3dy.i)
- (modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform2_native.i)
- (modules/solid_mechanics/test/tests/jacobian_damper/cube_load.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test4nns.i)
- (modules/combined/test/tests/generalized_plane_strain_tm_contact/generalized_plane_strain_tm_contact.i)
- (modules/navier_stokes/test/tests/auxkernels/peclet-number-functor-aux/fe-thermal.i)
- (modules/xfem/test/tests/bimaterials/inclusion_bimaterials_2d.i)
- (modules/solid_mechanics/test/tests/cohesive_zone_model/czm_patch_test_base.i)
- (test/tests/actions/meta_action_multiple_tasks/circle_quads.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform6.i)
- (test/tests/variables/mixed_order_variables/mixed_order_variables_test.i)
- (test/tests/mesh/mesh_generation/annulus_sector_deprecated.i)
- (modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform3_lode_zero.i)
- (modules/combined/test/tests/elastic_thermal_patch/elastic_thermal_patch.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_by_parts_steady_stabilized.i)
- (modules/solid_mechanics/test/tests/shell/static/tapered.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/use_substep_dt.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_by_parts_steady.i)
- (modules/contact/test/tests/mortar_aux_kernels/pressure-aux-frictionless.i)
- (modules/porous_flow/test/tests/dirackernels/injection_with_plasticity.i)
- (modules/solid_mechanics/test/tests/umat/temperature/elastic_dtemperature.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/weak_plane_stress/pull_2D.i)
- (modules/solid_mechanics/test/tests/orthotropic_plasticity/powerRuleHardening.i)
- (test/tests/postprocessors/side_extreme_value/nonlinear_variable_proxy.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_no_parts_steady_stabilized_second_order.i)
- (modules/contact/test/tests/mortar_tm/2drz/frictionless_first/finite_rr.i)
- (modules/contact/test/tests/explicit_dynamics/first_test.i)
- (modules/solid_mechanics/test/tests/multi/two_surface01.i)
- (modules/heat_transfer/tutorials/introduction/therm_step02.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test3tt.i)
- (modules/solid_mechanics/test/tests/umat/elastic_hardening/elastic.i)
- (modules/solid_mechanics/test/tests/recompute_radial_return/affine_plasticity.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_iso_with_pressure.i)
- (test/tests/utils/2d_linear_interpolation/2d_linear_interpolation_test.i)
- (test/tests/outputs/displacement/displacement_transient_test.i)
- (modules/solid_mechanics/test/tests/tensile/planar5.i)
- (modules/navier_stokes/test/tests/finite_element/ins/velocity_channel/velocity_inletBC_no_parts.i)
- (modules/solid_mechanics/test/tests/weak_plane_tensile/small_deform_hard3.i)
- (modules/xfem/test/tests/moment_fitting/diffusion_moment_fitting_six_points.i)
- (modules/combined/test/tests/fdp_geometric_coupling/fdp_geometric_coupling.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence/1D/dirichlet.i)
- (modules/solid_mechanics/examples/coal_mining/cosserat_mc_wp.i)
- (modules/solid_mechanics/test/tests/1D_axisymmetric/axisymmetric_gps_finite.i)
- (modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-fretting-wear-test-projection_angle.i)
- (modules/heat_transfer/test/tests/gap_perfect_transfer/perfect_transfer_gap.i)
- (modules/combined/test/tests/inelastic_strain/elas_plas/elas_plas_nl1_cycle.i)
- (modules/solid_mechanics/test/tests/stickyBC/push_down.i)
- (modules/solid_mechanics/test/tests/nodal_patch_recovery/patch_recovery.i)
- (modules/peridynamics/test/tests/failure_tests/2D_stress_failure_H1NOSPD.i)
- (modules/solid_mechanics/test/tests/j2_plasticity/small_deform3.i)
- (modules/solid_mechanics/test/tests/neml2/plasticity/isokinharden.i)
- (modules/contact/test/tests/bouncing-block-contact/ping-ponging/mortar-no-ping-pong_weighted.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test2tt.i)
- (test/tests/multiapps/restart/parent.i)
- (modules/solid_mechanics/test/tests/smeared_cracking/cracking_function.i)
- (test/tests/auxkernels/element_var/element_var_test.i)
- (modules/xfem/test/tests/bimaterials/glued_bimaterials_2d.i)
- (modules/solid_mechanics/test/tests/neml2/viscoplasticity/perfect.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/twinning/upper_twin_fraction_limit.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_computeCrackedStress_finitestrain_elastic.i)
- (test/tests/executioners/executioner/steady-adapt.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl2D_yz.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test4.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/throw_test.i)
- (test/tests/multiapps/picard_catch_up/sub.i)
- (modules/combined/test/tests/j2_plasticity_vs_LSH/j2_hard1_mod_small_strain.i)
- (test/tests/predictors/simple/predictor_reference_residual_test.i)
- (modules/solid_mechanics/test/tests/tensile/random_update.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test3tt.i)
- (test/tests/bcs/nodal_normals/circle_quads.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/planar_yz.i)
- (tutorials/darcy_thermo_mech/step06_coupled_darcy_heat_conduction/problems/step6a_coupled.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_linesearch.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/except3.i)
- (modules/combined/test/tests/gap_heat_transfer_convex/gap_heat_transfer_convex.i)
- (modules/contact/test/tests/bouncing-block-contact/ping-ponging/ranfs-ping-pong.i)
- (modules/contact/test/tests/bouncing-block-contact/frictionless-penalty-weighted-gap.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/orthotropic_rotation_Cijkl.i)
- (test/tests/multiapps/restart_subapp_ic/parent.i)
- (modules/combined/test/tests/elastic_patch/elastic_patch_rz.i)
- (modules/porous_flow/test/tests/poro_elasticity/mandel_fully_saturated_volume.i)
- (modules/porous_flow/test/tests/poro_elasticity/vol_expansion_poroperm.i)
- (modules/solid_mechanics/test/tests/weak_plane_shear/large_deform_harden3.i)
- (modules/solid_mechanics/test/tests/umat/analysis_steps/elastic_temperature_steps_uo.i)
- (test/tests/predictors/simple/predictor_test_skip_after_failed_tstep.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_syntax.i)
- (modules/solid_mechanics/test/tests/line_material_rank_two_sampler/rank_two_sampler.i)
- (modules/contact/test/tests/mortar_dynamics/frictional-mortar-3d.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform5_update_version.i)
- (modules/solid_mechanics/test/tests/rate_independent_cyclic_hardening/linear_kinharden_nonsymmetric_strain_controlled.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/random1.i)
- (modules/porous_flow/examples/coal_mining/coarse_with_fluid.i)
- (modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian_vcp.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/special/objective_shear.i)
- (test/tests/multiapps/restart/parent2.i)
- (modules/solid_mechanics/test/tests/cohesive_zone_model/bilinear_mixed_scale_strength.i)
- (modules/contact/test/tests/simple_contact/two_block_compress/two_equal_blocks_compress_3d_pg.i)
- (test/tests/functions/parsed/scalar.i)
- (modules/solid_mechanics/test/tests/drucker_prager/small_deform2_lode_zero.i)
- (modules/solid_mechanics/test/tests/central_difference/lumped/3D/3d_lumped_explicit.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_aniso_cleavage_plane.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test3.i)
- (modules/contact/test/tests/sliding_block/in_and_out/frictional_02_penalty.i)
- (modules/solid_mechanics/test/tests/umat/multiple_blocks/multiple_blocks_two_materials_parallel.i)
- (test/tests/userobjects/layered_average/layered_average_1d_displaced.i)
- (test/tests/time_integrators/actually_explicit_euler_verification/ee-2d-quadratic.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test4qtt.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_capyramidal_active.i)
- (modules/contact/test/tests/3d-mortar-contact/frictional-mortar-3d-action.i)
- (modules/solid_mechanics/test/tests/lagrangian/axisymmetric_cylindrical/total/action/action.i)
- (test/tests/time_integrators/tvdrk2/1d-linear.i)
- (modules/xfem/test/tests/moving_interface/moving_bimaterial_finite_strain.i)
- (modules/contact/test/tests/tension_release/8ElemTensionRelease.i)
- (test/tests/outputs/debug/show_var_residual_norms_debug.i)
- (test/tests/preconditioners/pbp/pbp_adapt_test.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_inclined3.i)
- (modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform2_lode_zero.i)
- (modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/unstabilized-velocity-component-objects.i)
- (test/tests/time_steppers/iteration_adaptive/multi_piecewise_linear.i)
- (modules/solid_mechanics/test/tests/1D_axisymmetric/axisymmetric_gps_incremental.i)
- (test/tests/postprocessors/volume/sphere1D.i)
- (modules/contact/test/tests/simple_contact/two_block_compress/two_equal_blocks_compress_3d.i)
- (modules/contact/test/tests/pdass_problems/ironing.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform_hard13.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/small_deform_hard_cubic.i)
- (modules/solid_mechanics/test/tests/jacobian_damper/block_restriction.i)
- (modules/solid_mechanics/test/tests/smeared_cracking/cracking_multiple_softening.i)
- (modules/combined/examples/xfem/xfem_mechanics_prescribed_growth.i)
- (modules/heat_transfer/test/tests/truss_heat_conduction/line.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/twinning/combined_twinning_slip_error.i)
- (modules/heat_transfer/test/tests/heat_conduction_patch/heat_conduction_patch_hex20_aniso.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test4qns.i)
- (modules/contact/test/tests/nodal_area/nodal_area_Hex20_3.i)
- (modules/contact/test/tests/3d-mortar-contact/frictional-mortar-3d_pg.i)
- (modules/combined/test/tests/internal_volume/rz_displaced_quad8.i)
- (modules/porous_flow/test/tests/hysteresis/hys_sat_03.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform4.i)
- (test/tests/misc/check_error/uo_vector_pps_name_collision_test.i)
- (modules/solid_mechanics/test/tests/tensile/planar8.i)
- (test/tests/materials/stateful_internal_side_uo/internal_side_uo_stateful.i)
- (modules/combined/examples/xfem/xfem_thermomechanics_stress_growth.i)
- (modules/solid_mechanics/test/tests/multi/three_surface08.i)
- (modules/combined/test/tests/internal_volume/hex8.i)
- (modules/heat_transfer/test/tests/heat_conduction/2d_quadrature_gap_heat_transfer/moving.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform6_update_version.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/action/action_L.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_read_slip_prop.i)
- (modules/combined/tutorials/introduction/thermal_mechanical/thermomech_step01.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/exception.i)
- (modules/solid_mechanics/test/tests/2D_geometries/finite_planestrain.i)
- (modules/combined/test/tests/gap_heat_transfer_convex/gap_heat_transfer_convex_gap_offsets.i)
- (modules/solid_mechanics/test/tests/multi/three_surface10.i)
- (modules/contact/test/tests/multiple_contact_pairs/multiple_pairs_mortar.i)
- (test/tests/bcs/function_dirichlet_bc/test.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/euler_angles/euler_angle_auxvar.i)
- (modules/navier_stokes/test/tests/finite_element/ins/lid_driven/steady_fsp_diagonal_of_a_for_scaling.i)
- (test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test3qns.i)
- (modules/contact/test/tests/verification/hertz_cyl/half_symm_q4/hertz_cyl_half_1deg_template1.i)
- (modules/solid_mechanics/test/tests/umat/plane_strain/generalized_plane_strain.i)
- (test/tests/multiapps/restart_multilevel/subsub.i)
- (modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_rayleigh_newmark_action.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_no_negative_aprismatic.i)
- (test/tests/multiapps/picard_multilevel/multilevel_dt_rejection/picard_sub.i)
- (modules/solid_mechanics/test/tests/cohesive_zone_model/czm_traction_separation_base.i)
- (modules/navier_stokes/test/tests/finite_element/pins/channel-flow/pm_heat_source.i)
- (modules/contact/test/tests/tension_release/4ElemTensionRelease_mechanical_constraint.i)
- (modules/porous_flow/examples/coal_mining/fine_with_fluid.i)
- (modules/contact/test/tests/mortar_dynamics/block-dynamics-reference.i)
- (modules/solid_mechanics/test/tests/multi/two_surface05.i)
- (modules/porous_flow/test/tests/mass_conservation/mass12.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform2.i)
- (modules/solid_mechanics/test/tests/hyperelastic_viscoplastic/one_elem_multi.i)
- (modules/solid_mechanics/test/tests/auxkernels/principalstress.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/special/rotate.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_no_substructure.i)
- (modules/solid_mechanics/test/tests/poro/vol_expansion.i)
- (modules/heat_transfer/test/tests/heat_conduction_patch/heat_conduction_patch.i)
- (test/tests/postprocessors/avg_nodal_var_value/avg_nodal_var_value.i)
- (modules/contact/test/tests/sliding_block/in_and_out/frictional_04_penalty.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/euler_angles/euler_angle_conflict.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/planar_xy.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_no_split.i)
- (modules/contact/test/tests/mechanical_constraint/glued_penalty.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/planar3.i)
- (modules/contact/test/tests/mortar_dynamics/frictional-mortar-3d-dynamics-light-function.i)
- (modules/solid_mechanics/test/tests/drucker_prager/small_deform3_native.i)
- (modules/solid_mechanics/test/tests/smeared_cracking/cracking_power.i)
- (modules/xfem/test/tests/moment_fitting/diffusion_moment_fitting_four_points.i)
- (test/tests/multiapps/restart_multilevel/parent.i)
- (modules/solid_mechanics/test/tests/finite_strain_elastic_anisotropy/3d_bar_orthotropic.i)
- (test/tests/time_integrators/multiple-integrators/test_ti_split.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_it_plot_test.i)
- (modules/solid_mechanics/test/tests/stress_recovery/patch/patch_finite_stress.i)
- (modules/solid_mechanics/test/tests/multi/three_surface07.i)
- (test/tests/predictors/simple/predictor_skip_old_test.i)
- (modules/navier_stokes/test/tests/finite_element/ins/stagnation/stagnation.i)
- (modules/heat_transfer/tutorials/introduction/therm_step03a.i)
- (modules/xfem/test/tests/solid_mechanics_basic/square_branch_quad_2d.i)
- (modules/porous_flow/test/tests/actions/block_restricted.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test4tt.i)
- (modules/solid_mechanics/test/tests/finite_strain_tensor_mechanics_tests/finite_strain_patch.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_aniso.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/small_deform3.i)
- (modules/solid_mechanics/test/tests/drucker_prager/small_deform3_lode_zero.i)
- (modules/porous_flow/test/tests/energy_conservation/heat03_rz.i)
- (modules/solid_mechanics/test/tests/umat/print/print_shear_defgrad.i)
- (modules/solid_mechanics/test/tests/static_deformations/layered_cosserat_03.i)
- (test/tests/time_integrators/convergence/implicit_convergence.i)
- (modules/solid_mechanics/test/tests/mohr_coulomb/small_deform2_small_strain.i)
- (modules/xfem/test/tests/high_order_elements/square_branch_2d.i)
- (modules/solid_mechanics/test/tests/shell/static/straintest_shear.i)
- (modules/combined/test/tests/elastic_patch/ad_elastic_patch_rz.i)
- (modules/solid_mechanics/test/tests/hyperelastic_viscoplastic/one_elem.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform_hard3.i)
- (modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform_hard3.i)
- (modules/navier_stokes/test/tests/finite_element/ins/rz-x-axial-coord/hand-coded-jac-pipe-flow.i)
- (test/tests/time_integrators/explicit-euler/ee-2d-quadratic.i)
- (test/tests/time_integrators/explicit-euler/ee-2d-linear-adapt.i)
- (test/tests/ics/from_exodus_solution/elem_part2.i)
- (test/tests/ics/from_exodus_solution/nodal_part1.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test1.i)
- (modules/navier_stokes/test/tests/finite_element/ins/lid_driven/steady_fsp.i)
- (modules/solid_mechanics/test/tests/tensile/random_smoothed.i)
- (test/tests/time_integrators/bdf2/bdf2_adapt.i)
- (test/tests/functions/parsed/steady.i)
- (test/tests/geomsearch/3d_moving_penetration/pl_test1tt.i)
- (modules/solid_mechanics/test/tests/multi/three_surface01.i)
- (modules/solid_mechanics/test/tests/tensile/small_deform4.i)
- (test/tests/neml2/torchscript/heat_conduction.i)
- (modules/combined/test/tests/phase_field_fracture/crack2d_iso.i)
- (python/peacock/tests/common/transient_big.i)
- (test/tests/bcs/nodal_normals/cylinder_hexes_1st_2nd.i)
- (modules/peridynamics/test/tests/simple_tests/2D_regularD_variableH_OSPD.i)
- (modules/solid_mechanics/test/tests/stress_recovery/stress_concentration/stress_concentration.i)
- (modules/solid_mechanics/test/tests/multiple_two_parameter_plasticity/dp_then_wp.i)
- (modules/contact/test/tests/mortar_dynamics/block-dynamics-friction-action.i)
- (modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_gps_incremental.i)
- (modules/fsi/test/tests/fsi_acoustics/3D_struc_acoustic/3D_struc_acoustic.i)
- (modules/contact/test/tests/simple_contact/simple_contact_rspherical.i)
- (modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/cp_slip_rate_integ/crysp_linesearch.i)
- (modules/solid_mechanics/test/tests/multi/three_surface06.i)
- (modules/xfem/test/tests/moving_interface/cut_mesh_3d.i)
- (modules/solid_mechanics/test/tests/finite_strain_elastic/elastic_rotation_test.i)
- (tutorials/darcy_thermo_mech/step07_adaptivity/problems/step7d_adapt_blocks.i)
- (modules/contact/test/tests/mortar_aux_kernels/frictional-mortar-3d-status.i)
- (modules/solid_mechanics/test/tests/umat/analysis_steps/elastic_temperature_steps.i)
- (modules/solid_mechanics/test/tests/capped_weak_plane/small_deform8.i)
- (modules/solid_mechanics/test/tests/recompute_radial_return/isotropic_plasticity_errors.i)
- (test/tests/geomsearch/2d_moving_penetration/pl_test4ns.i)
- (modules/contact/test/tests/hertz_spherical/hertz_contact_rz.i)
- (modules/solid_mechanics/test/tests/neml2/viscoplasticity/kinharden.i)
- (modules/contact/test/tests/simple_contact/two_block_compress/two_equal_blocks_compress_2d_pg.i)
- (modules/combined/test/tests/cavity_pressure/multiple_postprocessors.i)
- (modules/solid_mechanics/test/tests/central_difference/lumped/3D/3d_nodalmass_explicit.i)
Child Objects
(test/tests/bcs/function_dirichlet_bc/test.i)
###########################################################
# This is a test of Boundary Condition System. The
# FunctionDirichletBC is used to contribute the residuals
# to the boundary term operators in the weak form.
#
# @Requirement F3.40
###########################################################
[Mesh]
[./square]
type = GeneratedMeshGenerator
dim = 2
nx = 32
ny = 32
[../]
[]
[Variables]
[./u]
[../]
[]
[Functions]
[./ff_1]
type = ParsedFunction
expression = alpha*alpha*pi
symbol_names = 'alpha'
symbol_values = '16'
[../]
[./ff_2]
type = ParsedFunction
expression = pi*sin(alpha*pi*x)
symbol_names = 'alpha'
symbol_values = '16'
[../]
[./forcing_func]
type = CompositeFunction
functions = 'ff_1 ff_2'
[../]
[./bc_func]
type = ParsedFunction
expression = sin(alpha*pi*x)
symbol_names = 'alpha'
symbol_values = '16'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./forcing]
type = BodyForce
variable = u
function = forcing_func
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right'
function = bc_func
[../]
[]
[Executioner]
type = Steady
nl_rel_tol = 1e-12
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/nonzero-malloc/test.i)
[GlobalParams]
gravity = '0 0 0'
pspg = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
nx = 5
ny = 5
[]
[./corner_node]
type = ExtraNodesetGenerator
new_boundary = 'pinned_node'
nodes = '0'
input = gen
[../]
[]
[Variables]
[./vel_x]
[../]
[./vel_y]
[../]
[./T]
[./InitialCondition]
type = ConstantIC
value = 1.0
[../]
[../]
[./p]
[../]
[]
[Kernels]
# mass
[./mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
# x-momentum, time
[./x_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_x
[../]
# x-momentum, space
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
# y-momentum, time
[./y_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_y
[../]
# y-momentum, space
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
# temperature
[./temperature_time]
type = INSTemperatureTimeDerivative
variable = T
[../]
[./temperature_space]
type = INSTemperature
variable = T
u = vel_x
v = vel_y
[../]
[malloc]
type = MallocKernel
# Variable choice doesn't matter
variable = vel_x
[]
[]
[BCs]
[./x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'bottom right left'
value = 0.0
[../]
[./lid]
type = FunctionDirichletBC
variable = vel_x
boundary = 'top'
function = 'lid_function'
[../]
[./y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'bottom right top left'
value = 0.0
[../]
[./T_hot]
type = DirichletBC
variable = T
boundary = 'bottom'
value = 1
[../]
[./T_cold]
type = DirichletBC
variable = T
boundary = 'top'
value = 0
[../]
[./pressure_pin]
type = DirichletBC
variable = p
boundary = 'pinned_node'
value = 0
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu cp k'
prop_values = '1 1 1 .01'
[../]
[]
[Functions]
[./lid_function]
# We pick a function that is exactly represented in the velocity
# space so that the Dirichlet conditions are the same regardless
# of the mesh spacing.
type = ParsedFunction
expression = '4*x*(1-x)'
[../]
[]
[Executioner]
type = Transient
num_steps = 5
dt = .5
dtmin = .5
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'asm 2 ilu 4'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-13
nl_max_its = 6
l_tol = 1e-6
l_max_its = 500
[]
[Outputs]
file_base = lid_driven_out
perf_graph = true
[]
(modules/contact/test/tests/mechanical_constraint/glued_kinematic.i)
[Mesh]
file = blocks_2d_nogap.e
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[../]
[]
[AuxKernels]
[./zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./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
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = 4
#Initial gap is 0.01
value = -0.01
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e7
poissons_ratio = 0.3
[../]
[./right]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.01
end_time = 0.10
num_steps = 1000
l_tol = 1e-6
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dtmin = 0.01
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
primary = 2
secondary = 3
model = glued
penalty = 1e+6
[../]
[]
(test/tests/preconditioners/smp/smp_single_adapt_test.i)
#
# This is not very strong test since the problem being solved is linear, so the difference between
# full Jacobian and block diagonal preconditioner is not that big
#
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 5
ny = 5
elem_type = QUAD4
[]
[Functions]
[./exact_v]
type = ParsedFunction
expression = sin(pi*x)*sin(pi*y)
[../]
[./force_fn_v]
type = ParsedFunction
expression = 2*pi*pi*sin(pi*x)*sin(pi*y)
[../]
[]
[Variables]
active = 'u v'
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'u'
off_diag_column = 'v'
[../]
[]
[Kernels]
[./diff_u]
type = Diffusion
variable = u
[../]
[./conv_u]
type = CoupledForce
variable = u
v = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[./ffn_v]
type = BodyForce
variable = v
function = force_fn_v
[../]
[]
[BCs]
[./left_u]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[./right_u]
type = DirichletBC
variable = u
boundary = 3
value = 1
[../]
[./all_v]
type = FunctionDirichletBC
variable = v
boundary = '0 1 2 3'
function = exact_v
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[./Adaptivity]
steps = 3
coarsen_fraction = 0.1
refine_fraction = 0.2
max_h_level = 5
[../]
[]
[Outputs]
exodus = true
print_mesh_changed_info = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/patch_recovery.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
displacements = 'ux uy'
[]
[Variables]
[ux]
[]
[uy]
[]
[]
[AuxVariables]
[stress_xx_recovered]
order = FIRST
family = LAGRANGE
[]
[stress_yy_recovered]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
[tdisp]
type = ParsedFunction
expression = 0.01*t
[]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy'
use_displaced_mesh = true
[]
[]
[AuxKernels]
[stress_xx_recovered]
type = NodalPatchRecoveryAux
variable = stress_xx_recovered
nodal_patch_recovery_uo = stress_xx_patch
execute_on = 'TIMESTEP_END'
[]
[stress_yy_recovered]
type = NodalPatchRecoveryAux
variable = stress_yy_recovered
nodal_patch_recovery_uo = stress_yy_patch
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = uy
boundary = top
function = tdisp
[]
[]
[UserObjects]
[slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[]
[slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[]
[state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[]
[state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[]
[stress_xx_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '0 0'
execute_on = 'TIMESTEP_END'
[]
[stress_yy_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '1 1'
execute_on = 'TIMESTEP_END'
[]
[]
[Materials]
[crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[]
[strain]
type = ComputeFiniteStrain
displacements = 'ux uy'
[]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/tensile/planar4.i)
# A single unit element is stretched by 1E-6m in z direction.
# with Lame lambda = 0.6E6 and Lame mu (shear) = 1E6
# stress_zz = 2.6 Pa
# stress_xx = 0.6 Pa
# stress_yy = 0.6 Pa
# tensile_strength is set to 0.5Pa
#
# The return should be to a plane (but the algorithm
# will try tip-return first), with
# stress_zz = 0.5
# plastic multiplier = 2.1/2.6 E-6
# stress_xx = 0.6 - (2.1/2.6*0.6) = 0.115
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.0E-6*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./hard]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tens]
type = SolidMechanicsPlasticTensileMulti
tensile_strength = hard
shift = 1E-6
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.6E6 1E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = tens
debug_fspb = none
debug_jac_at_stress = '1 2 3 2 -4 -5 3 -5 10'
debug_jac_at_pm = '0.1 0.2 0.3'
debug_jac_at_intnl = 1E-6
debug_stress_change = 1E-6
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = planar4
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_substep.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
gen_random_stress_flag = false
maximum_substep_iteration = 2
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.5
dtmax = 10.0
dtmin = 0.5
num_steps = 3
[]
[Outputs]
file_base = crysp_substep_out
exodus = true
csv = true
gnuplot = true
[]
(test/tests/bcs/periodic/auto_dir_repeated_id.i)
[Mesh]
type = FileMesh
file = auto_dir_repeated_id.e
dim = 3
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./dot]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./z_all]
type = FunctionDirichletBC
variable = u
preset = false
boundary = 'z_all'
function = 'z'
[../]
[./Periodic]
[./all]
variable = u
auto_direction = 'x y'
[../]
[../]
[]
[Executioner]
type = Transient
dt = .1
num_steps = 1
solve_type = NEWTON
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/solid_mechanics/test/tests/smeared_cracking/cracking_xyz.i)
#
[Mesh]
file = cracking_test.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./displx]
type = PiecewiseLinear
x = '0 1'
y = '0 0.00175'
[../]
[./velocity_y]
type = ParsedFunction
expression = 'if(t < 2, 0.00175, 0)'
[../]
[./velocity_z]
type = ParsedFunction
expression = 0.00175
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./move_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = displx
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[./move_y]
type = PresetVelocity
variable = disp_y
boundary = 5
function = velocity_y
# time_periods = 'p2 p3'
[../]
[./fix_z]
type = DirichletBC
variable = disp_z
boundary = 3
value = 0.0
[../]
[./move_z]
type = PresetVelocity
variable = disp_z
boundary = 6
function = velocity_z
# time_periods = 'p3'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 186.5e9
poissons_ratio = .316
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
cracking_stress = 119.3e6
cracked_elasticity_type = FULL
softening_models = exponential_softening
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type'
petsc_options_value = '101 lu'
line_search = 'none'
l_max_its = 100
l_tol = 1e-5
nl_max_its = 100
nl_abs_tol = 1e-6
#nl_rel_tol = 1e-4
nl_rel_tol = 1e-8
start_time = 0.0
end_time = 3.0
dt = 0.01
[]
[Controls]
[./p1]
type = TimePeriod
start_time = 0.0
end_time = 1.0
disable_objects = 'BCs/move_y BCs/move_z'
reverse_on_false = false
execute_on = 'initial timestep_begin'
[../]
[./p2]
type = TimePeriod
start_time = 1.0
end_time = 2.0
disable_objects = 'BCs/move_z'
enable_objects = 'BCs/move_y'
reverse_on_false = false
execute_on = 'initial timestep_begin'
[../]
[./p3]
type = TimePeriod
start_time = 2.0
end_time = 3.0
enable_objects = 'BCs/move_y BCs/move_z'
reverse_on_false = false
execute_on = 'initial timestep_begin'
set_sync_times = true
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface13.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 3
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 2.0E-6m in y direction and 0E-6 in z direction.
# trial stress_yy = 2 and stress_zz = 0
#
# Then SimpleTester1 should activate and the algorithm will return to
# stress_yy=1
# internal1 should be 1
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2.0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 3
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface13
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/mean_cap/small_deform2.i)
# apply compression in x, y and z directions such that strain = diag(-1E-6, -2E-6, 3E-6).
# With lame_lambda=0 and lame_mu=1E7, this gives
# trial_Stress = diag(-20, -40, -60), so trial_mean_Stress = -40.
# with a = -1 and strength = 30, the algorithm should return to
# stress = diag(-10, -30, -50)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-2E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-3E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[]
[UserObjects]
[./strength]
type = SolidMechanicsHardeningConstant
value = 30
[../]
[./cap]
type = SolidMechanicsPlasticMeanCap
a = -1
strength = strength
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mean_cap]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = cap
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1
debug_stress_change = 1E-5
debug_pm_change = 1E-6
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence/3D/dirichlet.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 4
ny = 4
nz = 4
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[Functions]
[pullx]
type = ParsedFunction
expression = '0.4 * t'
[]
[pully]
type = ParsedFunction
expression = '-0.2 * t'
[]
[pullz]
type = ParsedFunction
expression = '0.3 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[lefty]
type = DirichletBC
preset = true
boundary = left
variable = disp_y
value = 0.0
[]
[leftz]
type = DirichletBC
preset = true
boundary = left
variable = disp_z
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = pullx
preset = true
[]
[pull_y]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pully
preset = true
[]
[pull_z]
type = FunctionDirichletBC
boundary = right
variable = disp_z
function = pullz
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 0.2
dtmin = 0.2
end_time = 1.0
[]
[Postprocessors]
[nonlin]
type = NumNonlinearIterations
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/contact/test/tests/bouncing-block-contact/grid-sequencing/grid-sequencing.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarsest mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
[]
[Mesh]
[File]
type = FileMeshGenerator
file = level0.e
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[]
[Contact]
[contact]
secondary = 10
primary = 20
formulation = mortar
model = coulomb
friction_coefficient = 0.4
c_normal = 1e+02
c_tangential = 1.0e2
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 200
num_steps = 3
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-6'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
nl_abs_tol = 5e-10
num_grids = 5
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
[exo]
type = Exodus
sync_times = '15'
sync_only = true
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = contact_normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg_tight.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = cond_number.e
[]
allow_renumbering = false
[]
[Problem]
type = AugmentedLagrangianContactFEProblem
extra_tag_vectors = 'ref'
maximum_lagrangian_update_iterations = 1000
[]
[AuxVariables]
[penalty_normal_pressure]
[]
[penalty_frictional_pressure]
[]
[accumulated_slip_one]
[]
[tangential_vel_one]
[]
[normal_gap]
[]
[normal_lm]
[]
[saved_x]
[]
[saved_y]
[]
[active]
[]
[pid]
[]
[]
[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'
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
block = '1 2 3 4 5 6 7'
generate_output = 'stress_xx stress_yy stress_xy'
[]
[AuxKernels]
[pid]
type = ProcessorIDAux
variable = pid
[]
[penalty_normal_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = normal_pressure
boundary = 3
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_pressure_one
boundary = 3
[]
[penalty_tangential_vel_one]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_velocity_one
boundary = 3
[]
[penalty_accumulated_slip_one]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = penalty_friction_object_al_friction
contact_quantity = accumulated_slip_one
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = penalty_friction_object_al_friction
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
variable = normal_gap
user_object = penalty_friction_object_al_friction
contact_quantity = normal_gap
boundary = 3
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_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
[]
[active_set_size]
type = NodalSum
variable = active
[]
[]
[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 = 1e8
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 = 'NEWTON'
petsc_options = '-ksp_snes_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = ' 201 hypre boomeramg 8'
line_search = 'none'
nl_abs_tol = 1e-12
nl_rel_tol = 1e-10
nl_max_its = 150
l_tol = 1e-05
l_abs_tol = 1e-13
start_time = 0.0
end_time = 0.1 # 1.0
dt = 0.1
dtmin = 0.1
[Predictor]
type = SimplePredictor
scale = 1.0
[]
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
[]
[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
[vectorpp_output]
type = CSV
create_final_symlink = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
[]
[Contact]
[al_friction]
formulation = mortar_penalty
model = coulomb
primary = '2'
secondary = '3'
penalty = 1e7
penalty_friction = 1e+7
friction_coefficient = 0.4
al_penetration_tolerance = 1e-7
al_incremental_slip_tolerance = 1e-7
adaptivity_penalty_normal = BUSSETTA
adaptivity_penalty_friction = FRICTION_LIMIT
penalty_multiplier = 5
penalty_multiplier_friction = 5
[]
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test2qtt.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test2qtt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.1
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.1
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.06
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test2qtt_out
exodus = true
[]
(modules/solid_mechanics/test/tests/hyperelastic_viscoplastic/one_elem_linear_harden.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./peeq]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./peeq]
type = MaterialRealAux
variable = peeq
property = ep_eqv
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = '0.01*t'
[../]
[]
[UserObjects]
[./flowstress]
type = HEVPLinearHardening
yield_stress = 100
slope = 10
intvar_prop_name = ep_eqv
[../]
[./flowrate]
type = HEVPFlowRatePowerLawJ2
reference_flow_rate = 0.0001
flow_rate_exponent = 50.0
flow_rate_tol = 1
strength_prop_name = flowstress
[../]
[./ep_eqv]
type = HEVPEqvPlasticStrain
intvar_rate_prop_name = ep_eqv_rate
[../]
[./ep_eqv_rate]
type = HEVPEqvPlasticStrainRate
flow_rate_prop_name = flowrate
[../]
[]
[Materials]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[./viscop]
type = FiniteStrainHyperElasticViscoPlastic
block = 0
resid_abs_tol = 1e-18
resid_rel_tol = 1e-8
maxiters = 50
max_substep_iteration = 5
flow_rate_user_objects = 'flowrate'
strength_user_objects = 'flowstress'
internal_var_user_objects = 'ep_eqv'
internal_var_rate_user_objects = 'ep_eqv_rate'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
C_ijkl = '2.8e5 1.2e5 1.2e5 2.8e5 1.2e5 2.8e5 0.8e5 0.8e5 0.8e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./peeq]
type = ElementAverageValue
variable = peeq
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.02
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
dtmax = 10.0
nl_rel_tol = 1e-10
dtmin = 0.02
num_steps = 10
[]
[Outputs]
file_base = one_elem_linear_harden
exodus = true
csv = false
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test4qnns.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test4q.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_method = nodal_normal_based
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1.e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test4qnns_out
exodus = true
[]
[NodalNormals]
boundary = 11
corner_boundary = 20
[]
(modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_gps_small.i)
# this test checks the asixymmetric 1D generalized plane strain formulation using incremental small strains
[GlobalParams]
displacements = disp_x
scalar_out_of_plane_strain = scalar_strain_yy
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = line.e
[]
[Variables]
[./disp_x]
[../]
[./scalar_strain_yy]
order = FIRST
family = SCALAR
[../]
[]
[AuxVariables]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./temp]
initial_condition = 580.0
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '580 580 680'
[../]
[./disp_x]
type = PiecewiseLinear
x = '0 1'
y = '0 2e-6'
[../]
[]
[Kernels]
[SolidMechanics]
[../]
[]
[Physics]
[SolidMechanics]
[./GeneralizedPlaneStrain]
[./gps]
[../]
[../]
[../]
[]
[AuxKernels]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./temp]
type = FunctionAux
variable = temp
function = temp
execute_on = 'timestep_begin'
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
boundary = 1
value = 0
variable = disp_x
[../]
[./disp_x]
type = FunctionDirichletBC
boundary = 2
function = disp_x
variable = disp_x
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 3600
poissons_ratio = 0.2
[../]
[./strain]
type = ComputeAxisymmetric1DSmallStrain
eigenstrain_names = eigenstrain
scalar_out_of_plane_strain = scalar_strain_yy
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-8
temperature = temp
stress_free_temperature = 580
eigenstrain_name = eigenstrain
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_max_its = 50
l_tol = 1e-6
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0
end_time = 2
num_steps = 2
[]
[Outputs]
exodus = true
console = true
[]
(modules/solid_mechanics/test/tests/smeared_cracking/cracking_rz.i)
#
[Mesh]
file = cracking_rz_test.e
[]
[Problem]
coord_type = RZ
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Functions]
[./displ]
type = PiecewiseLinear
x = '0 1 2 3 4'
y = '0 1 0 -1 0'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[../]
[]
[BCs]
[./pull]
type = FunctionDirichletBC
variable = disp_x
boundary = 2
function = displ
[../]
[./left]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 4.0e7
poissons_ratio = 0.0
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
cracking_stress = 1.68e6
cracked_elasticity_type = FULL
softening_models = abrupt_softening
[../]
[./abrupt_softening]
type = AbruptSoftening
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101 '
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-2
l_tol = 1e-5
start_time = 0.0
end_time = 0.1
dt = 0.025
[]
[Outputs]
exodus = true
[]
(modules/xfem/test/tests/solid_mechanics_basic/crack_propagation_2d.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
use_crack_growth_increment = true
crack_growth_increment = 0.2
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 11
ny = 11
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '1.0 0.5 0.7 0.5'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[./xfem_marker_uo]
type = XFEMRankTwoTensorMarkerUserObject
execute_on = timestep_end
tensor = stress
scalar_type = MaxPrincipal
threshold = 5e+1
average = true
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
planar_formulation = plane_strain
add_variables = true
[../]
[]
[Functions]
[./pull]
type = PiecewiseLinear
x='0 50 100'
y='0 0.02 0.1'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[../]
[./bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[../]
[./topx]
type = DirichletBC
boundary = top
variable = disp_x
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pull
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 0
[../]
[./_elastic_strain]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-9
# time control
start_time = 0.0
dt = 1.0
end_time = 2.0
num_steps = 5000
max_xfem_update = 1
[]
[Outputs]
file_base = crack_propagation_2d_out
exodus = true
execute_on = timestep_end
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/poro/vol_expansion_action.i)
# This is identical to vol_expansion.i, but uses the PoroMechanics action
#
# Apply an increasing porepressure, with zero mechanical forces,
# and observe the corresponding volumetric expansion
#
# P = t
# With the Biot coefficient being 2.0, the effective stresses should be
# stress_xx = stress_yy = stress_zz = 2t
# With bulk modulus = 1 then should have
# vol_strain = strain_xx + strain_yy + strain_zz = 2t.
# I use a single element lying 0<=x<=1, 0<=y<=1 and 0<=z<=1, and
# fix the left, bottom and back boundaries appropriately,
# so at the point x=y=z=1, the displacements should be
# disp_x = disp_y = disp_z = 2t/3 (small strain physics is used)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 1
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
block = 0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./p]
[../]
[]
[BCs]
[./p]
type = FunctionDirichletBC
boundary = 'bottom top'
variable = p
function = t
[../]
[./xmin]
type = DirichletBC
boundary = left
variable = disp_x
value = 0
[../]
[./ymin]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0
[../]
[./zmin]
type = DirichletBC
boundary = back
variable = disp_z
value = 0
[../]
[]
[Kernels]
[./PoroMechanics]
porepressure = p
displacements = 'disp_x disp_y disp_z'
[../]
[./unimportant_p]
type = Diffusion
variable = p
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[]
[Postprocessors]
[./corner_x]
type = PointValue
point = '1 1 1'
variable = disp_x
[../]
[./corner_y]
type = PointValue
point = '1 1 1'
variable = disp_y
[../]
[./corner_z]
type = PointValue
point = '1 1 1'
variable = disp_z
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
# bulk modulus = 1, poisson ratio = 0.2
C_ijkl = '0.5 0.75'
fill_method = symmetric_isotropic
[../]
[./strain]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./biot]
type = GenericConstantMaterial
prop_names = biot_coefficient
prop_values = 2.0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol'
petsc_options_value = 'gmres bjacobi 1E-10 1E-10 10 1E-15 1E-10'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
dt = 0.1
end_time = 1
[]
[Outputs]
file_base = vol_expansion_action
exodus = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/jeffery_hamel/wedge_natural.i)
# This input file solves the Jeffery-Hamel problem with the exact
# solution's outlet BC replaced by a natural BC. This problem does
# not converge to the analytical solution, although the flow at the
# outlet still "looks" reasonable.
[GlobalParams]
gravity = '0 0 0'
# Params used by the WedgeFunction for computing the exact solution.
# The value of K is only required for comparing the pressure to the
# exact solution, and is computed by the associated jeffery_hamel.py
# script.
alpha_degrees = 15
Re = 30
K = -9.78221333616
f = f_theta
[]
[Mesh]
file = wedge_8x12.e
[]
[Variables]
[./vel_x]
order = SECOND
family = LAGRANGE
[../]
[./vel_y]
order = SECOND
family = LAGRANGE
[../]
[./p]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_x
[../]
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_y
[../]
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[BCs]
[./vel_x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'top_wall bottom_wall'
value = 0.0
[../]
[./vel_y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'top_wall bottom_wall'
value = 0.0
[../]
[./vel_x_inlet]
type = FunctionDirichletBC
variable = vel_x
boundary = 'inlet'
function = 'vel_x_exact'
[../]
[./vel_y_inlet]
type = FunctionDirichletBC
variable = vel_y
boundary = 'inlet'
function = 'vel_y_exact'
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 1
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Preconditioning]
[./SMP_NEWTON]
type = SMP
full = true
solve_type = NEWTON
[../]
[]
[Executioner]
type = Transient
dt = 1.e-2
dtmin = 1.e-2
num_steps = 5
petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = '300 bjacobi ilu 4'
line_search = none
nl_rel_tol = 1e-13
nl_abs_tol = 1e-11
nl_max_its = 10
l_tol = 1e-6
l_max_its = 300
[]
[Outputs]
exodus = true
[]
[Functions]
[./f_theta]
# Non-dimensional solution values f(eta), 0 <= eta <= 1 for
# alpha=15deg, Re=30. Note: this introduces an input file
# ordering dependency: this Function must appear *before* the two
# function below which use it since apparently proper dependency
# resolution is not done in this scenario.
type = PiecewiseLinear
data_file = 'f.csv'
format = 'columns'
[../]
[./vel_x_exact]
type = WedgeFunction
var_num = 0
mu = 1
rho = 1
[../]
[./vel_y_exact]
type = WedgeFunction
var_num = 1
mu = 1
rho = 1
[../]
[]
(modules/solid_mechanics/test/tests/multi/three_surface12.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 3
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 1.5E-6m in y direction and 1.5E-6 in z direction.
# trial stress_yy = .15 and stress_zz = 1.5
#
# Then SimpleTester0 and SimpleTester1 should activate and the algorithm will return to
# stress_zz=1=stress_yy
# internal0 should be 0.5 and internal1 should be 0.5
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1.5E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.5E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 3
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface12
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_aprismatic_active.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[center_node]
type = BoundingBoxNodeSetGenerator
input = cube
new_boundary = 'center_point'
top_right = '0.51 0.51 0'
bottom_left = '0.49 0.49 0'
[]
[back_edge_y]
type = BoundingBoxNodeSetGenerator
input = center_node
new_boundary = 'back_edge_y'
bottom_left = '0.9 0.5 0'
top_right = '1.1 0.5 0'
[]
[back_edge_x]
type = BoundingBoxNodeSetGenerator
input = back_edge_y
new_boundary = back_edge_x
bottom_left = '0.5 0.9 0'
top_right = '0.5 1.0 0'
[]
[]
[AuxVariables]
[temperature]
initial_condition = 300
[]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_0]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_1]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_2]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_12]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_13]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_0]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_1]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_2]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_12]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_13]
order = CONSTANT
family = MONOMIAL
[]
[substructure_density]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_0]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_1]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_2]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_12]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_13]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental = true
add_variables = true
[]
[AuxKernels]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[tau_0]
type = MaterialStdVectorAux
variable = resolved_shear_stress_0
property = applied_shear_stress
index = 0
execute_on = timestep_end
[]
[tau_1]
type = MaterialStdVectorAux
variable = resolved_shear_stress_1
property = applied_shear_stress
index = 1
execute_on = timestep_end
[]
[tau_2]
type = MaterialStdVectorAux
variable = resolved_shear_stress_2
property = applied_shear_stress
index = 2
execute_on = timestep_end
[]
[tau_12]
type = MaterialStdVectorAux
variable = resolved_shear_stress_12
property = applied_shear_stress
index = 12
execute_on = timestep_end
[]
[tau_13]
type = MaterialStdVectorAux
variable = resolved_shear_stress_13
property = applied_shear_stress
index = 13
execute_on = timestep_end
[]
[forest_dislocations_0]
type = MaterialStdVectorAux
variable = forest_dislocations_0
property = forest_dislocation_density
index = 0
execute_on = timestep_end
[]
[forest_dislocations_1]
type = MaterialStdVectorAux
variable = forest_dislocations_1
property = forest_dislocation_density
index = 1
execute_on = timestep_end
[]
[forest_dislocations_2]
type = MaterialStdVectorAux
variable = forest_dislocations_2
property = forest_dislocation_density
index = 2
execute_on = timestep_end
[]
[forest_dislocations_12]
type = MaterialStdVectorAux
variable = forest_dislocations_12
property = forest_dislocation_density
index = 12
execute_on = timestep_end
[]
[forest_dislocations_13]
type = MaterialStdVectorAux
variable = forest_dislocations_13
property = forest_dislocation_density
index = 13
execute_on = timestep_end
[]
[substructure_density]
type = MaterialRealAux
variable = substructure_density
property = total_substructure_density
execute_on = timestep_end
[]
[slip_resistance_0]
type = MaterialStdVectorAux
variable = slip_resistance_0
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[slip_resistance_1]
type = MaterialStdVectorAux
variable = slip_resistance_1
property = slip_resistance
index = 1
execute_on = timestep_end
[]
[slip_resistance_2]
type = MaterialStdVectorAux
variable = slip_resistance_2
property = slip_resistance
index = 2
execute_on = timestep_end
[]
[slip_resistance_12]
type = MaterialStdVectorAux
variable = slip_resistance_12
property = slip_resistance
index = 12
execute_on = timestep_end
[]
[slip_resistance_13]
type = MaterialStdVectorAux
variable = slip_resistance_13
property = slip_resistance
index = 13
execute_on = timestep_end
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'center_point back_edge_y'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'center_point back_edge_x'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.001*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.622e5 9.18e4 6.88e4 1.622e5 6.88e4 1.805e5 4.67e4 4.67e4 4.67e4' #alpha Ti, Alankar et al. Acta Materialia 59 (2011) 7003-7009
fill_method = symmetric9
euler_angle_1 = 164.5
euler_angle_2 = 90.0
euler_angle_3 = 15.3
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityHCPDislocationSlipBeyerleinUpdate
number_slip_systems = 15
slip_sys_file_name = hcp_aprismatic_capyramidal_slip_sys.txt
unit_cell_dimension = '2.934e-7 2.934e-7 4.657e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
temperature = temperature
initial_forest_dislocation_density = 15.0e5
initial_substructure_density = 1.0e3
slip_system_modes = 2
number_slip_systems_per_mode = '3 12'
lattice_friction_per_mode = '0.5 5'
effective_shear_modulus_per_mode = '4.7e4 4.7e4' #Ti, in MPa, https://materialsproject.org/materials/mp-46/
burgers_vector_per_mode = '2.934e-7 6.586e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
slip_generation_coefficient_per_mode = '1e5 2e7'
normalized_slip_activiation_energy_per_mode = '4e-3 3e-2'
slip_energy_proportionality_factor_per_mode = '330 100'
substructure_rate_coefficient_per_mode = '400 100'
applied_strain_rate = 0.001
gamma_o = 1.0e-3
Hall_Petch_like_constant_per_mode = '2e-3 2e-3' #minimize impact
grain_size = 20.0e-3 #20 microns
[]
[]
[Postprocessors]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[tau_0]
type = ElementAverageValue
variable = resolved_shear_stress_0
[]
[tau_1]
type = ElementAverageValue
variable = resolved_shear_stress_1
[]
[tau_2]
type = ElementAverageValue
variable = resolved_shear_stress_2
[]
[tau_12]
type = ElementAverageValue
variable = resolved_shear_stress_12
[]
[tau_13]
type = ElementAverageValue
variable = resolved_shear_stress_13
[]
[forest_dislocation_0]
type = ElementAverageValue
variable = forest_dislocations_0
[]
[forest_dislocation_1]
type = ElementAverageValue
variable = forest_dislocations_1
[]
[forest_dislocation_2]
type = ElementAverageValue
variable = forest_dislocations_2
[]
[forest_dislocation_12]
type = ElementAverageValue
variable = forest_dislocations_12
[]
[forest_dislocation_13]
type = ElementAverageValue
variable = forest_dislocations_13
[]
[substructure_density]
type = ElementAverageValue
variable = substructure_density
[]
[slip_resistance_0]
type = ElementAverageValue
variable = slip_resistance_0
[]
[slip_resistance_1]
type = ElementAverageValue
variable = slip_resistance_1
[]
[slip_resistance_2]
type = ElementAverageValue
variable = slip_resistance_2
[]
[slip_resistance_12]
type = ElementAverageValue
variable = slip_resistance_12
[]
[slip_resistance_13]
type = ElementAverageValue
variable = slip_resistance_13
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
nl_max_its = 20
l_max_its = 50
dt = 0.005
dtmin = 1.0e-4
dtmax = 0.1
end_time = 0.09
[]
[Outputs]
csv = true
[]
(modules/peridynamics/test/tests/failure_tests/2D_bond_status_convergence_BPD.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
cracks_start = '0.25 0.5 0'
cracks_end = '0.75 0.5 0'
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 8
ny = 8
[../]
[./gpd]
type = MeshGeneratorPD
input = gmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./critical_stretch]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./bond_status]
type = StretchBasedFailureCriterionPD
critical_variable = critical_stretch
variable = bond_status
[../]
[]
[ICs]
[./critical_stretch]
type = ConstantIC
variable = critical_stretch
value = 0.001
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1002
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1000
function = '-0.001*t'
[../]
[./rbm_x]
type = RBMPresetOldValuePD
variable = disp_x
boundary = 999
[../]
[./rbm_y]
type = RBMPresetOldValuePD
variable = disp_y
boundary = 999
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = BOND
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.33
[../]
[./force_density]
type = ComputeSmallStrainConstantHorizonMaterialBPD
[../]
[]
[Postprocessors]
[./bond_status_updated_times]
type = BondStatusConvergedPostprocessorPD
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
dt = 0.5
end_time = 1
fixed_point_max_its = 5
accept_on_max_fixed_point_iteration = true
custom_pp = bond_status_updated_times
custom_abs_tol = 2
disable_fixed_point_residual_norm_check = true
[]
[Outputs]
file_base = 2D_bond_status_convergence_BPD
exodus = true
[]
(modules/xfem/test/tests/nucleation_uo/nucleate_edge_bulk_crack_2d.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[XFEM]
geometric_cut_userobjects = 'cut_mesh2'
qrule = volfrac
output_cut_plane = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 60
ny = 10
xmin = -3
xmax = 3
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[top_left]
type = BoundingBoxNodeSetGenerator
new_boundary = pull_top_left
bottom_left = '-3.01 0.99 0'
top_right = '-2.99 1.01 0'
input = gen
[]
[top_mid_left]
type = BoundingBoxNodeSetGenerator
new_boundary = pull_mid_left
bottom_left = '-1.01 0.99 0'
top_right = '-0.99 1.01 0'
input = top_left
[]
[top_mid_right]
type = BoundingBoxNodeSetGenerator
new_boundary = pull_mid_right
bottom_left = '0.99 0.99 0'
top_right = '1.01 1.01 0'
input = top_mid_left
[]
[top_right]
type = BoundingBoxNodeSetGenerator
new_boundary = pull_top_right
bottom_left = '2.99 0.99 0'
top_right = '3.01 1.01 0'
input = top_mid_right
[]
[top_mid_left_ss]
type = SideSetsFromBoundingBoxGenerator
input = top_right
bottom_left = '-2.21 0.89 0'
top_right = '-1.79 1.01 0'
boundary_new = top_mid_left_ss
boundaries_old = top
[]
[top_mid_ss]
type = SideSetsFromBoundingBoxGenerator
input = top_mid_left_ss
bottom_left = '-0.21 0.89 0'
top_right = '0.21 1.01 0'
boundary_new = top_mid_ss
boundaries_old = top
[]
[top_mid_right_ss]
type = SideSetsFromBoundingBoxGenerator
input = top_mid_ss
bottom_left = '1.79 0.89 0'
top_right = '2.21 1.01 0'
boundary_new = top_mid_right_ss
boundaries_old = top
[]
[nucleation_strip]
# strip in middle of domain where cracks can nucleate
type = ParsedSubdomainMeshGenerator
input = top_mid_right_ss
combinatorial_geometry = 'y > 0.39 & y < 0.51'
block_id = 10
[]
[]
[DomainIntegral]
integrals = 'InteractionIntegralKI InteractionIntegralKII'
displacements = 'disp_x disp_y'
crack_front_points_provider = cut_mesh2
2d = true
number_points_from_provider = 0
crack_direction_method = CurvedCrackFront
radius_inner = '0.15'
radius_outer = '0.45'
poissons_ratio = 0.3
youngs_modulus = 207000
block = 0
incremental = false
[]
[UserObjects]
[nucleate]
type = MeshCut2DRankTwoTensorNucleation
tensor = stress
scalar_type = MaxPrincipal
nucleation_threshold = nucleation_threshold
# initiate_on_boundary = 'left right'
nucleation_radius = .41
nucleation_length = 0.21
[]
[cut_mesh2]
type = MeshCut2DFractureUserObject
mesh_file = make_edge_crack_in.e
k_critical = 230
growth_increment = 0.11
nucleate_uo = nucleate
execute_on = 'XFEM_MARK'
[]
[]
[AuxVariables]
[nucleation_threshold]
order = CONSTANT
family = MONOMIAL
[]
[]
[ICs]
[nucleation_bulk]
type = ConstantIC
value = 10000
variable = nucleation_threshold
block = 0
[]
[nucleation_weak]
type = FunctionIC
function = nucleation_x
variable = nucleation_threshold
block = 10
[]
[]
[Functions]
[nucleation_x]
type = ParsedFunction
expression = 'A*cos(pi*x)+D'
symbol_names = 'A D'
symbol_values = '100 200'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = SMALL
planar_formulation = PLANE_STRAIN
add_variables = true
[]
[]
[Functions]
[bc_pull_edge]
type = ParsedFunction
expression = 0.0004*t
[]
[bc_pull_mid]
type = ParsedFunction
expression = 0.0005*t
[]
[]
[BCs]
[top_edge_nodes]
type = FunctionDirichletBC
boundary = 'pull_top_left pull_top_right'
variable = disp_y
function = bc_pull_edge
[]
[top_mid_nodes]
type = FunctionDirichletBC
boundary = 'pull_mid_left pull_mid_right'
variable = disp_y
function = bc_pull_mid
[]
# [top_middle]
# type = NeumannBC
# boundary = 'top_mid_left_ss top_mid_ss top_mid_right_ss'
# variable = disp_y
# value = -2000
# []
[top_middle]
type = DirichletBC
boundary = 'top_mid_left_ss top_mid_ss top_mid_right_ss'
variable = disp_y
value = 0
[]
[bottom_x]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[]
[bottom_y]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 207000
poissons_ratio = 0.3
[]
[stress]
type = ComputeLinearElasticStress
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-ksp_type -pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'gmres lu superlu_dist'
line_search = 'none'
[Predictor]
type = SimplePredictor
scale = 1.0
[]
reuse_preconditioner = true
reuse_preconditioner_max_linear_its = 25
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
# time control
start_time = 0.0
dt = 1.0
end_time = 10
max_xfem_update = 100
[]
[Outputs]
csv = true
execute_on = FINAL
# exodus = true
# [xfemcutter]
# type = XFEMCutMeshOutput
# xfem_cutter_uo = cut_mesh2
# []
[console]
type = Console
output_linear = false
output_nonlinear = false
[]
[]
(test/tests/time_steppers/timesequence_stepper/csvtimesequence.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[ICs]
[./u_var]
type = FunctionIC
variable = u
function = exact_fn
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
end_time = 10
[./TimeStepper]
type = CSVTimeSequenceStepper
file_name = timesequence.csv
column_name = time1
[../]
[]
[Outputs]
exodus = true
[]
(test/tests/userobjects/nodal_patch_recovery/nodal_patch_recovery.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
[]
[]
[UserObjects]
[u_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'u'
execute_on = 'TIMESTEP_END'
[]
[]
[Variables]
[v]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[dt]
type = TimeDerivative
variable = v
[]
[diff]
type = Diffusion
variable = v
[]
[]
[AuxVariables]
[u_recovered]
[]
[u_nodal]
[]
[u_diff]
[]
[]
[AuxKernels]
[u_recovered]
type = NodalPatchRecoveryAux
variable = u_recovered
nodal_patch_recovery_uo = u_patch
execute_on = 'TIMESTEP_END'
[]
[u_nodal]
type = ParsedAux
variable = u_nodal
expression = v^2
coupled_variables = v
[]
[u_diff]
type = ParsedAux
variable = u_diff
expression = u_nodal-u_recovered
coupled_variables = 'u_nodal u_recovered'
[]
[]
[BCs]
[fix_left]
type = FunctionDirichletBC
variable = v
boundary = 'left'
function = y+1
[]
[fix_right]
type = DirichletBC
variable = v
boundary = 'right'
value = 0
[]
[]
[Materials]
[u]
type = ParsedMaterial
expression = v^2
property_name = u
coupled_variables = v
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 0.4
num_steps = 5
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
[]
[Outputs]
exodus = true
print_linear_residuals = false
[]
(modules/thermal_hydraulics/test/tests/components/hs_boundary_external_app_convection/plate.parent.i)
# This tests a temperature and heat transfer coefficient using the MultiApp system.
# Simple heat conduction problem with heat source is solved,
# to obtain an analytical solution:
# T(x,t) = 300 + 20t(x-1)^2
# The temperature is picked up by the child
# side of the solve, to use as ambiant temperature in a convective BC.
htc = 100
[Mesh]
type = GeneratedMesh
dim = 1
xmax = 1
nx = 10
[]
[Functions]
[left_bc_fn]
type = PiecewiseLinear
x = '0 10'
y = '300 500'
[]
[]
[Variables]
[T]
[]
[]
[AuxVariables]
[htc_ext]
initial_condition = ${htc}
[]
[]
[Functions]
[source_term]
type = ParsedFunction
expression = '20 * x * x - 40 * x + 20 - 40 * t'
[]
[]
[ICs]
[T_ic]
type = ConstantIC
variable = T
value = 300
[]
[]
[Kernels]
[td]
type = ADTimeDerivative
variable = T
[]
[diff]
type = ADDiffusion
variable = T
[]
[source]
type = BodyForce
function = 'source_term'
variable = T
[]
[]
[BCs]
[left]
type = FunctionDirichletBC
variable = T
boundary = left
function = left_bc_fn
[]
[right]
type = NeumannBC
variable = T
boundary = right
value = 0
[]
[]
[Executioner]
type = Transient
dt = 0.5
end_time = 10
nl_abs_tol = 1e-10
abort_on_solve_fail = true
[]
[MultiApps]
[thm]
type = TransientMultiApp
app_type = ThermalHydraulicsApp
input_files = plate.i
execute_on = TIMESTEP_END
[]
[]
[Transfers]
[T_to_child]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = thm
source_variable = T
variable = T_ext
[]
[htc_to_child]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = thm
source_variable = htc_ext
variable = htc_ext
[]
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-fretting-wear-test.i)
starting_point = 0.5e-1
offset = -0.045
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[normal_lm]
block = 3
use_dual = true
# scaling = 1.0e-5
[]
[frictional_lm]
block = 3
use_dual = true
scaling = 1.0e-5
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[DynamicTensorMechanics]
displacements = 'disp_x disp_y'
generate_output = 'stress_xx stress_yy'
strain = FINITE
block = '1 2'
stiffness_damping_coefficient = 0.04
hht_alpha = 0.0
[]
[inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[]
[Materials]
[elasticity_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elasticity_1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e8
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[strain]
type = ComputeFiniteStrain
block = '1 2'
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '7750'
[]
[]
[AuxVariables]
[worn_depth]
block = '3'
[]
[gap_vel]
block = '3'
[]
[vel_x]
block = '1 2'
[]
[accel_x]
block = '1 2'
[]
[vel_y]
block = '1 2'
[]
[accel_y]
block = '1 2'
[]
[vel_z]
block = '1 2'
[]
[accel_z]
block = '1 2'
[]
[]
[AuxKernels]
[gap_vel]
type = WeightedGapVelAux
variable = gap_vel
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
disp_x = disp_x
disp_y = disp_y
[]
[worn_depth]
type = MortarArchardsLawAux
variable = worn_depth
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
displacements = 'disp_x disp_y'
friction_coefficient = 0.5
energy_wear_coefficient = 1.0e-6
normal_pressure = normal_lm
execute_on = 'TIMESTEP_END'
[]
[accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = 'linear timestep_end'
[]
[vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = 'linear timestep_end'
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = 'linear timestep_end'
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = 'linear timestep_end'
[]
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
secondary_variable = disp_x
lm_variable_normal = normal_lm
lm_variable_tangential_one = frictional_lm
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeDynamicFrictionalForceLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
wear_depth = worn_depth
c = 1e6
c_t = 1e6
normalize_c = true
mu = 0.5
friction_lm = frictional_lm
capture_tolerance = 1.0e-5
newmark_beta = 0.25
newmark_gamma = 0.5
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(4.0 * pi / 4 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-5 * (cos(32.0 * pi / 4 * t) - 1.0)'
[]
[]
[Executioner]
type = Transient
end_time = 0.5
dt = 0.05
dtmin = .002
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist NONZERO 1e-15'
nl_max_its = 40
l_max_its = 15
line_search = none
snesmf_reuse_base = true
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'contact'
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform1.i)
# Elastic deformation.
# With Lame lambda=0 and Lame mu=1, applying the following
# deformation to the zmax surface of a unit cube:
# disp_x = 8*t
# disp_y = 6*t
# disp_z = t
# should yield stress:
# stress_xz = 8*t
# stress_xy = 6*t
# stress_zz = 2*t
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 8*t
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 6*t
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = t
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strainp_xx]
type = RankTwoAux
rank_two_tensor = combined_inelastic_strain
variable = strainp_xx
index_i = 0
index_j = 0
[../]
[./strainp_xy]
type = RankTwoAux
rank_two_tensor = combined_inelastic_strain
variable = strainp_xy
index_i = 0
index_j = 1
[../]
[./strainp_xz]
type = RankTwoAux
rank_two_tensor = combined_inelastic_strain
variable = strainp_xz
index_i = 0
index_j = 2
[../]
[./strainp_yy]
type = RankTwoAux
rank_two_tensor = combined_inelastic_strain
variable = strainp_yy
index_i = 1
index_j = 1
[../]
[./strainp_yz]
type = RankTwoAux
rank_two_tensor = combined_inelastic_strain
variable = strainp_yz
index_i = 1
index_j = 2
[../]
[./strainp_zz]
type = RankTwoAux
rank_two_tensor = combined_inelastic_strain
variable = strainp_zz
index_i = 2
index_j = 2
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = strainp_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = strainp_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = strainp_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = strainp_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = strainp_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = strainp_zz
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1'
[../]
[./strain]
type = ComputeIncrementalStrain
displacements = 'disp_x disp_y disp_z'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = ''
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 2
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform1
csv = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_cosserat2.i)
# Plastic deformation. Layered Cosserat with parameters:
# Young = 1.0
# Poisson = 0.2
# layer_thickness = 0.1
# joint_normal_stiffness = 0.25
# joint_shear_stiffness = 0.2
# These give the following nonzero components of the elasticity tensor:
# E_0000 = E_1111 = 1.043195
# E_0011 = E_1100 = 0.260799
# E_2222 = 0.02445
# E_0022 = E_1122 = E_2200 = E_2211 = 0.006112
# G = E_0101 = E_0110 = E_1001 = E_1010 = 0.416667
# Gt = E_0202 = E_0220 = E_2002 = E_1212 = E_1221 = E_2112 = 0.019084
# E_2020 = E_2121 = 0.217875
# They give the following nonzero components of the bending rigidity tensor:
# D = 8.68056E-5
# B_0101 = B_1010 = 7.92021E-4
# B_0110 = B_1001 = -1.584E-4
#
# Applying the following deformation to the zmax surface of a unit cube:
# disp_x = 8*t
# disp_y = 6*t
# disp_z = -t
# omega_x = omega_y = omega_z = 0
# yields the following strains:
# strain_xz = 8*t
# strain_yz = 6*t
# strain_zz = -t
# and all other components, and the curvature, are zero.
# The nonzero components of stress are therefore:
# stress_xx = stress_yy = -0.006112*t
# stress_xz = stress_zx = 0.152671*t
# stress_yz = stress_zy = 0.114504*t
# stress_zz = -0.0244499*t
# The moment stress is zero.
# So q = 0.19084*t and p = -0.0244*t.
#
# With large cohesion, but compressive strength = 0.0244499, the
# system is elastic up to t=1. After that time
# stress_zz = -0.0244499 (for t>=1)
# and
# stress_xx = stress_yy = -0.006112 (for t>=1), since the
# elastic trial increment is exactly canelled by the Poisson's
# contribution from the return to the yield surface.
# The plastic strains are zero for t<=1, but for larger times:
# plastic_strain_zz = - (t - 1) (for t>=1)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 8*t
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 6*t
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = -t
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./strainp_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[./strainp_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xx
index_i = 0
index_j = 0
[../]
[./strainp_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xy
index_i = 0
index_j = 1
[../]
[./strainp_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xz
index_i = 0
index_j = 2
[../]
[./strainp_yx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yx
index_i = 1
index_j = 0
[../]
[./strainp_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yy
index_i = 1
index_j = 1
[../]
[./strainp_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yz
index_i = 1
index_j = 2
[../]
[./strainp_zx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zx
index_i = 2
index_j = 0
[../]
[./strainp_zy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zy
index_i = 2
index_j = 1
[../]
[./strainp_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zz
index_i = 2
index_j = 2
[../]
[./straint_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xx
index_i = 0
index_j = 0
[../]
[./straint_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xy
index_i = 0
index_j = 1
[../]
[./straint_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xz
index_i = 0
index_j = 2
[../]
[./straint_yx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yx
index_i = 1
index_j = 0
[../]
[./straint_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yy
index_i = 1
index_j = 1
[../]
[./straint_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yz
index_i = 1
index_j = 2
[../]
[./straint_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zx
index_i = 2
index_j = 0
[../]
[./straint_zy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zy
index_i = 2
index_j = 1
[../]
[./straint_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zz
index_i = 2
index_j = 2
[../]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yx]
type = PointValue
point = '0 0 0'
variable = stress_yx
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zx]
type = PointValue
point = '0 0 0'
variable = stress_zx
[../]
[./s_zy]
type = PointValue
point = '0 0 0'
variable = stress_zy
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./c_s_xx]
type = PointValue
point = '0 0 0'
variable = couple_stress_xx
[../]
[./c_s_xy]
type = PointValue
point = '0 0 0'
variable = couple_stress_xy
[../]
[./c_s_xz]
type = PointValue
point = '0 0 0'
variable = couple_stress_xz
[../]
[./c_s_yx]
type = PointValue
point = '0 0 0'
variable = couple_stress_yx
[../]
[./c_s_yy]
type = PointValue
point = '0 0 0'
variable = couple_stress_yy
[../]
[./c_s_yz]
type = PointValue
point = '0 0 0'
variable = couple_stress_yz
[../]
[./c_s_zx]
type = PointValue
point = '0 0 0'
variable = couple_stress_zx
[../]
[./c_s_zy]
type = PointValue
point = '0 0 0'
variable = couple_stress_zy
[../]
[./c_s_zz]
type = PointValue
point = '0 0 0'
variable = couple_stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = strainp_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = strainp_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = strainp_xz
[../]
[./strainp_yx]
type = PointValue
point = '0 0 0'
variable = strainp_yx
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = strainp_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = strainp_yz
[../]
[./strainp_zx]
type = PointValue
point = '0 0 0'
variable = strainp_zx
[../]
[./strainp_zy]
type = PointValue
point = '0 0 0'
variable = strainp_zy
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = strainp_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = straint_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = straint_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = straint_xz
[../]
[./straint_yx]
type = PointValue
point = '0 0 0'
variable = straint_yx
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = straint_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = straint_yz
[../]
[./straint_zx]
type = PointValue
point = '0 0 0'
variable = straint_zx
[../]
[./straint_zy]
type = PointValue
point = '0 0 0'
variable = straint_zy
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = straint_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 30
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1111077
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 40
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 0.024449878
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 1.0
poisson = 0.2
layer_thickness = 0.1
joint_normal_stiffness = 0.25
joint_shear_stiffness = 0.2
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
[../]
[./admissible]
type = ComputeMultipleInelasticCosseratStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneCosseratStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0
smoothing_tol = 1
yield_function_tol = 1E-5
[../]
[]
[Executioner]
nl_abs_tol = 1E-14
end_time = 3
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_cosserat2
csv = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/mms/pspg/pspg_mms_test.i)
mu=1.5
rho=2.5
[GlobalParams]
gravity = '0 0 0'
pspg = true
convective_term = true
integrate_p_by_parts = true
laplace = true
u = vel_x
v = vel_y
pressure = p
alpha = 1e-6
order = FIRST
family = LAGRANGE
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
elem_type = QUAD9
nx = 4
ny = 4
[]
[./corner_node]
type = ExtraNodesetGenerator
new_boundary = 'pinned_node'
nodes = '0'
input = gen
[../]
[]
[Variables]
[./vel_x]
[../]
[./vel_y]
[../]
[./p]
[../]
[]
[Kernels]
# mass
[./mass]
type = INSMass
variable = p
x_vel_forcing_func = vel_x_source_func
y_vel_forcing_func = vel_y_source_func
[../]
# x-momentum, space
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
component = 0
forcing_func = vel_x_source_func
[../]
# y-momentum, space
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
component = 1
forcing_func = vel_y_source_func
[../]
[./p_source]
type = BodyForce
function = p_source_func
variable = p
[../]
[]
[BCs]
[./vel_x]
type = FunctionDirichletBC
boundary = 'left right top bottom'
function = vel_x_func
variable = vel_x
[../]
[./vel_y]
type = FunctionDirichletBC
boundary = 'left right top bottom'
function = vel_y_func
variable = vel_y
[../]
[./p]
type = FunctionDirichletBC
boundary = 'left right top bottom'
function = p_func
variable = p
[../]
[]
[Functions]
[./vel_x_source_func]
type = ParsedFunction
expression = '-${mu}*(-0.028*pi^2*x^2*sin(0.2*pi*x*y) - 0.028*pi^2*y^2*sin(0.2*pi*x*y) - 0.1*pi^2*sin(0.5*pi*x) - 0.4*pi^2*sin(pi*y)) + ${rho}*(0.14*pi*x*cos(0.2*pi*x*y) + 0.4*pi*cos(pi*y))*(0.6*sin(0.8*pi*x) + 0.3*sin(0.3*pi*y) + 0.2*sin(0.3*pi*x*y) + 0.3) + ${rho}*(0.14*pi*y*cos(0.2*pi*x*y) + 0.2*pi*cos(0.5*pi*x))*(0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5) + 0.1*pi*y*cos(0.2*pi*x*y) + 0.25*pi*cos(0.5*pi*x)'
[../]
[./vel_y_source_func]
type = ParsedFunction
expression = '-${mu}*(-0.018*pi^2*x^2*sin(0.3*pi*x*y) - 0.018*pi^2*y^2*sin(0.3*pi*x*y) - 0.384*pi^2*sin(0.8*pi*x) - 0.027*pi^2*sin(0.3*pi*y)) + ${rho}*(0.06*pi*x*cos(0.3*pi*x*y) + 0.09*pi*cos(0.3*pi*y))*(0.6*sin(0.8*pi*x) + 0.3*sin(0.3*pi*y) + 0.2*sin(0.3*pi*x*y) + 0.3) + ${rho}*(0.06*pi*y*cos(0.3*pi*x*y) + 0.48*pi*cos(0.8*pi*x))*(0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5) + 0.1*pi*x*cos(0.2*pi*x*y) + 0.3*pi*cos(0.3*pi*y)'
[../]
[./p_source_func]
type = ParsedFunction
expression = '-0.06*pi*x*cos(0.3*pi*x*y) - 0.14*pi*y*cos(0.2*pi*x*y) - 0.2*pi*cos(0.5*pi*x) - 0.09*pi*cos(0.3*pi*y)'
[../]
[./vel_x_func]
type = ParsedFunction
expression = '0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5'
[../]
[./vel_y_func]
type = ParsedFunction
expression = '0.6*sin(0.8*pi*x) + 0.3*sin(0.3*pi*y) + 0.2*sin(0.3*pi*x*y) + 0.3'
[../]
[./p_func]
type = ParsedFunction
expression = '0.5*sin(0.5*pi*x) + 1.0*sin(0.3*pi*y) + 0.5*sin(0.2*pi*x*y) + 0.5'
[../]
[./vxx_func]
type = ParsedFunction
expression = '0.14*pi*y*cos(0.2*pi*x*y) + 0.2*pi*cos(0.5*pi*x)'
[../]
[./px_func]
type = ParsedFunction
expression = '0.1*pi*y*cos(0.2*pi*x*y) + 0.25*pi*cos(0.5*pi*x)'
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '${rho} ${mu}'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Steady
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-13
nl_max_its = 6
l_tol = 1e-6
l_max_its = 500
[]
[Outputs]
[./exodus]
type = Exodus
[../]
[./csv]
type = CSV
[../]
[]
[Postprocessors]
[./L2vel_x]
type = ElementL2Error
variable = vel_x
function = vel_x_func
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2vel_y]
variable = vel_y
function = vel_y_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2p]
variable = p
function = p_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2vxx]
variable = vxx
function = vxx_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2px]
variable = px
function = px_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[]
[AuxVariables]
[./vxx]
family = MONOMIAL
order = FIRST
[../]
[./px]
family = MONOMIAL
order = FIRST
[../]
[]
[AuxKernels]
[./vxx]
type = VariableGradientComponent
component = x
variable = vxx
gradient_variable = vel_x
[../]
[./px]
type = VariableGradientComponent
component = x
variable = px
gradient_variable = p
[../]
[]
(modules/contact/test/tests/verification/hertz_cyl/half_symm_q4/hertz_cyl_half_1deg_template3.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
file = hertz_cyl_half_1deg.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
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[./tang_force_x]
[../]
[./tang_force_y]
[../]
[]
[Functions]
[./disp_ramp_vert]
type = PiecewiseLinear
x = '0. 1. 11.'
y = '0. -0.0020 -0.0020'
[../]
[./disp_ramp_horz]
type = PiecewiseLinear
x = '0. 1. 11.'
y = '0. 0.0 0.0014'
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
extra_vector_tags = 'ref'
save_in = 'saved_x saved_y'
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./inc_slip_x]
type = PenetrationAux
variable = inc_slip_x
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./inc_slip_y]
type = PenetrationAux
variable = inc_slip_y
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./accum_slip_x]
type = PenetrationAux
variable = accum_slip_x
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./accum_slip_y]
type = PenetrationAux
variable = accum_slip_y
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./tang_force_x]
type = PenetrationAux
variable = tang_force_x
quantity = tangential_force_x
boundary = 3
paired_boundary = 2
[../]
[./tang_force_y]
type = PenetrationAux
variable = tang_force_y
quantity = tangential_force_y
boundary = 3
paired_boundary = 2
[../]
[./penetration]
type = PenetrationAux
variable = penetration
boundary = 3
paired_boundary = 2
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[../]
[./disp_x226]
type = NodalVariableValue
nodeid = 225
variable = disp_x
[../]
[./disp_y226]
type = NodalVariableValue
nodeid = 225
variable = disp_y
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[]
[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'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff2_strain]
type = ComputeFiniteStrain
block = '2'
[../]
[./stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[../]
[./stuff3_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '3'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff3_strain]
type = ComputeFiniteStrain
block = '3'
[../]
[./stuff3_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[../]
[./stuff4_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '4'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff4_strain]
type = ComputeFiniteStrain
block = '4'
[../]
[./stuff4_stress]
type = ComputeFiniteStrainElasticStress
block = '4'
[../]
[./stuff5_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '5'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff5_strain]
type = ComputeFiniteStrain
block = '5'
[../]
[./stuff5_stress]
type = ComputeFiniteStrainElasticStress
block = '5'
[../]
[./stuff6_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '6'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff6_strain]
type = ComputeFiniteStrain
block = '6'
[../]
[./stuff6_stress]
type = ComputeFiniteStrainElasticStress
block = '6'
[../]
[./stuff7_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '7'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff7_strain]
type = ComputeFiniteStrain
block = '7'
[../]
[./stuff7_stress]
type = ComputeFiniteStrainElasticStress
block = '7'
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-7
nl_rel_tol = 1e-6
l_max_its = 100
nl_max_its = 200
start_time = 0.0
end_time = 2.0
l_tol = 5e-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
[../]
[./cont_press]
type = NodalValueSampler
variable = contact_pressure
boundary = '3'
sort_by = id
[../]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[./chkfile]
type = CSV
show = 'x_disp y_disp cont_press'
start_time = 0.9
execute_vector_postprocessors_on = timestep_end
[../]
[./chkfile2]
type = CSV
show = 'bot_react_x bot_react_y disp_x226 disp_y226 top_react_x top_react_y'
start_time = 0.9
execute_vector_postprocessors_on = timestep_end
[../]
[./outfile]
type = CSV
delimiter = ' '
execute_vector_postprocessors_on = none
[../]
[]
[Contact]
[./interface]
primary = 2
secondary = 3
model = coulomb
friction_coefficient = 0.0
formulation = penalty
normalize_penalty = true
tangential_tolerance = 1e-3
penalty = 1e+9
[../]
[]
[Dampers]
[./contact_slip]
type = ContactSlipDamper
primary = '2'
secondary = '3'
[../]
[]
(test/tests/misc/check_error/old_integrity_check.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = 0
ymax = 1
nx = 20
ny = 10
elem_type = QUAD9
[]
[Functions]
[./bc_fn_v]
type = ParsedFunction
expression = (x*x+y*y)
[../]
[]
[Variables]
[./v]
family = LAGRANGE
order = SECOND
[../]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[Kernels]
[./diff_v]
type = CoefDiffusion
variable = u
coef = 0.5
[../]
[./conv_v]
type = CoupledConvection
variable = v
velocity_vector = u
lag_coupling = true # Here we are asking for an old value but this is a steady test!
[../]
[]
[BCs]
[./top_v]
type = FunctionDirichletBC
variable = v
boundary = top
function = bc_fn_v
[../]
[./left_u]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right_u]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
execute_on = 'timestep_end'
[]
(modules/solid_mechanics/test/tests/elem_prop_read_user_object/prop_elem_read.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 2
ny = 2
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[]
[GlobalParams]
volumetric_locking_correction=true
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.05*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'input_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 4
read_type = element
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = elastic_strain
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./elasticity_tensor_with_Euler]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 1
nl_abs_step_tol = 1e-10
[]
[Outputs]
file_base = prop_elem_read_out
exodus = true
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
(modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-wear.i)
starting_point = 0.5e-1
offset = -0.05
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[normal_lm]
block = 3
use_dual = true
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[DynamicTensorMechanics]
displacements = 'disp_x disp_y'
generate_output = 'stress_xx stress_yy'
strain = FINITE
block = '1 2'
stiffness_damping_coefficient = 1.0
hht_alpha = 0.0
[]
[inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[]
[Materials]
[elasticity_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elasticity_1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e8
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[strain]
type = ComputeFiniteStrain
block = '1 2'
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '7750'
[]
[]
[AuxVariables]
[worn_depth]
block = '3'
[]
[vel_x]
block = '1 2'
[]
[accel_x]
block = '1 2'
[]
[vel_y]
block = '1 2'
[]
[accel_y]
block = '1 2'
[]
[vel_z]
block = '1 2'
[]
[accel_z]
block = '1 2'
[]
[]
[AuxKernels]
[worn_depth]
type = MortarArchardsLawAux
variable = worn_depth
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
displacements = 'disp_x disp_y'
friction_coefficient = 0.5
energy_wear_coefficient = 1.0
normal_pressure = normal_lm
[]
[accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = 'linear timestep_end'
[]
[vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = 'linear timestep_end'
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = 'linear timestep_end'
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = 'linear timestep_end'
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable = normal_lm
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeDynamicWeightedGapLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
c = 1e4
capture_tolerance = 1.0e-5
newmark_beta = 0.25
newmark_gamma = 0.5
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(8.0 * pi / 4 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 0.675
dt = 0.075
dtmin = .075
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type -pc_factor_shift_amount '
petsc_options_value = 'lu superlu_dist NONZERO 1e-15'
nl_max_its = 30
line_search = 'l2'
snesmf_reuse_base = false
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
checkpoint = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(modules/solid_mechanics/tutorials/basics/part_3_1.i)
#Tensor Mechanics tutorial: the basics
#Step 3, part 1
#3D simulation of uniaxial tension with J2 plasticity
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[file_mesh]
type = FileMeshGenerator
file = necking_quad4.e
[]
[extrude]
type = MeshExtruderGenerator
extrusion_vector = '0 0 0.5'
num_layers = 2
bottom_sideset = 'back'
top_sideset = 'front'
input = file_mesh
[]
uniform_refine = 0
second_order = true
[]
[Physics/SolidMechanics/QuasiStatic]
[./block1]
strain = FINITE
add_variables = true
generate_output = 'stress_yy strain_yy'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1e-9
plastic_models = J2
[../]
[]
[UserObjects]
[./hardening]
type = SolidMechanicsHardeningCubic
value_0 = 2.4e2
value_residual = 3.0e2
internal_0 = 0
internal_limit = 0.005
[../]
[./J2]
type = SolidMechanicsPlasticJ2
yield_strength = hardening
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x #change the variable to reflect the new displacement names
boundary = 1
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z #change the variable to reflect the new displacement names
boundary = back
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y #change the variable to reflect the new displacement names
boundary = 3
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_y #change the variable to reflect the new displacement names
boundary = 4
function = '0.0007*t'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.25
end_time = 16
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 1 101'
[]
[Postprocessors]
[./ave_stress_bottom]
type = SideAverageValue
variable = stress_yy
boundary = 3
[../]
[./ave_strain_bottom]
type = SideAverageValue
variable = strain_yy
boundary = 3
[../]
[]
[Outputs]
exodus = true
perf_graph = true
csv = true
print_linear_residuals = false
[]
(modules/combined/test/tests/elastic_patch/elastic_patch_plane_strain.i)
#
# This problem is taken from the Abaqus verification manual:
# "1.5.1 Membrane patch test"
# The stress solution is given as:
# xx = yy = 1600
# zz = 800
# xy = 400
# yz = zx = 0
#
# Since the strain is 1e-3 in both directions, the new density should be
# new_density = original_density * V_0 / V
# new_density = 0.283 / (1 + 1e-3 + 1e-3) = 0.282435
[GlobalParams]
displacements = 'disp_x disp_y'
temperature = temp
[]
[Mesh]
file = elastic_patch_rz.e
[]
[Variables]
[temp]
initial_condition = 117.56
[]
[]
[Physics/SolidMechanics/QuasiStatic/All]
strain = SMALL
incremental = true
planar_formulation = PLANE_STRAIN
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[]
[Kernels]
[heat]
type = TimeDerivative
variable = temp
[]
[]
[BCs]
[ur]
type = FunctionDirichletBC
variable = disp_x
boundary = 10
function = '1e-3*(x+0.5*y)'
[]
[uz]
type = FunctionDirichletBC
variable = disp_y
boundary = 10
function = '1e-3*(y+0.5*x)'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
[]
[stress]
type = ComputeStrainIncrementBasedStress
[]
[density]
type = Density
density = 0.283
outputs = all
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
end_time = 1.0
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al_backup.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = hertz_cyl_finer.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 = AugmentedLagrangianContactFEProblem
extra_tag_vectors = 'ref'
maximum_lagrangian_update_iterations = 1000
[]
[AuxVariables]
[penalty_normal_pressure]
[]
[penalty_frictional_pressure]
[]
[accumulated_slip_one]
[]
[tangential_vel_one]
[]
[normal_gap]
[]
[normal_lm]
[]
[saved_x]
[]
[saved_y]
[]
[active]
[]
[]
[Functions]
[disp_ramp_vert]
type = PiecewiseLinear
x = '0. 0.1 0.2'
y = '0. -0.020 0.0'
[]
[disp_ramp_horz]
type = PiecewiseLinear
x = '0. 1. 3.5'
y = '0. 0.0 0.015'
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
save_in = 'saved_x saved_y'
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
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = friction_uo
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
variable = normal_gap
user_object = friction_uo
contact_quantity = normal_gap
boundary = 3
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_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
[]
[active_set_size]
type = NodalSum
variable = active
[]
[]
[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 = 1e8
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 = 'NEWTON'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = -pc_type
petsc_options_value = lu
line_search = 'none'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
nl_max_its = 1300
l_tol = 1e-05
l_abs_tol = 1e-13
start_time = 0.0
end_time = 0.2 # 3.5
dt = 0.1
dtmin = 0.001
[Predictor]
type = SimplePredictor
scale = 1.0
[]
automatic_scaling = true
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[VectorPostprocessors]
[surface]
type = NodalValueSampler
use_displaced_mesh = false
variable = 'disp_x disp_y penalty_normal_pressure normal_gap'
boundary = '3'
sort_by = id
[]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
exodus = true
csv = false
[vectorpp_output]
type = CSV
create_final_symlink = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
[]
[UserObjects]
[friction_uo]
type = PenaltyWeightedGapUserObject
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
disp_x = disp_x
disp_y = disp_y
penalty = 1e7
penalty_multiplier = 10
penetration_tolerance = 1e-12
use_physical_gap = true
[]
[]
[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
[]
[]
(modules/contact/test/tests/sliding_block/in_and_out/frictionless_lm.i)
[Mesh]
patch_size = 80
[file]
type = FileMeshGenerator
file = sliding_elastic_blocks_2d.e
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
block = '1 2'
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = horizontal_movement
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[]
[]
[Materials]
[left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
constant_on = SUBDOMAIN
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 15
dt = 0.1
dtmin = 0.01
l_max_its = 30
nl_max_its = 20
line_search = 'none'
timestep_tolerance = 1e-6
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
sync_times = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15'
[out]
type = Exodus
sync_only = true
[]
[dof]
execute_on = 'initial'
type = DOFMap
[]
[csv]
type = CSV
execute_on = 'nonlinear timestep_end'
[]
[]
[Functions]
[vertical_movement]
type = ParsedFunction
expression = -t
[]
[horizontal_movement]
type = ParsedFunction
expression = -0.04*sin(4*t)+0.02
[]
[]
[Contact]
[contact]
secondary = 3
primary = 2
model = frictionless
formulation = mortar
[]
[]
[Postprocessors]
[num_nl]
type = NumNonlinearIterations
[]
[lin]
type = NumLinearIterations
[]
[contact]
type = ContactDOFSetSize
variable = contact_normal_lm
subdomain = '30'
execute_on = 'nonlinear timestep_end'
[]
[]
(modules/fsi/test/tests/2d-small-strain-transient/fsi_flat_channel.i)
[GlobalParams]
gravity = '0 0 0'
integrate_p_by_parts = true
laplace = true
convective_term = true
transient_term = true
pspg = true
supg = true
displacements = 'disp_x disp_y'
preset = false
order = FIRST
use_displaced_mesh = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 3.0
ymin = 0
ymax = 1.0
nx = 10
ny = 15
elem_type = QUAD4
[]
[subdomain1]
type = SubdomainBoundingBoxGenerator
bottom_left = '0.0 0.5 0'
block_id = 1
top_right = '3.0 1.0 0'
input = gmg
[]
[interface]
type = SideSetsBetweenSubdomainsGenerator
primary_block = '0'
paired_block = '1'
new_boundary = 'master0_interface'
input = subdomain1
[]
[break_boundary]
type = BreakBoundaryOnSubdomainGenerator
input = interface
[]
[]
[Variables]
[./vel_x]
block = 0
[../]
[./vel_y]
block = 0
[../]
[./p]
block = 0
[../]
[./disp_x]
[../]
[./disp_y]
[../]
[./vel_x_solid]
block = 1
[../]
[./vel_y_solid]
block = 1
[../]
[]
[Kernels]
[./vel_x_time]
type = INSMomentumTimeDerivative
variable = vel_x
block = 0
[../]
[./vel_y_time]
type = INSMomentumTimeDerivative
variable = vel_y
block = 0
[../]
[./mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
block = 0
disp_x = disp_x
disp_y = disp_y
[../]
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
block = 0
disp_x = disp_x
disp_y = disp_y
[../]
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
block = 0
disp_x = disp_x
disp_y = disp_y
[../]
[./vel_x_mesh]
type = ConvectedMesh
disp_x = disp_x
disp_y = disp_y
variable = vel_x
u = vel_x
v = vel_y
pressure = p
block = 0
[../]
[./vel_y_mesh]
type = ConvectedMesh
disp_x = disp_x
disp_y = disp_y
variable = vel_y
u = vel_x
v = vel_y
pressure = p
block = 0
[../]
[./p_mesh]
type = ConvectedMeshPSPG
disp_x = disp_x
disp_y = disp_y
variable = p
u = vel_x
v = vel_y
pressure = p
block = 0
[../]
[./disp_x_fluid]
type = Diffusion
variable = disp_x
block = 0
use_displaced_mesh = false
[../]
[./disp_y_fluid]
type = Diffusion
variable = disp_y
block = 0
use_displaced_mesh = false
[../]
[./accel_tensor_x]
type = CoupledTimeDerivative
variable = disp_x
v = vel_x_solid
block = 1
use_displaced_mesh = false
[../]
[./accel_tensor_y]
type = CoupledTimeDerivative
variable = disp_y
v = vel_y_solid
block = 1
use_displaced_mesh = false
[../]
[./vxs_time_derivative_term]
type = CoupledTimeDerivative
variable = vel_x_solid
v = disp_x
block = 1
use_displaced_mesh = false
[../]
[./vys_time_derivative_term]
type = CoupledTimeDerivative
variable = vel_y_solid
v = disp_y
block = 1
use_displaced_mesh = false
[../]
[./source_vxs]
type = MatReaction
variable = vel_x_solid
block = 1
reaction_rate = 1
use_displaced_mesh = false
[../]
[./source_vys]
type = MatReaction
variable = vel_y_solid
block = 1
reaction_rate = 1
use_displaced_mesh = false
[../]
[]
[InterfaceKernels]
[./penalty_interface_x]
type = CoupledPenaltyInterfaceDiffusion
variable = vel_x
neighbor_var = disp_x
secondary_coupled_var = vel_x_solid
boundary = master0_interface
penalty = 1e6
[../]
[./penalty_interface_y]
type = CoupledPenaltyInterfaceDiffusion
variable = vel_y
neighbor_var = disp_y
secondary_coupled_var = vel_y_solid
boundary = master0_interface
penalty = 1e6
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./solid_domain]
strain = SMALL
incremental = false
# generate_output = 'strain_xx strain_yy strain_zz' ## Not at all necessary, but nice
block = '1'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e2
poissons_ratio = 0.3
block = '1'
use_displaced_mesh = false
[../]
[./small_stress]
type = ComputeLinearElasticStress
block = 1
[../]
[./const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '1 1'
use_displaced_mesh = false
[../]
[]
[BCs]
[./fluid_x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'bottom'
value = 0.0
[../]
[./fluid_y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'bottom left_to_0'
value = 0.0
[../]
[./x_inlet]
type = FunctionDirichletBC
variable = vel_x
boundary = 'left_to_0'
function = 'inlet_func'
[../]
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = 'bottom top left_to_1 right_to_1 left_to_0 right_to_0'
value = 0
[../]
[./no_disp_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom top left_to_1 right_to_1 left_to_0 right_to_0'
value = 0
[../]
[./solid_x_no_slip]
type = DirichletBC
variable = vel_x_solid
boundary = 'top left_to_1 right_to_1'
value = 0.0
[../]
[./solid_y_no_slip]
type = DirichletBC
variable = vel_y_solid
boundary = 'top left_to_1 right_to_1'
value = 0.0
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
num_steps = 5
# num_steps = 60
dt = 0.1
dtmin = 0.1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = none
nl_rel_tol = 1e-50
nl_abs_tol = 1e-10
[]
[Outputs]
[./out]
type = Exodus
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '(-16 * (y - 0.25)^2 + 1) * (1 + cos(t))'
[../]
[]
(modules/solid_mechanics/test/tests/rate_independent_cyclic_hardening/nonlin_isokinharden_symmetric_strain_controlled.i)
# This simulation uses the piece-wise strain hardening model
# with the Finite strain formulation.
#
# This test applies a repeated displacement loading and unloading condition on
# the top in the y direction. The material deforms elastically until the
# loading reaches the initial yield point and then plastic deformation starts.
#
# This test captures isotropic hardening as well as kinematic hardening. Hence
# the yield surface begins to translate as well as grow as stress increases.
# The backstress and yield surface evolves with plastic strain to capture
# this translation and growth.
#
# If the reverse load is strong enough (more than yield point), the material
# will yield in the reverse direction, which takes into account the
# Bauschinger effect(reduction in yield stress in the opposite direction), which
# is dependent the value of kinematic hardening modulus.
#
# This test is based on the similar response obtained for a prescribed symmetrical
# stress path in Besson, Jacques, et al. Non-linear mechanics of materials. Vol. 167.
# Springer Science & Business Media, 2009 pg. 88 fig. 3.5. This SolidMechanics code
# matches the SolidMechanics solution.
[Mesh]
file = 1x1x1cube.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[top_pull]
type = PiecewiseLinear
xy_data = '0 0
0.025 0.0025
0.05 0.005
0.1 0.01
0.15 0.005
0.2 0
0.25 -0.005
0.3 -0.01
0.35 -0.005
0.45 0
0.5 0.005
0.55 0.01
0.65 0.005
0.7 0
0.75 -0.005
0.8 -0.01
0.85 -0.005
0.9 0
0.95 0.005
1 0.01
1.05 0.005
1.1 0
1.15 -0.005
1.2 -0.01
1.25 -0.005
1.3 0
1.35 0.005
1.4 0.01
1.45 0.005
1.5 0
1.55 -0.005
1.60 -0.01
1.65 -0.005
1.7 0
1.75 0.005
1.8 0.01
1.85 0.005
1.9 0
1.95 -0.005
2 -0.01
2.05 -0.005
2.10 0
2.15 0.005
2.2 0.01
2.25 0.005
2.3 0
2.35 -0.005
2.4 -0.01
2.45 -0.005
2.5 0'
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'strain_yy stress_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
[]
[]
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0
[]
[combined_plasticity]
type = CombinedNonlinearHardeningPlasticity
yield_stress = 100
isotropic_hardening_constant = 0
q = 50
b = 5
kinematic_hardening_modulus = 40000
gamma = 400
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'combined_plasticity'
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pctype'
petsc_options_value = '101 lu'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 1 # change end_time = 2.5 for more cycles of kinematic hardening
dt = 0.005 # keep dt = 0.000125 for a finer non linear kinematic plot
dtmin = 0.001
[]
[Postprocessors]
[stress_yy]
type = ElementAverageValue
variable = stress_yy
[]
[strain_yy]
type = ElementAverageValue
variable = strain_yy
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/finite_strain_tensor_mechanics_tests/elastic_rotation.i)
#
# Rotation Test
#
# This test is designed to compute a uniaxial stress and then follow that
# stress as the mesh is rotated 90 degrees.
#
# The mesh is composed of one block with a single element. The nodal
# displacements in the x and y directions are prescribed. Poisson's
# ratio is zero.
#
[Mesh]
file = rotation_test.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
# Functions
[./x_200]
type = ParsedFunction
symbol_names = 'delta t0'
symbol_values = '-1e-6 1.0'
expression = 'if(t<=1.0, delta*t, (1.0+delta)*cos(pi/2*(t-t0)) - 1.0)'
[../]
[./y_200]
type = ParsedFunction
symbol_names = 'delta t0'
symbol_values = '-1e-6 1.0'
expression = 'if(t<=1.0, 0.0, (1.0+delta)*sin(pi/2*(t-t0)))'
[../]
[./x_300]
type = ParsedFunction
symbol_names = 'delta t0'
symbol_values = '-1e-6 1.0'
expression = 'if(t<=1.0, delta*t, (1.0+delta)*cos(pi/2.0*(t-t0)) - sin(pi/2.0*(t-t0)) - 1.0)'
[../]
[./y_300]
type = ParsedFunction
symbol_names = 'delta t0'
symbol_values = '-1e-6 1.0'
expression = 'if(t<=1.0, 0.0, cos(pi/2.0*(t-t0)) + (1+delta)*sin(pi/2.0*(t-t0)) - 1.0)'
[../]
[./x_400]
type = ParsedFunction
symbol_names = 'delta t0'
symbol_values = '-1e-6 1.0'
expression = 'if(t<=1.0, 0.0, -sin(pi/2.0*(t-t0)))'
[../]
[./y_400]
type = ParsedFunction
symbol_names = 'delta t0'
symbol_values = '-1e-6 1.0'
expression = 'if(t<=1.0, 0.0, cos(pi/2.0*(t-t0)) - 1.0)'
[../]
[]
[Variables]
# Variables
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
# AuxVariables
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[SolidMechanics]
use_displaced_mesh = true
[../]
[]
[AuxKernels]
# AuxKernels
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[]
[BCs]
# BCs
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 100
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 100
value = 0.0
[../]
[./x_200]
type = FunctionDirichletBC
variable = disp_x
boundary = 200
function = x_200
[../]
[./y_200]
type = FunctionDirichletBC
variable = disp_y
boundary = 200
function = y_200
[../]
[./x_300]
type = FunctionDirichletBC
variable = disp_x
boundary = 300
function = x_300
[../]
[./y_300]
type = FunctionDirichletBC
variable = disp_y
boundary = 300
function = y_300
[../]
[./x_400]
type = FunctionDirichletBC
variable = disp_x
boundary = 400
function = x_400
[../]
[./y_400]
type = FunctionDirichletBC
variable = disp_y
boundary = 400
function = y_400
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = '100 200 300 400'
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 1
C_ijkl = '1.0e6 0.0 0.0 1.0e6 0.0 1.0e6 0.5e6 0.5e6 0.5e6'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 1
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = 1
[../]
[]
[Postprocessors]
[./stress_xx]
type = ElementAverageValue
variable = stress_xx
[../]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./stress_xy]
type = ElementAverageValue
variable = stress_xy
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
# Executioner
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type '
petsc_options_value = 'lu'
nl_rel_tol = 1e-30
nl_abs_tol = 1e-20
l_max_its = 20
start_time = 0.0
dt = 0.01
end_time = 2.0
[]
[Outputs]
exodus = true
[] # Outputs
(modules/solid_mechanics/test/tests/umat/plane_strain/plane_strain.i)
# Testing the UMAT Interface - creep linear strain hardening model using the finite strain formulation - visco-plastic material.
# Uses 2D plane strain
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
[]
[]
[Functions]
[top_pull]
type = ParsedFunction
expression = t/100
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'strain_yy stress_yy stress_zz'
planar_formulation = PLANE_STRAIN
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[]
[Materials]
[constant]
type = AbaqusUMATStress
# Young's modulus, Poisson's Ratio, Yield, Hardening
constant_properties = '1000 0.3 10 100'
plugin = ../../../plugins/linear_strain_hardening
num_state_vars = 3
use_one_based_indexing = true
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 30
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[average_strain_yy]
type = ElementAverageValue
variable = 'strain_yy'
[]
[average_stress_yy]
type = ElementAverageValue
variable = 'stress_yy'
[]
[average_stress_zz]
type = ElementAverageValue
variable = 'stress_zz'
[]
[]
[Outputs]
[out]
type = Exodus
elemental_as_nodal = true
[]
[]
(test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test4qns.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test4q.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
# [./element_id]
# [../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
# [./penetrate17]
# type = PenetrationAux
# variable = element_id
# boundary = 11
# paired_boundary = 12
# quantity = element_id
# [../]
#
# [./penetrate18]
# type = PenetrationAux
# variable = element_id
# boundary = 12
# paired_boundary = 11
# quantity = element_id
# [../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.025
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test4qns_out
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/materials/convergence/hyperelastic_J2_plastic.i)
E = 6.88e4
nu = 0.25
[GlobalParams]
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
displacements = 'disp_x disp_y disp_z'
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
displacements = 'disp_x disp_y disp_z'
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
displacements = 'disp_x disp_y disp_z'
[]
[]
[BCs]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0.0
[]
[fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0.0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'right'
function = 't'
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = ${E}
poissons_ratio = ${nu}
[]
[compute_strain]
type = ComputeLagrangianStrain
displacements = 'disp_x disp_y disp_z'
[]
[flow_stress]
type = DerivativeParsedMaterial
property_name = flow_stress
expression = '320+688*effective_plastic_strain'
material_property_names = 'effective_plastic_strain'
additional_derivative_symbols = 'effective_plastic_strain'
derivative_order = 2
compute = false
[]
[compute_stress]
type = ComputeSimoHughesJ2PlasticityStress
flow_stress_material = flow_stress
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 5e-4
num_steps = 20
[]
(examples/ex13_functions/ex13.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 100
ny = 100
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
[]
[Variables]
[./forced]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
# A ParsedFunction allows us to supply analytic expressions
# directly in the input file
[./bc_func]
type = ParsedFunction
expression = sin(alpha*pi*x)
symbol_names = 'alpha'
symbol_values = '16'
[../]
# This function is an actual compiled function
# We could have used ParsedFunction for this as well
[./forcing_func]
type = ExampleFunction
alpha = 16
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = forced
[../]
# This Kernel can take a function name to use
[./forcing]
type = BodyForce
variable = forced
function = forcing_func
[../]
[]
[BCs]
# The BC can take a function name to use
[./all]
type = FunctionDirichletBC
variable = forced
boundary = 'bottom right top left'
function = bc_func
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/solid_mechanics/tutorials/basics/part_2.4.i)
#Tensor Mechanics tutorial: the basics
#Step 2, part 4
#2D axisymmetric RZ simulation of uniaxial tension with J2 plasticity with
#hardening
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = necking_quad4.e
uniform_refine = 0
second_order = true
[]
[Physics/SolidMechanics/QuasiStatic]
[./block1]
strain = FINITE
add_variables = true
generate_output = 'stress_yy strain_yy vonmises_stress'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1e-9
plastic_models = J2
[../]
[]
[UserObjects]
[./hardening]
type = SolidMechanicsHardeningCubic
value_0 = 2.4e2
value_residual = 3.0e2
internal_0 = 0
internal_limit = 0.005
[../]
[./J2]
type = SolidMechanicsPlasticJ2
yield_strength = hardening
yield_function_tolerance = 1E-9
internal_constraint_tolerance = 1E-9
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_r
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_z
boundary = top
function = '0.0007*t'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.25
end_time = 20
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 1 101'
[]
[Postprocessors]
[./ave_stress_bottom]
type = SideAverageValue
variable = stress_yy
boundary = bottom
[../]
[./ave_strain_bottom]
type = SideAverageValue
variable = strain_yy
boundary = bottom
[../]
[]
[Outputs]
exodus = true
perf_graph = true
csv = true
print_linear_residuals = false
[]
(modules/navier_stokes/test/tests/finite_element/ins/velocity_channel/velocity_inletBC_by_parts.i)
# This input file tests outflow boundary conditions for the incompressible NS equations.
[GlobalParams]
gravity = '0 0 0'
integrate_p_by_parts = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 3.0
ymin = 0
ymax = 1.0
nx = 30
ny = 10
elem_type = QUAD9
[]
[Variables]
[./vel_x]
order = SECOND
family = LAGRANGE
[../]
[./vel_y]
order = SECOND
family = LAGRANGE
[../]
[./p]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[BCs]
[./x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'top bottom'
value = 0.0
[../]
[./y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'left top bottom'
value = 0.0
[../]
[./x_inlet]
type = FunctionDirichletBC
variable = vel_x
boundary = 'left'
function = 'inlet_func'
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = NEWTON
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = '300 bjacobi ilu 4'
line_search = none
nl_rel_tol = 1e-12
nl_max_its = 6
l_tol = 1e-6
l_max_its = 300
[]
[Outputs]
[./out]
type = Exodus
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * (y - 0.5)^2 + 1'
[../]
[]
(test/tests/postprocessors/side_extreme_value/nonlinear_variable.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
second_order = true
[]
[Variables]
[u]
order = SECOND
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[]
[BCs]
[top]
type = FunctionDirichletBC
variable = u
function = 'sin(x*2*pi)'
boundary = top
[]
[]
[Postprocessors]
[max]
type = SideExtremeValue
variable = u
boundary = top
[]
[min]
type = SideExtremeValue
variable = u
boundary = top
value_type = min
[]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Outputs]
csv = 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/solid_mechanics/test/tests/mohr_coulomb/small_deform_hard3.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
#
# friction_angle = 50deg, friction_angle_residual=51deg, friction_angle_rate = 1E7 (huge)
# cohesion = 10, cohesion_residual = 9.9, cohesion_rate = 1E7 (huge)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.25E-6*y*sin(t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningExponential
value_0 = 10
value_residual = 9.9
rate = 1E7
[../]
[./mc_phi]
type = SolidMechanicsHardeningExponential
value_0 = 0.8726646 # 50deg
value_residual = 0.8901179 # 51deg
rate = 1E7
[../]
[./mc_psi]
type = SolidMechanicsHardeningExponential
value_0 = 0
value_residual = 0.8726646 # 50deg
rate = 3000
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 4
mc_edge_smoother = 20
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
debug_jac_at_stress = '10 1 2 1 11 -3 2 -3 8'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1
debug_stress_change = 1E-5
debug_pm_change = 1E-6
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 30
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_hard3
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/time_steppers/timesequence_stepper/timesequence.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[ICs]
[./u_var]
type = FunctionIC
variable = u
function = exact_fn
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
end_time = 4.0
[./TimeStepper]
type = TimeSequenceStepper
time_sequence = '0 0.85 1.3 2 4'
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface00.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 1E-6m in y direction and 1E-6 in z direction.
# trial stress_yy = 1 and stress_zz = 1
#
# Then SimpleTester2 should activate and the algorithm will return to
# stress_yy = 0.75, stress_zz = 0.75
# internal2 should be 0.25
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1'
debug_jac_at_intnl = '1 1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface00
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/controls/time_periods/bcs/bcs.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[./right2]
type = FunctionDirichletBC
variable = u
boundary = right
function = (y*(t-1))+1
[../]
[]
[Executioner]
type = Transient
num_steps = 20
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
[Controls]
[./period0]
type = TimePeriod
disable_objects = 'BCs::right2'
start_time = '0'
end_time = '0.95'
execute_on = 'initial timestep_begin'
[../]
[./period2]
type = TimePeriod
disable_objects = 'BCs::right'
start_time = '1'
execute_on = 'initial timestep_begin'
[../]
[]
(modules/contact/test/tests/mortar_tm/2d/frictionless_first/finite.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD4
order = FIRST
name = 'finite'
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.3
xmax = 0.3
ymin = -10
ymax = 10
nx = 2
ny = 67
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.31
xmax = 0.91
ymin = 7.7
ymax = 8.5
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[action]
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'plank block'
[]
[]
[Contact]
[frictionless]
primary = plank_right
secondary = block_left
formulation = mortar
c_normal = 1e0
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
preset = false
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = block_right
function = '-0.04*sin(4*(t+1.5))+0.02'
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = block_right
function = '-t'
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'plank block'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 13.5
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'contact'
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[]
[Outputs]
file_base = ${name}
[comp]
type = CSV
show = 'contact'
[]
[out]
type = CSV
file_base = '${name}_out'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/contact/test/tests/dual_mortar/dm_mechanical_contact.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 2
xmin = -1.05
xmax = -0.05
ymin = -1
ymax = 0
nx = 4
ny = 8
elem_type = QUAD4
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3'
new_boundary = '10 11 12 13'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sidesets
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1
ymin = -1
ymax = 1
nx = 4
ny = 8
elem_type = QUAD4
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3'
new_boundary = '20 21 22 23'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sidesets
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = PiecewiseLinear
x ='0 0.5 2'
y = '0 0.1 0.1'
[]
[vertical_movement]
type = PiecewiseLinear
x ='0 0.5 2'
y = '0.001 0.001 0.2'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = horizontal_movement
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 21
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 21
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 13
function = vertical_movement
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Contact]
[leftright]
secondary = '11'
primary = '23'
formulation = mortar
model = frictionless
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_view'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu NONZERO 1e-10'
dt = 0.2
dtmin = 0.2
end_time = 1.0
l_max_its = 20
nl_max_its = 8
nl_rel_tol = 1e-6
snesmf_reuse_base = false
[]
[Outputs]
file_base = ./dm_contact_gmesh_out
[comp]
type = CSV
show = 'contact normal_lm avg_disp_x avg_disp_y max_disp_x max_disp_y min_disp_x min_disp_y'
execute_on = 'FINAL'
[]
[]
[Postprocessors]
[contact]
type = ContactDOFSetSize
variable = leftright_normal_lm
subdomain = leftright_secondary_subdomain
[]
[normal_lm]
type = ElementAverageValue
variable = leftright_normal_lm
block = leftright_secondary_subdomain
[]
[avg_disp_x]
type = ElementAverageValue
variable = disp_x
block = '1 2'
[]
[avg_disp_y]
type = ElementAverageValue
variable = disp_y
block = '1 2'
[]
[max_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
[]
[max_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
[]
[min_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
value_type = min
[]
[min_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
value_type = min
[]
[]
(test/tests/outputs/residual/output_residual_test.i)
[Mesh]
file = sq-2blk.e
uniform_refine = 3
[]
[Variables]
# variable in the whole domain
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
# subdomain restricted variable
[./v]
order = FIRST
family = LAGRANGE
block = '1'
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
# dudt = 3*t^2*(x^2 + y^2)
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[./exact_fn_v]
type = ParsedFunction
expression = t+1
[../]
[]
[Kernels]
[./ie_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = forcing_fn
[../]
[./ie_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1 2 3 4'
function = exact_fn
[../]
[./bottom_v]
type = DirichletBC
variable = v
boundary = 5
value = 0
[../]
[./top_v]
type = FunctionDirichletBC
variable = v
boundary = 6
function = exact_fn_v
[../]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
dt = 0.1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out
exodus = true
[]
[Debug]
show_var_residual = 'u v'
show_var_residual_norms = true
[]
(modules/xfem/test/tests/nucleation_uo/nucleate_bulkCrack.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[XFEM]
geometric_cut_userobjects = 'cut_mesh2'
qrule = volfrac
output_cut_plane = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 20
xmin = 0
xmax = 1.0
ymin = 0.0
ymax = 2.0
elem_type = QUAD4
[]
[]
[DomainIntegral]
integrals = 'InteractionIntegralKI InteractionIntegralKII'
displacements = 'disp_x disp_y'
crack_front_points_provider = cut_mesh2
2d=true
number_points_from_provider = 0
crack_direction_method = CurvedCrackFront
radius_inner = '0.15'
radius_outer = '0.45'
poissons_ratio = 0.0
youngs_modulus = 207000
block = 0
incremental = true
[]
[AuxVariables]
[strength]
order = CONSTANT
family = MONOMIAL
[]
[]
[ICs]
[strength]
type = VolumeWeightedWeibull
variable = strength
reference_volume = 1e-2
weibull_modulus = 1
median = 5000
[]
[]
[UserObjects]
[nucleate]
type = MeshCut2DRankTwoTensorNucleation
tensor = stress
scalar_type = MaxPrincipal
nucleation_threshold = strength
nucleation_radius = .21
edge_extension_factor = .1
[]
[cut_mesh2]
type = MeshCut2DFractureUserObject
mesh_file = make_edge_crack_in.e
k_critical=500000 #Large so that cracks will not grow
growth_increment = 0.11
nucleate_uo = nucleate
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
planar_formulation = plane_strain
add_variables = true
generate_output = 'stress_xx stress_yy vonmises_stress max_principal_stress'
[]
[]
[Functions]
[bc_pull_top]
type = ParsedFunction
expression = 0.0005*t
[]
[]
[BCs]
[top_edges]
type = FunctionDirichletBC
boundary = 'top'
variable = disp_y
function = bc_pull_top
[]
[bottom_x]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[]
[bottom_y]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 207000
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
l_max_its = 100
l_tol = 1e-2
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
start_time = 0.0
dt = 1.0
end_time = 5
max_xfem_update = 1
[]
[Outputs]
csv=true
execute_on = final
# exodus=true
# [xfemcutter]
# type=XFEMCutMeshOutput
# xfem_cutter_uo=cut_mesh2
# []
[]
(test/tests/restart/restart_steady_from_transient/transient.i)
# We run a simple problem (5 time steps and save off the solution)
# In part2, we load the solution and solve a steady problem. The test check, that the initial state in part 2 is the same as the last state from part1
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 20
ny = 20
parallel_type = replicated
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[./forcing_fn]
type = ParsedFunction
expression = -4+(x*x+y*y)
[../]
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
active = 'ie diff ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.2
start_time = 0
num_steps = 5
[]
[Outputs]
exodus = true
checkpoint = true
[]
(modules/stochastic_tools/test/tests/actions/parameter_study_action/sub_not_controllable.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = ADDiffusion
variable = u
[]
[]
[BCs]
[left]
type = FunctionDirichletBC
variable = u
boundary = left
function = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Postprocessors]
[average]
type = AverageNodalVariableValue
variable = u
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
# This is for testing distributions
p0 = 0
p1 = 0
p2 = 0
p3 = 0
p4 = 0
p5 = 0
p6 = 0
[Reporters]
[const]
type = ConstantReporter
real_names = 'p0 p1 p2 p3 p4 p5 p6'
real_values = '${p0} ${p1} ${p2} ${p3} ${p4} ${p5} ${p6}'
[]
[]
(modules/navier_stokes/test/tests/finite_element/ins/lid_driven/lid_driven_stabilized.i)
[GlobalParams]
gravity = '0 0 0'
laplace = true
integrate_p_by_parts = true
family = LAGRANGE
order = FIRST
# There are multiple types of stabilization possible in incompressible
# Navier Stokes. The user can specify supg = true to apply streamline
# upwind petrov-galerkin stabilization to the momentum equations. This
# is most useful for high Reynolds numbers, e.g. when inertial effects
# dominate over viscous effects. The user can also specify pspg = true
# to apply pressure stabilized petrov-galerkin stabilization to the mass
# equation. PSPG is a form of Galerkin Least Squares. This stabilization
# allows equal order interpolations to be used for pressure and velocity.
# Finally, the alpha parameter controls the amount of stabilization.
# For PSPG, decreasing alpha leads to increased accuracy but may induce
# spurious oscillations in the pressure field. Some numerical experiments
# suggest that alpha between .1 and 1 may be optimal for accuracy and
# robustness.
supg = true
pspg = true
alpha = 1e-1
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
nx = 64
ny = 64
elem_type = QUAD4
[]
[./corner_node]
type = ExtraNodesetGenerator
new_boundary = 'pinned_node'
nodes = '0'
input = gen
[../]
[]
[Variables]
[./vel_x]
[../]
[./vel_y]
[../]
[./p]
[../]
[]
[Kernels]
# mass
[./mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
# x-momentum, space
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
# y-momentum, space
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[BCs]
[./x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'bottom right left'
value = 0.0
[../]
[./lid]
type = FunctionDirichletBC
variable = vel_x
boundary = 'top'
function = 'lid_function'
[../]
[./y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'bottom right top left'
value = 0.0
[../]
[./pressure_pin]
type = DirichletBC
variable = p
boundary = 'pinned_node'
value = 0
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Functions]
[./lid_function]
# We pick a function that is exactly represented in the velocity
# space so that the Dirichlet conditions are the same regardless
# of the mesh spacing.
type = ParsedFunction
expression = '4*x*(1-x)'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'asm 2 ilu 4'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-13
nl_max_its = 6
l_tol = 1e-6
l_max_its = 500
[]
[Outputs]
exodus = true
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
[]
[Postprocessors]
[lin]
type = NumLinearIterations
[]
[nl]
type = NumNonlinearIterations
[]
[lin_tot]
type = CumulativeValuePostprocessor
postprocessor = 'lin'
[]
[nl_tot]
type = CumulativeValuePostprocessor
postprocessor = 'nl'
[]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/save_euler.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 2
ny = 2
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[./euler1]
order = CONSTANT
family = MONOMIAL
[../]
[./euler2]
order = CONSTANT
family = MONOMIAL
[../]
[./euler3]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = element
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = lage
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[./euler1]
type = MaterialRealVectorValueAux
variable = euler1
property = Euler_angles
component = 0
execute_on = timestep_end
[../]
[./euler2]
type = MaterialRealVectorValueAux
variable = euler2
property = Euler_angles
component = 1
execute_on = timestep_end
[../]
[./euler3]
type = MaterialRealVectorValueAux
variable = euler3
property = Euler_angles
component = 2
execute_on = timestep_end
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.01
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.01
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
(modules/solid_mechanics/test/tests/elem_prop_read_user_object/prop_grain_read.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 10
ny = 10
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[]
[GlobalParams]
volumetric_locking_correction=true
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.05*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'input_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 4
read_type = voronoi
nvoronoi = 3
use_random_voronoi = true
rand_seed = 25346
rve_type = periodic
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = elastic_strain
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./elasticity_tensor_with_Euler]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 1
nl_abs_step_tol = 1e-10
[]
[Outputs]
file_base = prop_grain_read_out
exodus = true
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
(test/tests/utils/2d_linear_interpolation/xyz_error.i)
[Mesh]
file = cube.e
# This problem only has 1 element, so using DistributedMesh in parallel
# isn't really an option, and we don't care that much about DistributedMesh
# in serial.
parallel_type = replicated
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./u]
type = PiecewiseBilinear
#x = '0 1 3' # Testing this error
y = '0 1 3'
z = '0 0 0 0 1 3 0 5 7'
axis = 0
[../]
[] # End Functions
[Kernels]
[./diffu]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = u
[../]
[]
[Executioner]
type = Transient
dt = 1
end_time = 2
nl_rel_tol = 1e-12
[]
(modules/solid_mechanics/test/tests/hyperelastic_viscoplastic/one_elem_base.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
base_name = test
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./peeq]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = test_stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = test_fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./peeq]
type = MaterialRealAux
variable = peeq
property = ep_eqv
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = '0.01*t'
[../]
[]
[UserObjects]
[./flowstress]
type = HEVPRambergOsgoodHardening
yield_stress = 100
hardening_exponent = 0.1
reference_plastic_strain = 0.002
intvar_prop_name = ep_eqv
[../]
[./flowrate]
type = HEVPFlowRatePowerLawJ2
reference_flow_rate = 0.0001
flow_rate_exponent = 50.0
flow_rate_tol = 1
strength_prop_name = flowstress
base_name = test
[../]
[./ep_eqv]
type = HEVPEqvPlasticStrain
intvar_rate_prop_name = ep_eqv_rate
[../]
[./ep_eqv_rate]
type = HEVPEqvPlasticStrainRate
flow_rate_prop_name = flowrate
[../]
[]
[Materials]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
base_name = test
[../]
[./viscop]
type = FiniteStrainHyperElasticViscoPlastic
block = 0
resid_abs_tol = 1e-18
resid_rel_tol = 1e-8
maxiters = 50
max_substep_iteration = 5
flow_rate_user_objects = 'flowrate'
strength_user_objects = 'flowstress'
internal_var_user_objects = 'ep_eqv'
internal_var_rate_user_objects = 'ep_eqv_rate'
base_name = test
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
C_ijkl = '2.8e5 1.2e5 1.2e5 2.8e5 1.2e5 2.8e5 0.8e5 0.8e5 0.8e5'
fill_method = symmetric9
base_name = test
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./peeq]
type = ElementAverageValue
variable = peeq
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.02
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
dtmax = 10.0
nl_rel_tol = 1e-10
dtmin = 0.02
num_steps = 10
[]
[Outputs]
file_base = one_elem_base
exodus = true
csv = false
[]
(test/tests/misc/check_error/bad_parsed_function_vars.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
nz = 2
[]
[Variables]
[./u]
block = 0
[../]
[]
[Functions]
[./sin_func]
type = ParsedFunction
expression = sin(y)
symbol_names = y # <- This is a bad - you can't specify x, y, z, or t
symbol_values = 0
[../]
[]
[Kernels]
[./diffused]
type = Diffusion
variable = u
block = 0
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 1
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = right
function = sin_func
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
execute_on = 'timestep_end'
[]
(modules/contact/test/tests/hertz_spherical/hertz_contact.i)
# Hertz Contact: Sphere on sphere
# Spheres have the same radius, Young's modulus, and Poisson's ratio.
# Define E:
# 1/E = (1-nu1^2)/E1 + (1-nu2^2)/E2
#
# Effective radius R:
# 1/R = 1/R1 + 1/R2
#
# F is the applied compressive load.
#
# Area of contact a::
# a^3 = 3FR/4E
#
# Depth of indentation d:
# d = a^2/R
#
#
# Let R1 = R2 = 2. Then R = 1.
#
# Let nu1 = nu2 = 0.25, E1 = E2 = 1.40625e7. Then E = 7.5e6.
#
# Let F = 10000. Then a = 0.1, d = 0.01.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
file = hertz_contact.e
[] # Mesh
[Functions]
[pressure]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 795.77471545947674 # 10000/pi/2^2
[]
[disp_y]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. -0.01 -0.01'
[]
[] # Functions
[AuxVariables]
[vonmises]
order = CONSTANT
family = MONOMIAL
[]
[hydrostatic]
order = CONSTANT
family = MONOMIAL
[] # AuxVariables
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = SMALL
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[]
[]
[BCs]
[base_x]
type = DirichletBC
variable = disp_x
boundary = 1000
value = 0.0
[]
[base_y]
type = DirichletBC
variable = disp_y
boundary = 1000
value = 0.0
[]
[base_z]
type = DirichletBC
variable = disp_z
boundary = 1000
value = 0.0
[]
[symm_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[]
[symm_z]
type = DirichletBC
variable = disp_z
boundary = 3
value = 0.0
[]
[disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[] # BCs
[]
[Contact]
[dummy_name]
primary = 1000
secondary = 100
normalize_penalty = true
tangential_tolerance = 1e-3
penalty = 1e+10
[]
[]
[Materials]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.40625e7
poissons_ratio = 0.25
[]
[stress]
type = ComputeLinearElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '1000'
youngs_modulus = 1e6
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeLinearElasticStress
block = '1000'
[] # Materials
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-7
l_max_its = 200
start_time = 0.0
dt = 0.5
end_time = 2.0 # Executioner
[]
[Postprocessors]
[maxdisp]
type = NodalVariableValue
nodeid = 122 # 123-1 where 123 is the exodus node number of the top-center node
variable = disp_y
[]
[]
[Outputs]
[out]
type = Exodus
[] # Outputs
[]
(test/tests/time_integrators/rk-2/2d-quadratic.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 20
ny = 20
elem_type = QUAD9
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*((x*x)+(y*y))-(4*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*((x*x)+(y*y))
[../]
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = ic
[../]
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
implicit = true
[../]
[./diff]
type = Diffusion
variable = u
implicit = false
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
implicit = false
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
[./TimeIntegrator]
type = ExplicitMidpoint
[../]
solve_type = 'LINEAR'
start_time = 0.0
num_steps = 10
dt = 0.0001
l_tol = 1e-8
[]
[Outputs]
exodus = true
perf_graph = true
[]
(modules/contact/test/tests/3d-mortar-contact/frictionless-mortar-3d_pg.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[disp_z]
block = '1 2'
[]
[mortar_normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[AuxVariables]
[aux_lm]
block = 'secondary_lower'
use_dual = false
[]
[]
[ICs]
[disp_z]
block = 1
variable = disp_z
value = '${fparse offset}'
type = ConstantIC
[]
[disp_x]
block = 1
variable = disp_x
value = 0
type = ConstantIC
[]
[disp_y]
block = 1
variable = disp_y
value = 0
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[disp_z]
type = MatDiffusion
variable = disp_z
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_petrov_galerkin = true
aux_lm = aux_lm
[]
[]
[Constraints]
[normal_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = 1
dt = .5
dtmin = .01
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor'
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'
l_max_its = 100
nl_max_its = 30
nl_abs_tol = 1e-12
line_search = 'none'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[lambda]
type = ElementAverageValue
variable = mortar_normal_lm
block = 'secondary_lower'
[]
[]
(test/tests/userobjects/internal_side_user_object/internal_side_user_object_two_materials.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = -1
ymin = -1
xmax = 1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD4
[]
[./subdomain_id]
input = gen
type = SubdomainPerElementGenerator
subdomain_ids = '0 1
1 1'
[../]
[]
[Functions]
[./fn_exact]
type = ParsedFunction
expression = 'x*x+y*y'
[../]
[./ffn]
type = ParsedFunction
expression = -4
[../]
[]
[UserObjects]
[./isuo]
type = InsideUserObject
variable = u
diffusivity = diffusivity
execute_on = 'initial timestep_end'
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = FIRST
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = fn_exact
[../]
[]
[Materials]
[./stateful1]
type = StatefulMaterial
block = 0
initial_diffusivity = 1
[../]
[./stateful2]
type = StatefulMaterial
block = 1
initial_diffusivity = 2
[../]
[]
[Postprocessors]
[./value]
type = InsideValuePPS
user_object = isuo
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(test/tests/mesh/adapt/initial_adaptivity_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = x*x+y*y
[../]
[./ffn]
type = ParsedFunction
expression = -4
[../]
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = BoundingBoxIC
x1 = -2
y1 = -2
x2 = 0
y2 = 2
inside = 1
outside = 0
[../]
[../]
[]
[Kernels]
[./udiff]
type = Diffusion
variable = u
[../]
[./forcing_fn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[./Adaptivity]
initial_adaptivity = 5
refine_fraction = 0.2
coarsen_fraction = 0.3
max_h_level = 4
[../]
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/mortar_dynamics/block-dynamics-action.i)
starting_point = 2e-1
offset = -0.19
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[file]
type = FileMeshGenerator
file = long-bottom-block-no-lower-d.e
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[DynamicTensorMechanics]
displacements = 'disp_x disp_y'
generate_output = 'stress_xx stress_yy'
strain = FINITE
block = '1 2'
stiffness_damping_coefficient = 1.0
hht_alpha = 0.0
[]
[inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[]
[Materials]
[elasticity_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elasticity_1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e8
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[strain]
type = ComputeFiniteStrain
block = '1 2'
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '7750'
[]
[]
[AuxVariables]
[vel_x]
block = '1 2'
[]
[accel_x]
block = '1 2'
[]
[vel_y]
block = '1 2'
[]
[accel_y]
block = '1 2'
[]
[vel_z]
block = '1 2'
[]
[accel_z]
block = '1 2'
[]
[]
[AuxKernels]
[accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = 'LINEAR timestep_end'
[]
[vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = 'LINEAR timestep_end'
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = 'LINEAR timestep_end'
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = 'LINEAR timestep_end'
[]
[]
[Contact]
[mechanical]
primary = 20
secondary = 10
formulation = mortar
model = frictionless
c_normal = 1e4
capture_tolerance = 1.0e-5
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 4 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 75
dt = 0.05
dtmin = .05
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err '
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
nl_max_its = 20
line_search = 'none'
snesmf_reuse_base = false
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
checkpoint = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = ''
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[]
(modules/combined/test/tests/power_law_hardening/PowerLawHardening.i)
# This is a test of the isotropic power law hardening constitutive model.
# In this problem, a single Hex 8 element is fixed at the bottom and pulled at the top
# at a constant rate of 0.1.
# Before yield, stress = strain (=0.1*t) as youngs modulus is 1.0.
# The yield stress for this problem is 0.25 ( as strength coefficient is 0.5 and strain rate exponent is 0.5).
# Therefore, the material should start yielding at t = 2.5 seconds and then follow stress = K *pow(strain,n) or
# stress ~ 0.5*pow(0.1*t,0.5).
#
# This tensor mechanics version of the power law hardening plasticity model matches
# the solid mechanics version for this toy problem under exodiff limits
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
type = GeneratedMesh
dim = 3
[]
[AuxVariables]
[./total_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./top_pull]
type = ParsedFunction
expression = t*(0.1)
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = SMALL
incremental = true
generate_output = 'stress_yy'
[]
[]
[AuxKernels]
[./total_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yy
index_i = 1
index_j = 1
[../]
[]
[BCs]
[./y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[../]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.0
poissons_ratio = 0.3
[../]
[./power_law_hardening]
type = IsotropicPowerLawHardeningStressUpdate
strength_coefficient = 0.5 #K
strain_hardening_exponent = 0.5 #n
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'power_law_hardening'
tangent_operator = elastic
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-ksp_snes_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 5.0
dt = 0.25
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./strain_yy]
type = ElementAverageValue
variable = total_strain_yy
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
(modules/navier_stokes/test/tests/finite_element/ins/velocity_channel/traction-supg.i)
# This input file tests outflow boundary conditions for the incompressible NS equations.
[GlobalParams]
gravity = '0 0 0'
integrate_p_by_parts = true
supg = true
preset = false
laplace = false
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 3.0
ymin = 0
ymax = 1.0
nx = 30
ny = 10
elem_type = QUAD9
[]
[Variables]
[vel_x]
order = SECOND
family = LAGRANGE
[]
[vel_y]
order = SECOND
family = LAGRANGE
[]
[p]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[]
[x_momentum_space]
type = INSMomentumTractionForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[]
[y_momentum_space]
type = INSMomentumTractionForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[]
[]
[BCs]
[x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'top bottom'
value = 0.0
[]
[y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'left top bottom'
value = 0.0
[]
[x_inlet]
type = FunctionDirichletBC
variable = vel_x
boundary = 'left'
function = 'inlet_func'
[]
[]
[Materials]
[const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '1 1'
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
solve_type = NEWTON
[]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = none
nl_rel_tol = 1e-12
[]
[Outputs]
[out]
type = Exodus
[]
[]
[Functions]
[inlet_func]
type = ParsedFunction
expression = '-4 * (y - 0.5)^2 + 1'
[]
[]
(modules/contact/test/tests/mortar_dynamics/frictional-mortar-3d-dynamics.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[AuxVariables]
[mortar_tangent_x]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_y]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_z]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[friction_x_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_x
component = 0
boundary = 'top_bottom'
[]
[friction_y_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_y
component = 1
boundary = 'top_bottom'
[]
[friction_z_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_z
component = 2
boundary = 'top_bottom'
[]
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
uniform_refine = 0
allow_renumbering = false
[]
[Variables]
[mortar_normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[mortar_tangential_lm]
block = 'secondary_lower'
use_dual = true
[]
[mortar_tangential_3d_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[Physics/SolidMechanics/Dynamic]
[all]
add_variables = true
hht_alpha = 0.0
newmark_beta = 0.25
newmark_gamma = 0.5
mass_damping_coefficient = 0.0
stiffness_damping_coefficient = 0.1
displacements = 'disp_x disp_y disp_z'
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
block = '1 2'
strain = FINITE
density = density
[]
[]
[Materials]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e4
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e5
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable_normal = mortar_normal_lm
lm_variable_tangential_one = mortar_tangential_lm
lm_variable_tangential_two = mortar_tangential_3d_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[friction]
type = ComputeDynamicFrictionalForceLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
friction_lm = mortar_tangential_lm
friction_lm_dir = mortar_tangential_3d_lm
mu = 0.4
c = 1e4
c_t = 1.0e4
newmark_gamma = 0.5
newmark_beta = 0.25
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_x
component = x
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_y
component = y
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_z
component = z
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = .025
dt = .025
dtmin = .001
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu NONZERO 1e-14'
nl_rel_tol = 1e-11
nl_abs_tol = 1e-11
line_search = 'basic'
[TimeIntegrator]
type = NewmarkBeta
gamma = 0.5
beta = 0.25
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'contact'
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_normal_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[frictional-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_lm
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[frictional-pressure-3d]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_3d_lm
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[tangent_x]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_x
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[tangent_y]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_y
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[]
(modules/solid_mechanics/test/tests/capped_drucker_prager/random.i)
# capped drucker-prager
# apply many random large deformations, checking that the algorithm returns correctly to
# the yield surface each time.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 125
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./shear_yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./tensile_yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./compressive_yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./shear_yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = shear_yield_fcn
[../]
[./tensile_fcn_auxk]
type = MaterialStdVectorAux
index = 1
property = plastic_yield_function
variable = tensile_yield_fcn
[../]
[./compressive_yield_fcn_auxk]
type = MaterialStdVectorAux
index = 2
property = plastic_yield_function
variable = compressive_yield_fcn
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./shear_max]
type = ElementExtremeValue
variable = shear_yield_fcn
outputs = 'console'
[../]
[./tensile_max]
type = ElementExtremeValue
variable = tensile_yield_fcn
outputs = 'console'
[../]
[./compressive_max]
type = ElementExtremeValue
variable = compressive_yield_fcn
outputs = 'console'
[../]
[./should_be_zero_shear]
type = FunctionValuePostprocessor
function = shear_should_be_zero_fcn
[../]
[./should_be_zero_compressive]
type = FunctionValuePostprocessor
function = compressive_should_be_zero_fcn
[../]
[./should_be_zero_tensile]
type = FunctionValuePostprocessor
function = tensile_should_be_zero_fcn
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console'
[../]
[]
[Functions]
[./shear_should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'shear_max'
[../]
[./tensile_should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'tensile_max'
[../]
[./compressive_should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'compressive_max'
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 1E3
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
yield_function_tolerance = 1 # irrelevant here
internal_constraint_tolerance = 1 # irrelevant here
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = dp
perform_finite_strain_rotations = false
[../]
[./dp]
type = CappedDruckerPragerStressUpdate
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-3
tip_smoother = 0.1E3
smoothing_tol = 0.1E3
max_NR_iterations = 1000
small_dilation = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random
exodus = false
[./csv]
type = CSV
[../]
[]
(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/variables/fe_monomial_const/monomial-const-1d.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = -1
xmax = 1
nx = 100
elem_type = EDGE3
[]
[Functions]
[./bc_fn]
type=ParsedFunction
expression=0
[../]
[./forcing_fn]
type = MTPiecewiseConst1D
[../]
[./solution]
type = MTPiecewiseConst1D
[../]
[]
[Variables]
[./u]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
active = 'diff forcing reaction'
[./diff]
type = Diffusion
variable = u
[../]
[./reaction]
type = Reaction
variable = u
[../]
[./forcing]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
# Note: MOOSE's DirichletBCs do not work properly with shape functions that do not
# have DOFs at the element edges. This test works because the solution
# has been designed to be zero at the boundary which is satisfied by the IC
# Ticket #1352
active = ''
[./bc_all]
type=FunctionDirichletBC
variable = u
boundary = 'left right'
function = bc_fn
[../]
[]
[Postprocessors]
[./dofs]
type = NumDOFs
[../]
[./h]
type = AverageElementSize
[../]
[./L2error]
type = ElementL2Error
variable = u
function = solution
[../]
[./H1error]
type = ElementH1Error
variable = u
function = solution
[../]
[./H1Semierror]
type = ElementH1SemiError
variable = u
function = solution
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1.e-9
[./Adaptivity]
[../]
[]
[Outputs]
execute_on = 'timestep_end'
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
(modules/solid_mechanics/test/tests/tensile/small_deform1_update_version.i)
# Using TensileStressUpdate
# checking for small deformation
# A single element is stretched by 1E-6m in z direction, and by small amounts in x and y directions
# stress_zz = Youngs Modulus*Strain = 2E6*1E-6 = 2 Pa
# tensile_strength is set to 1Pa
# Then the final stress should return to the yeild surface and the maximum principal stress value should be 1pa.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.2E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./tensile]
type = TensileStressUpdate
tensile_strength = ts
smoothing_tol = 0.0
yield_function_tol = 1.0E-9
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform1_update_version
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/contact/test/tests/verification/patch_tests/single_pnt_2d/single_point_2d_frictional.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
file = single_point_2d.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./penetration]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./appl_disp]
type = PiecewiseLinear
x = '0 0.001 0.101'
y = '0 0.0 -0.10'
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
save_in = 'saved_x saved_y'
[../]
[]
[AuxKernels]
[./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
[../]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = appl_disp
[../]
[./topy]
type = DirichletBC
variable = disp_y
boundary = 4
value = -0.002001
[../]
[]
[Materials]
[./bot_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e9
poissons_ratio = 0.3
[../]
[./bot_strain]
type = ComputePlaneFiniteStrain
block = '1'
[../]
[./bot_stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[../]
[./top_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./top_strain]
type = ComputePlaneFiniteStrain
block = '2'
[../]
[./top_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[../]
[./disp_x]
type = NodalVariableValue
nodeid = 5
variable = disp_x
[../]
[./disp_y]
type = NodalVariableValue
nodeid = 5
variable = disp_y
[../]
[./inc_slip_x]
type = NodalVariableValue
nodeid = 5
variable = inc_slip_x
[../]
[./inc_slip_y]
type = NodalVariableValue
nodeid = 5
variable = inc_slip_y
[../]
[./accum_slip_x]
type = NodalVariableValue
nodeid = 5
variable = accum_slip_x
[../]
[./accum_slip_y]
type = NodalVariableValue
nodeid = 5
variable = accum_slip_y
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 100
nl_max_its = 200
dt = 0.001
end_time = 0.001
num_steps = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-8
dtmin = 0.001
l_tol = 1e-3
[]
[Outputs]
file_base = single_point_2d_out_frictional_0_2_kin
print_linear_residuals = true
perf_graph = true
csv = true
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
primary = 2
secondary = 3
model = coulomb
formulation = kinematic
penalty = 1e12
normalize_penalty = true
friction_coefficient = '0.2'
tangential_tolerance = 1e-3
[../]
[]
[Dampers]
[./contact_slip]
type = ContactSlipDamper
primary = '2'
secondary = '3'
[../]
[]
(modules/contact/test/tests/sliding_block/in_and_out/frictionless_penalty.i)
# This is a benchmark test that checks constraint based frictionless
# contact using the penalty method. In this test a sinusoidal
# displacement is applied in the horizontal direction to simulate
# a small block come in and out of contact as it slides down a larger block.
#
# The sinusoid is of the form 0.4sin(4t)+0.2. The gold file is run
# on one processor and the benchmark
# case is run on a minimum of 4 processors to ensure no parallel variability
# in the contact pressure and penetration results. Further documentation can
# found in moose/modules/contact/doc/sliding_block/
#
[Mesh]
file = sliding_elastic_blocks_2d.e
patch_size = 80
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[./horizontal_movement]
type = ParsedFunction
expression = -0.04*sin(4*t)+0.02
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[../]
[]
[AuxKernels]
[./zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./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
[../]
[]
[Postprocessors]
[./nonlinear_its]
type = NumNonlinearIterations
execute_on = timestep_end
[../]
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 222
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 222
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = horizontal_movement
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
constant_on = SUBDOMAIN
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.1
end_time = 15
num_steps = 1000
l_tol = 1e-6
nl_rel_tol = 1e-10
nl_abs_tol = 1e-6
dtmin = 0.01
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
time_step_interval = 10
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
secondary = 3
primary = 2
model = frictionless
penalty = 1e+7
formulation = penalty
normal_smoothing_distance = 0.1
[../]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform1_cosserat.i)
# Using Cosserat with large layer thickness, so this should reduce to standard
# Using CappedMohrCoulombCosserat with tensile failure only
# checking for small deformation
# A single element is stretched by 1E-6m in z direction, and by small amounts in x and y directions
# stress_zz = Youngs Modulus*Strain = 2E6*1E-6 = 2 Pa
# tensile_strength is set to 1Pa
# Then the final stress should return to the yeild surface and the minimum principal stress value should be 1pa.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
perform_finite_strain_rotations = false
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.2E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 4.0E6
poisson = 0.0
layer_thickness = 1.0
joint_normal_stiffness = 1.0E16
joint_shear_stiffness = 1.0E16
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
[../]
[./tensile]
type = CappedMohrCoulombCosseratStressUpdate
tensile_strength = ts
compressive_strength = ts
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.0
yield_function_tol = 1.0E-9
host_youngs_modulus = 4.0E6
host_poissons_ratio = 0.0
[../]
[./stress]
type = ComputeMultipleInelasticCosseratStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
nl_abs_tol = 1E-10
type = Transient
[]
[Outputs]
file_base = small_deform1_cosserat
csv = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/lid_driven/lid_driven.i)
[GlobalParams]
gravity = '0 0 0'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
nx = 16
ny = 16
elem_type = QUAD9
[]
[./corner_node]
type = ExtraNodesetGenerator
new_boundary = 'pinned_node'
nodes = '0'
input = gen
[../]
[]
[Variables]
[./vel_x]
order = SECOND
family = LAGRANGE
[../]
[./vel_y]
order = SECOND
family = LAGRANGE
[../]
[./T]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 1.0
[../]
[../]
[./p]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
# mass
[./mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
# x-momentum, time
[./x_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_x
[../]
# x-momentum, space
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
# y-momentum, time
[./y_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_y
[../]
# y-momentum, space
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
# temperature
[./temperature_time]
type = INSTemperatureTimeDerivative
variable = T
[../]
[./temperature_space]
type = INSTemperature
variable = T
u = vel_x
v = vel_y
[../]
[]
[BCs]
[./x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'bottom right left'
value = 0.0
[../]
[./lid]
type = FunctionDirichletBC
variable = vel_x
boundary = 'top'
function = 'lid_function'
[../]
[./y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'bottom right top left'
value = 0.0
[../]
[./T_hot]
type = DirichletBC
variable = T
boundary = 'bottom'
value = 1
[../]
[./T_cold]
type = DirichletBC
variable = T
boundary = 'top'
value = 0
[../]
[./pressure_pin]
type = DirichletBC
variable = p
boundary = 'pinned_node'
value = 0
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu cp k'
prop_values = '1 1 1 .01'
[../]
[]
[Functions]
[./lid_function]
# We pick a function that is exactly represented in the velocity
# space so that the Dirichlet conditions are the same regardless
# of the mesh spacing.
type = ParsedFunction
expression = '4*x*(1-x)'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Transient
# Run for 100+ timesteps to reach steady state.
num_steps = 5
dt = .5
dtmin = .5
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'asm 2 ilu 4'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-13
nl_max_its = 6
l_tol = 1e-6
l_max_its = 500
[]
[Outputs]
file_base = lid_driven_out
exodus = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/weak_plane_shear/large_deform3.i)
# apply a number of "random" configurations and
# check that the algorithm returns to the yield surface
#
# must be careful here - we cannot put in arbitrary values of C_ijkl, otherwise the condition
# df/dsigma * C * flow_dirn < 0 for some stresses
# The important features that must be obeyed are:
# 0 = C_0222 = C_1222 (holds for transversely isotropic, for instance)
# C_0212 < C_0202 = C_1212 (holds for transversely isotropic)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
[]
[BCs]
[bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
# the following are "random" deformations
# each is O(1E-1) to provide large deformations
[topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = '(sin(0.1*t)+x)/1E1'
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = '(cos(t)+x*y)/1E1'
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 'sin(0.4321*t)*x*y*z/1E1'
[]
[]
[AuxVariables]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[yield_fcn_at_zero]
type = PointValue
point = '0 0 0'
variable = yield_fcn
outputs = 'console'
[]
[should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[]
[]
[Functions]
[should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'yield_fcn_at_zero'
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningConstant
value = 1E3
[]
[tanphi]
type = SolidMechanicsHardeningConstant
value = 0.577350269
[]
[tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.08748866
[]
[wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
smoother = 100
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
# the following is transversely isotropic, i think.
fill_method = symmetric9
C_ijkl = '3E9 1E9 3E9 3E9 3E9 6E9 1E9 1E9 9E9'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wps
transverse_direction = '0 0 1'
max_NR_iterations = 100
ep_plastic_tolerance = 1E-3
debug_fspb = crash
[]
[]
[Executioner]
end_time = 1E4
dt = 1
type = Transient
[]
[Outputs]
csv = true
[]
(test/tests/bcs/nodal_normals/cylinder_hexes_2nd.i)
[Mesh]
file = cylinder-hexes-2nd.e
[]
[Functions]
[./all_bc_fn]
type = ParsedFunction
expression = x*x+y*y
[../]
[./f_fn]
type = ParsedFunction
expression = -4
[../]
[]
[NodalNormals]
boundary = '1'
corner_boundary = 100
order = SECOND
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = f_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = 'all_bc_fn'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1e-13
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_radiation_test.i)
#
# This test replicates the legacy heat transfter test
# gap_heat_transfer_radiation/gap_heat_transfer_radiation_test.i
# The flux post processors give 3.753945e+01
#
[Mesh]
[file]
type = FileMeshGenerator
file = gap_heat_transfer_radiation_test.e
[]
[secondary]
type = LowerDBlockFromSidesetGenerator
sidesets = '2'
new_block_id = '200'
new_block_name = 'secondary_lower'
input = file
[]
[primary]
type = LowerDBlockFromSidesetGenerator
sidesets = '3'
new_block_id = '300'
new_block_name = 'primary_lower'
input = secondary
[]
[]
[Functions]
[temp]
type = PiecewiseLinear
x = '0 1'
y = '200 200'
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
scaling = 1e-8
[]
[lm]
order = FIRST
family = LAGRANGE
block = 'secondary_lower'
scaling = 1e-1
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
block = '1 2'
[]
[]
[BCs]
[temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[]
[temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[]
[]
[UserObjects]
[radiative]
type = GapFluxModelRadiative
secondary_emissivity = 0.5
primary_emissivity = 0.5
temperature = temp
boundary = 3
[]
[simple]
type = GapFluxModelSimple
k = 0.09187557
temperature = temp
boundary = 3
[]
[]
[Constraints]
[ced]
type = ModularGapConductanceConstraint
variable = lm
secondary_variable = temp
primary_boundary = 3
primary_subdomain = 300
secondary_boundary = 2
secondary_subdomain = 200
gap_flux_models = 'simple radiative'
[]
[]
[Materials]
[heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 10000000.0
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
end_time = 1.0
[]
[Postprocessors]
[temp_left]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[]
[temp_right]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[]
[flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[]
[flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/mean_cap_TC/random01.i)
# apply many random large deformations, checking that the algorithm returns correctly to
# the yield surface each time.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 125
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./max_yield_fcn]
type = ElementExtremeValue
variable = yield_fcn
outputs = 'console'
[../]
[./should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console'
[../]
[]
[Functions]
[./should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'max_yield_fcn'
[../]
[]
[UserObjects]
[./tensile_strength]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./compressive_strength]
type = SolidMechanicsHardeningConstant
value = -1.5
[../]
[./cap]
type = SolidMechanicsPlasticMeanCapTC
tensile_strength = tensile_strength
compressive_strength = compressive_strength
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
use_custom_returnMap = false
use_custom_cto = false
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
max_NR_iterations = 2
ep_plastic_tolerance = 1E-6
plastic_models = cap
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random01
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/examples/uexternaldb_coupling/test.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = left
value = 0
[]
[right]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = t
[]
[]
[UserObjects]
[uexternaldb]
type = AbaqusUExternalDB
plugin = umat
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
[]
[Materials]
[umat]
type = AbaqusUMATStress
constant_properties = '1 0.3'
num_state_vars = 0
plugin = umat
# plugin = ../../test/plugins/elastic
use_one_based_indexing = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
dt = 0.01
num_steps = 10
[]
[Outputs]
print_linear_residuals = false
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform11.i)
# Using CappedMohrCoulomb with compressive failure only
# checking for small deformation
# A single element is stretched by -1E-6m in z direction, and by small amounts in x and y directions
# stress_zz = Youngs Modulus*Strain = -2E6*1E-6 = -2 Pa
# compressive_strength is set to 1Pa
# Then the final stress should return to the yeild surface and the minimum principal stress value should be -1pa.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-0.1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-0.2E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-1E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.0
yield_function_tol = 1.0E-9
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform11
csv = true
[]
(modules/solid_mechanics/test/tests/multi/six_surface14.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 3
# SimpleTester3 with a = 0 and b = 1 and strength = 1.1
# SimpleTester4 with a = 1 and b = 0 and strength = 1.1
# SimpleTester5 with a = 1 and b = 1 and strength = 3.1
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 2.1E-6m in y direction and 3E-6 in z direction.
# trial stress_yy = 2.1 and stress_zz = 3.0
#
# This is similar to three_surface14.i, and a description is found there.
# The result should be stress_zz=1=stress_yy, with internal0=2
# and internal1=1.1
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2.1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '3.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./f3]
order = CONSTANT
family = MONOMIAL
[../]
[./f4]
order = CONSTANT
family = MONOMIAL
[../]
[./f5]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[./int3]
order = CONSTANT
family = MONOMIAL
[../]
[./int4]
order = CONSTANT
family = MONOMIAL
[../]
[./int5]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./f3]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 3
variable = f3
[../]
[./f4]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 4
variable = f4
[../]
[./f5]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 5
variable = f5
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[./int3]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 3
variable = int3
[../]
[./int4]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 4
variable = int4
[../]
[./int5]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 5
variable = int5
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./f3]
type = PointValue
point = '0 0 0'
variable = f3
[../]
[./f4]
type = PointValue
point = '0 0 0'
variable = f4
[../]
[./f5]
type = PointValue
point = '0 0 0'
variable = f5
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[./int3]
type = PointValue
point = '0 0 0'
variable = int3
[../]
[./int4]
type = PointValue
point = '0 0 0'
variable = int4
[../]
[./int5]
type = PointValue
point = '0 0 0'
variable = int5
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 3
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple3]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1.1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple4]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1.1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple5]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 3.1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2 simple3 simple4 simple5'
max_NR_iterations = 4
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1'
debug_jac_at_intnl = '1 1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = six_surface14
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/multi/three_surface02.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 0E-6m in y direction and 2.0E-6 in z direction.
# trial stress_yy = 0 and stress_zz = 2.0
#
# Then SimpleTester0 and SimpleTester2 should activate and the algorithm will return to
# the corner stress_yy=0.5, stress_zz=1, but this will require a negative plasticity
# multiplier for SimpleTester2, so it will be deactivated, and the algorithm will return to
# stress_yy = 0, stress_zz = 1
# internal0 should be 1.0, and others zero
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '2.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface02
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/drucker_prager/small_deform3_outer_tip.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-1.7E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticDruckerPragerHyperbolic
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
smoother = 8
mc_interpolation_scheme = outer_tip
yield_function_tolerance = 1E-7
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-13
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3_outer_tip
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test1q.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test1q.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1.e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test1q_out
exodus = true
[]
(modules/solid_mechanics/test/tests/anisotropic_patch/anisotropic_patch_test.i)
# Patch Test
# This test is designed to compute constant xx, yy, zz, xy, yz, and zx
# stress on a set of irregular hexes. The mesh is composed of one
# block with seven elements. The elements form a unit cube with one
# internal element. There is a nodeset for each exterior node.
# The cube is displaced by 1e-6 units in x, 2e-6 in y, and 3e-6 in z.
# The faces are sheared as well (1e-6, 2e-6, and 3e-6 for xy, yz, and
# zx). This gives a uniform strain/stress state for all six unique
# tensor components.
# With Young's modulus at 1e6 and Poisson's ratio at 0, the shear
# modulus is 5e5 (G=E/2/(1+nu)). Therefore,
#
# stress xx = 1e6 * 1e-6 = 1
# stress yy = 1e6 * 2e-6 = 2
# stress zz = 1e6 * 3e-6 = 3
# stress xy = 2 * 5e5 * 1e-6 / 2 = 0.5
# (2 * G * gamma_xy / 2 = 2 * G * epsilon_xy)
# stress yz = 2 * 5e5 * 2e-6 / 2 = 1
# stress zx = 2 * 5e5 * 3e-6 / 2 = 1.5
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]#Comment
file = anisotropic_patch_test.e
[] # Mesh
[Functions]
[./rampConstant1]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 1e-6
[../]
[./rampConstant2]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 2e-6
[../]
[./rampConstant3]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 3e-6
[../]
[./rampConstant4]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 4e-6
[../]
[./rampConstant6]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 6e-6
[../]
[] # Functions
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[] # Variables
[AuxVariables]
[./elastic_energy]
order = CONSTANT
family = MONOMIAL
[../]
[] # AuxVariables
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = SMALL
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx vonmises_stress hydrostatic_stress firstinv_stress secondinv_stress thirdinv_stress'
[../]
[]
[AuxKernels]
[./elastic_energy]
type = ElasticEnergyAux
variable = elastic_energy
[../]
[] # AuxKernels
[BCs]
[./node1_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./node1_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = rampConstant2
[../]
[./node1_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 1
function = rampConstant3
[../]
[./node2_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 2
function = rampConstant1
[../]
[./node2_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = rampConstant2
[../]
[./node2_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 2
function = rampConstant6
[../]
[./node3_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 3
function = rampConstant1
[../]
[./node3_y]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[../]
[./node3_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 3
function = rampConstant3
[../]
[./node4_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[../]
[./node4_y]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[./node4_z]
type = DirichletBC
variable = disp_z
boundary = 4
value = 0.0
[../]
[./node5_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 5
function = rampConstant1
[../]
[./node5_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = rampConstant4
[../]
[./node5_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 5
function = rampConstant3
[../]
[./node6_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 6
function = rampConstant2
[../]
[./node6_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 6
function = rampConstant4
[../]
[./node6_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 6
function = rampConstant6
[../]
[./node7_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 7
function = rampConstant2
[../]
[./node7_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 7
function = rampConstant2
[../]
[./node7_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 7
function = rampConstant3
[../]
[./node8_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 8
function = rampConstant1
[../]
[./node8_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 8
function = rampConstant2
[../]
[./node8_z]
type = DirichletBC
variable = disp_z
boundary = 8
value = 0.0
[../]
[] # BCs
[Materials]
[./elastic_tensor]
type = ComputeElasticityTensor
C_ijkl = '1e6 0.0 0.0 1e6 0.0 1e6 0.5e6 0.5e6 0.5e6'
fill_method = symmetric9
euler_angle_1 = 18.0
euler_angle_2 = 43.0
euler_angle_3 = 177.0
# Isotropic material constants
# The three euler angles do not matter
# youngs_modulus = 1e6
# poissons_ratio = 0.0
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[] # Materials
[Executioner]
type = Transient
nl_abs_tol = 1e-10
l_max_its = 20
start_time = 0.0
dt = 1.0
num_steps = 2
end_time = 2.0
[] # Executioner
[Outputs]
file_base = anisotropic_patch_test_out
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[] # Outputs
(modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/bicrystal_test.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[copper]
type = GeneratedMeshGenerator
dim = 3
elem_type = HEX8
[]
[copper_id]
type = SubdomainIDGenerator
input = copper
subdomain_id = 0
[]
[brass]
type = GeneratedMeshGenerator
dim = 3
zmax = 2
zmin = 1
elem_type = HEX8
[]
[brass_id]
type = SubdomainIDGenerator
input = brass
subdomain_id = 1
[]
[sticher]
type = StitchedMeshGenerator
inputs = 'copper_id brass_id'
stitch_boundaries_pairs = 'front back'
prevent_boundary_ids_overlap = false
[]
[]
[AuxVariables]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[copper_gss]
order = CONSTANT
family = MONOMIAL
block = 0
[]
[copper_slip_increment]
order = CONSTANT
family = MONOMIAL
block = 0
[]
[brass_gss]
order = CONSTANT
family = MONOMIAL
block = 1
[]
[brass_slip_increment]
order = CONSTANT
family = MONOMIAL
block = 1
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[copper]
strain = FINITE
incremental = true
add_variables = true
generate_output = stress_zz
block = 0
base_name = copper
[]
[brass]
strain = FINITE
incremental = true
add_variables = true
generate_output = stress_zz
block = 1
base_name = brass
[]
[]
[AuxKernels]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[gss_copper]
type = MaterialStdVectorAux
variable = copper_gss
property = copper_slip_resistance
index = 0
block = 0
execute_on = timestep_end
[]
[slip_inc_copper]
type = MaterialStdVectorAux
variable = copper_slip_increment
property = copper_slip_increment
index = 0
block = 0
execute_on = timestep_end
[]
[gss_brass]
type = MaterialStdVectorAux
variable = brass_gss
property = brass_slip_resistance
index = 0
block = 1
execute_on = timestep_end
[]
[slip_inc_brass]
type = MaterialStdVectorAux
variable = brass_slip_increment
property = brass_slip_increment
index = 0
block = 1
execute_on = timestep_end
[]
[]
[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
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.01*t'
[]
[]
[Materials]
[elasticity_tensor_copper]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
base_name = copper
block = 0
[]
[stress_copper]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl_copper'
tan_mod_type = exact
base_name = copper
block = 0
[]
[trial_xtalpl_copper]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
base_name = copper
block = 0
[]
[elasticity_tensor_brass]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
euler_angle_1 = 0.0
euler_angle_2 = 45.0
euler_angle_3 = 0.9
base_name = brass
block = 1
[]
[stress_brass]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl_brass'
tan_mod_type = exact
base_name = brass
block = 1
[]
[trial_xtalpl_brass]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
base_name = brass
block = 1
[]
[]
[Postprocessors]
[copper_stress_zz]
type = ElementAverageValue
variable = copper_stress_zz
block = 0
[]
[brass_stress_zz]
type = ElementAverageValue
variable = brass_stress_zz
block = 1
[]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[copper_gss]
type = ElementAverageValue
variable = copper_gss
block = 0
[]
[copper_slip_increment]
type = ElementAverageValue
variable = copper_slip_increment
block = 0
[]
[brass_gss]
type = ElementAverageValue
variable = brass_gss
block = 1
[]
[brass_slip_increment]
type = ElementAverageValue
variable = brass_slip_increment
block = 1
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.05
dtmin = 0.01
dtmax = 10.0
num_steps = 10
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/combined/test/tests/combined_plasticity_temperature/plasticity_temperature_dep_yield.i)
#
# This is a test of the piece-wise linear strain hardening model using the
# small strain formulation. This test exercises the temperature-dependent
# yield stress.
#
# Test procedure:
# 1. The element is pulled to and then beyond the yield stress for a given
# temperature.
# 2. The displacement is then constant while the temperature increases and
# the yield stress decreases. This results in a lower stress with more
# plastic strain.
# 3. The temperature decreases beyond its original value giving a higher
# yield stress. The displacement increases, causing increases stress to
# the new yield stress.
# 4. The temperature and yield stress are constant with increasing
# displacement giving a constant stress and more plastic strain.
#
# Plotting total_strain_yy on the x axis and stress_yy on the y axis shows
# the stress history in a clear way.
#
# s |
# t | *****
# r | *
# e | ***** *
# s | * * *
# s | * *
# |*
# +------------------
# total strain
#
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
incremental = true
add_variables = true
generate_output = 'stress_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./top_pull]
type = PiecewiseLinear
x = '0 1 2 4 5 6'
y = '0 0.025 0.05 0.05 0.06 0.085'
[../]
[./yield]
type = PiecewiseLinear
x = '400 500 600'
y = '6e3 5e3 4e3'
[../]
[./temp]
type = PiecewiseLinear
x = '0 1 2 3 4'
y = '500 500 500 600 400'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[../]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
function = temp
boundary = left
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 0
youngs_modulus = 2.0e5
poissons_ratio = 0.3
[../]
[./creep_plas]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
block = 0
inelastic_models = 'plasticity'
max_iterations = 50
absolute_tolerance = 1e-05
[../]
[./plasticity]
type = IsotropicPlasticityStressUpdate
block = 0
hardening_constant = 0
yield_stress_function = yield
temperature = temp
[../]
[./heat_conduction]
type = HeatConductionMaterial
block = 0
specific_heat = 1
thermal_conductivity = 1
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 6
dt = 0.1
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test4nns.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test4.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
# [./element_id]
# [../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_method = nodal_normal_based
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
# [./penetrate17]
# type = PenetrationAux
# variable = element_id
# boundary = 11
# paired_boundary = 12
# quantity = element_id
# [../]
#
# [./penetrate18]
# type = PenetrationAux
# variable = element_id
# boundary = 12
# paired_boundary = 11
# quantity = element_id
# [../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[]
[Outputs]
file_base = pl_test4nns_out
exodus = true
[]
[NodalNormals]
boundary = 11
corner_boundary = 20
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/small_deform_hard2.i)
# apply uniform stretches in x, y and z directions.
# let friction_angle = 60deg, friction_angle_residual=10deg, friction_angle_rate = 0.5E4
# With cohesion = C, friction_angle = phi, tip_smoother = T, the
# algorithm should return to
# sigma_m = (C*Cos(phi) - T)/Sin(phi)
# Or, when T=C,
# phi = 2*pi*n - 2*arctan(sigma_m/C)
# This allows checking of the relationship for phi
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningExponential
value_0 = 1.04719755 # 60deg
value_residual = 0.17453293 # 10deg
rate = 0.5E4
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 10
mc_edge_smoother = 25
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
debug_jac_at_stress = '10 1 2 1 10 3 2 3 10'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1E-3
debug_stress_change = 1E-5
debug_pm_change = 1E-6
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_hard2
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform7.i)
# Using CappedMohrCoulomb with tensile failure only
# A single element is incrementally stretched in the in the z and x directions
# This causes the return direction to be along the hypersurface sigma_I = sigma_II
# and the resulting stresses are checked to lie on the expected yield surface
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = finite
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '4*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '4*z*t'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 2.0'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.5
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 0.1
type = Transient
[]
[Outputs]
file_base = small_deform7
csv = true
[]
(test/tests/misc/initial_solution_copy/solutions_equal.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[Functions]
[./initial_func]
type = ParsedFunction
expression = sin(pi*x)*sin(pi*y)
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[./source]
type = BodyForce
variable = u
value = 1
[../]
[]
[BCs]
active = 'func_bc'
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[./func_bc]
type = FunctionDirichletBC
variable = u
boundary = 'bottom right top left'
function = initial_func
[../]
[]
[Postprocessors]
[./test_pp]
type = TestCopyInitialSolution
execute_on = timestep_begin
[../]
[]
[Executioner]
type = Transient
num_steps = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[ICs]
[./initial]
function = initial_func
variable = u
type = FunctionIC
[../]
[]
(python/mms/test/mms_temporal.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 8
ny = 8
[]
[Variables]
[u][]
[]
[Kernels]
[time]
type = ADTimeDerivative
variable = u
[]
[diff]
type = ADDiffusion
variable = u
[]
[force]
type = BodyForce
variable = u
function = force
[]
[]
[Functions]
[exact]
type = ParsedFunction
expression = 't^3*x*y'
[]
[force]
type = ParsedFunction
expression = '3*x*y*t^2'
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
function = exact
boundary = 'left right top bottom'
[]
[]
[Postprocessors]
[error]
type = ElementL2Error
function = exact
variable = u
[]
[h]
type = AverageElementSize
[]
[]
[Executioner]
type = Transient
dt = 1
end_time = 3
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
csv = true
[]
(modules/contact/test/tests/frictional/single_point_2d/single_point_2d_tp.i)
[Mesh]
file = single_point_2d.e
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./horizontal_movement]
type = ParsedFunction
expression = t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
save_in = 'saved_x saved_y'
diag_save_in = 'diag_saved_x diag_saved_y'
[../]
[]
[AuxKernels]
[./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
[../]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./botx2]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0.0
[../]
[./boty2]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = horizontal_movement
[../]
[./topy]
type = DirichletBC
variable = disp_y
boundary = 4
value = -0.005
[../]
[]
[Materials]
[./bottom]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e9
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[./top]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[../]
[./ref_resid_x]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_x
[../]
[./ref_resid_y]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_y
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 100
nl_max_its = 200
dt = 0.001
end_time = 0.01
num_steps = 1000
nl_rel_tol = 1e-08
nl_abs_tol = 1e-08
dtmin = 0.001
l_tol = 1e-3
[]
[Outputs]
exodus = true
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
primary = 2
secondary = 3
model = coulomb
friction_coefficient = '0.25'
formulation = tangential_penalty
penalty = 1e10
[../]
[]
[Dampers]
[./contact_slip]
type = ContactSlipDamper
primary = '2'
secondary = '3'
[../]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform9_cosserat.i)
# Using Cosserat with large layer thickness, so this should reduce to standard
# Using CappedMohrCoulombCosserat with tensile failure only
# A single unit element is stretched in a complicated way that
# the trial stress is
# 1.51515 0.8 0.666667
# 0.8 -3.74545 -1.85037e-17
# 0.7 -1.66533e-17 -1.27273
# with symmetric part
# 1.51515 0.8 0.6833
# 0.8 -3.74545 -1.85037e-17
# 0.6833 -1.66533e-17 -1.27273
#
# This has eigenvalues
# la = {-3.86844, 1.78368, -1.41827}
# and eigenvectors
#
# {0.15183, -0.987598, -0.03997},
# {-0.966321, -0.139815, -0.216044},
# {-0.207777, -0.0714259, 0.975565}}
#
# The tensile strength is 0.5 and Young=1 and Poisson=0.25,
# with E_0000/E_0011 = nu / (1 - nu) = 0.333333
# Using smoothing_tol=0.01, the return-map algorithm should
# return to stress_I = 0.5, which is a reduction of 1.28368, so
# stress_II = -1.41827 - 1.28368 * 0.33333 = -1.846
# stress_III = -3.86844 - 1.28368 * 0.33333 = -4.296
#
# The final stress symmetric stress is
#
# {0.29, 0.69, 0.51},
# {0.69, -4.19, -0.03},
# {0.51, -0.03, -1.74}
#
# and a final unsymmetric stress of
#
# {0.29, 0.69, 0.49},
# {0.69, -4.19, -0.03},
# {0.52, -0.03, -1.74}
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '3*x-y+z'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '3*x-4*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = 'x-2*z'
[../]
[./wc_x]
type = DirichletBC
variable = wc_x
boundary = 'front back'
value = 0.0
[../]
[./wc_y]
type = DirichletBC
variable = wc_y
boundary = 'front back'
value = 0.0
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_I]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_II]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_III]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_I]
type = RankTwoScalarAux
scalar_type = MaxPrincipal
rank_two_tensor = stress
variable = stress_I
selected_qp = 0
[../]
[./stress_II]
type = RankTwoScalarAux
scalar_type = MidPrincipal
rank_two_tensor = stress
variable = stress_II
selected_qp = 0
[../]
[./stress_III]
type = RankTwoScalarAux
scalar_type = MinPrincipal
rank_two_tensor = stress
variable = stress_III
selected_qp = 0
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = stress_I
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = stress_II
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = stress_III
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yx]
type = PointValue
point = '0 0 0'
variable = stress_yx
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zx]
type = PointValue
point = '0 0 0'
variable = stress_zx
[../]
[./s_zy]
type = PointValue
point = '0 0 0'
variable = stress_zy
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 1
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1.0
joint_shear_stiffness = 2.0
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
[../]
[./tensile]
type = CappedMohrCoulombCosseratStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.001
yield_function_tol = 1.0E-12
host_youngs_modulus = 1.0
host_poissons_ratio = 0.25
[../]
[./stress]
type = ComputeMultipleInelasticCosseratStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
nl_abs_tol = 1E-10
type = Transient
[]
[Outputs]
file_base = small_deform9_cosserat
csv = true
[]
(modules/solid_mechanics/test/tests/weak_plane_tensile/large_deform2.i)
# large strain with weak-plane normal rotating with mesh
# First rotate mesh 45deg about x axis
# Then apply stretch in the y=z direction.
# This should create a pure tensile load (no shear), which
# should return to the yield surface.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_yz stress_zz'
[]
[BCs]
# rotate:
# ynew = c*y + s*z. znew = -s*y + c*z
[bottomx]
type = FunctionDirichletBC
variable = disp_x
boundary = back
function = '0'
[]
[bottomy]
type = FunctionDirichletBC
variable = disp_y
boundary = back
function = '0.70710678*y+0.70710678*z-y'
[]
[bottomz]
type = FunctionDirichletBC
variable = disp_z
boundary = back
function = '-0.70710678*y+0.70710678*z-z'
[]
[topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = '0'
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = '0.70710678*y+0.70710678*z-y+if(t>0,1,0)'
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '-0.70710678*y+0.70710678*z-z+if(t>0,1,0)'
[]
[]
[AuxVariables]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[]
[s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[]
[s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[]
[UserObjects]
[str]
type = SolidMechanicsHardeningConstant
value = 1.0E6
[]
[wpt]
type = SolidMechanicsPlasticWeakPlaneTensile
tensile_strength = str
yield_function_tolerance = 1E-7
internal_constraint_tolerance = 1E-5
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wpt
transverse_direction = '0 0 1'
ep_plastic_tolerance = 1E-9
[]
[]
[Executioner]
start_time = -1
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/materials/correctness/stvenantkirchhoff.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[Functions]
[strain]
type = ParsedFunction
expression = 't'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[boty]
type = DirichletBC
preset = true
boundary = bottom
variable = disp_y
value = 0.0
[]
[backz]
type = DirichletBC
preset = true
boundary = back
variable = disp_z
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = strain
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
shear_modulus = 67000.0
lambda = 40000.0
[]
[compute_stress]
type = ComputeStVenantKirchhoffStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[AuxVariables]
[s11]
family = MONOMIAL
order = CONSTANT
[]
[s21]
family = MONOMIAL
order = CONSTANT
[]
[s31]
family = MONOMIAL
order = CONSTANT
[]
[s12]
family = MONOMIAL
order = CONSTANT
[]
[s22]
family = MONOMIAL
order = CONSTANT
[]
[s32]
family = MONOMIAL
order = CONSTANT
[]
[s13]
family = MONOMIAL
order = CONSTANT
[]
[s23]
family = MONOMIAL
order = CONSTANT
[]
[s33]
family = MONOMIAL
order = CONSTANT
[]
[F11]
family = MONOMIAL
order = CONSTANT
[]
[F21]
family = MONOMIAL
order = CONSTANT
[]
[F31]
family = MONOMIAL
order = CONSTANT
[]
[F12]
family = MONOMIAL
order = CONSTANT
[]
[F22]
family = MONOMIAL
order = CONSTANT
[]
[F32]
family = MONOMIAL
order = CONSTANT
[]
[F13]
family = MONOMIAL
order = CONSTANT
[]
[F23]
family = MONOMIAL
order = CONSTANT
[]
[F33]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[s11]
type = RankTwoAux
variable = s11
rank_two_tensor = pk1_stress
index_i = 0
index_j = 0
[]
[s21]
type = RankTwoAux
variable = s21
rank_two_tensor = pk1_stress
index_i = 1
index_j = 0
[]
[s31]
type = RankTwoAux
variable = s31
rank_two_tensor = pk1_stress
index_i = 2
index_j = 0
[]
[s12]
type = RankTwoAux
variable = s12
rank_two_tensor = pk1_stress
index_i = 0
index_j = 1
[]
[s22]
type = RankTwoAux
variable = s22
rank_two_tensor = pk1_stress
index_i = 1
index_j = 1
[]
[s32]
type = RankTwoAux
variable = s32
rank_two_tensor = pk1_stress
index_i = 2
index_j = 1
[]
[s13]
type = RankTwoAux
variable = s13
rank_two_tensor = pk1_stress
index_i = 0
index_j = 2
[]
[s23]
type = RankTwoAux
variable = s23
rank_two_tensor = pk1_stress
index_i = 1
index_j = 2
[]
[s33]
type = RankTwoAux
variable = s33
rank_two_tensor = pk1_stress
index_i = 2
index_j = 2
[]
[F11]
type = RankTwoAux
variable = F11
rank_two_tensor = deformation_gradient
index_i = 0
index_j = 0
[]
[F21]
type = RankTwoAux
variable = F21
rank_two_tensor = deformation_gradient
index_i = 1
index_j = 0
[]
[F31]
type = RankTwoAux
variable = F31
rank_two_tensor = deformation_gradient
index_i = 2
index_j = 0
[]
[F12]
type = RankTwoAux
variable = F12
rank_two_tensor = deformation_gradient
index_i = 0
index_j = 1
[]
[F22]
type = RankTwoAux
variable = F22
rank_two_tensor = deformation_gradient
index_i = 1
index_j = 1
[]
[F32]
type = RankTwoAux
variable = F32
rank_two_tensor = deformation_gradient
index_i = 2
index_j = 1
[]
[F13]
type = RankTwoAux
variable = F13
rank_two_tensor = deformation_gradient
index_i = 0
index_j = 2
[]
[F23]
type = RankTwoAux
variable = F23
rank_two_tensor = deformation_gradient
index_i = 1
index_j = 2
[]
[F33]
type = RankTwoAux
variable = F33
rank_two_tensor = deformation_gradient
index_i = 2
index_j = 2
[]
[]
[Postprocessors]
[s11]
type = ElementAverageValue
variable = s11
execute_on = 'initial timestep_end'
[]
[s21]
type = ElementAverageValue
variable = s21
execute_on = 'initial timestep_end'
[]
[s31]
type = ElementAverageValue
variable = s31
execute_on = 'initial timestep_end'
[]
[s12]
type = ElementAverageValue
variable = s12
execute_on = 'initial timestep_end'
[]
[s22]
type = ElementAverageValue
variable = s22
execute_on = 'initial timestep_end'
[]
[s32]
type = ElementAverageValue
variable = s32
execute_on = 'initial timestep_end'
[]
[s13]
type = ElementAverageValue
variable = s13
execute_on = 'initial timestep_end'
[]
[s23]
type = ElementAverageValue
variable = s23
execute_on = 'initial timestep_end'
[]
[s33]
type = ElementAverageValue
variable = s33
execute_on = 'initial timestep_end'
[]
[F11]
type = ElementAverageValue
variable = F11
execute_on = 'initial timestep_end'
[]
[F21]
type = ElementAverageValue
variable = F21
execute_on = 'initial timestep_end'
[]
[F31]
type = ElementAverageValue
variable = F31
execute_on = 'initial timestep_end'
[]
[F12]
type = ElementAverageValue
variable = F12
execute_on = 'initial timestep_end'
[]
[F22]
type = ElementAverageValue
variable = F22
execute_on = 'initial timestep_end'
[]
[F32]
type = ElementAverageValue
variable = F32
execute_on = 'initial timestep_end'
[]
[F13]
type = ElementAverageValue
variable = F13
execute_on = 'initial timestep_end'
[]
[F23]
type = ElementAverageValue
variable = F23
execute_on = 'initial timestep_end'
[]
[F33]
type = ElementAverageValue
variable = F33
execute_on = 'initial timestep_end'
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 5
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 0.01
dtmin = 0.01
end_time = 0.01
[]
[Outputs]
exodus = false
csv = true
[]
(test/tests/misc/check_error/uo_pps_name_collision_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 5
ny = 5
elem_type = QUAD4
[]
[UserObjects]
[./ud]
type = MTUserObject
scalar = 2
vector = '9 7 5'
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = -2
[../]
[./exact_fn]
type = ParsedFunction
expression = x*x
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = FIRST
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = UserObjectKernel
variable = u
user_object = ud
[]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
function = exact_fn
boundary = '0 1 2 3'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Postprocessors]
[./ud]
type = NumDOFs
[]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out
[]
(modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-fretting-wear-test-action.i)
starting_point = 0.5e-1
offset = -0.045
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[file]
type = FileMeshGenerator
file = long-bottom-block-1elem-blocks.e
[]
[remote]
type = BlockDeletionGenerator
input = file
block = '3 4'
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[]
[Problem]
material_coverage_check = false
kernel_coverage_check = false
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Physics/SolidMechanics/Dynamic]
[all]
hht_alpha = 0.0
newmark_beta = 0.25
newmark_gamma = 0.5
mass_damping_coefficient = 0.0
stiffness_damping_coefficient = 1.0
accelerations = 'accel_x accel_y'
generate_output = 'stress_xx stress_yy'
block = '1 2'
strain = FINITE
density = density
[]
[]
[Materials]
[elasticity_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elasticity_1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e8
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '7750'
[]
[]
[AuxVariables]
[worn_depth]
block = 'normal_secondary_subdomain'
[]
[gap_vel]
block = 'normal_secondary_subdomain'
[]
[vel_x]
order = FIRST
family = LAGRANGE
[]
[vel_y]
order = FIRST
family = LAGRANGE
[]
[accel_x]
order = FIRST
family = LAGRANGE
[]
[accel_y]
order = FIRST
family = LAGRANGE
[]
[]
[AuxKernels]
[gap_vel]
type = WeightedGapVelAux
variable = gap_vel
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = normal_primary_subdomain
secondary_subdomain = normal_secondary_subdomain
disp_x = disp_x
disp_y = disp_y
[]
[worn_depth]
type = MortarArchardsLawAux
variable = worn_depth
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = normal_primary_subdomain
secondary_subdomain = normal_secondary_subdomain
displacements = 'disp_x disp_y'
friction_coefficient = 0.5
energy_wear_coefficient = 1.0e-6
normal_pressure = normal_normal_lm
execute_on = 'TIMESTEP_END'
[]
[]
[Contact]
[normal]
formulation = mortar
model = coulomb
primary = 20
secondary = 10
c_normal = 1e+06
c_tangential = 1.0e+6
capture_tolerance = 1.0e-5
newmark_beta = 0.25
newmark_gamma = 0.5
mortar_dynamics = true
wear_depth = worn_depth
friction_coefficient = 0.5
normalize_c = true
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(4.0 * pi / 4 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * (cos(32.0 * pi / 4 * t) - 1.0)'
[]
[]
[Executioner]
type = Transient
end_time = 0.5
dt = 0.05
dtmin = .002
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type '
'-pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist NONZERO 1e-15'
nl_max_its = 40
l_max_its = 15
line_search = 'l2'
snesmf_reuse_base = true
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
checkpoint = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = normal_normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(modules/combined/test/tests/elastic_patch/ad_elastic_patch_rz_nonlinear.i)
#
# This problem is taken from the Abaqus verification manual:
# "1.5.4 Patch test for axisymmetric elements"
# The stress solution is given as:
# xx = yy = zz = 19900
# xy = 0
#
# If strain = log(1+1e-2) = 0.00995033...
# then
# stress = E/(1+PR)/(1-2*PR)*(1-PR +PR +PR)*strain = 19900.6617
# with E = 1e6 and PR = 0.25.
#
# The code computes stress = 19900.6617 when
# increment_calculation = eigen. There is a small error when the
# rashidapprox option is used.
#
# Since the strain is 1e-3 in all three directions, the new density should be
# new_density = original_density * V_0 / V
# new_density = 0.283 / (1 + 9.95e-3 + 9.95e-3 + 9,95e-3) = 0.2747973
#
# The code computes a new density of .2746770
[GlobalParams]
displacements = 'disp_x disp_y'
temperature = temp
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = elastic_patch_rz.e
[]
[Variables]
[temp]
initial_condition = 117.56
[]
[]
[Physics/SolidMechanics/QuasiStatic/All]
strain = FINITE
decomposition_method = EigenSolution
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[]
[Kernels]
[heat]
type = TimeDerivative
variable = temp
[]
[]
[BCs]
[ur]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = 10
function = '1e-2*x'
[]
[uz]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 10
function = '1e-2*y'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[Materials]
[density]
type = ADDensity
density = 0.283
outputs = all
[]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 1.0
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/tensile/small_deform_hard3_update_version.i)
# checking for small deformation, with cubic hardening
# A single element is repeatedly stretched by in z direction
# tensile_strength is set to 1Pa, tensile_strength_residual = 0.5Pa, and limit value = 1E-5
# This allows the hardening of the tensile strength to be observed
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[./iter_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningCubic
value_0 = 1.0
value_residual = 0.5
internal_0 = 0
internal_limit = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./tensile]
type = TensileStressUpdate
tensile_strength = ts
smoothing_tol = 0.0
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 10
dt = 1.0
type = Transient
[]
[Outputs]
file_base = small_deform_hard3_update_version
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/examples/hyper_elastic_test.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 5
ny = 5
nz = 5
use_displaced_mesh = false
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Functions]
[./top_displacement]
type = ParsedFunction
expression = t
[../]
[]
[BCs]
[./bottom_x]
type = DirichletBC
variable = 'disp_x'
boundary = bottom
value = 0
[../]
[./bottom_y]
type = DirichletBC
variable = 'disp_y'
boundary = bottom
value = 0
[../]
[./bottom_z]
type = DirichletBC
variable = 'disp_z'
boundary = bottom
value = 0
[../]
[./top_x]
type = DirichletBC
variable = 'disp_x'
boundary = top
value = 0
[../]
[./top_y]
type = FunctionDirichletBC
variable = 'disp_y'
boundary = top
function = top_displacement
[../]
[./top_z]
type = DirichletBC
variable = 'disp_z'
boundary = top
value = 0
[../]
[]
[Kernels]
[./x]
type = ADStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./y]
type = ADStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./z]
type = ADStressDivergenceTensors
variable = disp_z
component = 2
[../]
[]
[Materials]
[./rubber_elasticity]
type = ComputeIsotropicElasticityTensor
# lambda = 1.2e7
# shear_modulus = 1.2e7
youngs_modulus = 1
poissons_ratio = 0.45 # the closer this gets to 0.5 the worse the problem becomes
[../]
[]
[Materials]
[./strain]
type = ADComputeGreenLagrangeStrain
[../]
[./stress]
type = ADComputeLinearElasticStress
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
dt = 0.05
dtmin = 0.05
nl_abs_tol = 1e-10
num_steps = 500
[]
[Outputs]
execute_on = 'INITIAL TIMESTEP_END'
exodus = true
print_linear_residuals = false
[]
(modules/contact/test/tests/verification/hertz_cyl/half_symm_q8/hertz_cyl_half_1deg_template1.i)
[GlobalParams]
order = SECOND
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Mesh]
file = hertz_cyl_half_1deg.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
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[./tang_force_x]
[../]
[./tang_force_y]
[../]
[]
[Functions]
[./disp_ramp_vert]
type = PiecewiseLinear
x = '0. 1. 3.5'
y = '0. -0.0020 -0.0020'
[../]
[./disp_ramp_horz]
type = PiecewiseLinear
x = '0. 1. 3.5'
y = '0. 0.0 0.0014'
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./inc_slip_x]
type = PenetrationAux
variable = inc_slip_x
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./inc_slip_y]
type = PenetrationAux
variable = inc_slip_y
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./accum_slip_x]
type = PenetrationAux
variable = accum_slip_x
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./accum_slip_y]
type = PenetrationAux
variable = accum_slip_y
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./tang_force_x]
type = PenetrationAux
variable = tang_force_x
quantity = tangential_force_x
boundary = 3
paired_boundary = 2
[../]
[./tang_force_y]
type = PenetrationAux
variable = tang_force_y
quantity = tangential_force_y
boundary = 3
paired_boundary = 2
[../]
[./penetration]
type = PenetrationAux
variable = penetration
boundary = 3
paired_boundary = 2
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[../]
[./disp_x639]
type = NodalVariableValue
nodeid = 638
variable = disp_x
[../]
[./disp_y639]
type = NodalVariableValue
nodeid = 638
variable = disp_y
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[]
[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'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff2_strain]
type = ComputeFiniteStrain
block = '2'
[../]
[./stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[../]
[./stuff3_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '3'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff3_strain]
type = ComputeFiniteStrain
block = '3'
[../]
[./stuff3_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[../]
[./stuff4_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '4'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff4_strain]
type = ComputeFiniteStrain
block = '4'
[../]
[./stuff4_stress]
type = ComputeFiniteStrainElasticStress
block = '4'
[../]
[./stuff5_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '5'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff5_strain]
type = ComputeFiniteStrain
block = '5'
[../]
[./stuff5_stress]
type = ComputeFiniteStrainElasticStress
block = '5'
[../]
[./stuff6_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '6'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff6_strain]
type = ComputeFiniteStrain
block = '6'
[../]
[./stuff6_stress]
type = ComputeFiniteStrainElasticStress
block = '6'
[../]
[./stuff7_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '7'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff7_strain]
type = ComputeFiniteStrain
block = '7'
[../]
[./stuff7_stress]
type = ComputeFiniteStrainElasticStress
block = '7'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-6
nl_rel_tol = 1e-5
l_max_its = 100
nl_max_its = 200
start_time = 0.0
end_time = 3.5
l_tol = 1e-3
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
[../]
[./cont_press]
type = NodalValueSampler
variable = contact_pressure
boundary = '3'
sort_by = id
[../]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[./chkfile]
type = CSV
show = 'x_disp y_disp cont_press'
start_time = 0.9
execute_vector_postprocessors_on = timestep_end
[../]
[./chkfile2]
type = CSV
show = 'bot_react_x bot_react_y disp_x639 disp_y639 top_react_x top_react_y'
start_time = 0.9
execute_vector_postprocessors_on = timestep_end
[../]
[./outfile]
type = CSV
delimiter = ' '
execute_vector_postprocessors_on = none
[../]
[]
[Contact]
[./interface]
primary = 2
secondary = 3
normalize_penalty = true
tangential_tolerance = 1e-3
penalty = 1e+10
[../]
[]
(modules/heat_transfer/test/tests/heat_conduction/min_gap/min_gap.i)
[Mesh]
type = MeshGeneratorMesh
displacements = 'disp_x disp_y'
[./left_gen]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 3
xmin = -3
xmax = 0
ymin = -5
ymax = 5
[../]
[./right_gen]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 3
xmin = 3
xmax = 6
ymin = -5
ymax = 5
[../]
[./left_and_right]
type = MeshCollectionGenerator
inputs = 'left_gen right_gen'
[../]
[./leftleft]
type = SideSetsAroundSubdomainGenerator
block = 0
new_boundary = leftleft
normal = '-1 0 0'
input = left_and_right
[../]
[./leftright]
type = SideSetsAroundSubdomainGenerator
block = 0
new_boundary = leftright
normal = '1 0 0'
input = leftleft
[../]
[./right]
type = SubdomainBoundingBoxGenerator
top_right = '6 5 0'
bottom_left = '3 -5 0'
block_id = 1
input = leftright
[../]
[./rightleft]
type = SideSetsAroundSubdomainGenerator
block = 1
new_boundary = rightleft
normal = '-1 0 0'
input = right
[../]
[./rightright]
type = SideSetsAroundSubdomainGenerator
block = 1
new_boundary = rightright
normal = '1 0 0'
input = rightleft
[../]
[]
[Variables]
[./temp]
[../]
[]
[AuxVariables]
[./disp_x]
[../]
[./disp_y]
[../]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./disp_x]
type = ParsedFunction
expression = -3+t
[../]
[./left_temp]
type = ParsedFunction
expression = 1000+t
[../]
[]
[Kernels]
[./hc]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./disp_x]
type = FunctionAux
block = 1
variable = disp_x
function = disp_x
execute_on = 'INITIAL TIMESTEP_END'
[../]
[./gap_conductivity]
type = MaterialRealAux
boundary = leftright
property = gap_conductance
variable = gap_conductance
execute_on = 'INITIAL TIMESTEP_END'
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = temp
boundary = leftleft
function = left_temp
[../]
[./right]
type = DirichletBC
variable = temp
boundary = rightright
value = 400
[../]
[]
[ThermalContact]
[./left_to_right]
secondary = leftright
quadrature = true
primary = rightleft
variable = temp
min_gap = 1
min_gap_order = 1
emissivity_primary = 0
emissivity_secondary = 0
type = GapHeatTransfer
[../]
[]
[Materials]
[./hcm]
type = HeatConductionMaterial
block = '0 1'
specific_heat = 1
thermal_conductivity = 1
use_displaced_mesh = true
[../]
[]
[Postprocessors]
[./gap_conductance]
type = PointValue
point = '0 0 0'
variable = gap_conductance
[../]
[]
[Executioner]
type = Transient
dt = 0.25
end_time = 3.0
solve_type = 'PJFNK'
[]
[Outputs]
csv = true
execute_on = 'TIMESTEP_END'
[]
(modules/fsi/test/tests/fsi_acoustics/1D_struc_acoustic/1D_struc_acoustic.i)
# Test for `StructureAcousticInterface` interface kernel. The domain is 1D with 20m
# length. The fluid domain is on the right and the structural domain is on the left.
# Fluid end is subjected to a 250Hz sine wave with a single peak of amplitude unity.
# Structural domain is 4 times as dense as the fluid domain with all other material
# properties being the same. Fluid pressure is recorded at the midpoint in the fluid
# domain (i.e., at 15m). Structural stress is recorded at the midpoint in the structural
# domain (i.e., at 5m). The recorded pressure and stress amplitudes should match
# with theoretical values.
#
# Input parameters:
# Dimensions = 1
# Length = 20 meters
# Fluid speed of sound = 1500 m/s
# Fluid density = 1e-6 Giga kg/m^3
# Structural bulk modulus = 2.25 GPa
# Structural shear modulus = 0 GPa
# Structural density = 4e-6 Giga kg/m^3
# Fluid domain = true
# Fluid BC = single peak sine wave applied as a pressure on the fluid end
# Structural domain = true
# Structural BC = Neumann BC with value zero applied on the structural end.
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 1
nx = 50
xmax = 20
[]
[./subdomain1]
input = gen
type = SubdomainBoundingBoxGenerator
bottom_left = '10.0 0 0'
block_id = 1
top_right = '20.0 0.0 0'
[../]
[./interface1]
type = SideSetsBetweenSubdomainsGenerator
input = subdomain1
primary_block = '1'
paired_block = 0
new_boundary = 'interface1'
[../]
[]
[GlobalParams]
[]
[Variables]
[./p]
block = 1
[../]
[./disp_x]
block = 0
[../]
[]
[AuxVariables]
[./vel_x]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./accel_x]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Kernels]
[./diffusion]
type = Diffusion
variable = 'p'
block = 1
[../]
[./inertia]
type = AcousticInertia
variable = p
block = 1
[../]
[./DynamicTensorMechanics]
displacements = 'disp_x'
block = 0
[../]
[./inertia_x1]
type = InertialForce
variable = disp_x
block = 0
[../]
[]
[AuxKernels]
[./accel_x]
type = TestNewmarkTI
displacement = disp_x
variable = accel_x
first = false
block = 0
[../]
[./vel_x]
type = TestNewmarkTI
displacement = disp_x
variable = vel_x
block = 0
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
block = 0
[../]
[]
[InterfaceKernels]
[./interface1]
type = StructureAcousticInterface
variable = p
neighbor_var = disp_x
boundary = 'interface1'
D = 1e-6
component = 0
[../]
[]
[BCs]
[./bottom_accel]
type = FunctionDirichletBC
variable = p
boundary = 'right'
function = accel_bottom
[../]
[./disp_x1]
type = NeumannBC
boundary = 'left'
variable = disp_x
value = 0.0
[../]
[]
[Functions]
[./accel_bottom]
type = PiecewiseLinear
data_file = Input_1Peak_highF.csv
scale_factor = 1e-2
format = 'columns'
[../]
[]
[Materials]
[./co_sq]
type = GenericConstantMaterial
prop_names = inv_co_sq
prop_values = 4.44e-7
block = '1'
[../]
[./density0]
type = GenericConstantMaterial
block = 0
prop_names = density
prop_values = 4e-6
[../]
[./elasticity_base]
type = ComputeIsotropicElasticityTensor
bulk_modulus = 2.25
shear_modulus = 0.0
block = 0
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x'
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
start_time = 0.0
end_time = 0.01
dt = 0.0001
dtmin = 0.00001
nl_abs_tol = 1e-12
nl_rel_tol = 1e-12
l_tol = 1e-12
l_max_its = 25
timestep_tolerance = 1e-8
automatic_scaling = true
[TimeIntegrator]
type = NewmarkBeta
[]
[]
[Postprocessors]
[./p1]
type = PointValue
point = '10.0 0.0 0.0'
variable = p
[../]
[./stress1]
type = PointValue
point = '10.0 0.0 0.0'
variable = stress_xx
[../]
[]
[Outputs]
csv = true
perf_graph = true
print_linear_residuals = true
[]
(test/tests/outputs/debug/show_var_residual_norms.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[Functions]
[forcing_fnu]
type = ParsedFunction
expression = -5.8*(x+y)+x*x*x-x+y*y*y-y
[]
[forcing_fnv]
type = ParsedFunction
expression = -4
[]
[slnu]
type = ParsedGradFunction
expression = x*x*x-x+y*y*y-y
grad_x = 3*x*x-1
grad_y = 3*y*y-1
[]
[slnv]
type = ParsedGradFunction
expression = x*x+y*y
grad_x = 2*x
grad_y = 2*y
[]
#NeumannBC functions
[bc_fnut]
type = ParsedFunction
expression = 3*y*y-1
[]
[bc_fnub]
type = ParsedFunction
expression = -3*y*y+1
[]
[bc_fnul]
type = ParsedFunction
expression = -3*x*x+1
[]
[bc_fnur]
type = ParsedFunction
expression = 3*x*x-1
[]
[]
[Variables]
[u]
order = THIRD
family = HIERARCHIC
[]
[v]
order = SECOND
family = LAGRANGE
[]
[]
[Kernels]
active = 'diff1 diff2 test1 forceu forcev react'
[diff1]
type = Diffusion
variable = u
[]
[test1]
type = CoupledConvection
variable = u
velocity_vector = v
[]
[diff2]
type = Diffusion
variable = v
[]
[react]
type = Reaction
variable = u
[]
[forceu]
type = BodyForce
variable = u
function = forcing_fnu
[]
[forcev]
type = BodyForce
variable = v
function = forcing_fnv
[]
[]
[BCs]
active = 'bc_u_tb bc_v bc_ul bc_ur bc_ut bc_ub'
[bc_u]
type = FunctionPenaltyDirichletBC
variable = u
function = slnu
boundary = 'left right top bottom'
penalty = 1e6
[]
[bc_v]
type = FunctionDirichletBC
variable = v
function = slnv
boundary = 'left right top bottom'
[]
[bc_u_lr]
type = FunctionPenaltyDirichletBC
variable = u
function = slnu
boundary = 'left right top bottom'
penalty = 1e6
[]
[bc_u_tb]
type = CoupledKernelGradBC
variable = u
var2 = v
vel = '0.1 0.1'
boundary = 'top bottom left right'
[]
[bc_ul]
type = FunctionNeumannBC
variable = u
function = bc_fnul
boundary = 'left'
[]
[bc_ur]
type = FunctionNeumannBC
variable = u
function = bc_fnur
boundary = 'right'
[]
[bc_ut]
type = FunctionNeumannBC
variable = u
function = bc_fnut
boundary = 'top'
[]
[bc_ub]
type = FunctionNeumannBC
variable = u
function = bc_fnub
boundary = 'bottom'
[]
[]
[Preconditioning]
active = ' '
[prec]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'L2u L2v'
[dofs]
type = NumDOFs
[]
[h]
type = AverageElementSize
[]
[L2u]
type = ElementL2Error
variable = u
function = slnu
[]
[L2v]
type = ElementL2Error
variable = v
function = slnv
[]
[H1error]
type = ElementH1Error
variable = u
function = solution
[]
[H1Semierror]
type = ElementH1SemiError
variable = u
function = solution
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1e-15
nl_abs_tol = 1e-13
[]
[Outputs]
execute_on = 'timestep_end'
[debug] # This is a test, use the [Debug] block to enable this
type = VariableResidualNormsDebugOutput
[]
[]
(modules/combined/test/tests/phase_field_fracture/void2d_iso.i)
[Mesh]
type = FileMesh
file = void2d_mesh.xda
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./All]
add_variables = true
strain = SMALL
additional_generate_output = stress_yy
[../]
[../]
[../]
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = F
mobility = L
kappa = kappa_op
[../]
[../]
[../]
[]
[Functions]
[./tfunc]
type = ParsedFunction
expression = t
[../]
[./void_prop_func]
type = ParsedFunction
expression = 'rad:=0.2;m:=50;r:=sqrt(x^2+y^2);1-exp(-(r/rad)^m)+1e-8'
[../]
[./gb_prop_func]
type = ParsedFunction
expression = 'rad:=0.2;thk:=0.05;m:=50;sgnx:=1-exp(-(x/rad)^m);v:=sgnx*exp(-(y/thk)^m);0.005*(1-v)+0.001*v'
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tfunc
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'l visco'
prop_values = '0.01 0.1'
[../]
[./pfgc]
type = GenericFunctionMaterial
prop_names = 'gc_prop'
prop_values = 'gb_prop_func'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
elasticity_tensor_prefactor = void_prop_func
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
property_name = L
expression = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
property_name = kappa_op
expression = 'gc_prop * l'
[../]
[./damage_stress]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'fracture_energy'
decomposition_type = strain_spectral
[../]
[./degradation]
type = DerivativeParsedMaterial
property_name = degradation
coupled_variables = 'c'
expression = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '0.0'
derivative_order = 2
[../]
[./fracture_energy]
type = DerivativeParsedMaterial
property_name = fracture_energy
coupled_variables = 'c'
material_property_names = 'gc_prop l'
expression = 'c^2 * gc_prop / 2 / l'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
coupled_variables = c
sum_materials = 'elastic_energy fracture_energy'
derivative_order = 2
property_name = F
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm lu 1'
nl_rel_tol = 1e-9
nl_max_its = 10
l_tol = 1e-4
l_max_its = 40
dt = 1e-4
num_steps = 2
[]
[Outputs]
exodus = true
[]
(test/tests/predictors/simple/predictor_test.i)
# The purpose of this test is to test the simple predictor. This is a very
# small, monotonically loaded block of material. If things are working right,
# the predictor should come very close to exactly nailing the solution on steps
# after the first step.
# The main thing to check here is that when the predictor is applied in the
# second step, the initial residual is almost zero.
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 3
ny = 3
[]
[Functions]
[ramp1]
type = ParsedFunction
expression = 't'
[]
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[diff_u]
type = Diffusion
variable = u
[]
[]
[BCs]
[bot]
type = DirichletBC
variable = u
boundary = bottom
value = 0.0
[]
[ss2_x]
type = FunctionDirichletBC
variable = u
boundary = top
function = ramp1
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-14
start_time = 0.0
dt = 0.5
end_time = 1.0
[Predictor]
type = SimplePredictor
scale = 1.0
[]
[]
[Postprocessors]
[final_residual]
type = Residual
residual_type = FINAL
[]
[initial_residual]
type = Residual
residual_type = INITIAL
[]
[]
[Outputs]
csv = true
[]
(test/tests/time_integrators/explicit-euler/ee-2d-linear.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = (x+y)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*(x+y)
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = ic
[../]
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
lumping = true
implicit = true
[../]
[./diff]
type = Diffusion
variable = u
implicit = false
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
implicit = false
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
preset = false
boundary = '0 1 2 3'
function = exact_fn
implicit = true
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
scheme = 'explicit-euler'
solve_type = 'LINEAR'
start_time = 0.0
num_steps = 20
dt = 0.00005
[]
[Outputs]
exodus = true
[./console]
type = Console
max_rows = 10
[../]
[]
(test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test4ns.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test4.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
# [./element_id]
# [../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
# [./penetrate17]
# type = PenetrationAux
# variable = element_id
# boundary = 11
# paired_boundary = 12
# quantity = element_id
# [../]
#
# [./penetrate18]
# type = PenetrationAux
# variable = element_id
# boundary = 12
# paired_boundary = 11
# quantity = element_id
# [../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[]
[Outputs]
file_base = pl_test4ns_out
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/twinning/only_twinning_fcc.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 2
elem_type = HEX8
[]
[]
[AuxVariables]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[total_twin_volume_fraction]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_4]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_10]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_4]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_5]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_6]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_7]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_8]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_9]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_10]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_11]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_4]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_10]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
[]
[AuxKernels]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[total_twin_volume_fraction]
type = MaterialRealAux
variable = total_twin_volume_fraction
property = total_volume_fraction_twins
execute_on = timestep_end
[]
[twin_resistance_4]
type = MaterialStdVectorAux
variable = twin_resistance_4
property = slip_resistance
index = 4
execute_on = timestep_end
[]
[twin_resistance_10]
type = MaterialStdVectorAux
variable = twin_resistance_10
property = slip_resistance
index = 10
execute_on = timestep_end
[]
[twin_volume_fraction_0]
type = MaterialStdVectorAux
variable = twin_volume_fraction_0
property = twin_system_volume_fraction
index = 0
execute_on = timestep_end
[]
[twin_volume_fraction_1]
type = MaterialStdVectorAux
variable = twin_volume_fraction_1
property = twin_system_volume_fraction
index = 1
execute_on = timestep_end
[]
[twin_volume_fraction_2]
type = MaterialStdVectorAux
variable = twin_volume_fraction_2
property = twin_system_volume_fraction
index = 2
execute_on = timestep_end
[]
[twin_volume_fraction_3]
type = MaterialStdVectorAux
variable = twin_volume_fraction_3
property = twin_system_volume_fraction
index = 3
execute_on = timestep_end
[]
[twin_volume_fraction_4]
type = MaterialStdVectorAux
variable = twin_volume_fraction_4
property = twin_system_volume_fraction
index = 4
execute_on = timestep_end
[]
[twin_volume_fraction_5]
type = MaterialStdVectorAux
variable = twin_volume_fraction_5
property = twin_system_volume_fraction
index = 5
execute_on = timestep_end
[]
[twin_volume_fraction_6]
type = MaterialStdVectorAux
variable = twin_volume_fraction_6
property = twin_system_volume_fraction
index = 6
execute_on = timestep_end
[]
[twin_volume_fraction_7]
type = MaterialStdVectorAux
variable = twin_volume_fraction_7
property = twin_system_volume_fraction
index = 7
execute_on = timestep_end
[]
[twin_volume_fraction_8]
type = MaterialStdVectorAux
variable = twin_volume_fraction_8
property = twin_system_volume_fraction
index = 8
execute_on = timestep_end
[]
[twin_volume_fraction_9]
type = MaterialStdVectorAux
variable = twin_volume_fraction_9
property = twin_system_volume_fraction
index = 9
execute_on = timestep_end
[]
[twin_volume_fraction_10]
type = MaterialStdVectorAux
variable = twin_volume_fraction_10
property = twin_system_volume_fraction
index = 10
execute_on = timestep_end
[]
[twin_volume_fraction_11]
type = MaterialStdVectorAux
variable = twin_volume_fraction_11
property = twin_system_volume_fraction
index = 11
execute_on = timestep_end
[]
[twin_tau_4]
type = MaterialStdVectorAux
variable = twin_tau_4
property = applied_shear_stress
index = 4
execute_on = timestep_end
[]
[twin_tau_10]
type = MaterialStdVectorAux
variable = twin_tau_10
property = applied_shear_stress
index = 10
execute_on = timestep_end
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'bottom'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '5.0e-4*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.08e5 6.034e4 6.034e4 1.08e5 6.03e4 1.08e5 2.86e4 2.86e4 2.86e4' #Tallon and Wolfenden. J. Phys. Chem. Solids (1979)
fill_method = symmetric9
euler_angle_1 = 54.74
euler_angle_2 = 45.0
euler_angle_3 = 270.0
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'twin_only_xtalpl'
tan_mod_type = exact
maximum_substep_iteration = 2
[]
[twin_only_xtalpl]
type = CrystalPlasticityTwinningKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = 'fcc_input_twinning_systems.txt'
initial_twin_lattice_friction = 3.0
non_coplanar_coefficient_twin_hardening = 8e5
coplanar_coefficient_twin_hardening = 8e4
[]
[]
[Postprocessors]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[total_twin_volume_fraction]
type = ElementAverageValue
variable = total_twin_volume_fraction
[]
[twin_resistance_4]
type = ElementAverageValue
variable = twin_resistance_4
[]
[twin_resistance_10]
type = ElementAverageValue
variable = twin_resistance_10
[]
[twin_volume_fraction_0]
type = ElementAverageValue
variable = twin_volume_fraction_0
[]
[twin_volume_fraction_1]
type = ElementAverageValue
variable = twin_volume_fraction_1
[]
[twin_volume_fraction_2]
type = ElementAverageValue
variable = twin_volume_fraction_2
[]
[twin_volume_fraction_3]
type = ElementAverageValue
variable = twin_volume_fraction_3
[]
[twin_volume_fraction_4]
type = ElementAverageValue
variable = twin_volume_fraction_4
[]
[twin_volume_fraction_5]
type = ElementAverageValue
variable = twin_volume_fraction_5
[]
[twin_volume_fraction_6]
type = ElementAverageValue
variable = twin_volume_fraction_6
[]
[twin_volume_fraction_7]
type = ElementAverageValue
variable = twin_volume_fraction_7
[]
[twin_volume_fraction_8]
type = ElementAverageValue
variable = twin_volume_fraction_8
[]
[twin_volume_fraction_9]
type = ElementAverageValue
variable = twin_volume_fraction_9
[]
[twin_volume_fraction_10]
type = ElementAverageValue
variable = twin_volume_fraction_10
[]
[twin_volume_fraction_11]
type = ElementAverageValue
variable = twin_volume_fraction_11
[]
[twin_tau_4]
type = ElementAverageValue
variable = twin_tau_4
[]
[twin_tau_10]
type = ElementAverageValue
variable = twin_tau_10
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.025
dtmin = 0.0125
num_steps = 8
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/peridynamics/test/tests/failure_tests/2D_bond_status_convergence_H1NOSPD.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
cracks_start = '0.25 0.5 0'
cracks_end = '0.75 0.5 0'
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 8
ny = 8
[../]
[./gpd]
type = MeshGeneratorPD
input = gmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./critical_stress]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./bond_status]
type = RankTwoBasedFailureCriteriaNOSPD
variable = bond_status
rank_two_tensor = stress
critical_variable = critical_stress
failure_criterion = VonMisesStress
[../]
[]
[UserObjects]
[./shape_singularity]
type = SingularShapeTensorEliminatorUserObjectPD
[../]
[]
[ICs]
[./critical_stretch]
type = ConstantIC
variable = critical_stress
value = 150
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1002
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1000
function = '-0.002*t'
[../]
[./rbm_x]
type = RBMPresetOldValuePD
variable = disp_x
boundary = 999
[../]
[./rbm_y]
type = RBMPresetOldValuePD
variable = disp_y
boundary = 999
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = NONORDINARY_STATE
stabilization = BOND_HORIZON_I
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.33
[../]
[./strain]
type = ComputeSmallStrainNOSPD
stabilization = BOND_HORIZON_I
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Postprocessors]
[./bond_status_updated_times]
type = BondStatusConvergedPostprocessorPD
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
dt = 0.5
end_time = 1
fixed_point_max_its = 5
accept_on_max_fixed_point_iteration = true
custom_pp = bond_status_updated_times
custom_abs_tol = 2
disable_picard_residual_norm_check = true
[./Quadrature]
type = GAUSS_LOBATTO
order = FIRST
[../]
[]
[Outputs]
file_base = 2D_bond_status_convergence_H1NOSPD
exodus = true
[]
(modules/heat_transfer/tutorials/introduction/therm_step03.i)
#
# Single block thermal input with time derivative term
# https://mooseframework.inl.gov/modules/heat_transfer/tutorials/introduction/therm_step03.html
#
[Mesh]
[generated]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 2
ymax = 1
[]
[]
[Variables]
[T]
initial_condition = 300.0
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = T
[]
[time_derivative]
type = HeatConductionTimeDerivative
variable = T
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 45.0
specific_heat = 0.5
[]
[density]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = 8000.0
[]
[]
[BCs]
[t_left]
type = DirichletBC
variable = T
value = 300
boundary = 'left'
[]
[t_right]
type = FunctionDirichletBC
variable = T
function = '300+5*t'
boundary = 'right'
[]
[]
[Executioner]
type = Transient
end_time = 5
dt = 1
[]
[VectorPostprocessors]
[t_sampler]
type = LineValueSampler
variable = T
start_point = '0 0.5 0'
end_point = '2 0.5 0'
num_points = 20
sort_by = x
[]
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = therm_step03_out
execute_on = final
[]
[]
(examples/ex14_pps/ex14.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 32
ny = 32
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
[]
[Variables]
[forced]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
# A ParsedFunction allows us to supply analytic expressions directly in the input file
[exact]
type = ParsedFunction
expression = sin(alpha*pi*x)
symbol_names = alpha
symbol_values = 16
[]
# This function is an actual compiled function
[force]
type = ExampleFunction
alpha = 16
[]
[]
[Kernels]
[diff]
type = ADDiffusion
variable = forced
[]
# This Kernel can take a function name to use
[forcing]
type = ADBodyForce
variable = forced
function = force
[]
[]
[BCs]
# The BC can take a function name to use
[all]
type = FunctionDirichletBC
variable = forced
boundary = 'bottom right top left'
function = exact
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Postprocessors]
[h]
type = AverageElementSize
[]
[error]
type = ElementL2Error
variable = forced
function = exact
[]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
csv = true
[]
(framework/contrib/hit/test/input.i)
# This tests the thermal expansion coefficient function using both
# options to specify that function: mean and instantaneous. There
# two blocks, each containing a single element, and these use the
# two variants of the function.
# In this test, the instantaneous CTE function has a constant value,
# while the mean CTE function is an analytic function designed to
# give the same response. If \bar{alpha}(T) is the mean CTE function,
# and \alpha(T) is the instantaneous CTE function,
# \bar{\alpha}(T) = 1/(T-Tref) \intA^{T}_{Tsf} \alpha(T) dT
# where Tref is the reference temperature used to define the mean CTE
# function, and Tsf is the stress-free temperature.
# The two models produce very similar results. There are slight
# differences due to the large deformation treatment.
[Mesh]
file = 'blocks.e'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[]
[SolidMechanics]
[./solid]
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = disp_x
boundary = 3
function = 0.02*t
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[./back]
type = FunctionDirichletBC
variable = disp_z
boundary = 1
function = 0.01*t
[../]
[]
[AuxKernels]
[./temp]
type = FunctionAux
variable = temp
block = '1 2'
function = temp_func
[../]
[]
[Materials]
[./mean_alpha]
type = Elastic
block = 1
youngs_modulus = 1e6
poissons_ratio = .3
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp
thermal_expansion_function = cte_func_mean
stress_free_temperature = 0.0
thermal_expansion_reference_temperature = 0.5
thermal_expansion_function_type = mean
[../]
[./inst_alpha]
type = Elastic
block = 2
youngs_modulus = 1e6
poissons_ratio = .3
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp
thermal_expansion_function = cte_func_inst
stress_free_temperature = 0.0
thermal_expansion_function_type = instantaneous
[../]
[]
[Functions]
[./cte_func_mean]
type = ParsedFunction
symbol_names = 'tsf tref scale' #stress free temp, reference temp, scale factor
symbol_values = '0.0 0.5 1e-4'
expression = 'scale * (t - tsf) / (t - tref)'
[../]
[./cte_func_inst]
type = PiecewiseLinear
xy_data = '0 1.0
2 1.0'
scale_factor = 1e-4
[../]
[./temp_func]
type = PiecewiseLinear
xy_data = '0 1
1 2'
[../]
[]
[Postprocessors]
[./disp_1]
type = NodalMaxValue
variable = disp_x
boundary = 101
[../]
[./disp_2]
type = NodalMaxValue
variable = disp_x
boundary = 102
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_max_its = 100
l_tol = 1e-4
nl_abs_tol = 1e-8
nl_rel_tol = 1e-12
start_time = 0.0
end_time = 1.0
dt = 0.1
[]
[Outputs]
file_base = const_alpha_out
exodus = true
csv = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/RZ_cone_by_parts.i)
# This input file tests several different things:
# .) The axisymmetric (RZ) form of the governing equations.
# .) An open boundary.
# .) Integrating the pressure by parts.
# .) Natural boundary condition at the outlet.
[GlobalParams]
gravity = '0 0 0'
[]
[Mesh]
file = '2d_cone.msh'
[]
[Problem]
coord_type = RZ
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = Newton
[../]
[]
[Executioner]
type = Transient
dt = 0.005
dtmin = 0.005
num_steps = 5
l_max_its = 100
# Note: The Steady executioner can be used for this problem, if you
# drop the INSMomentumTimeDerivative kernels and use the following
# direct solver options.
# petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type'
# petsc_options_value = 'lu NONZERO 1.e-10 preonly'
# Block Jacobi works well for this problem, as does "-pc_type asm
# -pc_asm_overlap 2", but an overlap of 1 does not work for some
# reason?
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'bjacobi ilu 4'
nl_rel_tol = 1e-12
nl_max_its = 6
[]
[Outputs]
console = true
[./out]
type = Exodus
[../]
[]
[Variables]
[./vel_x]
# Velocity in radial (r) direction
family = LAGRANGE
order = SECOND
[../]
[./vel_y]
# Velocity in axial (z) direction
family = LAGRANGE
order = SECOND
[../]
[./p]
family = LAGRANGE
order = FIRST
[../]
[]
[BCs]
[./u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[../]
[./v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[../]
[./u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[../]
[./v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[../]
[]
[Kernels]
[./x_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_x
[../]
[./y_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_y
[../]
[./mass]
type = INSMassRZ
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 'volume'
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[../]
[]
[Postprocessors]
[./flow_in]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'bottom'
outputs = 'console' execute_on = 'timestep_end'
[../]
[./flow_out]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'top'
outputs = 'console' execute_on = 'timestep_end'
[../]
[]
(modules/solid_mechanics/test/tests/lagrangian/materials/correctness/hyperelastic_J2_plastic.i)
E = 6.88e4
nu = 0.25
[GlobalParams]
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
displacements = 'disp_x disp_y disp_z'
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
displacements = 'disp_x disp_y disp_z'
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
displacements = 'disp_x disp_y disp_z'
[]
[]
[BCs]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0.0
[]
[fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0.0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'right'
function = 't'
preset = false
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = ${E}
poissons_ratio = ${nu}
[]
[compute_strain]
type = ComputeLagrangianStrain
displacements = 'disp_x disp_y disp_z'
[]
[flow_stress]
type = DerivativeParsedMaterial
property_name = flow_stress
expression = '320+688*effective_plastic_strain'
material_property_names = 'effective_plastic_strain'
additional_derivative_symbols = 'effective_plastic_strain'
derivative_order = 2
compute = false
[]
[compute_stress]
type = ComputeSimoHughesJ2PlasticityStress
flow_stress_material = flow_stress
[]
[]
[Postprocessors]
[sxx]
type = ElementAverageValue
variable = sxx
execute_on = 'INITIAL TIMESTEP_END'
[]
[exx]
type = ElementAverageValue
variable = exx
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[AuxVariables]
[sxx]
family = MONOMIAL
order = CONSTANT
[AuxKernel]
type = RankTwoAux
rank_two_tensor = cauchy_stress
index_i = 0
index_j = 0
[]
[]
[exx]
family = MONOMIAL
order = CONSTANT
[AuxKernel]
type = RankTwoAux
rank_two_tensor = total_strain
index_i = 0
index_j = 0
[]
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 5e-4
end_time = 1e-1
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/tensile/planar2.i)
# checking for small deformation
# A single element is stretched by 1E-6m in all directions, with lame mu = 1E6, so trial stress is 2Pa in principal directions
# tensile_strength is set to 1Pa
# Then the final stress should return to the all principal stresses being 1.0 (up to tolerance), and internal parameter = (0.5+0.5+0.5)E-6 = 1.5E-6
# Using 'planar' Tensile plasticity
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
outputs = console
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./hard]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./tens]
type = SolidMechanicsPlasticTensileMulti
tensile_strength = hard
shift = 1E-6
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
plastic_models = tens
debug_fspb = crash
debug_jac_at_stress = '1 2 3 2 -4 -5 3 -5 10'
debug_jac_at_pm = '0.1 0.2 0.3'
debug_jac_at_intnl = 1E-6
debug_stress_change = 1E-6
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = planar2
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/strip.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 1
xmax = 0.5
xmin = -0.5
ymin = -0.05
ymax = 0.05
[]
[left_line]
type = SubdomainBoundingBoxGenerator
input = gmg
bottom_left = '-0.5 0 0'
top_right = '0 0 0'
block_id = 1
block_name = 'left_strip'
location = INSIDE
[]
[right_line]
type = SubdomainBoundingBoxGenerator
input = left_line
bottom_left = '0 0 0'
top_right = '0.5 0 0'
block_id = 2
block_name = 'right_strip'
location = INSIDE
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time_derivative]
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat_conduction]
type = HeatConduction
variable = temperature
[]
[]
[Materials]
[left_strip]
type = GenericConstantMaterial
block = 'left_strip'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '0.1 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[right_strip]
type = GenericConstantMaterial
block = 'right_strip'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '5.0e-3 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[]
[BCs]
[right]
type = FunctionDirichletBC
variable = temperature
boundary = 'right'
function = '10*t'
[]
[]
[VectorPostprocessors]
[center]
type = LineValueSampler
start_point = '-0.5 0 0'
end_point = '0.5 0 0'
num_points = 40
variable = 'temperature'
sort_by = id
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
end_time = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = 'csv/strip'
time_data = true
[]
[]
(modules/solid_mechanics/test/tests/tensile/planar7.i)
# A single unit element is stretched by (0.5, 0.4, 0.3)E-6m
# with Lame lambda = 0.6E6 and Lame mu (shear) = 1E6
# stress_xx = 1.72 Pa
# stress_yy = 1.52 Pa
# stress_zz = 1.32 Pa
# tensile_strength is set to 1.3Pa
#
# The return should be to the edge (the algorithm will first try the tip) with
# plastic_multiplier0 = 0, plastic_multiplier1 = 5E-8, plastic_multiplier2 = 1.5E-7
# internal = 2E-7
# stress_xx = stress_yy = 1.3
# stress_zz = 1.2
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.5E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.4E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.3E-6*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./hard]
type = SolidMechanicsHardeningConstant
value = 1.3
[../]
[./tens]
type = SolidMechanicsPlasticTensileMulti
tensile_strength = hard
shift = 1E-6
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.6E6 1E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = tens
debug_fspb = none
debug_jac_at_stress = '1 2 3 2 -4 -5 3 -5 10'
debug_jac_at_pm = '0.1 0.2 0.3'
debug_jac_at_intnl = 1E-6
debug_stress_change = 1E-6
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = planar7
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/weak_plane_shear/large_deform4.i)
# apply a number of "random" configurations and
# check that the algorithm returns to the yield surface
# using the 'cap' tip_scheme
#
# must be careful here - we cannot put in arbitrary values of C_ijkl, otherwise the condition
# df/dsigma * C * flow_dirn < 0 for some stresses
# The important features that must be obeyed are:
# 0 = C_0222 = C_1222 (holds for transversely isotropic, for instance)
# C_0212 < C_0202 = C_1212 (holds for transversely isotropic)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
[]
[BCs]
[bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
# the following are "random" deformations
# each is O(1E-1) to provide large deformations
[topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = '(sin(0.1*t)+x)/1E1'
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = '(cos(t)+x*y)/1E1'
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 'sin(0.4321*t)*x*y*z/1E1'
[]
[]
[AuxVariables]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[yield_fcn_at_zero]
type = PointValue
point = '0 0 0'
variable = yield_fcn
outputs = 'console'
[]
[should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[]
[]
[Functions]
[should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'yield_fcn_at_zero'
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningConstant
value = 1E3
[]
[tanphi]
type = SolidMechanicsHardeningConstant
value = 0.577350269
[]
[tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.08748866
[]
[wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tip_scheme = cap
smoother = 100
cap_rate = 0.001
cap_start = 0.0
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
# the following is transversely isotropic, i think.
fill_method = symmetric9
C_ijkl = '3E9 1E9 3E9 3E9 3E9 6E9 1E9 1E9 9E9'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wps
transverse_direction = '0 0 1'
max_NR_iterations = 100
ep_plastic_tolerance = 1E-3
debug_fspb = crash
[]
[]
[Executioner]
end_time = 1E4
dt = 1
type = Transient
[]
[Outputs]
csv = true
[]
(modules/porous_flow/test/tests/poro_elasticity/mandel_constM.i)
# Mandel's problem of consolodation of a drained medium
#
# A sample is in plane strain.
# -a <= x <= a
# -b <= y <= b
# It is squashed with constant force by impermeable, frictionless plattens on its top and bottom surfaces (at y=+/-b)
# Fluid is allowed to leak out from its sides (at x=+/-a)
# The porepressure within the sample is monitored.
#
# As is common in the literature, this is simulated by
# considering the quarter-sample, 0<=x<=a and 0<=y<=b, with
# impermeable, roller BCs at x=0 and y=0 and y=b.
# Porepressure is fixed at zero on x=a.
# Porepressure and displacement are initialised to zero.
# Then the top (y=b) is moved downwards with prescribed velocity,
# so that the total force that is inducing this downwards velocity
# is fixed. The velocity is worked out by solving Mandel's problem
# analytically, and the total force is monitored in the simulation
# to check that it indeed remains constant.
#
# Here are the problem's parameters, and their values:
# Soil width. a = 1
# Soil height. b = 0.1
# Soil's Lame lambda. la = 0.5
# Soil's Lame mu, which is also the Soil's shear modulus. mu = G = 0.75
# Soil bulk modulus. K = la + 2*mu/3 = 1
# Drained Poisson ratio. nu = (3K - 2G)/(6K + 2G) = 0.2
# Soil bulk compliance. 1/K = 1
# Fluid bulk modulus. Kf = 8
# Fluid bulk compliance. 1/Kf = 0.125
# Soil initial porosity. phi0 = 0.1
# Biot coefficient. alpha = 0.6
# Biot modulus. M = 1/(phi0/Kf + (alpha - phi0)(1 - alpha)/K) = 4.705882
# Undrained bulk modulus. Ku = K + alpha^2*M = 2.694118
# Undrained Poisson ratio. nuu = (3Ku - 2G)/(6Ku + 2G) = 0.372627
# Skempton coefficient. B = alpha*M/Ku = 1.048035
# Fluid mobility (soil permeability/fluid viscosity). k = 1.5
# Consolidation coefficient. c = 2*k*B^2*G*(1-nu)*(1+nuu)^2/9/(1-nuu)/(nuu-nu) = 3.821656
# Normal stress on top. F = 1
#
# The solution for porepressure and displacements is given in
# AHD Cheng and E Detournay "A direct boundary element method for plane strain poroelasticity" International Journal of Numerical and Analytical Methods in Geomechanics 12 (1988) 551-572.
# The solution involves complicated infinite series, so I shall not write it here
[Mesh]
type = GeneratedMesh
dim = 3
nx = 10
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 0.1
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_x disp_y disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureVG
m = 0.8
alpha = 1e-5
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[porepressure]
[]
[]
[BCs]
[roller_xmin]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left'
[]
[roller_ymin]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom'
[]
[plane_strain]
type = DirichletBC
variable = disp_z
value = 0
boundary = 'back front'
[]
[xmax_drained]
type = DirichletBC
variable = porepressure
value = 0
boundary = right
[]
[top_velocity]
type = FunctionDirichletBC
variable = disp_y
function = top_velocity
boundary = top
[]
[]
[Functions]
[top_velocity]
type = PiecewiseLinear
x = '0 0.002 0.006 0.014 0.03 0.046 0.062 0.078 0.094 0.11 0.126 0.142 0.158 0.174 0.19 0.206 0.222 0.238 0.254 0.27 0.286 0.302 0.318 0.334 0.35 0.366 0.382 0.398 0.414 0.43 0.446 0.462 0.478 0.494 0.51 0.526 0.542 0.558 0.574 0.59 0.606 0.622 0.638 0.654 0.67 0.686 0.702'
y = '-0.041824842 -0.042730269 -0.043412712 -0.04428867 -0.045509181 -0.04645965 -0.047268246 -0.047974749 -0.048597109 -0.0491467 -0.049632388 -0.050061697 -0.050441198 -0.050776675 -0.051073238 -0.0513354 -0.051567152 -0.051772022 -0.051953128 -0.052113227 -0.052254754 -0.052379865 -0.052490464 -0.052588233 -0.052674662 -0.052751065 -0.052818606 -0.052878312 -0.052931093 -0.052977751 -0.053018997 -0.053055459 -0.053087691 -0.053116185 -0.053141373 -0.05316364 -0.053183324 -0.053200724 -0.053216106 -0.053229704 -0.053241725 -0.053252351 -0.053261745 -0.053270049 -0.053277389 -0.053283879 -0.053289615'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[tot_force]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[tot_force]
type = ParsedAux
coupled_variables = 'stress_yy porepressure'
execute_on = timestep_end
variable = tot_force
expression = '-stress_yy+0.6*porepressure'
[]
[]
[Kernels]
[grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[]
[grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[]
[grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[]
[poro_x]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_x
component = 0
[]
[poro_y]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_y
component = 1
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
component = 2
variable = disp_z
[]
[poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
variable = porepressure
fluid_component = 0
[]
[mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = porepressure
[]
[flux]
type = PorousFlowAdvectiveFlux
variable = porepressure
gravity = '0 0 0'
fluid_component = 0
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 8
density0 = 1
thermal_expansion = 0
viscosity = 1
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '0.5 0.75'
# bulk modulus is lambda + 2*mu/3 = 0.5 + 2*0.75/3 = 1
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[eff_fluid_pressure]
type = PorousFlowEffectiveFluidPressure
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[]
[massfrac]
type = PorousFlowMassFraction
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[porosity]
type = PorousFlowPorosityHMBiotModulus
porosity_zero = 0.1
biot_coefficient = 0.6
solid_bulk = 1
constant_fluid_bulk_modulus = 8
constant_biot_modulus = 4.7058823529
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '1.5 0 0 0 1.5 0 0 0 1.5'
[]
[relperm]
type = PorousFlowRelativePermeabilityCorey
n = 0 # unimportant in this fully-saturated situation
phase = 0
[]
[]
[Postprocessors]
[p0]
type = PointValue
outputs = csv
point = '0.0 0 0'
variable = porepressure
[]
[p1]
type = PointValue
outputs = csv
point = '0.1 0 0'
variable = porepressure
[]
[p2]
type = PointValue
outputs = csv
point = '0.2 0 0'
variable = porepressure
[]
[p3]
type = PointValue
outputs = csv
point = '0.3 0 0'
variable = porepressure
[]
[p4]
type = PointValue
outputs = csv
point = '0.4 0 0'
variable = porepressure
[]
[p5]
type = PointValue
outputs = csv
point = '0.5 0 0'
variable = porepressure
[]
[p6]
type = PointValue
outputs = csv
point = '0.6 0 0'
variable = porepressure
[]
[p7]
type = PointValue
outputs = csv
point = '0.7 0 0'
variable = porepressure
[]
[p8]
type = PointValue
outputs = csv
point = '0.8 0 0'
variable = porepressure
[]
[p9]
type = PointValue
outputs = csv
point = '0.9 0 0'
variable = porepressure
[]
[p99]
type = PointValue
outputs = csv
point = '1 0 0'
variable = porepressure
[]
[xdisp]
type = PointValue
outputs = csv
point = '1 0.1 0'
variable = disp_x
[]
[ydisp]
type = PointValue
outputs = csv
point = '1 0.1 0'
variable = disp_y
[]
[total_downwards_force]
type = ElementAverageValue
outputs = csv
variable = tot_force
[]
[dt]
type = FunctionValuePostprocessor
outputs = console
function = if(0.15*t<0.01,0.15*t,0.01)
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu 1E-14 1E-10 10000'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 0.7
[TimeStepper]
type = PostprocessorDT
postprocessor = dt
dt = 0.001
[]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = mandel_constM
[csv]
time_step_interval = 3
type = CSV
[]
[]
(test/tests/time_steppers/timesequence_stepper/timesequence_restart3.i)
[Mesh]
file = timesequence_restart1_cp/0002-mesh.cpa.gz
[]
[Problem]
restart_file_base = timesequence_restart1_cp/0002
# There is an initial conditions overwriting the restart on the nonlinear variable u
# As you can see in the gold file, this makes the initial step output be from the
# initial condition
allow_initial_conditions_with_restart = true
[]
[Functions]
[exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[]
[forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[]
[]
[Variables]
[u]
family = LAGRANGE
order = SECOND
[]
[]
[ICs]
[u_var]
type = FunctionIC
variable = u
function = exact_fn
[]
[]
[Kernels]
[td]
type = TimeDerivative
variable = u
[]
[diff]
type = Diffusion
variable = u
[]
[ffn]
type = BodyForce
variable = u
function = forcing_fn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[]
[]
[Executioner]
type = Transient
end_time = 4.5
[TimeStepper]
type = TimeSequenceStepper
time_sequence = '0 0.85 1.3 1.9 2 4 4.5'
[]
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl2D_xz.i)
#
# 2D Cylindrical Gap Heat Transfer Test.
#
# This test exercises 2D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid cylinder of radius = 1 unit, and outer
# hollow cylinder with an inner radius of 2 in the x-z plane. In other words,
# the gap between them is 1 radial unit in length.
#
# The calculated results are the same as for the cyl2D.i case in the x-y plane.
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
[file]
type = FileMeshGenerator
file = cyl2D.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 90 0'
input = file
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
gap_conductivity = 1
quadrature = true
gap_geometry_type = CYLINDER
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 1 0'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
(modules/solid_mechanics/test/tests/lagrangian/axisymmetric_cylindrical/total/patch/small.i)
[GlobalParams]
displacements = 'disp_r disp_z'
large_kinematics = false
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[]
[]
[Problem]
coord_type = RZ
[]
[Variables]
[disp_r]
[]
[disp_z]
[]
[]
[Kernels]
[sdr]
type = TotalLagrangianStressDivergenceAxisymmetricCylindrical
variable = disp_r
component = 0
[]
[sdz]
type = TotalLagrangianStressDivergenceAxisymmetricCylindrical
variable = disp_z
component = 1
[]
[]
[BCs]
[bottom]
type = DirichletBC
preset = false
variable = disp_z
boundary = bottom
value = 0.0
[]
[top]
type = FunctionDirichletBC
preset = false
variable = disp_z
boundary = top
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
output_properties = 'pk1_stress'
outputs = 'exodus'
[]
[compute_strain]
type = ComputeLagrangianStrainAxisymmetricCylindrical
output_properties = 'mechanical_strain'
outputs = 'exodus'
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dt = 0.1
num_steps = 1
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/eigenstrain/reducedOrderRZLinearConstant.i)
#
# This test checks whether the ComputeReducedOrderEigenstrain is functioning properly.
#
# If instead of 'fred', 'thermal_eigenstrain' is given to
# eigenstrain_names in the Physics/SolidMechanics/QuasiStatic/all block, the output will be
# identical since the thermal strain is constant in the elements.
#
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 1
xmax = 3
xmin = 1
ymax = 1
ymin = 0
[]
[Functions]
[./tempBC]
type = ParsedFunction
expression = '700+2*t*t'
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 700
[../]
[]
[AuxVariables]
[./hydro_constant]
order = CONSTANT
family = MONOMIAL
[../]
[./hydro_first]
order = FIRST
family = MONOMIAL
[../]
[./hydro_second]
order = SECOND
family = MONOMIAL
[../]
[./sxx_constant]
order = CONSTANT
family = MONOMIAL
[../]
[./sxx_first]
order = FIRST
family = MONOMIAL
[../]
[./sxx_second]
order = SECOND
family = MONOMIAL
[../]
[./szz_constant]
order = CONSTANT
family = MONOMIAL
[../]
[./szz_first]
order = FIRST
family = MONOMIAL
[../]
[./szz_second]
order = SECOND
family = MONOMIAL
[../]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[./all]
add_variables = true
strain = SMALL
incremental = true
temperature = temp
eigenstrain_names = 'fred' #'thermal_eigenstrain'
[../]
[../]
[../]
[]
[Kernels]
[./heat]
type = Diffusion
variable = temp
[../]
[]
[AuxKernels]
[./hydro_constant_aux]
type = RankTwoScalarAux
variable = hydro_constant
rank_two_tensor = stress
scalar_type = Hydrostatic
[../]
[./hydro_first_aux]
type = RankTwoScalarAux
variable = hydro_first
rank_two_tensor = stress
scalar_type = Hydrostatic
[../]
[./hydro_second_aux]
type = RankTwoScalarAux
variable = hydro_second
rank_two_tensor = stress
scalar_type = Hydrostatic
[../]
[./sxx_constant_aux]
type = RankTwoAux
variable = sxx_constant
rank_two_tensor = stress
index_i = 0
index_j = 0
[../]
[./sxx_first_aux]
type = RankTwoAux
variable = sxx_first
rank_two_tensor = stress
index_i = 0
index_j = 0
[../]
[./sxx_second_aux]
type = RankTwoAux
variable = sxx_second
rank_two_tensor = stress
index_i = 0
index_j = 0
[../]
[./szz_constant_aux]
type = RankTwoAux
variable = szz_constant
rank_two_tensor = stress
index_i = 2
index_j = 2
[../]
[./szz_first_aux]
type = RankTwoAux
variable = szz_first
rank_two_tensor = stress
index_i = 2
index_j = 2
[../]
[./szz_second_aux]
type = RankTwoAux
variable = szz_second
rank_two_tensor = stress
index_i = 2
index_j = 2
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom top'
value = 0.0
[../]
[./temp_right]
type = FunctionDirichletBC
variable = temp
boundary = right
function = tempBC
[../]
[./temp_left]
type = FunctionDirichletBC
variable = temp
boundary = left
function = tempBC
[../]
[]
[Materials]
[./fuel_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0
[../]
[./fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-6
temperature = temp
stress_free_temperature = 700.0
eigenstrain_name = 'thermal_eigenstrain'
[../]
[./reduced_order_eigenstrain]
type = ComputeReducedOrderEigenstrain
input_eigenstrain_names = 'thermal_eigenstrain'
eigenstrain_name = 'fred'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
dt = 1
num_steps = 10
nl_rel_tol = 1e-8
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/weak_plane_tensile/large_deform1.i)
# rotate the mesh by 90degrees
# then pull in the z direction - should be no plasticity
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
decomposition_method = EigenSolution
generate_output = 'stress_xz stress_zx stress_yz stress_zz'
[]
[BCs]
# rotate:
# ynew = c*y + s*z. znew = -s*y + c*z
[bottomx]
type = FunctionDirichletBC
variable = disp_x
boundary = back
function = '0'
[]
[bottomy]
type = FunctionDirichletBC
variable = disp_y
boundary = back
function = '0*y+1*z-y'
[]
[bottomz]
type = FunctionDirichletBC
variable = disp_z
boundary = back
function = '-1*y+0*z-z+if(t>0,0.5-y,0)' # note that this uses original nodal values of (x,y,z)
[]
[topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = '0'
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = '0*y+1*z-y'
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '-1*y+0*z-z+if(t>0,0.5-y,0)' # note that this uses original nodal values of (x,y,z)
[]
[]
[AuxVariables]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[]
[s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[]
[UserObjects]
[str]
type = SolidMechanicsHardeningConstant
value = 1
[]
[wpt]
type = SolidMechanicsPlasticWeakPlaneTensile
tensile_strength = str
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-5
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1E6'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wpt
transverse_direction = '0 0 1'
ep_plastic_tolerance = 1E-5
[]
[]
[Executioner]
start_time = -1
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/sliding_block/edge_dropping/two_equal_blocks_slide_3d.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -1.0
xmax = 0.0
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
elem_type = HEX8
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'left_bottom left_back left_right left_front left_left left_top'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sidesets
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
xmin = 0.0
xmax = 1.0
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
elem_type = HEX8
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3 4 5'
# new_boundary = 'right_bottom right_back right_right right_front right_left right_top'
new_boundary = '100 101 102 103 104 105'
[]
[right_block_sidesets_rename]
type = RenameBoundaryGenerator
input = right_block_sidesets
old_boundary = '100 101 102 103 104 105'
new_boundary = 'right_bottom right_back right_right right_front right_left right_top'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sidesets_rename
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[left_lower]
type = LowerDBlockFromSidesetGenerator
input = combined_mesh
sidesets = 'left_right'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[right_lower]
type = LowerDBlockFromSidesetGenerator
input = left_lower
sidesets = 'right_left'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = PiecewiseLinear
x = '0 0.1 4'
y = '0 0.05 0.05'
[]
[vertical_movement]
type = PiecewiseLinear
x = '0 0.1 4'
y = '0 0 0.3'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'left_left'
function = horizontal_movement
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'left_left'
function = vertical_movement
[]
[fix_left_z]
type = DirichletBC
variable = disp_z
boundary = 'left_left'
value = 0.0
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 'right_right'
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 'right_right'
value = 0.0
[]
[fix_right_z]
type = DirichletBC
variable = disp_z
boundary = 'right_right'
value = 0.0
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_variable = normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
[]
[]
[Constraints]
[normal_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = 'right_left'
secondary_boundary = 'left_right'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'right_left'
secondary_boundary = 'left_right'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'right_left'
secondary_boundary = 'left_right'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'right_left'
secondary_boundary = 'left_right'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type '
'-pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist nonzero 1e-10'
line_search = 'none'
dt = 0.1
dtmin = 0.01
end_time = 0.4
l_max_its = 20
nl_max_its = 20
nl_rel_tol = 1e-6
nl_abs_tol = 1e-8
snesmf_reuse_base = false
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
[Postprocessors]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = 'secondary_lower'
[]
[normal_lm]
type = ElementAverageValue
variable = normal_lm
block = 'secondary_lower'
[]
[avg_disp_x]
type = ElementAverageValue
variable = disp_x
block = '1 2'
[]
[avg_disp_y]
type = ElementAverageValue
variable = disp_y
block = '1 2'
[]
[max_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
[]
[max_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
[]
[min_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
value_type = min
[]
[min_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
value_type = min
[]
[]
(modules/contact/test/tests/mortar_tm/2d/frictionless_second/small.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD9
order = SECOND
name = 'small'
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.3
xmax = 0.3
ymin = -10
ymax = 10
nx = 2
ny = 67
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.31
xmax = 0.91
ymin = 7.7
ymax = 8.5
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[action]
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'plank block'
[]
[]
[Contact]
[frictionless]
primary = plank_right
secondary = block_left
formulation = mortar
c_normal = 1e3
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = block_right
function = '-0.04*sin(4*(t+1.5))+0.02'
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = block_right
function = '-t'
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeLinearElasticStress
block = 'plank block'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount -pc_factor_mat_solver_type'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15 mumps'
end_time = 5.0
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'none'
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[]
[Outputs]
file_base = ${name}
[comp]
type = CSV
show = 'contact'
[]
[out]
type = CSV
file_base = '${name}_out'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/solid_mechanics/test/tests/jacobian_damper/cube_load_undisplaced.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0.025 0.05'
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
displacements = 'disp_x disp_y disp_z'
[all]
displacements = 'disp_x disp_y disp_z'
strain = FINITE
add_variables = true
new_system = true
formulation = TOTAL
[]
[]
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = 3
function = top_pull
preset = true
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 2e5
[]
[stress]
type = ComputeLagrangianLinearElasticStress
large_kinematics = true
[]
[]
[Dampers]
[ejd]
type = ReferenceElementJacobianDamper
max_increment = 0.002
displacements = 'disp_x disp_y disp_z'
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
start_time = 0.0
end_time = 2
dt = 1
[]
[Outputs]
exodus = true
print_linear_residuals = false
[]
(modules/contact/test/tests/sliding_block/edge_dropping/two_equal_blocks_slide_2d.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 2
xmin = -1.0
xmax = 0.0
ymin = -0.5
ymax = 0.5
nx = 4
ny = 4
elem_type = QUAD4
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3'
new_boundary = '10 11 12 13'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sidesets
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.0
xmax = 1.0
ymin = -0.5
ymax = 0.5
nx = 5
ny = 5
elem_type = QUAD4
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3'
new_boundary = '20 21 22 23'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sidesets
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[left_lower]
type = LowerDBlockFromSidesetGenerator
input = combined_mesh
sidesets = '11'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[right_lower]
type = LowerDBlockFromSidesetGenerator
input = left_lower
sidesets = '23'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = PiecewiseLinear
x = '0 0.1 4'
y = '0 0.05 0.05'
[]
[vertical_movement]
type = PiecewiseLinear
x = '0 0.1 4'
y = '0 0 0.3'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = horizontal_movement
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 21
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 21
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 13
function = vertical_movement
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_variable = normal_lm
correct_edge_dropping = true
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[normal_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type '
'-pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist nonzero 1e-10'
line_search = 'none'
dt = 0.1
dtmin = 0.01
end_time = 1.0
l_max_its = 20
nl_max_its = 20
nl_rel_tol = 1e-6
nl_abs_tol = 1e-8
snesmf_reuse_base = false
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
[Postprocessors]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = 'secondary_lower'
[]
[normal_lm]
type = ElementAverageValue
variable = normal_lm
block = 'secondary_lower'
[]
[avg_disp_x]
type = ElementAverageValue
variable = disp_x
block = '1 2'
[]
[avg_disp_y]
type = ElementAverageValue
variable = disp_y
block = '1 2'
[]
[max_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
[]
[max_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
[]
[min_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
value_type = min
[]
[min_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
value_type = min
[]
[]
(modules/contact/test/tests/mortar_cartesian_lms/frictionless-mortar-3d-friction.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
second_order = false
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[disp_z]
block = '1 2'
[]
[lm_x]
block = 'secondary_lower'
use_dual = true
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
[]
[lm_z]
block = 'secondary_lower'
use_dual = true
[]
[]
[ICs]
[disp_z]
block = 1
variable = disp_z
value = '${fparse offset}'
type = ConstantIC
[]
[disp_x]
block = 1
variable = disp_x
value = 0
type = ConstantIC
[]
[disp_y]
block = 1
variable = disp_y
value = 0
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[disp_z]
type = MatDiffusion
variable = disp_z
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeFrictionalForceCartesianLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_x = lm_x
lm_y = lm_y
lm_z = lm_z
variable = lm_x # This can be anything really
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
correct_edge_dropping = true
c = 1e+02
c_t = 1e+2
mu = 0.10
[]
[normal_x]
type = CartesianMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_y]
type = CartesianMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_z]
type = CartesianMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_z
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Preconditioning]
[vcp]
type = VCP
full = true
lm_variable = 'lm_x lm_y lm_z'
primary_variable = 'disp_x disp_y disp_z'
preconditioner = 'LU'
is_lm_coupling_diagonal = true
adaptive_condensation = true
[]
[]
[Executioner]
type = Transient
end_time = 1
dt = .5
dtmin = .01
solve_type = 'NEWTON'
petsc_options_iname = '-pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = ' NONZERO 1e-10'
l_max_its = 100
nl_max_its = 30
# nl_rel_tol = 1e-6
nl_abs_tol = 1e-12
line_search = 'none'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = lm_z
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = secondary_lower
variable = lm_z
sort_by = 'id'
execute_on = NONLINEAR
[]
[]
(modules/contact/test/tests/mechanical_constraint/frictionless_kinematic_gap_offsets.i)
# this test is the same as frictionless_kinematic test but designed to test the gap offset capability
# gap offsets with value of 0.01 were introduced to both primary and secondary sides in the initial mesh
# these values were accounted using the gap offset capability to produce the same result as if no gap offsets were introduced
[Mesh]
file = blocks_2d_gap_offset.e
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[./primary_gap_offset]
[../]
[./secondary_gap_offset]
[../]
[./mapped_primary_gap_offset]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[../]
[]
[AuxKernels]
[./zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./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
[../]
[./primary_gap_offset]
type = ConstantAux
variable = primary_gap_offset
value = -0.01
boundary = 2
[../]
[./mapped_primary_gap_offset]
type = GapValueAux
variable = mapped_primary_gap_offset
paired_variable = primary_gap_offset
boundary = 3
paired_boundary = 2
[../]
[./secondary_gap_offset]
type = ConstantAux
variable = secondary_gap_offset
value = -0.01
boundary = 3
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = -0.02
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = 1
poissons_ratio = 0.3
youngs_modulus = 1e7
[../]
[./right]
type = ComputeIsotropicElasticityTensor
block = 2
poissons_ratio = 0.3
youngs_modulus = 1e6
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.01
end_time = 0.10
num_steps = 1000
l_tol = 1e-6
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dtmin = 0.01
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
file_base = frictionless_kinematic_gap_offsets_out
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
primary = 2
secondary = 3
model = frictionless
penalty = 1e+6
secondary_gap_offset = secondary_gap_offset
mapped_primary_gap_offset = mapped_primary_gap_offset
[../]
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/RZ_cone_no_parts.i)
# This input file tests several different things:
# .) The axisymmetric (RZ) form of the governing equations.
# .) An open boundary.
# .) Not integrating the pressure by parts, thereby requiring a pressure pin.
# .) Natural boundary condition at the outlet.
[GlobalParams]
integrate_p_by_parts = false
laplace = false
gravity = '0 0 0'
[]
[Mesh]
file = '2d_cone.msh'
[]
[Problem]
coord_type = RZ
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = Newton
[../]
[]
[Executioner]
type = Transient
dt = 0.005
dtmin = 0.005
num_steps = 5
l_max_its = 100
# Note: The Steady executioner can be used for this problem, if you
# drop the INSMomentumTimeDerivative kernels and use the following
# direct solver options.
# petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -ksp_type'
# petsc_options_value = 'lu NONZERO 1.e-10 preonly'
# Block Jacobi works well for this problem, as does "-pc_type asm
# -pc_asm_overlap 2", but an overlap of 1 does not work for some
# reason?
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'bjacobi ilu 4'
nl_rel_tol = 1e-12
nl_max_its = 6
[]
[Outputs]
console = true
[./out]
type = Exodus
[../]
[]
[Variables]
[./vel_x]
# Velocity in radial (r) direction
family = LAGRANGE
order = SECOND
[../]
[./vel_y]
# Velocity in axial (z) direction
family = LAGRANGE
order = SECOND
[../]
[./p]
family = LAGRANGE
order = FIRST
[../]
[]
[BCs]
[./p_corner]
# This is required, because pressure term is *not* integrated by parts.
type = DirichletBC
boundary = top_right
value = 0
variable = p
[../]
[./u_out]
type = INSMomentumNoBCBCTractionForm
boundary = top
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./v_out]
type = INSMomentumNoBCBCTractionForm
boundary = top
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[./u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[../]
[./v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[../]
[./u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[../]
[./v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[../]
[]
[Kernels]
[./x_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_x
[../]
[./y_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_y
[../]
[./mass]
type = INSMassRZ
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumTractionFormRZ
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumTractionFormRZ
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 'volume'
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[../]
[]
[Postprocessors]
[./flow_in]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'bottom'
outputs = 'console' execute_on = 'timestep_end'
[../]
[./flow_out]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'top'
outputs = 'console' execute_on = 'timestep_end'
[../]
[]
(modules/contact/test/tests/cohesive_zone_model/mortar_czm_analysis.i)
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 2
xmax = 1
ymax = 1
nx = 5
ny = 5
boundary_name_prefix = bottom
[]
[msh_id]
type = SubdomainIDGenerator
input = msh
subdomain_id = 1
[]
[msh_two]
type = GeneratedMeshGenerator
dim = 2
xmax = 1
ymin = 1
ymax = 2
nx = 5
ny = 5
boundary_name_prefix = top
boundary_id_offset = 10
[]
[msh_two_id]
type = SubdomainIDGenerator
input = msh_two
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'msh_id msh_two_id'
[]
[top_node]
type = ExtraNodesetGenerator
coord = '0 2 0'
input = combined
new_boundary = top_node
[]
[bottom_node]
type = ExtraNodesetGenerator
coord = '0 0 0'
input = top_node
new_boundary = bottom_node
[]
# Build subdomains
[secondary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10001
new_block_name = 'secondary_lower'
sidesets = 'bottom_top'
input = bottom_node
[]
[primary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10000
sidesets = 'top_bottom'
new_block_name = 'primary_lower'
input = secondary
[]
allow_renumbering = false
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
generate_output = 'stress_yy'
[all]
strain = FINITE
add_variables = true
use_automatic_differentiation = true
decomposition_method = TaylorExpansion
block = '1 2'
[]
[]
[]
[]
[BCs]
[fix_x]
type = DirichletBC
preset = true
value = 0.0
boundary = bottom_node
variable = disp_x
[]
[lateral_top]
type = FunctionDirichletBC
boundary = top_top
variable = disp_x
function = 'if(t<=0.3,t,if(t<=0.6,0.3-(t-0.3),0.6-t))'
preset = true
[]
[top]
type = FunctionDirichletBC
boundary = top_top
variable = disp_y
function = 'if(t<=0.3,t,if(t<=0.6,0.3-(t-0.3),0.6-t))'
preset = true
[]
[bottom]
type = DirichletBC
boundary = bottom_bottom
variable = disp_y
value = 0
preset = true
[]
[]
[AuxVariables]
[mode_mixity_ratio]
[]
[damage]
[]
[local_normal_jump]
[]
[local_tangential_jump]
[]
[]
[AuxKernels]
[mode_mixity_ratio]
type = CohesiveZoneMortarUserObjectAux
variable = mode_mixity_ratio
user_object = czm_uo
cohesive_zone_quantity = mode_mixity_ratio
boundary = 'bottom_top'
[]
[cohesive_damage]
type = CohesiveZoneMortarUserObjectAux
variable = damage
user_object = czm_uo
cohesive_zone_quantity = cohesive_damage
boundary = 'bottom_top'
[]
[local_normal_jump]
type = CohesiveZoneMortarUserObjectAux
variable = local_normal_jump
user_object = czm_uo
cohesive_zone_quantity = local_normal_jump
boundary = 'bottom_top'
[]
[local_tangential_jump]
type = CohesiveZoneMortarUserObjectAux
variable = local_tangential_jump
user_object = czm_uo
cohesive_zone_quantity = local_tangential_jump
boundary = 'bottom_top'
[]
[]
[Materials]
[stress]
type = ADComputeFiniteStrainElasticStress
block = '1 2'
[]
[elasticity_tensor]
type = ADComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
block = '1 2'
[]
[normal_strength]
type = GenericFunctionMaterial
prop_names = 'N'
prop_values = 'if(x<0.5,1,100)*1e4'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
l_max_its = 2
l_tol = 1e-14
nl_max_its = 30
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
dt = 0.0005
end_time = 0.01
dtmin = 0.0001
[]
[Outputs]
exodus = true
[]
[UserObjects]
[czm_uo]
type = BilinearMixedModeCohesiveZoneModel
primary_boundary = 'top_bottom'
secondary_boundary = 'bottom_top'
primary_subdomain = 10000
secondary_subdomain = 10001
disp_x = disp_x
disp_y = disp_y
friction_coefficient = 0.1 # with 2.0 works
secondary_variable = disp_x
penalty = 0e6
penalty_friction = 1e4
use_physical_gap = true
correct_edge_dropping = true
normal_strength = N
shear_strength = 1e3
viscosity = 1e-3
penalty_stiffness = 1e6
mixed_mode_criterion = POWER_LAW
power_law_parameter = 2.2
GI_c = 1e3
GII_c = 1e2
displacements = 'disp_x disp_y'
[]
[]
[Constraints]
[x]
type = NormalMortarMechanicalContact
primary_boundary = 'top_bottom'
secondary_boundary = 'bottom_top'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = czm_uo
correct_edge_dropping = true
[]
[y]
type = NormalMortarMechanicalContact
primary_boundary = 'top_bottom'
secondary_boundary = 'bottom_top'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = czm_uo
correct_edge_dropping = true
[]
[c_x]
type = MortarGenericTraction
primary_boundary = 'top_bottom'
secondary_boundary = 'bottom_top'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
cohesive_zone_uo = czm_uo
correct_edge_dropping = true
[]
[c_y]
type = MortarGenericTraction
primary_boundary = 'top_bottom'
secondary_boundary = 'bottom_top'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
cohesive_zone_uo = czm_uo
correct_edge_dropping = true
[]
[]
(modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian_pg.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
[]
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
converge_on = 'disp_x disp_y'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[lm_x]
block = 'secondary_lower'
use_dual = true
scaling = 1.0e-5
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
scaling = 1.0e-5
[]
[]
[AuxVariables]
[aux_lm]
block = 'secondary_lower'
use_dual = false
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[saved_x]
[]
[saved_y]
[]
[diag_saved_x]
[]
[diag_saved_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'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
incremental = false
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
block = '1 2 3 4 5 6 7'
strain = SMALL
add_variables = false
[]
[]
[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'
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[]
[_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
[]
[stuff2_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2 3 4 5 6 7'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[stuff1_stress]
type = ComputeLinearElasticStress
block = '1'
[]
[stuff2_stress]
type = ComputeLinearElasticStress
block = '2 3 4 5 6 7'
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu NONZERO 1e-12'
line_search = 'none'
nl_abs_tol = 1e-7
l_max_its = 5
nl_rel_tol = 1e-09
start_time = -0.1
end_time = 0.3 # 3.5
l_tol = 1e-8
dt = 0.1
dtmin = 0.001
[]
[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
[]
[lm_x]
type = NodalValueSampler
variable = lm_x
boundary = '3'
sort_by = id
[]
[lm_y]
type = NodalValueSampler
variable = lm_y
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 lm_x lm_y'
file_base = cylinder_friction_check
create_final_symlink = true
execute_on = 'FINAL'
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeFrictionalForceCartesianLMMechanicalContact
primary_boundary = 2
secondary_boundary = 3
primary_subdomain = 10000
secondary_subdomain = 10001
lm_x = lm_x
lm_y = lm_y
variable = lm_x
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
correct_edge_dropping = false
mu = 0.4
c_t = 1.0e6
c = 1.0e6
use_petrov_galerkin = true
aux_lm = aux_lm
[]
[x]
type = CartesianMortarMechanicalContact
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = false
[]
[y]
type = CartesianMortarMechanicalContact
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = false
[]
[]
(test/tests/time_steppers/postprocessor_dt/postprocessor_dt.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[ICs]
[./u_var]
type = FunctionIC
variable = u
function = exact_fn
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_error]
type = ElementL2Error
variable = u
function = exact_fn
execute_on = 'initial timestep_end'
[../]
# Just use some postprocessor that gives values good enough for time stepping ;-)
[./dt]
type = ElementAverageValue
variable = u
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
scheme = 'crank-nicolson'
start_time = 1.0
num_steps = 2
[./TimeStepper]
type = PostprocessorDT
postprocessor = dt
[../]
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test4.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test4.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[]
[Outputs]
file_base = pl_test4_out
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/user_object.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 2
ny = 2
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = element
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = lage
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.01
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.01
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(test/tests/postprocessors/element_vec_l2_error_pps/element_vec_l2_error.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 5
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
[]
[Variables]
active = 'u v'
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
active = 'bc_u bc_v f_u f_v'
# A ParsedFunction allows us to supply analytic expressions
# directly in the input file
[./bc_u]
type = ParsedFunction
expression = sin(alpha*pi*x)
symbol_names = 'alpha'
symbol_values = '2'
[../]
[./bc_v]
type = ParsedFunction
expression = sin(alpha*pi*y)
symbol_names = 'alpha'
symbol_values = '2'
[../]
[./f_u]
type = ParsedFunction
expression = alpha*alpha*pi*pi*sin(alpha*pi*x)
symbol_names = 'alpha'
symbol_values = '2'
[../]
[./f_v]
type = ParsedFunction
expression = alpha*alpha*pi*pi*sin(alpha*pi*y)
symbol_names = 'alpha'
symbol_values = '2'
[../]
[]
[Kernels]
active = 'diff_u diff_v forcing_u forcing_v'
[./diff_u]
type = Diffusion
variable = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
# This Kernel can take a function name to use
[./forcing_u]
type = BodyForce
variable = u
function = f_u
[../]
[./forcing_v]
type = BodyForce
variable = v
function = f_v
[../]
[]
[BCs]
active = 'all_u all_v'
# The BC can take a function name to use
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = 'bottom right top left'
function = bc_u
[../]
[./all_v]
type = FunctionDirichletBC
variable = v
boundary = 'bottom right top left'
function = bc_v
[../]
[]
[Executioner]
type = Steady
[./Adaptivity]
refine_fraction = 1.0
coarsen_fraction = 0.0
max_h_level = 10
steps = 3
[../]
[]
[Postprocessors]
[./dofs]
type = NumDOFs
execute_on = 'initial timestep_end'
[../]
[./integral]
type = ElementVectorL2Error
var_x = u
var_y = v
function_x = bc_u
function_y = bc_v
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
file_base = out
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/generalized_plane_strain/pull_2D.i)
constraint_types = 'none none none none none none none none strain'
targets = '0'
[GlobalParams]
displacements = 'disp_x disp_y'
large_kinematics = true
stabilize_strain = true
macro_gradient = hvar
homogenization_constraint = homogenization
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
[]
use_displaced_mesh = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[hvar]
family = SCALAR
order = FIRST
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
constraint_types = ${constraint_types}
targets = ${targets}
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
variable = hvar
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[]
[BCs]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'top bottom'
value = 0
[]
[fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[]
[disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_homogenization_gradient]
type = ComputeHomogenizedLagrangianStrain
[]
[compute_strain]
type = ComputeLagrangianStrain
homogenization_gradient_names = 'homogenization_gradient'
[]
[stress]
type = ComputeLagrangianLinearElasticStress
[]
[stress_zz]
type = RankTwoCartesianComponent
rank_two_tensor = cauchy_stress
index_i = 2
index_j = 2
property_name = stress_zz
[]
[strain_zz]
type = RankTwoCartesianComponent
rank_two_tensor = mechanical_strain
index_i = 2
index_j = 2
property_name = strain_zz
[]
[]
[Executioner]
type = Transient
dt = 0.01
end_time = 0.1
solve_type = 'newton'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
[]
[Postprocessors]
[strain_zz]
type = ElementAverageMaterialProperty
mat_prop = strain_zz
[]
[stress_zz]
type = ElementAverageMaterialProperty
mat_prop = stress_zz
[]
[]
[Outputs]
csv = true
[]
(modules/contact/test/tests/fieldsplit/2blocks3d.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
file = 2blocks3d.e
patch_size = 5
[]
[Problem]
error_on_jacobian_nonzero_reallocation = true
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
incremental = true
add_variables = true
[../]
[]
[AuxVariables]
[./penetration]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./horizontal_movement]
type = ParsedFunction
expression = t/10.0
[../]
[]
[AuxKernels]
[./penetration]
type = PenetrationAux
variable = penetration
boundary = 2
paired_boundary = 3
order = FIRST
[../]
[]
[BCs]
[./push_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 1
function = horizontal_movement
[../]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = '1 4'
value = 0.0
[../]
[./fix_z]
type = DirichletBC
variable = disp_z
boundary = '1 4'
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[./stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[../]
[./elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[./stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Contact]
[./leftright]
secondary = 2
primary = 3
model = frictionless
penalty = 1e+6
normalize_penalty = true
formulation = kinematic
normal_smoothing_distance = 0.1
[../]
[]
[Preconditioning]
[./FSP]
type = FSP
# It is the starting point of splitting
topsplit = 'contact_interior' # 'contact_interior' should match the following block name
[./contact_interior]
splitting = 'contact interior'
splitting_type = multiplicative
[../]
[./interior]
type = ContactSplit
vars = 'disp_x disp_y disp_z'
uncontact_primary = '3'
uncontact_secondary = '2'
uncontact_displaced = '1'
blocks = '1 2'
include_all_contact_nodes = 1
petsc_options_iname = '-ksp_type -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter -pc_hypre_boomeramg_strong_threshold'
petsc_options_value = 'preonly hypre boomeramg 1 0.25'
[../]
[./contact]
type = ContactSplit
vars = 'disp_x disp_y disp_z'
contact_primary = '3'
contact_secondary = '2'
contact_displaced = '1'
include_all_contact_nodes = 1
petsc_options_iname = '-ksp_type -pc_type -pc_asm_overlap -sub_pc_type'
petsc_options_value = 'preonly asm 1 lu'
[../]
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
dtmin = 0.1
end_time = 0.1
l_tol = 1e-4
l_max_its = 100
nl_rel_tol = 1e-10
nl_abs_tol = 1e-6
nl_max_its = 100
[]
[Outputs]
file_base = 2blocks3d_out
[./exodus]
type = Exodus
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
(modules/solid_mechanics/test/tests/smeared_cracking/cracking_exponential.i)
#
# Test to exercise the exponential stress release
#
# Stress vs. strain should show a linear relationship until cracking,
# an exponential stress release, a linear relationship back to zero
# strain, a linear relationship with the original stiffness in
# compression and then back to zero strain, a linear relationship
# back to the exponential curve, and finally further exponential
# stress release.
#
[Mesh]
file = cracking_test.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./displx]
type = PiecewiseLinear
x = '0 1 2 3 4 5 6'
y = '0 0.00175 0 -0.0001 0 0.00175 0.0035'
[../]
[./disply]
type = PiecewiseLinear
x = '0 5 6'
y = '0 0 .00175'
[../]
[./displz]
type = PiecewiseLinear
x = '0 2 3'
y = '0 0 .0035'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[../]
[]
[BCs]
[./pullx]
type = FunctionDirichletBC
#type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = displx
[../]
[./left]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = '11 12'
value = 0.0
[../]
[./move_y]
type = FunctionDirichletBC
variable = disp_y
boundary = '15 16'
function = disply
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = '3'
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 186.5e9
poissons_ratio = .316
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
cracking_stress = 119.3e6
cracked_elasticity_type = FULL
softening_models = exponential_softening
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type'
petsc_options_value = '101 lu'
line_search = 'none'
l_max_its = 100
l_tol = 1e-6
nl_max_its = 10
nl_rel_tol = 1e-12
nl_abs_tol = 1.e-4
start_time = 0.0
dt = 0.02
dtmin = 0.02
num_steps = 300
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test2q.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test2q.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_abs_tol = 1e-7
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test2q_out
exodus = true
[]
(modules/stochastic_tools/examples/libtorch_drl_control/libtorch_drl_control_sub.i)
air_density = 1.184 # kg/m3
air_cp = 1000 # J/(kg K)
air_effective_k = 0.5 # W/(m K)
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.0
xmax = 7.0
ymin = 0.0
ymax = 5.0
nx = 35
ny = 25
[]
[]
[Variables]
[T]
initial_condition = 297
[]
[]
[Kernels]
[time_derivative]
type = CoefTimeDerivative
variable = T
Coefficient = '${fparse air_density*air_cp}'
[]
[heat_conduction]
type = MatDiffusion
variable = T
diffusivity = 'k'
[]
[]
[BCs]
[top_flux]
type = NeumannBC
value = 0.0
boundary = 'top'
variable = T
[]
[dirichlet]
type = FunctionDirichletBC
function = temp_env
variable = T
boundary = 'left right'
[]
[]
[Functions]
[temp_env]
type = ParsedFunction
value = '15.0*sin(t/86400.0*pi) + 273.0'
[]
[design_function]
type = ParsedFunction
value = '297'
[]
[reward_function]
type = ScaledAbsDifferenceDRLRewardFunction
design_function = design_function
observed_value = center_temp_tend
c1 = 1
c2 = 10
[]
[]
[Materials]
[constant]
type = GenericConstantMaterial
prop_names = 'k'
prop_values = ${air_effective_k}
[]
[]
[Postprocessors]
[center_temp]
type = PointValue
variable = T
point = '3.5 2.5 0.0'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[center_temp_tend]
type = PointValue
variable = T
point = '3.5 2.5 0.0'
execute_on = 'INITIAL TIMESTEP_END'
[]
[env_temp]
type = FunctionValuePostprocessor
function = temp_env
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[reward]
type = FunctionValuePostprocessor
function = reward_function
execute_on = 'INITIAL TIMESTEP_END'
indirect_dependencies = 'center_temp_tend env_temp'
[]
[top_flux]
type = LibtorchControlValuePostprocessor
control_name = src_control
[]
[log_prob_top_flux]
type = LibtorchDRLLogProbabilityPostprocessor
control_name = src_control
[]
[]
[Reporters]
[T_reporter]
type = AccumulateReporter
reporters = 'center_temp_tend/value env_temp/value reward/value top_flux/value log_prob_top_flux/value'
[]
[]
[Controls]
inactive = 'src_control_final'
[src_control]
type = LibtorchDRLControl
parameters = "BCs/top_flux/value"
responses = 'center_temp_tend env_temp'
# keep consistent with LibtorchDRLControlTrainer
input_timesteps = 2
response_scaling_factors = '0.03 0.03'
response_shift_factors = '290 290'
action_standard_deviations = '0.02'
action_scaling_factors = 200
execute_on = 'TIMESTEP_BEGIN'
[]
[src_control_final]
type = LibtorchNeuralNetControl
filename = 'mynet_control.net'
num_neurons_per_layer = '16 6'
activation_function = 'relu'
parameters = "BCs/top_flux/value"
responses = 'center_temp_tend env_temp'
# keep consistent with LibtorchDRLControlTrainer
input_timesteps = 2
response_scaling_factors = '0.03 0.03'
response_shift_factors = '290 290'
action_standard_deviations = '0.02'
action_scaling_factors = 200
execute_on = 'TIMESTEP_BEGIN'
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_rel_tol = 1e-7
start_time = 0.0
end_time = 86400
dt = 900.0
[]
[Outputs]
console = false
[c]
type = CSV
execute_on = FINAL
[]
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_cosserat1.i)
# Plastic deformation. Layered Cosserat with parameters:
# Young = 1.0
# Poisson = 0.2
# layer_thickness = 0.1
# joint_normal_stiffness = 0.25
# joint_shear_stiffness = 0.2
# These give the following nonzero components of the elasticity tensor:
# E_0000 = E_1111 = 1.043195
# E_0011 = E_1100 = 0.260799
# E_2222 = 0.02445
# E_0022 = E_1122 = E_2200 = E_2211 = 0.006112
# G = E_0101 = E_0110 = E_1001 = E_1010 = 0.416667
# Gt = E_0202 = E_0220 = E_2002 = E_1212 = E_1221 = E_2112 = 0.019084
# E_2020 = E_2121 = 0.217875
# They give the following nonzero components of the bending rigidity tensor:
# D = 8.68056E-5
# B_0101 = B_1010 = 7.92021E-4
# B_0110 = B_1001 = -1.584E-4
#
# Applying the following deformation to the zmax surface of a unit cube:
# disp_x = 8*t
# disp_y = 6*t
# disp_z = t
# omega_x = omega_y = omega_z = 0
# yields the following strains:
# strain_xz = 8*t
# strain_yz = 6*t
# strain_zz = t
# and all other components, and the curvature, are zero.
# The nonzero components of stress are therefore:
# stress_xx = stress_yy = 0.006112*t
# stress_xz = stress_zx = 0.152671*t
# stress_yz = stress_zy = 0.114504*t
# stress_zz = 0.0244499*t
# The moment stress is zero.
# So q = 0.19084*t and p = 0.0244*t.
#
# With large cohesion, but tensile strength = 0.0244499, the
# system is elastic up to t=1. After that time
# stress_zz = 0.0244499 (for t>=1)
# and
# stress_xx = stress_yy = 0.006112 (for t>=1), since the
# elastic trial increment is exactly canelled by the Poisson's
# contribution from the return to the yield surface.
# The plastic strains are zero for t<=1, but for larger times:
# plastic_strain_zz = (t - 1) (for t>=1)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 8*t
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 6*t
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = t
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./strainp_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[./strainp_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xx
index_i = 0
index_j = 0
[../]
[./strainp_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xy
index_i = 0
index_j = 1
[../]
[./strainp_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xz
index_i = 0
index_j = 2
[../]
[./strainp_yx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yx
index_i = 1
index_j = 0
[../]
[./strainp_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yy
index_i = 1
index_j = 1
[../]
[./strainp_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yz
index_i = 1
index_j = 2
[../]
[./strainp_zx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zx
index_i = 2
index_j = 0
[../]
[./strainp_zy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zy
index_i = 2
index_j = 1
[../]
[./strainp_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zz
index_i = 2
index_j = 2
[../]
[./straint_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xx
index_i = 0
index_j = 0
[../]
[./straint_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xy
index_i = 0
index_j = 1
[../]
[./straint_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xz
index_i = 0
index_j = 2
[../]
[./straint_yx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yx
index_i = 1
index_j = 0
[../]
[./straint_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yy
index_i = 1
index_j = 1
[../]
[./straint_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yz
index_i = 1
index_j = 2
[../]
[./straint_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zx
index_i = 2
index_j = 0
[../]
[./straint_zy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zy
index_i = 2
index_j = 1
[../]
[./straint_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zz
index_i = 2
index_j = 2
[../]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yx]
type = PointValue
point = '0 0 0'
variable = stress_yx
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zx]
type = PointValue
point = '0 0 0'
variable = stress_zx
[../]
[./s_zy]
type = PointValue
point = '0 0 0'
variable = stress_zy
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./c_s_xx]
type = PointValue
point = '0 0 0'
variable = couple_stress_xx
[../]
[./c_s_xy]
type = PointValue
point = '0 0 0'
variable = couple_stress_xy
[../]
[./c_s_xz]
type = PointValue
point = '0 0 0'
variable = couple_stress_xz
[../]
[./c_s_yx]
type = PointValue
point = '0 0 0'
variable = couple_stress_yx
[../]
[./c_s_yy]
type = PointValue
point = '0 0 0'
variable = couple_stress_yy
[../]
[./c_s_yz]
type = PointValue
point = '0 0 0'
variable = couple_stress_yz
[../]
[./c_s_zx]
type = PointValue
point = '0 0 0'
variable = couple_stress_zx
[../]
[./c_s_zy]
type = PointValue
point = '0 0 0'
variable = couple_stress_zy
[../]
[./c_s_zz]
type = PointValue
point = '0 0 0'
variable = couple_stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = strainp_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = strainp_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = strainp_xz
[../]
[./strainp_yx]
type = PointValue
point = '0 0 0'
variable = strainp_yx
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = strainp_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = strainp_yz
[../]
[./strainp_zx]
type = PointValue
point = '0 0 0'
variable = strainp_zx
[../]
[./strainp_zy]
type = PointValue
point = '0 0 0'
variable = strainp_zy
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = strainp_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = straint_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = straint_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = straint_xz
[../]
[./straint_yx]
type = PointValue
point = '0 0 0'
variable = straint_yx
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = straint_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = straint_yz
[../]
[./straint_zx]
type = PointValue
point = '0 0 0'
variable = straint_zx
[../]
[./straint_zy]
type = PointValue
point = '0 0 0'
variable = straint_zy
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = straint_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 30
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1111077
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 0.024449878
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 40
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 1.0
poisson = 0.2
layer_thickness = 0.1
joint_normal_stiffness = 0.25
joint_shear_stiffness = 0.2
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
[../]
[./admissible]
type = ComputeMultipleInelasticCosseratStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneCosseratStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0
smoothing_tol = 1
yield_function_tol = 1E-5
[../]
[]
[Executioner]
nl_abs_tol = 1E-14
end_time = 3
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_cosserat1
csv = true
[]
(test/tests/time_integrators/explicit-euler/ee-1d-linear.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = -1
xmax = 1
nx = 200
elem_type = EDGE2
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = x
[../]
[./exact_fn]
type = ParsedFunction
expression = t*x
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = ic
[../]
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
lumping = true
implicit = true
[../]
[./diff]
type = Diffusion
variable = u
implicit = false
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
implicit = false
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
preset = false
boundary = '0 1'
function = exact_fn
implicit = true
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
scheme = 'explicit-euler'
solve_type = 'LINEAR'
start_time = 0.0
num_steps = 20
dt = 0.00005
[]
[Outputs]
exodus = true
[./console]
type = Console
max_rows = 10
[../]
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test2.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test2.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[]
[Outputs]
file_base = pl_test2_out
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test3nns.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test3.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
# [./element_id]
# [../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_method = nodal_normal_based
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
# [./penetrate17]
# type = PenetrationAux
# variable = element_id
# boundary = 11
# paired_boundary = 12
# quantity = element_id
# [../]
#
# [./penetrate18]
# type = PenetrationAux
# variable = element_id
# boundary = 12
# paired_boundary = 11
# quantity = element_id
# [../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[]
[Outputs]
file_base = pl_test3nns_out
exodus = true
[]
[NodalNormals]
boundary = 11
corner_boundary = 20
[]
(test/tests/postprocessors/side_extreme_value/aux_nodal.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
second_order = true
[]
[Variables]
[u]
order = SECOND
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[]
[BCs]
[top]
type = FunctionDirichletBC
variable = u
function = 'sin(x*2*pi)'
boundary = top
[]
[]
[AuxVariables]
[aux]
family = LAGRANGE
order = SECOND
[]
[]
[AuxKernels]
[coupled]
type = CoupledAux
variable = aux
coupled = u
[]
[]
[Postprocessors]
[max]
type = SideExtremeValue
variable = aux
boundary = top
[]
[min]
type = SideExtremeValue
variable = aux
boundary = top
value_type = min
[]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Outputs]
csv = true
[]
(test/tests/mesh/mesh_generation/disc_sector_deprecated.i)
# Generates a sector of a Disc Mesh between angle=Pi/4 and angle=3Pi/4
# Radius of outside circle=5
# Solves the diffusion equation with u=-5 at origin, and u=0 on outside
# as well as u=-5+r at angle=Pi/4 and u=-5+r^4/125 at angle=3Pi/4
[Mesh]
type = AnnularMesh
nr = 10
nt = 12
rmin = 0
rmax = 5
tmin = 0.785398163
tmax = 2.356194490
growth_r = 1.3
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./inner]
type = DirichletBC
variable = u
value = -5.0
boundary = rmin
[../]
[./outer]
type = FunctionDirichletBC
variable = u
function = 0
boundary = rmax
[../]
[./tmin]
type = FunctionDirichletBC
variable = u
function = '-5.0+sqrt(x*x + y*y)'
boundary = tmin
[../]
[./tmax]
type = FunctionDirichletBC
variable = u
function = '-5.0+pow(x*x + y*y, 2)/125'
boundary = tmax
[../]
[]
[Executioner]
type = Steady
solve_type = PJFNK
[]
[Outputs]
exodus = true
[]
(modules/fluid_properties/test/tests/stiffened_gas/test.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
elem_type = QUAD4
[]
[Functions]
[./f_fn]
type = ParsedFunction
expression = -4
[../]
[./bc_fn]
type = ParsedFunction
expression = 'x*x+y*y'
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./e]
initial_condition = 113206.45935406466
[../]
[./v]
initial_condition = 0.0007354064593540647
[../]
[./p]
family = MONOMIAL
order = CONSTANT
[../]
[./T]
family = MONOMIAL
order = CONSTANT
[../]
[./cp]
family = MONOMIAL
order = CONSTANT
[../]
[./cv]
family = MONOMIAL
order = CONSTANT
[../]
[./c]
family = MONOMIAL
order = CONSTANT
[../]
[./mu]
family = MONOMIAL
order = CONSTANT
[../]
[./k]
family = MONOMIAL
order = CONSTANT
[../]
[./g]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./p]
type = MaterialRealAux
variable = p
property = pressure
[../]
[./T]
type = MaterialRealAux
variable = T
property = temperature
[../]
[./cp]
type = MaterialRealAux
variable = cp
property = cp
[../]
[./cv]
type = MaterialRealAux
variable = cv
property = cv
[../]
[./c]
type = MaterialRealAux
variable = c
property = c
[../]
[./mu]
type = MaterialRealAux
variable = mu
property = mu
[../]
[./k]
type = MaterialRealAux
variable = k
property = k
[../]
[./g]
type = MaterialRealAux
variable = g
property = g
[../]
[]
[FluidProperties]
[./sg]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
mu = 0.9
k = 0.6
[../]
[]
[Materials]
[./fp_mat]
type = FluidPropertiesMaterialVE
e = e
v = v
fp = sg
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = f_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = bc_fn
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test3qtt.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test3qtt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.1
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.1
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_abs_tol = 1e-7
l_max_its = 10
start_time = 0.0
dt = 0.0125
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test3qtt_out
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/materials/kinematic_check/strain_check.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 3
ny = 3
nz = 3
elem_type = HEX8
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
new_system = true
formulation = TOTAL
strain = FINITE
add_variables = true
generate_output = 'cauchy_stress_xx cauchy_stress_yy cauchy_stress_zz cauchy_stress_xy'
[]
[]
[Functions]
[tdisp]
type = ParsedFunction
expression = '0.5 * t'
[]
[tdisp_quer]
type = ParsedFunction
expression = '0.5 * y * t'
[]
[]
[BCs]
[bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[bottom_x]
type = DirichletBC
variable = disp_x
boundary = bottom
value = 0
[]
[bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0
[]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[right_x]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[]
[front_z]
type = DirichletBC
variable = disp_z
boundary = front
value = 0
[]
[back_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[]
[]
[Materials]
[elasticity]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 30
poissons_ratio = 0.4
[]
[stress]
type = ComputeLagrangianWrappedStress
[]
[stress_base]
type = ComputeLinearElasticStress
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 1
dt = 0.25
[]
(test/tests/geomsearch/2d_moving_penetration/restart.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test1.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 0.5
[]
[Outputs]
exodus = true
checkpoint = true
[]
(modules/contact/test/tests/dual_mortar/dm_mechanical_contact_precon.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 2
xmin = -1.05
xmax = -0.05
ymin = -1
ymax = 0
nx = 4
ny = 8
elem_type = QUAD4
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3'
new_boundary = '10 11 12 13'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sidesets
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1
ymin = -1
ymax = 1
nx = 4
ny = 8
elem_type = QUAD4
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3'
new_boundary = '20 21 22 23'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sidesets
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = PiecewiseLinear
x ='0 0.5 2'
y = '0 0.1 0.1'
[]
[vertical_movement]
type = PiecewiseLinear
x ='0 0.5 2'
y = '0.001 0.001 0.2'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = horizontal_movement
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 21
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 21
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 13
function = vertical_movement
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Contact]
[leftright]
secondary = '11'
primary = '23'
formulation = mortar
model = frictionless
[]
[]
[Preconditioning]
[vcp]
type = VCP
full = true
lm_variable = 'leftright_normal_lm'
primary_variable = 'disp_x'
preconditioner = 'AMG'
is_lm_coupling_diagonal = true
adaptive_condensation = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_view'
dt = 0.2
dtmin = 0.2
end_time = 1.0
l_max_its = 20
nl_max_its = 8
nl_rel_tol = 1e-6
snesmf_reuse_base = false
[]
[Outputs]
file_base = ./dm_contact_gmesh_out
[comp]
type = CSV
show = 'contact normal_lm avg_disp_x avg_disp_y max_disp_x max_disp_y min_disp_x min_disp_y'
execute_on = 'FINAL'
[]
[]
[Postprocessors]
[contact]
type = ContactDOFSetSize
variable = leftright_normal_lm
subdomain = leftright_secondary_subdomain
[]
[normal_lm]
type = ElementAverageValue
variable = leftright_normal_lm
block = leftright_secondary_subdomain
[]
[avg_disp_x]
type = ElementAverageValue
variable = disp_x
block = '1 2'
[]
[avg_disp_y]
type = ElementAverageValue
variable = disp_y
block = '1 2'
[]
[max_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
[]
[max_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
[]
[min_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
value_type = min
[]
[min_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
value_type = min
[]
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/sphere2DRZ.i)
#
# 2DRZ Spherical Gap Heat Transfer Test.
#
# This test exercises 2D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid sphere of radius = 1 unit, and outer
# hollow sphere with an inner radius of 2. In other words, the gap between
# them is 1 radial unit in length.
#
# The conductivity of both spheres is set very large to achieve a uniform
# temperature in each sphere. The temperature of the center node of the
# inner sphere is ramped from 100 to 200 over one time unit. The
# temperature of the outside of the outer, hollow sphere is held fixed
# at 100.
#
# A simple analytical solution is possible for the integrated heat flux
# between the inner and outer spheres:
#
# Integrated Flux = (T_left - T_right) * (gapK/(r^2*((1/r1)-(1/r2)))) * Area
#
# For gapK = 1 (default value)
#
# The area is taken as the area of the secondary (inner) surface:
#
# Area = 4 * pi * 1^2 (4*pi*r^2)
#
# The integrated heat flux across the gap at time 1 is then:
#
# 4*pi*k*delta_T/((1/r1)-(1/r2))
# 4*pi*1*100/((1/1) - (1/2)) = 2513.3 watts
#
# For comparison, see results from the integrated flux post processors.
# This simulation makes use of symmetry, so only 1/2 of the spheres is meshed
# As such, the integrated flux from the post processors is 1/2 of the total,
# or 1256.6 watts... i.e. 400*pi.
# The value coming from the post processor is slightly less than this
# but converges as mesh refinement increases.
#
# Simulating contact is challenging. Regression tests that exercise
# contact features can be difficult to solve consistently across multiple
# platforms. While designing these tests, we felt it worth while to note
# some aspects of these tests. The following applies to:
# sphere3D.i, sphere2DRZ.i, cyl2D.i, and cyl3D.i.
# 1. We decided that to perform consistently across multiple platforms we
# would use very small convergence tolerance. In this test we chose an
# nl_rel_tol of 1e-12.
# 2. Due to such a high value for thermal conductivity (used here so that the
# domains come to a uniform temperature) the integrated flux at time = 0
# was relatively large (the value coming from SideIntegralFlux =
# -_diffusion_coef[_qp]*_grad_u[_qp]*_normals[_qp] where the diffusion coefficient
# here is thermal conductivity).
# Even though _grad_u[_qp] is small, in this case the diffusion coefficient
# is large. The result is a number that isn't exactly zero and tends to
# fail exodiff. For this reason the parameter execute_on = initial should not
# be used. That parameter is left to default settings in these regression tests.
#
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = cyl2D.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
gap_conductivity = 1
quadrature = true
gap_geometry_type = SPHERE
sphere_origin = '0 0 0'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[./Console]
type = Console
[../]
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
(modules/solid_mechanics/examples/coal_mining/cosserat_mc_only.i)
# Strata deformation and fracturing around a coal mine
#
# A 2D geometry is used that simulates a transverse section of
# the coal mine. The model is actually 3D, but the "x"
# dimension is only 10m long, meshed with 1 element, and
# there is no "x" displacement. The mine is 300m deep
# and just the roof is studied (0<=z<=300). The model sits
# between 0<=y<=450. The excavation sits in 0<=y<=150. This
# is a "half model": the boundary conditions are such that
# the model simulates an excavation sitting in -150<=y<=150
# inside a model of the region -450<=y<=450. The
# excavation height is 3m (ie, the excavation lies within
# 0<=z<=3). Mining is simulated by moving the excavation's
# roof down, until disp_z=-3 at t=1.
# Time is meaningless in this example
# as quasi-static solutions are sought at each timestep, but
# the number of timesteps controls the resolution of the
# process.
#
# The boundary conditions are:
# - disp_x = 0 everywhere
# - disp_y = 0 at y=0 and y=450
# - disp_z = 0 for y>150
# - disp_z = -3 at maximum, for 0<=y<=150. See excav function.
# That is, rollers on the sides, free at top, and prescribed at bottom.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa. The initial stress is consistent with
# the weight force from density 2500 kg/m^3, ie, stress_zz = -0.025*(300-z) MPa
# where gravity = 10 m.s^-2 = 1E-5 MPa m^2/kg. The maximum and minimum
# principal horizontal stresses are assumed to be equal to 0.8*stress_zz.
#
# Below you will see weak-plane parameters and AuxVariables, etc.
# These are not actally used in this example.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# MC cohesion = 3 MPa
# MC friction angle = 37 deg
# MC dilation angle = 8 deg
# MC tensile strength = 1 MPa
# MC compressive strength = 100 MPa, varying down to 1 MPa when tensile strain = 1
#
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
xmin = -5
xmax = 5
nz = 40
zmin = 0
zmax = 400.0
bias_z = 1.1
ny = 30 # make this a multiple of 3, so y=150 is at a node
ymin = 0
ymax = 450
[]
[left]
type = SideSetsAroundSubdomainGenerator
new_boundary = 11
normal = '0 -1 0'
input = generated_mesh
[]
[right]
type = SideSetsAroundSubdomainGenerator
new_boundary = 12
normal = '0 1 0'
input = left
[]
[front]
type = SideSetsAroundSubdomainGenerator
new_boundary = 13
normal = '-1 0 0'
input = right
[]
[back]
type = SideSetsAroundSubdomainGenerator
new_boundary = 14
normal = '1 0 0'
input = front
[]
[top]
type = SideSetsAroundSubdomainGenerator
new_boundary = 15
normal = '0 0 1'
input = back
[]
[bottom]
type = SideSetsAroundSubdomainGenerator
new_boundary = 16
normal = '0 0 -1'
input = top
[]
[excav]
type = SubdomainBoundingBoxGenerator
block_id = 1
bottom_left = '-5 0 0'
top_right = '5 150 3'
input = bottom
[]
[roof]
type = SideSetsBetweenSubdomainsGenerator
new_boundary = 21
primary_block = 0
paired_block = 1
input = excav
[]
[hole]
type = BlockDeletionGenerator
block = 1
input = roof
[]
[]
[GlobalParams]
block = 0
perform_finite_strain_rotations = false
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[]
[Kernels]
[./cy_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_x
component = 0
[../]
[./gravity]
type = Gravity
use_displaced_mesh = false
variable = disp_z
value = -10E-6
[../]
[]
[AuxVariables]
[./disp_x]
[../]
[./wc_y]
[../]
[./wc_z]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_shear]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_internal_parameter
variable = mc_shear
[../]
[./mc_tensile]
type = MaterialStdVectorAux
index = 1
property = mc_plastic_internal_parameter
variable = mc_tensile
[../]
[./wp_shear]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_internal_parameter
variable = wp_shear
[../]
[./wp_tensile]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_internal_parameter
variable = wp_tensile
[../]
[./mc_shear_f]
type = MaterialStdVectorAux
index = 6
property = mc_plastic_yield_function
variable = mc_shear_f
[../]
[./mc_tensile_f]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_yield_function
variable = mc_tensile_f
[../]
[./wp_shear_f]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_yield_function
variable = wp_shear_f
[../]
[./wp_tensile_f]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_yield_function
variable = wp_tensile_f
[../]
[]
[BCs]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = '11 12 16 21' # note addition of 16 and 21
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = '16'
value = 0.0
[../]
[./no_wc_x]
type = DirichletBC
variable = wc_x
boundary = '11 12'
value = 0.0
[../]
[./roof]
type = FunctionDirichletBC
variable = disp_z
boundary = 21
function = excav_sideways
[../]
[]
[Functions]
[./ini_xx]
type = ParsedFunction
expression = '-0.8*2500*10E-6*(400-z)'
[../]
[./ini_zz]
type = ParsedFunction
expression = '-2500*10E-6*(400-z)'
[../]
[./excav_sideways]
type = ParsedFunction
symbol_names = 'end_t ymin ymax e_h closure_dist'
symbol_values = '1.0 0 150.0 -3.0 15.0'
expression = 'e_h*max(min((t/end_t*(ymax-ymin)+ymin-y)/closure_dist,1),0)'
[../]
[./excav_downwards]
type = ParsedFunction
symbol_names = 'end_t ymin ymax e_h closure_dist'
symbol_values = '1.0 0 150.0 -3.0 15.0'
expression = 'e_h*t/end_t*max(min(((ymax-ymin)+ymin-y)/closure_dist,1),0)'
[../]
[]
[UserObjects]
[./mc_coh_strong_harden]
type = SolidMechanicsHardeningExponential
value_0 = 2.99 # MPa
value_residual = 3.01 # MPa
rate = 1.0
[../]
[./mc_fric]
type = SolidMechanicsHardeningConstant
value = 0.65 # 37deg
[../]
[./mc_dil]
type = SolidMechanicsHardeningConstant
value = 0.15 # 8deg
[../]
[./mc_tensile_str_strong_harden]
type = SolidMechanicsHardeningExponential
value_0 = 1.0 # MPa
value_residual = 1.0 # MPa
rate = 1.0
[../]
[./mc_compressive_str]
type = SolidMechanicsHardeningCubic
value_0 = 100 # Large!
value_residual = 100
internal_limit = 0.1
[../]
[./wp_coh_harden]
type = SolidMechanicsHardeningCubic
value_0 = 0.1
value_residual = 0.1
internal_limit = 10
[../]
[./wp_tan_fric]
type = SolidMechanicsHardeningConstant
value = 0.36 # 20deg
[../]
[./wp_tan_dil]
type = SolidMechanicsHardeningConstant
value = 0.18 # 10deg
[../]
[./wp_tensile_str_harden]
type = SolidMechanicsHardeningCubic
value_0 = 0.1
value_residual = 0.1
internal_limit = 10
[../]
[./wp_compressive_str_soften]
type = SolidMechanicsHardeningCubic
value_0 = 100
value_residual = 1.0
internal_limit = 1.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
eigenstrain_names = ini_stress
[../]
[./ini_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = 'ini_xx 0 0 0 ini_xx 0 0 0 ini_zz'
eigenstrain_name = ini_stress
[../]
[./stress]
type = ComputeMultipleInelasticCosseratStress
block = 0
inelastic_models = mc
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./mc]
type = CappedMohrCoulombCosseratStressUpdate
block = 0
warn_about_precision_loss = false
host_youngs_modulus = 8E3
host_poissons_ratio = 0.25
base_name = mc
tensile_strength = mc_tensile_str_strong_harden
compressive_strength = mc_compressive_str
cohesion = mc_coh_strong_harden
friction_angle = mc_fric
dilation_angle = mc_dil
max_NR_iterations = 100000
smoothing_tol = 0.1 # MPa # Must be linked to cohesion
yield_function_tol = 1E-9 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0
[../]
[./wp]
type = CappedWeakPlaneCosseratStressUpdate
block = 0
warn_about_precision_loss = false
base_name = wp
cohesion = wp_coh_harden
tan_friction_angle = wp_tan_fric
tan_dilation_angle = wp_tan_dil
tensile_strength = wp_tensile_str_harden
compressive_strength = wp_compressive_str_soften
max_NR_iterations = 10000
tip_smoother = 0.1
smoothing_tol = 0.1 # MPa # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
yield_function_tol = 1E-11 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0E-3
[../]
[./density]
type = GenericConstantMaterial
prop_names = density
prop_values = 2500
[../]
[]
[Postprocessors]
[./subsidence]
type = PointValue
point = '0 0 400'
variable = disp_z
use_displaced_mesh = false
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
line_search = bt
nl_abs_tol = 1e-3
nl_rel_tol = 1e-5
l_max_its = 30
nl_max_its = 1000
start_time = 0.0
dt = 0.2
end_time = 0.2
[]
[Outputs]
file_base = cosserat_mc_only
time_step_interval = 1
print_linear_residuals = false
csv = true
exodus = true
[./console]
type = Console
output_linear = false
[../]
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_inclined2.i)
# Plastic deformation, tensile failure, with normal=(1,0,0)
# With Lame lambda=0 and Lame mu=1, applying the following
# deformation to the zmax surface of a unit cube:
# disp_x = t
# should yield trial stress:
# stress_xx = 2*t
# Use tensile strength = 1, we should return to stress_xx = 1
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = right
function = 0
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = right
function = 0
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 30
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1111077
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 40
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakInclinedPlaneStressUpdate
normal_vector = '1 0 0'
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-5
[../]
[]
[Executioner]
end_time = 2
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_inclined2
csv = true
[]
(modules/solid_mechanics/test/tests/weak_plane_shear/large_deform1.i)
# rotate the mesh by 90degrees
# then pull in the z direction - should be no plasticity
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
decomposition_method = EigenSolution
generate_output = 'stress_xz stress_zx stress_yz stress_zz'
[]
[BCs]
# rotate:
# ynew = c*y + s*z. znew = -s*y + c*z
[bottomx]
type = FunctionDirichletBC
variable = disp_x
boundary = back
function = '0'
[]
[bottomy]
type = FunctionDirichletBC
variable = disp_y
boundary = back
function = '0*y+1*z-y'
[]
[bottomz]
type = FunctionDirichletBC
variable = disp_z
boundary = back
function = '-1*y+0*z-z+if(t>0,0.5-y,0)' # note that this uses original nodal values of (x,y,z)
[]
[topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = '0'
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = '0*y+1*z-y'
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '-1*y+0*z-z+if(t>0,0.5-y,0)' # note that this uses original nodal values of (x,y,z)
[]
[]
[AuxVariables]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[]
[s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningConstant
value = 1
[]
[tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[]
[tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1111077
[]
[wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
smoother = 0.5
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-6
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1E6'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wps
transverse_direction = '0 0 1'
ep_plastic_tolerance = 1E-5
debug_fspb = crash
[]
[]
[Executioner]
start_time = -1
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
exodus = true
[]
(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/tensile/small_deform3.i)
# checking for small deformation
# A single element is stretched by "ep" in the z and x directions
# This causes the return direction to be along the hypersurface sigma_I = sigma_II
# tensile_strength is set to 1Pa, tip_smoother = 0, edge_smoother = 25degrees
# Then A + B + C = 0.609965
#
# The trial stress is (la, 0, la), with mean stress 2la/3, and bar(sigma)=sqrt(secondInvariant)=la/sqrt(3)
# If this sits on the yield surface then
# 2la/3 + la*K/sqrt(3) - 1 = 0
# So la = 0.9815. Therefore, with young's modulus = 2MPa, we need "ep" = 0.9815/4. I set
# "ep" = 0.25 and observe a tiny amount of yielding
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.25E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.25E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./mc]
type = SolidMechanicsPlasticTensile
tensile_strength = ts
yield_function_tolerance = 1E-6
tensile_tip_smoother = 0.0
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/peridynamics/test/tests/failure_tests/2D_singular_shape_tensor_H1NOSPD.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
cracks_start = '0.25 0.5 0'
cracks_end = '0.75 0.5 0'
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 8
ny = 8
[../]
[./gpd]
type = MeshGeneratorPD
input = gmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./critical_stress]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./bond_status]
type = RankTwoBasedFailureCriteriaNOSPD
variable = bond_status
rank_two_tensor = stress
critical_variable = critical_stress
failure_criterion = VonMisesStress
[../]
[]
[UserObjects]
[./singular_shape_tensor]
type = SingularShapeTensorEliminatorUserObjectPD
[../]
[]
[ICs]
[./critical_stretch]
type = ConstantIC
variable = critical_stress
value = 150
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1002
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1000
function = '-0.002*t'
[../]
[./rbm_x]
type = RBMPresetOldValuePD
variable = disp_x
boundary = 999
[../]
[./rbm_y]
type = RBMPresetOldValuePD
variable = disp_y
boundary = 999
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = NONORDINARY_STATE
stabilization = BOND_HORIZON_I
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.33
[../]
[./strain]
type = ComputeSmallStrainNOSPD
stabilization = BOND_HORIZON_I
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
dt = 1
end_time = 1
[./Quadrature]
type = GAUSS_LOBATTO
order = FIRST
[../]
[]
[Outputs]
file_base = 2D_singular_shape_tensor_H1NOSPD
exodus = true
[]
(test/tests/executioners/transient_sync_time/transient_time_interval_output_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 20
ny = 20
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./bc_func]
type = ParsedFunction
expression = sin(pi*0.1*x*t)
[../]
# Laplacian of the function above
[./interior_func]
type = ParsedFunction
expression = 0.01*pi*pi*t*t*sin(0.1*pi*x*t)
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./forcing]
type = BodyForce
variable = u
function = interior_func
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = bc_func
[../]
[]
[Executioner]
type = Transient
dt = 1
start_time = 0
num_steps = 10
# These times will be sync'd in the output
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_tio
time_step_interval = 3
[./exodus]
type = Exodus
execute_on = 'final timestep_end'
[../]
[]
(modules/solid_mechanics/test/tests/drucker_prager/small_deform3_inner_edge.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-1.7E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticDruckerPragerHyperbolic
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
smoother = 8
mc_interpolation_scheme = inner_edge
yield_function_tolerance = 1E-7
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-13
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3_inner_edge
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/combined/test/tests/thermal_conductivity_temperature_function_test/thermal_conductivity_temperature_function_test.i)
#
# This test evaluates the capability of HeatConductionMaterial to define
# thermal conductivity as a function of temperature. The test uses the patch test
# cube mesh with a flux bc on one side and a temperature bc on the opposite side.
# The temperature bc changes as a function of time from 100 to 200. The thermal
# conductivity is a function of temperature, with k = 1 for temps = 100-199, k = 2
# for temps _>_ 200. The flux, q = 10 is constant. The Transient Executioner is used here
# although the interial kernel is omitted, so this is really a series of two steady-state
# solutions.
#
# ---------------
# | |
# | |
# q -> | k | T2
# | |
# T1 = ? | |
# ---------------
# dx = 1
#
#
# q = -k dT/dx
#
# q = -k (T1 - T2)/dx
#
# T1 = (q/-k)*dx + T2
#
# for: T2 = 100, k = 1, q = -10
#
# T1 = 110
# --------
#
# for: T2 = 200, k = 2, q = -10
#
# T1 = 205
# --------
#
[Mesh]#Comment
file = fe_patch.e
[] # Mesh
[Functions]
[./k_func]
type = PiecewiseLinear
x = '100 199 200'
y = '1 1 2'
[../]
[./c_func]
type = PiecewiseLinear
x = '100 200'
y = '0.116 0.116'
[../]
[./t_func]
type = PiecewiseLinear
x = '0 1 2'
y = '100 100 200'
[../]
[] # Functions
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[] # Variables
[Kernels]
[./heat_r]
type = HeatConduction
variable = temp
[../]
[] # Kernels
[BCs]
[./temps_function]
type = FunctionDirichletBC
variable = temp
boundary = 1000
function = t_func
[../]
[./flux_in]
type = NeumannBC
variable = temp
boundary = 100
value = 10
[../]
[] # BCs
[Materials]
[./heat]
type = HeatConductionMaterial
block = 1
temp = temp
thermal_conductivity_temperature_function = k_func
specific_heat_temperature_function = c_func
[../]
[./density]
type = Density
block = 1
density = 0.283
[../]
[] # Materials
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1
end_time = 2
num_steps = 2
[] # Executioner
[Outputs]
file_base = out
exodus = true
[] # Outputs
(test/tests/mesh/mesh_generation/annulus_sector.i)
# Generates a sector of an Annular Mesh between angle=Pi/4 and angle=3Pi/4
# Radius of inside circle=1
# Radius of outside circle=5
# Solves the diffusion equation with
# u=0 on inside
# u=log(5) on outside
# u=log(r) at angle=Pi/4 and angle=3Pi/4
[Mesh]
type = AnnularMesh
nr = 10
nt = 12
rmin = 1
rmax = 5
dmin = 45
dmax = 135
growth_r = 1.3
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./inner]
type = DirichletBC
variable = u
value = 0.0
boundary = rmin
[../]
[./outer]
type = FunctionDirichletBC
variable = u
function = log(5)
boundary = rmax
[../]
[./min_angle]
type = FunctionDirichletBC
variable = u
function = 'log(sqrt(x*x + y*y))'
boundary = 'dmin dmax'
[../]
[]
[Executioner]
type = Steady
solve_type = PJFNK
[]
[Outputs]
exodus = true
[]
(test/tests/postprocessors/interface_value/interface_fe_variable_value_postprocessor.i)
postprocessor_type = InterfaceAverageVariableValuePostprocessor
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 6
xmax = 3
ny = 9
ymax = 3
elem_type = QUAD4
[]
[./subdomain_id]
input = gen
type = SubdomainBoundingBoxGenerator
bottom_left = '0 0 0'
top_right = '2 1 0'
block_id = 1
[../]
[./interface]
input = subdomain_id
type = SideSetsBetweenSubdomainsGenerator
primary_block = '0'
paired_block = '1'
new_boundary = 'interface'
[../]
[]
[Functions]
[./fn_exact]
type = ParsedFunction
expression = 'x*x+y*y'
[../]
[./ffn]
type = ParsedFunction
expression = -4
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = FIRST
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = fn_exact
[../]
[]
[Materials]
[./stateful1]
type = StatefulMaterial
block = 0
initial_diffusivity = 5
[../]
[./stateful2]
type = StatefulMaterial
block = 1
initial_diffusivity = 2
[../]
[]
[AuxKernels]
[./diffusivity_1]
type = MaterialRealAux
property = diffusivity
variable = diffusivity_1
[]
[./diffusivity_2]
type = MaterialRealAux
property = diffusivity
variable = diffusivity_2
[]
[]
[AuxVariables]
[./diffusivity_1]
family = MONOMIAL
order = CONSTANT
[]
[./diffusivity_2]
family = MONOMIAL
order = CONSTANT
[]
[]
[Postprocessors]
[./diffusivity_average]
type = ${postprocessor_type}
interface_value_type = average
variable = diffusivity_1
neighbor_variable = diffusivity_2
execute_on = TIMESTEP_END
boundary = 'interface'
[../]
[./diffusivity_jump_primary_secondary]
type = ${postprocessor_type}
interface_value_type = jump_primary_minus_secondary
variable = diffusivity_1
neighbor_variable = diffusivity_2
execute_on = TIMESTEP_END
boundary = 'interface'
[../]
[./diffusivity_jump_secondary_primary]
type = ${postprocessor_type}
interface_value_type = jump_secondary_minus_primary
variable = diffusivity_1
neighbor_variable = diffusivity_2
execute_on = TIMESTEP_END
boundary = 'interface'
[../]
[./diffusivity_jump_abs]
type = ${postprocessor_type}
interface_value_type = jump_abs
variable = diffusivity_1
neighbor_variable = diffusivity_2
execute_on = TIMESTEP_END
boundary = 'interface'
[../]
[./diffusivity_primary]
type = ${postprocessor_type}
interface_value_type = primary
variable = diffusivity_1
neighbor_variable = diffusivity_2
execute_on = TIMESTEP_END
boundary = 'interface'
[../]
[./diffusivity_secondary]
type = ${postprocessor_type}
interface_value_type = secondary
variable = diffusivity_1
neighbor_variable = diffusivity_2
execute_on = TIMESTEP_END
boundary = 'interface'
[../]
[./diffusivity_single_variable]
type = ${postprocessor_type}
interface_value_type = primary
variable = diffusivity_1
execute_on = TIMESTEP_END
boundary = 'interface'
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
file_base = ${raw ${postprocessor_type} _fe}
exodus = true
[]
(modules/contact/test/tests/sliding_block/sliding/frictionless_aug.i)
# This is a benchmark test that checks constraint based frictionless
# contact using the augmented lagrangian method. In this test a constant
# displacement is applied in the horizontal direction to simulate
# a small block come sliding down a larger block.
#
# The gold file is run on one processor
# and the benchmark case is run on a minimum of 4 processors to ensure no
# parallel variability in the contact pressure and penetration results.
#
[Mesh]
file = sliding_elastic_blocks_2d.e
patch_size = 80
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./contact_traction]
[../]
[./penetration]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./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
[../]
[]
[Postprocessors]
[./nonlinear_its]
type = NumNonlinearIterations
execute_on = timestep_end
[../]
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 222
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 222
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = -0.02
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
dt = 0.1
end_time = 15
num_steps = 200
l_tol = 1e-6
nl_rel_tol = 1e-7
nl_abs_tol = 1e-6
dtmin = 0.01
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
time_step_interval = 10
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Problem]
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y'
extra_tag_vectors = 'ref'
reference_vector = 'ref'
maximum_lagrangian_update_iterations = 25
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Contact]
[./leftright]
secondary = 3
primary = 2
model = frictionless
penalty = 1e+7
normalize_penalty = true
formulation = augmented_lagrange
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
al_penetration_tolerance = 1e-9
[../]
[]
(modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform3_native.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-1.35E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E5
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E5
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
mc_interpolation_scheme = native
yield_function_tolerance = 1 # irrelevant here
internal_constraint_tolerance = 1 # irrelevant here
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[./mc]
type = CappedDruckerPragerStressUpdate
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-8
tip_smoother = 8
smoothing_tol = 1E-7
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3_native
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/xfem/test/tests/moving_interface/verification/2D_rz_lsdep1mat.i)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #
# XFEM Moving Interface Verification Problem
# Dimensionality: 2D
# Coordinate System: rz
# Material Numbers/Types: level set dep 1 material, 2 region
# Element Order: 1st
# Interface Characteristics: u independent, prescribed level set function
# Description:
# Transient 2D heat transfer problem in cylindrical coordinates designed with
# the Method of Manufactured Solutions. This problem was developed to verify
# XFEM performance on linear elements in the presence of a moving interface
# sweeping across the x-y coordinates of a system with thermal conductivity
# dependent upon the transient level set function. This problem can be
# exactly evaluated by FEM/Moose without the moving interface. Both the
# temperature and level set function are designed to be linear to attempt to
# minimize the error between the Moose/exact solution and XFEM results.
# Results:
# The temperature at the bottom left boundary (x=1, y=1) exhibits the largest
# difference between the FEM/Moose solution and XFEM results. We present the
# XFEM results at this location with 10 digits of precision:
# Time Expected Temperature XFEM Calculated Temperature
# 0.2 440 440
# 0.4 480 479.9998717
# 0.6 520 519.9994963
# 0.8 560 559.9989217
# 1.0 600 599.9986735
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
xmin = 1.0
xmax = 2.0
ymin = 1.0
ymax = 2.0
elem_type = QUAD4
[]
[XFEM]
qrule = moment_fitting
output_cut_plane = true
[]
[UserObjects]
[./level_set_cut_uo]
type = LevelSetCutUserObject
level_set_var = ls
heal_always = true
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./ls]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./heat_cond]
type = MatDiffusion
variable = u
diffusivity = diffusion_coefficient
[../]
[./vol_heat_src]
type = BodyForce
variable = u
function = src_func
[../]
[./mat_time_deriv]
type = TestMatTimeDerivative
variable = u
mat_prop_value = rhoCp
[../]
[]
[AuxKernels]
[./ls_function]
type = FunctionAux
variable = ls
function = ls_func
[../]
[]
[Constraints]
[./xfem_constraint]
type = XFEMSingleVariableConstraint
variable = u
geometric_cut_userobject = 'level_set_cut_uo'
use_penalty = true
alpha = 1e5
[../]
[]
[Functions]
[./src_func]
type = ParsedFunction
expression = '10*(-100*x-100*y+400) + t*(-2.5*y/(2.04*x) + 155/x - t/(2.04*x)
- 7.5/2.04)'
[../]
[./neumann_func]
type = ParsedFunction
expression = '((0.01/2.04)*(-2.5*x-2.5*y-t)+1.55)*100*t'
[../]
[./dirichlet_right_func]
type = ParsedFunction
expression = '(-100*y+200)*t+400'
[../]
[./dirichlet_top_func]
type = ParsedFunction
expression = '(-100*x+200)*t+400'
[../]
[./k_func]
type = ParsedFunction
expression = '(0.01/2.04)*(-2.5*x-2.5*y-t) + 1.55'
[../]
[./ls_func]
type = ParsedFunction
expression = '-0.5*(x+y) + 2.04 -0.2*t'
[../]
[]
[Materials]
[./mat_time_deriv_prop]
type = GenericConstantMaterial
prop_names = 'rhoCp'
prop_values = 10
[../]
[./therm_cond_prop]
type = GenericFunctionMaterial
prop_names = 'diffusion_coefficient'
prop_values = 'k_func'
[../]
[]
[BCs]
[./left_du]
type = FunctionNeumannBC
variable = u
boundary = 'left'
function = neumann_func
[../]
[./right_u]
type = FunctionDirichletBC
variable = u
boundary = 'right'
function = dirichlet_right_func
[../]
[./bottom_du]
type = FunctionNeumannBC
variable = u
boundary = 'bottom'
function = neumann_func
[../]
[./top_u]
type = FunctionDirichletBC
variable = u
boundary = 'top'
function = dirichlet_top_func
[../]
[]
[ICs]
[./u_ic]
type = ConstantIC
value = 400
variable = u
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_tol = 1.0e-6
nl_max_its = 15
nl_rel_tol = 1.0e-10
nl_abs_tol = 1.0e-9
start_time = 0.0
dt = 0.2
end_time = 1.0
max_xfem_update = 1
[]
[Outputs]
time_step_interval = 1
execute_on = 'initial timestep_end'
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(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/solid_mechanics/test/tests/central_difference/lumped/2D/2d_lumped_explicit.i)
# Tests for the central difference time integrator for 2D elements
[Mesh]
[./generated_mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 2
nx = 1
ny = 2
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./accel_x]
[../]
[./vel_x]
[../]
[./accel_y]
[../]
[./vel_y]
[../]
[]
[AuxKernels]
[./accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[../]
[./vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[../]
[./accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[../]
[./vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_y
[../]
[]
[Kernels]
[./DynamicSolidMechanics]
displacements = 'disp_x disp_y'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
[../]
[]
[BCs]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./x_bot]
type = FunctionDirichletBC
boundary = bottom
variable = disp_x
function = disp
preset = false
[../]
[]
[Functions]
[./disp]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0' # time
y = '0.0 1.0 0.0 -1.0 0.0' # displacement
[../]
[]
[Materials]
[./elasticity_tensor_block]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
block = 0
[../]
[./strain_block]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y'
implicit = false
[../]
[./stress_block]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = density
prop_values = 1e4
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 0.1
dt = 0.005
timestep_tolerance = 1e-6
[./TimeIntegrator]
type = CentralDifference
solve_type = lumped
[../]
[]
[Postprocessors]
[./accel_2x]
type = PointValue
point = '1.0 2.0 0.0'
variable = accel_x
[../]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_save_euler.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 2
ny = 2
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./euler1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./euler2]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./euler3]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = element
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = lage
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[./euler1]
type = MaterialRealVectorValueAux
variable = euler1
property = Euler_angles
component = 0
execute_on = timestep_end
block = 0
[../]
[./euler2]
type = MaterialRealVectorValueAux
variable = euler2
property = Euler_angles
component = 1
execute_on = timestep_end
block = 0
[../]
[./euler3]
type = MaterialRealVectorValueAux
variable = euler3
property = Euler_angles
component = 2
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.01
dtmax = 10.0
dtmin = 0.01
num_steps = 10
[]
[Outputs]
file_base = crysp_save_euler_out
exodus = true
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/update_method_011orientation.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[lagrangian_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[lagrangian_strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[gss]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[lagrangian_strain_zz]
type = RankTwoAux
variable = lagrangian_strain_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[lagrangian_strain_yy]
type = RankTwoAux
rank_two_tensor = total_lagrangian_strain
variable = lagrangian_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[gss]
type = MaterialStdVectorAux
variable = gss
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_increment
index = 0
execute_on = timestep_end
[]
[]
[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
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.01*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
euler_angle_1 = 120.0
euler_angle_2 = 125.264
euler_angle_3 = 45.0
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[lagrangian_strain_yy]
type = ElementAverageValue
variable = lagrangian_strain_yy
[]
[lagrangian_strain_zz]
type = ElementAverageValue
variable = lagrangian_strain_zz
[]
[gss]
type = ElementAverageValue
variable = gss
[]
[slip_increment]
type = ElementAverageValue
variable = slip_increment
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.05
dtmin = 0.01
dtmax = 10.0
num_steps = 10
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence-auto/2D/dirichlet.i)
# Simple 2D plane strain test
[GlobalParams]
displacements = 'disp_x disp_y'
large_kinematics = true
stabilize_strain = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 2
nx = 4
ny = 4
[]
[]
[ICs]
[disp_x]
type = RandomIC
variable = disp_x
min = -0.01
max = 0.01
[]
[disp_y]
type = RandomIC
variable = disp_y
min = -0.01
max = 0.01
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[]
[Functions]
[pullx]
type = ParsedFunction
expression = '0.5 * t'
[]
[pully]
type = ParsedFunction
expression = '-0.3 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[lefty]
type = DirichletBC
preset = true
boundary = left
variable = disp_y
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = pullx
preset = true
[]
[pull_y]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pully
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
start_time = 0.0
dt = 0.2
dtmin = 0.2
end_time = 0.2
[]
(modules/solid_mechanics/test/tests/strain_energy_density/incr_model_elas_plas.i)
# Single element test to check the strain energy density calculation
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 2
[]
[AuxVariables]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./rampConstantUp]
type = PiecewiseLinear
x = '0. 1.'
y = '0. 1.'
scale_factor = -100
[../]
[./ramp_disp_y]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 6.8e-6 1.36e-5'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./master]
strain = SMALL
add_variables = true
incremental = true
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress elastic_strain_xx elastic_strain_yy elastic_strain_zz plastic_strain_xx plastic_strain_yy plastic_strain_zz strain_xx strain_yy strain_zz'
planar_formulation = PLANE_STRAIN
[../]
[]
[AuxKernels]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 'left'
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 'bottom'
value = 0.0
[../]
[./top_disp]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 'top'
function = ramp_disp_y
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 30e+6
poissons_ratio = 0.3
[../]
[./elastic_stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'isoplas'
[../]
[./isoplas]
type = IsotropicPlasticityStressUpdate
yield_stress = 1e2
hardening_constant = 0.0
[../]
[./strain_energy_density]
type = StrainEnergyDensity
incremental = true
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
l_max_its = 50
nl_max_its = 20
nl_abs_tol = 3e-7
nl_rel_tol = 1e-12
l_tol = 1e-2
start_time = 0.0
dt = 1
end_time = 2
num_steps = 2
[]
[Postprocessors]
[./epxx]
type = ElementalVariableValue
variable = elastic_strain_xx
elementid = 0
[../]
[./epyy]
type = ElementalVariableValue
variable = elastic_strain_yy
elementid = 0
[../]
[./epzz]
type = ElementalVariableValue
variable = elastic_strain_zz
elementid = 0
[../]
[./eplxx]
type = ElementalVariableValue
variable = plastic_strain_xx
elementid = 0
[../]
[./eplyy]
type = ElementalVariableValue
variable = plastic_strain_yy
elementid = 0
[../]
[./eplzz]
type = ElementalVariableValue
variable = plastic_strain_zz
elementid = 0
[../]
[./etxx]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./etyy]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./etzz]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[./sigxx]
type = ElementAverageValue
variable = stress_xx
[../]
[./sigyy]
type = ElementAverageValue
variable = stress_yy
[../]
[./sigzz]
type = ElementAverageValue
variable = stress_zz
[../]
[./SED]
type = ElementAverageValue
variable = SED
[../]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/substep.i)
[GlobalParams]
displacements = 'ux uy uz'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[gss]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[gss]
type = MaterialStdVectorAux
variable = gss
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = 0.01*t
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
maximum_substep_iteration = 10
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
resistance_tol = 1.0e-2
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[gss]
type = ElementAverageValue
variable = gss
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
dt = 2.0
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
dtmin = 0.5
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
csv = true
gnuplot = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform19.i)
# Using CappedMohrCoulomb with compressive failure only
# A single unit element is stretched in a complicated way
# that the trial stress is
#
# -1.2 -2.0 -0.8
# -2.0 4.4 0
# -0.8 0 2.8
#
# This has eigenvalues
# la = {-1.963, 2.89478, 5.06822}
# and eigenvectors
# {0.94197, 0.296077, 0.158214}
# {-0.116245, -0.154456, 0.981137},
# {-0.314929, 0.942593, 0.111075},
#
# The compressive strength is 0.5 and Young=1 and Poisson=0.25.
# The return-map algorithm should return to stress_min = -0.5
# This is an increment of 1.463, so stress_mid and stress_max
# should both increase by 1.463 v/(1-v) = 0.488, giving
# stress_mid = 3.382
# stress_max = 5.556
#
# E_22 = E(1-v)/(1+v)/(1-2v)=1.2 and E_02 = E_22 v/(1-v)
# gamma_shear = ((smax-smin)^trial - (smax-smin)) / (E_22 - E_02)
# = ((2v-1)/(1-v)) * (smin^trial - smin) / (E_22(1 - 2v)/(1-v))
# = -(smin^trial - smin) / E_22
# Using psi = 30deg, sin(psi) = 1/2
# the shear correction to the tensile internal parameter is
# gamma_shear (E_22 + E_20) sin(psi) = gamma_shear E_22 sin(psi) / (1 - v)
# = -(smin^trial - smin) / (1 - v) / 2
# Then the tensile internal parameter is
# (1 - v) * (reduction_of_(max+min)_principal - gamma_shear * E_22 / (1-v) / 2) / E_22
# = -1.829
#
# The final stress is
#
# {0.15, -1.7, -0.65},
# {-1.7, 4.97, 0.046},
# {-0.65, 0.046, 3.3}
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-(3*x+2*y+z)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-(3*x-4*y)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-(x-2*z)'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0.25
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.001
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform19
csv = true
[]
(modules/contact/test/tests/mortar_tm/2drz/frictionless_second/small.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD9
order = SECOND
name = 'small'
[Problem]
coord_type = RZ
[]
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.6
ymin = 0
ymax = 10
nx = 2
ny = 33
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.61
xmax = 1.21
ymin = 9.2
ymax = 10.0
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[block]
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'block'
[]
[plank]
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'plank'
eigenstrain_names = 'swell'
[]
[]
[Contact]
[frictionless]
primary = plank_right
secondary = block_left
formulation = mortar
c_normal = 1e0
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = DirichletBC
variable = disp_x
boundary = block_right
value = 0
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = block_right
function = '-t'
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeLinearElasticStress
block = 'plank block'
[]
[swell]
type = ComputeEigenstrain
block = 'plank'
eigenstrain_name = swell
eigen_base = '1 0 0 0 0 0 0 0 0'
prefactor = swell_mat
[]
[swell_mat]
type = GenericFunctionMaterial
prop_names = 'swell_mat'
prop_values = '7e-2*(1-cos(4*t))'
block = 'plank'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 3
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'contact'
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[]
[Outputs]
file_base = ${name}
[comp]
type = CSV
show = 'contact'
[]
[out]
type = CSV
file_base = '${name}_out'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/planar_hard5.i)
# apply repeated stretches in z direction, and smaller stretches along the y direction, and compression along x direction
# Both return to the plane and edge (lode angle = 30deg, ie 010100) are experienced.
#
# It is checked that the yield functions are less than their tolerance values
# It is checked that the cohesion hardens correctly
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.05E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[Functions]
[./should_be_zero_fcn]
type = ParsedFunction
expression = 'if((a<1E-5)&(b<1E-5)&(c<1E-5)&(d<1E-5)&(g<1E-5)&(h<1E-5),0,abs(a)+abs(b)+abs(c)+abs(d)+abs(g)+abs(h))'
symbol_names = 'a b c d g h'
symbol_values = 'f0 f1 f2 f3 f4 f5'
[../]
[./coh_analytic]
type = ParsedFunction
expression = '20-10*exp(-1E6*intnl)'
symbol_names = intnl
symbol_values = internal
[../]
[./coh_from_yieldfcns]
type = ParsedFunction
expression = '(f0+f1-(sxx+syy)*sin(phi))/(-2)/cos(phi)'
symbol_names = 'f0 f1 sxx syy phi'
symbol_values = 'f0 f1 s_xx s_yy 0.8726646'
[../]
[./should_be_zero_coh]
type = ParsedFunction
expression = 'if(abs(a-b)<1E-6,0,1E6*abs(a-b))'
symbol_names = 'a b'
symbol_values = 'Coh_analytic Coh_moose'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn0]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn1]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn2]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn3]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn4]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn5]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn0]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn0
[../]
[./yield_fcn1]
type = MaterialStdVectorAux
index = 1
property = plastic_yield_function
variable = yield_fcn1
[../]
[./yield_fcn2]
type = MaterialStdVectorAux
index = 2
property = plastic_yield_function
variable = yield_fcn2
[../]
[./yield_fcn3]
type = MaterialStdVectorAux
index = 3
property = plastic_yield_function
variable = yield_fcn3
[../]
[./yield_fcn4]
type = MaterialStdVectorAux
index = 4
property = plastic_yield_function
variable = yield_fcn4
[../]
[./yield_fcn5]
type = MaterialStdVectorAux
index = 5
property = plastic_yield_function
variable = yield_fcn5
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = yield_fcn2
[../]
[./f3]
type = PointValue
point = '0 0 0'
variable = yield_fcn3
[../]
[./f4]
type = PointValue
point = '0 0 0'
variable = yield_fcn4
[../]
[./f5]
type = PointValue
point = '0 0 0'
variable = yield_fcn5
[../]
[./yfcns_should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[../]
[./Coh_analytic]
type = FunctionValuePostprocessor
function = coh_analytic
[../]
[./Coh_moose]
type = FunctionValuePostprocessor
function = coh_from_yieldfcns
[../]
[./cohesion_difference_should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_coh
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningExponential
value_0 = 10
value_residual = 20
rate = 1E6
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 0.8726646
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 1 #0.8726646 # 50deg
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
use_custom_returnMap = true
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = mc
[../]
[]
[Executioner]
end_time = 5
dt = 1
type = Transient
[]
[Outputs]
file_base = planar_hard5
exodus = false
[./csv]
type = CSV
hide = 'f0 f1 f2 f3 f4 f5 s_xy s_xz s_yz Coh_analytic Coh_moose'
execute_on = 'timestep_end'
[../]
[]
(modules/solid_mechanics/test/tests/static_deformations/beam_cosserat_02_apply_stress.i)
# Beam bending.
# One end is clamped and the other end is subjected to a stress
# and micromechanical moment that will induce bending.
# The stress that will induce bending around the y axis is
# stress_xx = EAz
# This implies a micromechanical moment-stress of
# m_yx = (1/12)EAh^2 for joint_shear_stiffness=0.
# For joint_shear_stiffness!=0, the micromechanical moment-stress
# is
# m_yx = (1/12)EAa^2 G/(ak_s + G)
# All other stresses and moment stresses are assumed to be zero.
# With joint_shear_stiffness=0, and introducing D=-poisson*A, the
# nonzero strains are
# ep_xx = Az
# ep_yy = Dz
# ep_zz = Dz
# kappa_xy = -D
# kappa_yx = A
# This means the displacements are:
# u_x = Axz
# u_y = Dzy
# u_z = -(A/2)x^2 + (D/2)(z^2-y^2)
# wc_x = -Dy
# wc_y = Ax
# wc_z = 0
# This is bending of a bar around the y axis, in plane stress
# (stress_yy=0). Displacements at the left-hand (x=0) are applied
# according to the above formulae; wc_x and wc_y are applied throughout
# the bar; and stress_xx is applied at the right-hand end (x=10).
# The displacements are measured and
# compared with the above formulae.
# The test uses: E=1.2, poisson=0.3, A=1.11E-2, h=2, ks=0.1, so
# stress_xx = 1.332E-2*z
# m_yx = 0.2379E-2
[Mesh]
type = GeneratedMesh
dim = 3
nx = 10
ny = 1
nz = 10
xmin = 0
xmax = 10
ymin = -1
ymax = 1
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
#use_displaced_mesh = false
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
# zmin is called back
# zmax is called front
# ymin is called bottom
# ymax is called top
# xmin is called left
# xmax is called right
[./clamp_z]
type = FunctionDirichletBC
variable = disp_z
boundary = left
function = '-0.3*(z*z-y*y)/2.0*1.11E-2'
[../]
[./clamp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = left
function = '-0.3*z*y*1.11E-2'
[../]
[./clamp_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./end_stress]
type = FunctionNeumannBC
boundary = right
function = z*1.2*1.11E-2
variable = disp_x
[../]
[./fix_wc_x]
type = FunctionDirichletBC
variable = wc_x
boundary = 'left' # right top bottom front back'
function = '0.3*y*1.11E-2'
[../]
[./fix_wc_y]
type = FunctionDirichletBC
variable = wc_y
boundary = 'left' # right top bottom front back'
function = '1.11E-2*x'
[../]
[./end_moment]
type = VectorNeumannBC
boundary = right
variable = wc_y
vector_value = '2.3785714286E-3 0 0'
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./strain_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./strain_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xy
index_i = 0
index_j = 1
[../]
[./strain_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xz
index_i = 0
index_j = 2
[../]
[./strain_yx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yx
index_i = 1
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 1
index_j = 2
[../]
[./strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zx
index_i = 2
index_j = 0
[../]
[./strain_zy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zy
index_i = 2
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[]
[VectorPostprocessors]
[./soln]
type = LineValueSampler
warn_discontinuous_face_values = false
sort_by = x
variable = 'disp_x disp_y disp_z stress_xx stress_xy stress_xz stress_yx stress_yy stress_yz stress_zx stress_zy stress_zz wc_x wc_y wc_z couple_stress_xx couple_stress_xy couple_stress_xz couple_stress_yx couple_stress_yy couple_stress_yz couple_stress_zx couple_stress_zy couple_stress_zz'
start_point = '0 0 0.5'
end_point = '10 0 0.5'
num_points = 11
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 1.2
poisson = 0.3
layer_thickness = 2.0
joint_normal_stiffness = 1E16
joint_shear_stiffness = 0.1
[../]
[./strain]
type = ComputeCosseratSmallStrain
[../]
[./stress]
type = ComputeCosseratLinearElasticStress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol -ksp_max_it -sub_pc_factor_shift_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'gmres asm lu 1E-11 1E-11 10 1E-15 1E-10 100 NONZERO 2 100'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
num_steps = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = beam_cosserat_02_apply_stress
exodus = true
csv = true
[]
(modules/fluid_properties/test/tests/calorically_imperfect_gas/test.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
elem_type = QUAD4
[]
[Functions]
[f_fn]
type = ParsedFunction
expression = -4
[]
[bc_fn]
type = ParsedFunction
expression = 'x*x+y*y'
[]
[e_fn]
type = PiecewiseLinear
x = '100 280 300 350 400 450 500 550 600 700 800 900 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000 5000'
y = '783.9 2742.3 2958.6 3489.2 4012.7 4533.3 5053.8 5574 6095.1 7140.2 8192.9 9256.3 10333.6 12543.9 14836.6 17216.3 19688.4 22273.7 25018.3 28042.3 31544.2 35818.1 41256.5 100756.5'
scale_factor = 1e3
[]
[mu_fn]
type = PiecewiseLinear
x = '100 280 300 350 400 450 500 550 600 700 800 900 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000 5000'
y = '85.42 85.42 89.53 99.44 108.9 117.98 126.73 135.2 143.43 159.25 174.36 188.9 202.96 229.88 255.5 280.05 303.67 326.45 344.97 366.49 387.87 409.48 431.86 431.86'
scale_factor = 1e-7
[]
[k_fn]
type = PiecewiseLinear
x = '100 280 300 350 400 450 500 550 600 700 800 900 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000 5000'
y = '186.82 186.82 194.11 212.69 231.55 250.38 268.95 287.19 305.11 340.24 374.92 409.66 444.75 511.13 583.42 656.44 733.32 826.53 961.15 1180.38 1546.31 2135.49 3028.08 3028.08'
scale_factor = 1e-3
[]
[]
[Variables]
[u]
[]
[]
[AuxVariables]
[e]
initial_condition = 4012.7e3
[]
[v]
initial_condition = 0.0007354064593540647
[]
[p]
family = MONOMIAL
order = CONSTANT
[]
[T]
family = MONOMIAL
order = CONSTANT
[]
[cp]
family = MONOMIAL
order = CONSTANT
[]
[cv]
family = MONOMIAL
order = CONSTANT
[]
[c]
family = MONOMIAL
order = CONSTANT
[]
[mu]
family = MONOMIAL
order = CONSTANT
[]
[k]
family = MONOMIAL
order = CONSTANT
[]
[g]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[p]
type = MaterialRealAux
variable = p
property = pressure
[]
[T]
type = MaterialRealAux
variable = T
property = temperature
[]
[cp]
type = MaterialRealAux
variable = cp
property = cp
[]
[cv]
type = MaterialRealAux
variable = cv
property = cv
[]
[c]
type = MaterialRealAux
variable = c
property = c
[]
[mu]
type = MaterialRealAux
variable = mu
property = mu
[]
[k]
type = MaterialRealAux
variable = k
property = k
[]
[g]
type = MaterialRealAux
variable = g
property = g
[]
[]
[FluidProperties]
[h2]
type = CaloricallyImperfectGas
molar_mass = 0.002
e = e_fn
k = k_fn
mu = mu_fn
min_temperature = 100
max_temperature = 5000
[]
[]
[Materials]
[fp_mat]
type = FluidPropertiesMaterialVE
e = e
v = v
fp = h2
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[ffn]
type = BodyForce
variable = u
function = f_fn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = bc_fn
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/drucker_prager/small_deform2_outer_tip.i)
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1.5E-6*x+2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./mc]
type = SolidMechanicsPlasticDruckerPragerHyperbolic
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
smoother = 4
mc_interpolation_scheme = outer_tip
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2_outer_tip
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/tensile/small_deform1.i)
# checking for small deformation
# A single element is stretched by 1E-6m in z direction, and by small amounts in x and y directions
# stress_zz = Youngs Modulus*Strain = 2E6*1E-6 = 2 Pa
# tensile_strength is set to 1Pa
# Then the final stress should return to the yeild surface and the maximum principal stress value should be 1pa.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.2E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./mc]
type = SolidMechanicsPlasticTensile
tensile_strength = ts
yield_function_tolerance = 1E-6
tensile_tip_smoother = 0.0
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
plastic_models = mc
debug_fspb = crash
debug_jac_at_stress = '1 2 3 2 -4 -5 3 -5 10'
debug_jac_at_pm = 0.8
debug_jac_at_intnl = 1
debug_stress_change = 1E-8
debug_pm_change = 1E-5
debug_intnl_change = 1E-5
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform1
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/twinning/combined_twinning_slip_100compression.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[]
[AuxVariables]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[total_twin_volume_fraction]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_0]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_1]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_2]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_3]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_4]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_5]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_6]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_7]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_8]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_9]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_10]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_11]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_4]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_5]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_6]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_7]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_8]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_9]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_10]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_11]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
[]
[AuxKernels]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[total_twin_volume_fraction]
type = MaterialRealAux
variable = total_twin_volume_fraction
property = twin_total_volume_fraction_twins
execute_on = timestep_end
[]
[slip_increment_0]
type = MaterialStdVectorAux
variable = slip_increment_0
property = slip_increment
index = 0
execute_on = timestep_end
[]
[slip_increment_1]
type = MaterialStdVectorAux
variable = slip_increment_1
property = slip_increment
index = 1
execute_on = timestep_end
[]
[slip_increment_2]
type = MaterialStdVectorAux
variable = slip_increment_2
property = slip_increment
index = 2
execute_on = timestep_end
[]
[slip_increment_3]
type = MaterialStdVectorAux
variable = slip_increment_3
property = slip_increment
index = 3
execute_on = timestep_end
[]
[slip_increment_4]
type = MaterialStdVectorAux
variable = slip_increment_4
property = slip_increment
index = 4
execute_on = timestep_end
[]
[slip_increment_5]
type = MaterialStdVectorAux
variable = slip_increment_5
property = slip_increment
index = 5
execute_on = timestep_end
[]
[slip_increment_6]
type = MaterialStdVectorAux
variable = slip_increment_6
property = slip_increment
index = 6
execute_on = timestep_end
[]
[slip_increment_7]
type = MaterialStdVectorAux
variable = slip_increment_7
property = slip_increment
index = 7
execute_on = timestep_end
[]
[slip_increment_8]
type = MaterialStdVectorAux
variable = slip_increment_8
property = slip_increment
index = 8
execute_on = timestep_end
[]
[slip_increment_9]
type = MaterialStdVectorAux
variable = slip_increment_9
property = slip_increment
index = 9
execute_on = timestep_end
[]
[slip_increment_10]
type = MaterialStdVectorAux
variable = slip_increment_10
property = slip_increment
index = 10
execute_on = timestep_end
[]
[slip_increment_11]
type = MaterialStdVectorAux
variable = slip_increment_11
property = slip_increment
index = 11
execute_on = timestep_end
[]
[twin_volume_fraction_0]
type = MaterialStdVectorAux
variable = twin_volume_fraction_0
property = twin_twin_system_volume_fraction
index = 0
execute_on = timestep_end
[]
[twin_volume_fraction_1]
type = MaterialStdVectorAux
variable = twin_volume_fraction_1
property = twin_twin_system_volume_fraction
index = 1
execute_on = timestep_end
[]
[twin_volume_fraction_2]
type = MaterialStdVectorAux
variable = twin_volume_fraction_2
property = twin_twin_system_volume_fraction
index = 2
execute_on = timestep_end
[]
[twin_volume_fraction_3]
type = MaterialStdVectorAux
variable = twin_volume_fraction_3
property = twin_twin_system_volume_fraction
index = 3
execute_on = timestep_end
[]
[twin_volume_fraction_4]
type = MaterialStdVectorAux
variable = twin_volume_fraction_4
property = twin_twin_system_volume_fraction
index = 4
execute_on = timestep_end
[]
[twin_volume_fraction_5]
type = MaterialStdVectorAux
variable = twin_volume_fraction_5
property = twin_twin_system_volume_fraction
index = 5
execute_on = timestep_end
[]
[twin_volume_fraction_6]
type = MaterialStdVectorAux
variable = twin_volume_fraction_6
property = twin_twin_system_volume_fraction
index = 6
execute_on = timestep_end
[]
[twin_volume_fraction_7]
type = MaterialStdVectorAux
variable = twin_volume_fraction_7
property = twin_twin_system_volume_fraction
index = 7
execute_on = timestep_end
[]
[twin_volume_fraction_8]
type = MaterialStdVectorAux
variable = twin_volume_fraction_8
property = twin_twin_system_volume_fraction
index = 8
execute_on = timestep_end
[]
[twin_volume_fraction_9]
type = MaterialStdVectorAux
variable = twin_volume_fraction_9
property = twin_twin_system_volume_fraction
index = 9
execute_on = timestep_end
[]
[twin_volume_fraction_10]
type = MaterialStdVectorAux
variable = twin_volume_fraction_10
property = twin_twin_system_volume_fraction
index = 10
execute_on = timestep_end
[]
[twin_volume_fraction_11]
type = MaterialStdVectorAux
variable = twin_volume_fraction_11
property = twin_twin_system_volume_fraction
index = 11
execute_on = timestep_end
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'bottom'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '-0.025*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5' # roughly copper
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'twin_xtalpl slip_xtalpl'
tan_mod_type = exact
[]
[twin_xtalpl]
type = CrystalPlasticityTwinningKalidindiUpdate
base_name = twin
number_slip_systems = 12
slip_sys_file_name = 'fcc_input_twinning_systems.txt'
initial_twin_lattice_friction = 60.0
[]
[slip_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
total_twin_volume_fraction = 'twin_total_volume_fraction_twins'
[]
[]
[Postprocessors]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[total_twin_volume_fraction]
type = ElementAverageValue
variable = total_twin_volume_fraction
[]
[slip_increment_0]
type = ElementAverageValue
variable = slip_increment_0
[]
[slip_increment_1]
type = ElementAverageValue
variable = slip_increment_1
[]
[slip_increment_2]
type = ElementAverageValue
variable = slip_increment_2
[]
[slip_increment_3]
type = ElementAverageValue
variable = slip_increment_3
[]
[slip_increment_4]
type = ElementAverageValue
variable = slip_increment_4
[]
[slip_increment_5]
type = ElementAverageValue
variable = slip_increment_5
[]
[slip_increment_6]
type = ElementAverageValue
variable = slip_increment_6
[]
[slip_increment_7]
type = ElementAverageValue
variable = slip_increment_7
[]
[slip_increment_8]
type = ElementAverageValue
variable = slip_increment_8
[]
[slip_increment_9]
type = ElementAverageValue
variable = slip_increment_9
[]
[slip_increment_10]
type = ElementAverageValue
variable = slip_increment_10
[]
[slip_increment_11]
type = ElementAverageValue
variable = slip_increment_11
[]
[twin_volume_fraction_0]
type = ElementAverageValue
variable = twin_volume_fraction_0
[]
[twin_volume_fraction_1]
type = ElementAverageValue
variable = twin_volume_fraction_1
[]
[twin_volume_fraction_2]
type = ElementAverageValue
variable = twin_volume_fraction_2
[]
[twin_volume_fraction_3]
type = ElementAverageValue
variable = twin_volume_fraction_3
[]
[twin_volume_fraction_4]
type = ElementAverageValue
variable = twin_volume_fraction_4
[]
[twin_volume_fraction_5]
type = ElementAverageValue
variable = twin_volume_fraction_5
[]
[twin_volume_fraction_6]
type = ElementAverageValue
variable = twin_volume_fraction_6
[]
[twin_volume_fraction_7]
type = ElementAverageValue
variable = twin_volume_fraction_7
[]
[twin_volume_fraction_8]
type = ElementAverageValue
variable = twin_volume_fraction_8
[]
[twin_volume_fraction_9]
type = ElementAverageValue
variable = twin_volume_fraction_9
[]
[twin_volume_fraction_10]
type = ElementAverageValue
variable = twin_volume_fraction_10
[]
[twin_volume_fraction_11]
type = ElementAverageValue
variable = twin_volume_fraction_11
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.005
dtmin = 0.01
num_steps = 10
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/porous_flow/test/tests/hysteresis/hys_pc_2.i)
# Capillary-pressure calculation. Second-order drying curve
# When comparing the results with a by-hand computation, remember the MOOSE results are averaged over an element
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmin = 0.1
xmax = 0.9
nx = 80
[]
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
number_fluid_phases = 1
number_fluid_components = 1
porous_flow_vars = ''
[]
[]
[Variables]
[sat]
[]
[]
[ICs]
[sat]
type = FunctionIC
variable = sat
function = 'x'
[]
[]
[BCs]
[sat]
type = FunctionDirichletBC
variable = sat
function = 'x'
boundary = 'left right'
[]
[]
[Kernels]
[dummy]
type = Diffusion
variable = sat
[]
[]
[Materials]
[hys_order]
type = PorousFlowHysteresisOrder
initial_order = 2
previous_turning_points = '0.1 0.9'
[]
[pc_calculator]
type = PorousFlowHystereticInfo
alpha_d = 10.0
alpha_w = 7.0
n_d = 1.5
n_w = 1.9
S_l_min = 0.1
S_lr = 0.2
S_gr_max = 0.3
Pc_max = 12.0
high_ratio = 0.9
low_extension_type = none
high_extension_type = none
sat_var = sat
[]
[]
[AuxVariables]
[hys_order]
family = MONOMIAL
order = CONSTANT
[]
[pc]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[hys_order]
type = PorousFlowPropertyAux
variable = hys_order
property = hysteresis_order
[]
[pc]
type = PorousFlowPropertyAux
variable = pc
property = hysteretic_info
[]
[]
[VectorPostprocessors]
[pc]
type = LineValueSampler
warn_discontinuous_face_values = false
start_point = '0.1 0 0'
end_point = '0.9 0 0'
num_points = 8
sort_by = x
variable = 'sat pc'
[]
[]
[Executioner]
type = Transient
solve_type = Linear
dt = 1
end_time = 1
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/umat/time_step/elastic_timestep.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Functions]
[top_pull]
type = ParsedFunction
expression = t/100
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Materials]
[umat]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_timestep'
num_state_vars = 0
use_one_based_indexing = true
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 30
[TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 30
iteration_window = 9
growth_factor = 2.0
cutback_factor = 1.0
timestep_limiting_postprocessor = matl_ts_min
dt = 1.0
[]
[]
[UserObjects]
[time_step_size]
type = TimestepSize
execute_on = 'INITIAL LINEAR'
[]
[terminator_umat]
type = Terminator
expression = 'time_step_size > matl_ts_min'
fail_mode = SOFT
execute_on = 'FINAL'
[]
[]
[Postprocessors]
[matl_ts_min]
type = MaterialTimeStepPostprocessor
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(test/tests/outputs/debug/show_execution_kernels_bcs.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[left]
type = ParsedSubdomainMeshGenerator
input = 'gmg'
combinatorial_geometry = 'x < 0.5'
block_id = '2'
[]
[middle_boundary]
type = SideSetsBetweenSubdomainsGenerator
input = 'left'
primary_block = '0'
paired_block = '2'
new_boundary = 'middle'
[]
[]
[Functions]
[forcing_fnu]
type = ParsedFunction
expression = -5.8*(x+y)+x*x*x-x+y*y*y-y
[]
[forcing_fnv]
type = ParsedFunction
expression = -4
[]
[slnu]
type = ParsedGradFunction
expression = x*x*x-x+y*y*y-y
grad_x = 3*x*x-1
grad_y = 3*y*y-1
[]
[slnv]
type = ParsedGradFunction
expression = x*x+y*y
grad_x = 2*x
grad_y = 2*y
[]
# NeumannBC functions
[bc_fnut]
type = ParsedFunction
expression = 3*y*y-1
[]
[bc_fnub]
type = ParsedFunction
expression = -3*y*y+1
[]
[bc_fnul]
type = ParsedFunction
expression = -3*x*x+1
[]
[bc_fnur]
type = ParsedFunction
expression = 3*x*x-1
[]
[]
[Variables]
[u]
order = THIRD
family = HIERARCHIC
[]
[v]
order = SECOND
family = LAGRANGE
[]
[]
[Kernels]
[diff1]
type = Diffusion
variable = u
[]
[test1]
type = CoupledConvection
variable = u
velocity_vector = v
[]
[diff2]
type = Diffusion
variable = v
[]
[react]
type = Reaction
variable = u
[]
[forceu]
type = BodyForce
variable = u
function = forcing_fnu
[]
[forcev]
type = BodyForce
variable = v
function = forcing_fnv
[]
[]
[BCs]
[bc_v]
type = FunctionDirichletBC
variable = v
function = slnv
boundary = 'left right top bottom'
[]
[bc_u_tb]
type = CoupledKernelGradBC
variable = u
var2 = v
vel = '0.1 0.1'
boundary = 'top bottom left right'
[]
[bc_ul]
type = FunctionNeumannBC
variable = u
function = bc_fnul
boundary = 'left'
[]
[bc_ur]
type = FunctionNeumannBC
variable = u
function = bc_fnur
boundary = 'right'
[]
[bc_ut]
type = FunctionNeumannBC
variable = u
function = bc_fnut
boundary = 'top'
[]
[bc_ub]
type = FunctionNeumannBC
variable = u
function = bc_fnub
boundary = 'bottom'
[]
[]
[Dampers]
active = ''
[limit_v]
type = BoundingValueElementDamper
variable = v
max_value = 1.5
min_value = -20
[]
[limit_u]
type = BoundingValueElementDamper
variable = u
max_value = 1.5
min_value = -20
[]
[]
[InterfaceKernels]
[diff_ik_2]
type = InterfaceDiffusion
variable = 'u'
neighbor_var = 'v'
boundary = 'middle'
[]
[diff_ik_1]
type = InterfaceDiffusion
variable = 'v'
neighbor_var = 'u'
boundary = 'middle'
[]
[]
[DGKernels]
[diff_dg_2]
type = DGDiffusion
variable = 'u'
epsilon = -1
sigma = 6
[]
[diff_dg_1]
type = DGDiffusion
variable = 'u'
epsilon = -1
sigma = 6
[]
[]
[DiracKernels]
[source_2]
type = FunctionDiracSource
variable = 'u'
point = '0.1 0.1 0'
function = 'x + y'
[]
[source_1]
type = FunctionDiracSource
variable = 'u'
point = '0.1 0.1 0'
function = 'x + y'
block = '2'
[]
[source_0]
type = FunctionDiracSource
variable = 'u'
# in block 0, but since it's not block restricted it shows up as active in
# block 2 as well
point = '0.6 0.5 0'
function = 'x + y'
[]
[]
[Materials]
[diff]
type = GenericConstantMaterial
prop_names = 'D D_neighbor'
prop_values = '0 0'
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1e-15
nl_abs_tol = 1e-13
[]
[Debug]
show_execution_order = 'NONE ALWAYS INITIAL NONLINEAR LINEAR TIMESTEP_BEGIN TIMESTEP_END FINAL'
[]
(modules/solid_mechanics/test/tests/umat/multiple_blocks/multiple_blocks.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh_1]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[block_1]
type = SubdomainIDGenerator
input = mesh_1
subdomain_id = 1
[]
[mesh_2]
type = GeneratedMeshGenerator
dim = 3
xmin = -2.0
xmax = -1.0
ymin = -2.0
ymax = -1.0
zmin = -2.0
zmax = -1.
boundary_name_prefix = 'second'
[]
[block_2]
type = SubdomainIDGenerator
input = mesh_2
subdomain_id = 2
[]
[combined]
type = CombinerGenerator
inputs = 'block_1 block_2'
[]
[]
[Functions]
[top_pull]
type = ParsedFunction
value = t/100
[]
# Forced evolution of temperature
[temperature_load]
type = ParsedFunction
value = '273 + 10*t'
[]
# Factor to multiply the elasticity tensor in MOOSE
[elasticity_prefactor]
type = ParsedFunction
value = '273/(273 + 10*t)'
[]
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temperature_function]
type = FunctionAux
variable = temperature
function = temperature_load
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Materials]
[umat_1]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_temperature'
num_state_vars = 0
temperature = temperature
use_one_based_indexing = true
block = '1'
[]
[umat_2]
type = AbaqusUMATStress
constant_properties = '10000 0.3'
plugin = '../../../plugins/elastic_temperature'
num_state_vars = 0
temperature = temperature
use_one_based_indexing = true
block = '2'
[]
[elastic]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000
poissons_ratio = 0.3
elasticity_tensor_prefactor = 'elasticity_prefactor'
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 30
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform13.i)
# Using CappedMohrCoulomb with compressive failure only
# checking for small deformation
# A single element is compressed by "ep" in the z and x directions
# This causes the return direction to be along the hypersurface sigma_I = sigma_II
# where sigma_I = (E_2222 + E_2200) * ep
# compressive_strength is set to 1Pa, smoothing_tol = 0.1Pa
# The smoothed yield function is
# yf = -sigma_I + ismoother(0) - compressive_strength
# = -sigma_I + (0.5 * smoothing_tol - smoothing_tol / Pi) - compressive_strength
# = -sigma_I - 0.98183
#
# With zero Poisson's ratio, the return stress will be
# stress_00 = stress_22 = 0.98183
# with all other stress components being zero
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-0.25E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-0.25E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.1
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform13
csv = true
[]
(test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test4nstt.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test4tt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
# [./element_id]
# [../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.09
normal_smoothing_distance = 0.2
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.09
normal_smoothing_distance = 0.2
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
# [./penetrate17]
# type = PenetrationAux
# variable = element_id
# boundary = 11
# paired_boundary = 12
# quantity = element_id
# [../]
#
# [./penetrate18]
# type = PenetrationAux
# variable = element_id
# boundary = 12
# paired_boundary = 11
# quantity = element_id
# [../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[]
[Outputs]
file_base = pl_test4nstt_out
exodus = true
[]
(modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform2_inner_edge.i)
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1.5E-6*x+2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
mc_interpolation_scheme = inner_edge
internal_constraint_tolerance = 1 # irrelevant here
yield_function_tolerance = 1 # irrelevant here
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 0
lambda = 0.0
shear_modulus = 1.0e7
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = cdp
perform_finite_strain_rotations = false
[../]
[./cdp]
type = CappedDruckerPragerStressUpdate
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-8
tip_smoother = 4
smoothing_tol = 1E-5
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2_inner_edge
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/combined/test/tests/phase_field_fracture/crack2d_iso_wo_time.i)
#This input does not add time derivative kernel for phase field equation
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./mech]
add_variables = true
strain = SMALL
additional_generate_output = 'stress_yy'
save_in = 'resid_x resid_y'
[../]
[../]
[../]
[]
[Variables]
[./c]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./resid_x]
[../]
[./resid_y]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[./ACBulk]
type = AllenCahn
variable = c
f_name = F
[../]
[./ACInterface]
type = ACInterface
variable = c
kappa_name = kappa_op
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = top
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.04 1e-4'
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
property_name = L
expression = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
property_name = kappa_op
expression = 'gc_prop * l'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
[../]
[./elastic]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'local_fracture_energy'
decomposition_type = strain_spectral
[../]
[./degradation]
type = DerivativeParsedMaterial
property_name = degradation
coupled_variables = 'c'
expression = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '0.0'
derivative_order = 2
[../]
[./local_fracture_energy]
type = DerivativeParsedMaterial
property_name = local_fracture_energy
coupled_variables = 'c'
material_property_names = 'gc_prop l'
expression = 'c^2 * gc_prop / 2 / l'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
coupled_variables = c
sum_materials = 'elastic_energy local_fracture_energy'
derivative_order = 2
property_name = F
[../]
[]
[Postprocessors]
[./resid_x]
type = NodalSum
variable = resid_x
boundary = 2
[../]
[./resid_y]
type = NodalSum
variable = resid_y
boundary = 2
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 preonly lu 1'
nl_rel_tol = 1e-8
l_max_its = 10
nl_max_its = 10
dt = 1e-4
dtmin = 1e-4
num_steps = 2
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/recompute_radial_return/isotropic_plasticity_incremental_strain.i)
# This simulation uses the piece-wise linear strain hardening model
# with the incremental small strain formulation; incremental small strain
# is required to produce the strain_increment for the DiscreteRadialReturnStressIncrement
# class, which handles the calculation of the stress increment to return
# to the yield surface in a J2 (isotropic) plasticity problem.
#
# This test assumes a Poissons ratio of zero and applies a displacement loading
# condition on the top in the y direction while fixing the displacement in the x
# and z directions; thus, only the normal stress and the normal strains in the
# y direction are compared in this problem.
#
# A similar problem was run in Abaqus on a similar 1 element mesh and was used
# to verify the SolidMechanics solution; this SolidMechanics code matches the
# SolidMechanics solution.
#
# Mechanical strain is the sum of the elastic and plastic strains but is different
# from total strain in cases with eigen strains, e.g. thermal strain.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./top_pull]
type = ParsedFunction
expression = t*(0.01)
[../]
[./hf]
type = PiecewiseLinear
x = '0 0.00004 0.0001 0.1'
y = '50 54 56 60'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'stress_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
[../]
[]
[BCs]
[./y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[../]
[./x_sides]
type = DirichletBC
variable = disp_x
boundary = 'left right'
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_sides]
type = DirichletBC
variable = disp_z
boundary = 'back front'
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.5e5
poissons_ratio = 0.0
[../]
[./isotropic_plasticity]
type = IsotropicPlasticityStressUpdate
yield_stress = 25.
hardening_constant = 1000.0
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'isotropic_plasticity'
[../]
[]
[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 = 20
nl_max_its = 20
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
l_tol = 1e-9
start_time = 0.0
end_time = 0.01875
dt = 0.00125
dtmin = 0.0001
[]
[Outputs]
exodus = true
print_linear_residuals = true
perf_graph = true
[]
(modules/combined/test/tests/j2_plasticity_vs_LSH/necking/j2_hard1_necking.i)
#
[Mesh]
file = necking_quad4.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
# save_in_disp_x = force_x
save_in_disp_y = force_y
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
# [./force_x]
# order = FIRST
# family = LAGRANGE
# [../]
[./force_y]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./y_top]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't/5'
[../]
[]
[UserObjects]
[./str]
type = TensorMechanicsHardeningConstant
value = 2.4e2
[../]
[./j2]
type = TensorMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 1
fill_method = symmetric_isotropic
#with E = 2.1e5 and nu = 0.3
#changed to SM values using E-nu to Lambda-G
C_ijkl = '121154 80769.2'
[../]
[./strain]
type = ComputeFiniteStrain
block = 1
displacements = 'disp_x disp_y'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 1
ep_plastic_tolerance = 1E-9
plastic_models = j2
[../]
[]
[Executioner]
end_time = 0.2
dt = 0.005
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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
[]
[Postprocessors]
[./stress_xx]
type = ElementAverageValue
variable = stress_xx
[../]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
[../]
[./disp_y]
type = NodalSum
variable = disp_y
boundary = top
[../]
[./force_y]
type = NodalSum
variable = force_y
boundary = top
[../]
[]
[Outputs]
exodus = true
csv = true
print_linear_residuals = false
perf_graph = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/mms/supg/supg_pspg_adv_dominated_mms.i)
mu=1.5e-4
rho=2.5
[GlobalParams]
gravity = '0 0 0'
supg = true
pspg = true
convective_term = true
integrate_p_by_parts = false
transient_term = true
laplace = true
u = vel_x
v = vel_y
pressure = p
alpha = 1e0
order = FIRST
family = LAGRANGE
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
elem_type = QUAD9
nx = 4
ny = 4
[]
[./corner_node]
type = ExtraNodesetGenerator
new_boundary = 'pinned_node'
nodes = '0'
input = gen
[../]
[]
[Variables]
[./vel_x]
[../]
[./vel_y]
[../]
[./p]
order = FIRST
[../]
[]
[Kernels]
# mass
[./mass]
type = INSMass
variable = p
x_vel_forcing_func = vel_x_source_func
y_vel_forcing_func = vel_y_source_func
[../]
[./x_time]
type = INSMomentumTimeDerivative
variable = vel_x
[../]
[./y_time]
type = INSMomentumTimeDerivative
variable = vel_y
[../]
# x-momentum, space
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
component = 0
forcing_func = vel_x_source_func
[../]
# y-momentum, space
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
component = 1
forcing_func = vel_y_source_func
[../]
[./p_source]
type = BodyForce
function = p_source_func
variable = p
[../]
[]
[BCs]
[./vel_x]
type = FunctionDirichletBC
boundary = 'left right top bottom'
function = vel_x_func
variable = vel_x
[../]
[./vel_y]
type = FunctionDirichletBC
boundary = 'left right top bottom'
function = vel_y_func
variable = vel_y
[../]
[./p]
type = FunctionDirichletBC
boundary = 'left right top bottom'
function = p_func
variable = p
[../]
[]
[Functions]
[./vel_x_source_func]
type = ParsedFunction
expression = '-${mu}*(-0.028*pi^2*x^2*sin(0.2*pi*x*y) - 0.028*pi^2*y^2*sin(0.2*pi*x*y) - 0.1*pi^2*sin(0.5*pi*x) - 0.4*pi^2*sin(pi*y)) + ${rho}*(0.14*pi*x*cos(0.2*pi*x*y) + 0.4*pi*cos(pi*y))*(0.6*sin(0.8*pi*x) + 0.3*sin(0.3*pi*y) + 0.2*sin(0.3*pi*x*y) + 0.3) + ${rho}*(0.14*pi*y*cos(0.2*pi*x*y) + 0.2*pi*cos(0.5*pi*x))*(0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5) + 0.1*pi*y*cos(0.2*pi*x*y) + 0.25*pi*cos(0.5*pi*x)'
[../]
[./vel_y_source_func]
type = ParsedFunction
expression = '-${mu}*(-0.018*pi^2*x^2*sin(0.3*pi*x*y) - 0.018*pi^2*y^2*sin(0.3*pi*x*y) - 0.384*pi^2*sin(0.8*pi*x) - 0.027*pi^2*sin(0.3*pi*y)) + ${rho}*(0.06*pi*x*cos(0.3*pi*x*y) + 0.09*pi*cos(0.3*pi*y))*(0.6*sin(0.8*pi*x) + 0.3*sin(0.3*pi*y) + 0.2*sin(0.3*pi*x*y) + 0.3) + ${rho}*(0.06*pi*y*cos(0.3*pi*x*y) + 0.48*pi*cos(0.8*pi*x))*(0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5) + 0.1*pi*x*cos(0.2*pi*x*y) + 0.3*pi*cos(0.3*pi*y)'
[../]
[./p_source_func]
type = ParsedFunction
expression = '-0.06*pi*x*cos(0.3*pi*x*y) - 0.14*pi*y*cos(0.2*pi*x*y) - 0.2*pi*cos(0.5*pi*x) - 0.09*pi*cos(0.3*pi*y)'
[../]
[./vel_x_func]
type = ParsedFunction
expression = '0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5'
[../]
[./vel_y_func]
type = ParsedFunction
expression = '0.6*sin(0.8*pi*x) + 0.3*sin(0.3*pi*y) + 0.2*sin(0.3*pi*x*y) + 0.3'
[../]
[./p_func]
type = ParsedFunction
expression = '0.5*sin(0.5*pi*x) + 1.0*sin(0.3*pi*y) + 0.5*sin(0.2*pi*x*y) + 0.5'
[../]
[./vxx_func]
type = ParsedFunction
expression = '0.14*pi*y*cos(0.2*pi*x*y) + 0.2*pi*cos(0.5*pi*x)'
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '${rho} ${mu}'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_view'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-12
nl_max_its = 10
l_tol = 1e-6
l_max_its = 10
# To run to steady-state, set num-steps to some large number (1000000 for example)
type = Transient
num_steps = 10
steady_state_detection = true
steady_state_tolerance = 1e-10
[./TimeStepper]
dt = .1
type = IterationAdaptiveDT
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Outputs]
execute_on = 'final'
[./exodus]
type = Exodus
[../]
[./csv]
type = CSV
[../]
[]
[Postprocessors]
[./L2vel_x]
type = ElementL2Error
variable = vel_x
function = vel_x_func
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2vel_y]
variable = vel_y
function = vel_y_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2p]
variable = p
function = p_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2vxx]
variable = vxx
function = vxx_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[]
[AuxVariables]
[./vxx]
family = MONOMIAL
order = FIRST
[../]
[]
[AuxKernels]
[./vxx]
type = VariableGradientComponent
component = x
variable = vxx
gradient_variable = vel_x
[../]
[]
(modules/heat_transfer/test/tests/multiple_contact_pairs/multiple_contact_pairs.i)
[Mesh]
file = 3blk.e
[]
[Functions]
[temperature]
type = PiecewiseLinear
x = '0 1 2'
y = '100 300 300'
[]
[]
[ThermalContact]
[thermal_contact]
type = GapHeatTransfer
variable = temperature
primary = '101 201'
secondary = '100 200'
emissivity_primary = 0
emissivity_secondary = 0
gap_conductance = 1.0e9
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 100
[]
[]
[AuxVariables]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[BCs]
[temp_far_left]
type = FunctionDirichletBC
boundary = '101 201'
variable = temperature
function = temperature
[]
[temp_far_right]
type = DirichletBC
boundary = 'left right'
variable = temperature
value = 100
[]
[]
[AuxKernels]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 100
[]
[]
[Materials]
[heat1]
type = HeatConductionMaterial
block = '1 2 3'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[]
[density]
type = GenericConstantMaterial
block = '1 2 3'
prop_names = 'density'
prop_values = '1.0'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-8
l_tol = 1e-3
l_max_its = 100
dt = 1e-1
end_time = 1.0
[]
[Postprocessors]
[temp_left]
type = SideAverageValue
boundary = 100
variable = temperature
execute_on = 'initial timestep_end'
[]
[temp_right]
type = SideAverageValue
boundary = 200
variable = temperature
execute_on = 'initial timestep_end'
[]
[flux_left]
type = SideDiffusiveFluxIntegral
variable = temperature
boundary = 100
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[flux_right]
type = SideDiffusiveFluxIntegral
variable = temperature
boundary = 200
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/random5.i)
# Using CappedMohrCoulomb
# Plasticity models:
# Tensile strength = 1.5
# Compressive strength = 3.0
# Cohesion = 1.0
# Friction angle = dilation angle = 20deg
#
# Young = 1, Poisson = 0.3
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 100
ny = 12
nz = 1
xmin = 0
xmax = 100
ymin = 0
ymax = 12
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./Smax]
order = CONSTANT
family = MONOMIAL
[../]
[./Smid]
order = CONSTANT
family = MONOMIAL
[../]
[./Smin]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./Smax]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = Smax
scalar_type = MaxPrincipal
[../]
[./Smid]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = Smid
scalar_type = MidPrincipal
[../]
[./Smin]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = Smin
scalar_type = MinPrincipal
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1.5
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 3.0
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1.0
[../]
[./phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./psi]
type = SolidMechanicsHardeningConstant
value = 3
convert_to_radians = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100
poissons_ratio = 0.3
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y disp_z'
[../]
[./capped_mc]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = phi
dilation_angle = psi
smoothing_tol = 0.2
yield_function_tol = 1.0E-12
max_NR_iterations = 1000
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = capped_mc
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random5
exodus = true
[]
(modules/solid_mechanics/test/tests/static_deformations/beam_cosserat_02_apply_disps.i)
# Beam bending.
# Displacements are applied to a beam and stresses and moment-stresses
# are measured. Note that since these quantities are averaged over
# elements, to get a good agreement with the analytical solution the
# number of elements (nz) should be increased. Using nx=10
# and nz=10 yields roughly 1% error.
# The displacements applied are a pure-bend around the y axis
# with an additional displacement in the y direction so that
# the result (below) will end up being plane stress (stress_yy=0):
# u_x = Axz
# u_y = Dzy
# u_z = -(A/2)x^2 + (D/2)(z^2-y^2)
# wc_x = -Dy
# wc_y = Ax
# wc_z = 0
# Here A and D are arbitrary constants.
# This results in strains being symmetric, and the only
# nonzero ones are
# ep_xx = Az
# ep_yy = Dz
# ep_zz = Dz
# kappa_xy = -D
# kappa_yx = A
# Then choosing D = -poisson*A gives, for layered Cosserat:
# stress_xx = EAz
# m_yx = (1-poisson^2)*A*B = (1/12)EAh^2 (last equality for joint_shear_stiffness=0)
# where h is the layer thickness. All other stress and moment-stress
# components are zero.
# The test uses: E=1.2, poisson=0.3, A=1.11E-2, h=2
[Mesh]
type = GeneratedMesh
dim = 3
nx = 10
xmax = 10
ny = 1
nz = 10
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
# zmin is called back
# zmax is called front
# ymin is called bottom
# ymax is called top
# xmin is called left
# xmax is called right
[./clamp_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'left right top bottom front back'
function = '-1.11E-2*x*x/2-0.3*(z*z-y*y)/2.0*1.11E-2'
[../]
[./clamp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'left right top bottom front back'
function = '-0.3*z*y*1.11E-2'
[../]
[./clamp_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'left right top bottom front back'
function = '1.11E-2*x*z'
[../]
[./clamp_wc_x]
type = FunctionDirichletBC
variable = wc_x
boundary = 'left right top bottom front back'
function = '0.3*y*1.11E-2'
[../]
[./clamp_wc_y]
type = FunctionDirichletBC
variable = wc_y
boundary = 'left right top bottom front back'
function = '1.11E-2*x'
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 1.2
poisson = 0.3
layer_thickness = 2.0
joint_normal_stiffness = 1E16
joint_shear_stiffness = 1E-15
[../]
[./strain]
type = ComputeCosseratSmallStrain
[../]
[./stress]
type = ComputeCosseratLinearElasticStress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol -sub_pc_factor_shift_type'
petsc_options_value = 'gmres asm lu 1E-10 1E-14 10 1E-15 1E-10 NONZERO'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
num_steps = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = beam_cosserat_02_apply_disps
exodus = true
[]
(modules/phase_field/test/tests/free_energy_material/RegularSolutionFreeEnergy_plog.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 50
xmax = 1
[]
[Variables]
[./c]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = x
[../]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = c
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = c
boundary = left
function = x
[../]
[./right]
type = FunctionDirichletBC
variable = c
boundary = right
function = x
[../]
[]
[Materials]
[./free_energy]
type = RegularSolutionFreeEnergy
property_name = F
c = c
outputs = out
log_tol = 0.2
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
l_max_its = 1
nl_max_its = 1
nl_abs_tol = 1
[]
[Outputs]
execute_on = 'timestep_end'
[./out]
type = Exodus
execute_on = timestep_end
[../]
[]
(modules/phase_field/test/tests/free_energy_material/RegularSolutionFreeEnergy_const_T.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmax = 1
[]
[Variables]
[./c]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = x
[../]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = c
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = c
boundary = left
function = x
[../]
[./right]
type = FunctionDirichletBC
variable = c
boundary = right
function = x
[../]
[]
[Materials]
[./free_energy]
type = RegularSolutionFreeEnergy
property_name = F
c = c
outputs = out
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
l_max_its = 1
nl_max_its = 1
nl_abs_tol = 1
[]
[Outputs]
execute_on = 'timestep_end'
[./out]
type = Exodus
execute_on = timestep_end
[../]
[]
(modules/contact/test/tests/fieldsplit/frictional_mortar_FS.i)
offset = 0.021
vy = 0.15
vx = 0.04
refine = 1
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
[original_file_mesh]
type = FileMeshGenerator
file = long_short_blocks.e
[]
uniform_refine = ${refine}
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
use_automatic_differentiation = true
[]
[]
[Functions]
[horizontal_movement]
type = ParsedFunction
expression = 'if(t<0.5,${vx}*t-${offset},${vx}-${offset})'
[]
[vertical_movement]
type = ParsedFunction
expression = 'if(t<0.5,${offset},${vy}*(t-0.5)+${offset})'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 30
function = horizontal_movement
preset = false
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = '40'
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = '30'
function = vertical_movement
preset = false
[]
[]
[Materials]
[elasticity_tensor_left]
type = ADComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_left]
type = ADComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ADComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_right]
type = ADComputeFiniteStrainElasticStress
block = 2
[]
[]
[Contact]
[leftright]
secondary = 10
primary = 20
model = coulomb
friction_coefficient = 0.2
formulation = mortar
c_normal = 1e5
c_tangential = 1e4
[]
[]
[ICs]
[disp_y]
block = 1
variable = disp_y
value = ${offset}
type = ConstantIC
[]
[disp_x]
block = 1
variable = disp_x
value = -${offset}
type = ConstantIC
[]
[]
[Preconditioning]
[FSP]
type = FSP
topsplit = 'contact_interior'
[contact_interior]
splitting = 'interior contact'
splitting_type = schur
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_fieldsplit_schur_fact_type -mat_mffd_err'
petsc_options_value = '200 full 1e-5'
schur_pre = 'S'
[]
[interior]
vars = 'disp_x disp_y'
petsc_options_iname = '-ksp_type -pc_type -pc_hypre_type '
petsc_options_value = 'gmres hypre boomeramg'
[]
[contact]
vars = 'leftright_normal_lm leftright_tangential_lm'
[]
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
end_time = 1
abort_on_solve_fail = true
l_max_its = 200
nl_abs_tol = 1e-8
line_search = 'none'
nl_max_its = 20
[]
[Outputs]
exodus = true
[]
(test/tests/mortar/continuity-2d-conforming/conforming_two_var.i)
[Mesh]
[file]
type = FileMeshGenerator
file = 2blk-conf.e
[]
[secondary]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '101'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = '100'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Functions]
[./exact_sln]
type = ParsedFunction
expression= y
[../]
[./ffn]
type = ParsedFunction
expression= 0
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = '1 2'
[../]
[./lm_u]
order = FIRST
family = LAGRANGE
block = 'secondary_lower'
[../]
[./v]
order = FIRST
family = LAGRANGE
block = '1 2'
[../]
[./lm_v]
order = FIRST
family = LAGRANGE
block = 'secondary_lower'
[../]
[]
[Kernels]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = ffn
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[./coupled_u]
type = CoupledForce
variable = v
v = u
[../]
[]
[Problem]
extra_tag_vectors = 'ref'
[]
[Constraints]
[./ced_u]
type = EqualValueConstraint
variable = lm_u
secondary_variable = u
primary_boundary = 100
primary_subdomain = 10000
secondary_boundary = 101
secondary_subdomain = 10001
absolute_value_vector_tags = 'ref'
[../]
[./ced_v]
type = EqualValueConstraint
variable = lm_v
secondary_variable = v
primary_boundary = 100
primary_subdomain = 10000
secondary_boundary = 101
secondary_subdomain = 10001
absolute_value_vector_tags = 'ref'
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1 2 3 4'
function = exact_sln
[../]
[./allv]
type = DirichletBC
variable = v
boundary = '1 2 3 4'
value = 0
[../]
[]
[Postprocessors]
[./l2_error]
type = ElementL2Error
variable = u
function = exact_sln
block = '1 2'
execute_on = 'initial timestep_end'
[../]
[./l2_v]
type = ElementL2Norm
variable = v
block = '1 2'
execute_on = 'initial timestep_end'
[../]
[]
[Preconditioning]
[./fmp]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Steady
nl_rel_tol = 1e-12
l_tol = 1e-12
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence/L/small.i)
[Mesh]
type = FileMesh
file = 'L.exo'
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Functions]
[pfn]
type = PiecewiseLinear
x = '0 1 2'
y = '0.00 0.3 0.5'
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = UpdatedLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = UpdatedLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[BCs]
[left]
type = DirichletBC
preset = true
variable = disp_x
boundary = fix
value = 0.0
[]
[bottom]
type = DirichletBC
preset = true
variable = disp_y
boundary = fix
value = 0.0
[]
[back]
type = DirichletBC
preset = true
variable = disp_z
boundary = fix
value = 0.0
[]
[front]
type = FunctionDirichletBC
variable = disp_z
boundary = pull
function = pfn
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
petsc_options_iname = -pc_type
petsc_options_value = lu
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
end_time = 1.0
dtmin = 0.5
dt = 0.5
[]
[Postprocessors]
[nonlin]
type = NumNonlinearIterations
[]
[]
[Outputs]
exodus = false
csv = true
[]
(python/peacock/tests/common/oversample.i)
###########################################################
# This is a simple test with a time-dependent problem
# demonstrating the use of a "Transient" Executioner.
#
# @Requirement F1.10
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
# dudt = 3*t^2*(x^2 + y^2)
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 1
value = 1
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./dt]
type = TimestepSize
[../]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
# Preconditioned JFNK (default)
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
dt = 0.1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_transient
exodus = true
[./refine_2]
type = Exodus
file_base = oversample_2
refinements = 2
[../]
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_test.i)
#
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks containing one element each. Each
# element is a unit cube. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far left boundary
# is ramped from 100 to 200 over one time unit. The temperature of the far right
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
#
# The heat flux across the gap at time = 1 is then:
#
# Flux(2) = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors
#
# This test has been augmented with a second scalar field that solves nearly
# the same problem. The conductivity has been changed to 10. Thus, the
# flux for the second field is 1000.
#
[Mesh]
file = gap_heat_transfer_htonly_test.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
[../]
[./awesomium_contact]
type = GapHeatTransfer
variable = awesomium
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
gap_conductivity = 10
appended_property_name = _awesomium
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[./awesomium]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond_awesomium]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./awe]
type = HeatConduction
variable = awesomium
[../]
[]
[BCs]
[./temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[./awesomium_far_left]
type = FunctionDirichletBC
boundary = 1
variable = awesomium
function = temp
[../]
[./awesomium_far_right]
type = DirichletBC
boundary = 4
variable = awesomium
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[./conductance_awe]
type = MaterialRealAux
property = gap_conductance_awesomium
variable = gap_cond_awesomium
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-12
l_tol = 1e-3
l_max_its = 100
dt = 1e-1
end_time = 1.0
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./awe_left]
type = SideAverageValue
boundary = 2
variable = awesomium
execute_on = 'initial timestep_end'
[../]
[./awe_right]
type = SideAverageValue
boundary = 3
variable = awesomium
execute_on = 'initial timestep_end'
[../]
[./awe_flux_left]
type = SideDiffusiveFluxIntegral
variable = awesomium
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./awe_flux_right]
type = SideDiffusiveFluxIntegral
variable = awesomium
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/mortar_tm/horizontal_blocks_mortar_TM.i)
offset = 0.01
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
[./left_block]
type = GeneratedMeshGenerator
dim = 2
xmin = -1.0
xmax = 0.0
ymin = -0.5
ymax = 0.5
nx = 1
ny = 1
elem_type = QUAD4
boundary_name_prefix = lb
[../]
[./left_block_id]
type = SubdomainIDGenerator
input = left_block
subdomain_id = 1
[../]
[./right_block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.0
xmax = 1.0
ymin = -0.6
ymax = 0.6
nx = 1
ny = 1
elem_type = QUAD4
boundary_name_prefix = rb
boundary_id_offset = 10
[../]
[./right_block_id]
type = SubdomainIDGenerator
input = right_block
subdomain_id = 2
[../]
[./combined]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[../]
[./block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'left_block right_block'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[../]
[]
[Functions]
[./horizontal_movement]
type = ParsedFunction
expression = t/10.0
[../]
[]
[BCs]
[./push_x]
type = FunctionDirichletBC
preset = true
variable = disp_x
boundary = lb_left
function = horizontal_movement
[../]
[./fix_x]
type = DirichletBC
preset = true
variable = disp_x
boundary = rb_right
value = 0.0
[../]
[./fix_y]
type = DirichletBC
preset = true
variable = disp_y
boundary = rb_right
value = 0.0
[../]
[./fix_y_offset]
type = DirichletBC
preset = true
variable = disp_y
boundary = lb_left
value = ${offset}
[../]
[]
[Materials]
[./elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = left_block
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[./stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[../]
[./elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = right_block
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[./stress_right]
type = ComputeFiniteStrainElasticStress
block = right_block
[../]
[]
[Contact]
[./leftright]
secondary = lb_right
primary = rb_left
model = frictionless
formulation = mortar
friction_coefficient = 0.0
normal_smoothing_distance = 0.1
penalty = 1e+8
normalize_penalty = true
[../]
[]
[ICs]
[./disp_x]
type = ConstantIC
block = left_block
variable = disp_x
value = -${offset}
[../]
[./disp_y]
block = left_block
variable = disp_y
value = ${offset}
type = ConstantIC
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount -snes_max_it'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15 20'
dt = 0.1
dtmin = 0.1
end_time = 0.1
l_tol = 1e-4
l_max_its = 100
nl_rel_tol = 1e-10
nl_abs_tol = 1e-6
nl_max_its = 100
[]
(modules/solid_mechanics/test/tests/static_deformations/layered_cosserat_01.i)
# apply uniform stretches and observe the stresses
# with
# young = 0.7
# poisson = 0.2
# layer_thickness = 0.1
# joint_normal_stiffness = 0.25
# joint_shear_stiffness = 0.2
# then
# a0000 = 0.730681
# a0011 = 0.18267
# a2222 = 0.0244221
# a0022 = 0.006055
# a0101 = 0.291667
# a66 = 0.018717
# a77 = 0.310383
# b0110 = 0.000534
# b0101 = 0.000107
# and with
# strain_xx = 1
# strain_yy = 2
# strain_zz = 3
# then
# stress_xx = a0000*1 + a0011*2 + a0022*3 = 1.114187
# stress_yy = a0011*1 + a0000*2 + a0022*3 = 1.662197
# stress_zz = a0022*(1+2) + a2222*3 = 0.09083
# and all others zero
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
ymax = 1
nz = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
# zmin is called back
# zmax is called front
# ymin is called bottom
# ymax is called top
# xmin is called left
# xmax is called right
[./strain_xx]
type = FunctionDirichletBC
variable = disp_x
boundary = 'left right'
function = x
[../]
[./strain_yy]
type = FunctionDirichletBC
variable = disp_y
boundary = 'bottom top'
function = 2*y
[../]
[./strain_zz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'back front'
function = 3*z
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yx]
type = PointValue
point = '0 0 0'
variable = stress_yx
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zx]
type = PointValue
point = '0 0 0'
variable = stress_zx
[../]
[./s_zy]
type = PointValue
point = '0 0 0'
variable = stress_zy
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./c_s_xx]
type = PointValue
point = '0 0 0'
variable = couple_stress_xx
[../]
[./c_s_xy]
type = PointValue
point = '0 0 0'
variable = couple_stress_xy
[../]
[./c_s_xz]
type = PointValue
point = '0 0 0'
variable = couple_stress_xz
[../]
[./c_s_yx]
type = PointValue
point = '0 0 0'
variable = couple_stress_yx
[../]
[./c_s_yy]
type = PointValue
point = '0 0 0'
variable = couple_stress_yy
[../]
[./c_s_yz]
type = PointValue
point = '0 0 0'
variable = couple_stress_yz
[../]
[./c_s_zx]
type = PointValue
point = '0 0 0'
variable = couple_stress_zx
[../]
[./c_s_zy]
type = PointValue
point = '0 0 0'
variable = couple_stress_zy
[../]
[./c_s_zz]
type = PointValue
point = '0 0 0'
variable = couple_stress_zz
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 0.7
poisson = 0.2
layer_thickness = 0.1
joint_normal_stiffness = 0.25
joint_shear_stiffness = 0.2
[../]
[./strain]
type = ComputeCosseratSmallStrain
[../]
[./stress]
type = ComputeCosseratLinearElasticStress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol'
petsc_options_value = 'gmres asm lu 1E-10 1E-14 10 1E-15 1E-10'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
num_steps = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = layered_cosserat_01
csv = true
[]
(modules/solid_mechanics/test/tests/2D_geometries/2D-RZ_finiteStrain_resid.i)
# This tests the save_in_disp residual aux-variables for
# ComputeAxisymmetricRZFiniteStrain, which is generated through the use of the
# SolidMechanics QuasiStatic Physics. The GeneratedMesh is 1x1, rotated via axisym to
# create a cylinder of height 1, radius 1.
#
# PostProcessor force_z plots the force on the top surface of the cylinder.
#
# Displacement of 0.1 is applied to top of cylinder while other surfaces are
# constrained. Plotting force_z vs stress_z will show a slope of 3.14159 (pi),
# consistent with formula for normal stress:
#
# Stress = force / area
#
# where area is A = pi * r^2 for a circle.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 5
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
[]
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Problem]
coord_type = RZ
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
save_in = 'force_r force_z'
[../]
[]
[AuxVariables]
[./stress_r]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_r]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_z]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_z]
order = CONSTANT
family = MONOMIAL
[../]
[./force_r]
order = FIRST
family = LAGRANGE
[../]
[./force_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./stress_r]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_r
execute_on = timestep_end
[../]
[./strain_r]
type = RankTwoAux
rank_two_tensor = total_strain
index_i = 0
index_j = 0
variable = strain_r
execute_on = timestep_end
[../]
[./stress_z]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_z
execute_on = timestep_end
[../]
[./strain_z]
type = RankTwoAux
rank_two_tensor = total_strain
index_i = 1
index_j = 1
variable = strain_z
execute_on = timestep_end
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./_elastic_strain]
type = ComputeFiniteStrainElasticStress
[../]
[]
[BCs]
[./no_disp_r_left]
type = DirichletBC
variable = disp_r
boundary = left
value = 0.0
[../]
[./no_disp_r_right]
type = DirichletBC
variable = disp_r
boundary = right
value = 0.0
[../]
[./no_disp_z_bottom]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_z
boundary = top
function = 't'
[../]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = ' 201 hypre boomeramg 10'
line_search = 'none'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_rel_tol = 5e-9
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 0.1
dt = 0.01
[]
[Postprocessors]
[./strainR]
type = ElementAverageValue
variable = strain_r
[../]
[./stressR]
type = ElementAverageValue
variable = stress_r
[../]
[./strainZ]
type = ElementAverageValue
variable = strain_z
[../]
[./stressZ]
type = ElementAverageValue
variable = stress_z
[../]
[./force_r]
type = NodalSum
variable = force_r
boundary = top
[../]
[./force_z]
type = NodalSum
variable = force_z
boundary = top
[../]
[]
[Outputs]
exodus = true
#csv = true
print_linear_residuals = false
perf_graph = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = hertz_cyl_finer.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 = AugmentedLagrangianContactFEProblem
extra_tag_vectors = 'ref'
[]
[AuxVariables]
[penalty_normal_pressure]
[]
[penalty_frictional_pressure]
[]
[accumulated_slip_one]
[]
[tangential_vel_one]
[]
[normal_gap]
[]
[normal_lm]
[]
[saved_x]
[]
[saved_y]
[]
[active]
[]
[dual_var]
use_dual = true
block = '10001'
[]
[]
[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'
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
save_in = 'saved_x saved_y'
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
boundary = 3
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = friction_uo
contact_quantity = tangential_pressure_one
boundary = 3
[]
[penalty_tangential_vel_one]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = friction_uo
contact_quantity = tangential_velocity_one
boundary = 3
[]
[penalty_accumulated_slip_one]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = friction_uo
contact_quantity = accumulated_slip_one
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = friction_uo
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
variable = normal_gap
user_object = friction_uo
contact_quantity = normal_gap
boundary = 3
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_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
[]
[active_set_size]
type = NodalSum
variable = active
[]
[]
[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 = 1e8
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 = 'NEWTON'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = -pc_type
petsc_options_value = lu
line_search = 'basic'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
nl_max_its = 50
l_tol = 1e-05
l_abs_tol = 1e-13
start_time = 0.0
end_time = 0.2 # 3.5
dt = 0.1
dtmin = 0.1
[Predictor]
type = SimplePredictor
scale = 1.0
[]
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
[]
[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
[vectorpp_output]
type = CSV
create_final_symlink = true
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
penalty = 1e5
penalty_friction = 1e8
secondary_variable = disp_x
friction_coefficient = 0.4
penetration_tolerance = 1e-7
# Not solving the frictional problem tightly (below)
slip_tolerance = 1 # 1e-6
penalty_multiplier = 100
penalty_multiplier_friction = 1
use_physical_gap = true
aux_lm = dual_var
[]
[]
[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/contact/test/tests/mechanical_constraint/frictionless_penalty.i)
[Mesh]
file = blocks_2d.e
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[../]
[]
[AuxKernels]
[./zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./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
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = 4
#Initial gap is 0.01
value = -0.02
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e7
poissons_ratio = 0.3
[../]
[./right]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.01
end_time = 0.10
num_steps = 1000
l_tol = 1e-6
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dtmin = 0.01
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
primary = 2
secondary = 3
model = frictionless
formulation = penalty
penalty = 1e+7
[../]
[]
(tutorials/tutorial03_verification/app/test/tests/step04_mms/2d_mms_spatial.i)
[ICs]
active = 'mms'
[mms]
type = FunctionIC
variable = T
function = mms_exact
[]
[]
[BCs]
active = 'mms'
[mms]
type = FunctionDirichletBC
variable = T
boundary = 'left right top bottom'
function = mms_exact
[]
[]
[Kernels]
[mms]
type = HeatSource
variable = T
function = mms_force
[]
[]
[Functions]
[mms_force]
type = ParsedFunction
expression = 'cp*rho*sin(x*pi)*sin(5*y*pi) + 26*pi^2*k*t*sin(x*pi)*sin(5*y*pi) - shortwave*exp(y*kappa)*sin((1/2)*x*pi)*sin((1/3600)*pi*t/hours)'
symbol_names = 'rho cp k kappa shortwave hours'
symbol_values = '150 2000 0.01 40 650 9'
[]
[mms_exact]
type = ParsedFunction
expression = 't*sin(pi*x)*sin(5*pi*y)'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[error]
type = ElementL2Error
variable = T
function = mms_exact
[]
[h]
type = AverageElementSize
[]
[]
(test/tests/postprocessors/postprocessor_dependency/element_side_pp.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 3
ny = 3
elem_type = QUAD9
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 2.8
[../]
[../]
[./v]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 5.4
[../]
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
expression = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
expression = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
expression = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '1'
value = 0
[../]
[]
[Postprocessors]
[./sidepp]
type = SideIntegralVariablePostprocessor
variable = v
execute_on = timestep_end
boundary = '0 1 2 3'
[../]
[./passsidepp]
type = ElementSidePP
side_pp = sidepp
execute_on = timestep_end
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 0.3
[]
[Outputs]
file_base = out
csv = 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/contact/test/tests/normalized_penalty/normalized_penalty_Q8.i)
[GlobalParams]
order = SECOND
displacements = 'disp_x disp_y'
[]
[Mesh]
file = normalized_penalty_Q8.e
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Functions]
[./left_x]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0.02 0'
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
generate_output = 'stress_xx'
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
[]
[]
[Contact]
[./m3_s2]
primary = 3
secondary = 2
penalty = 1e10
normalize_penalty = true
formulation = penalty
tangential_tolerance = 1e-3
[../]
[]
[BCs]
[./left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 1
function = left_x
[../]
[./y]
type = DirichletBC
variable = disp_y
boundary = '1 2 3 4'
value = 0.0
[../]
[./right]
type = DirichletBC
variable = disp_x
boundary = '3 4'
value = 0
[../]
[]
[Materials]
[./stiffStuff1]
type = ComputeIsotropicElasticityTensor
block = '1 2 3 4 1000'
youngs_modulus = 3e8
poissons_ratio = 0.0
[../]
[./stiffStuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2 3 4 1000'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 5e-8
l_max_its = 100
nl_max_its = 10
dt = 0.5
num_steps = 4
[]
[Outputs]
exodus = true
[]
(test/tests/kernels/ode/parsedode_sys_impl_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 2
ny = 2
elem_type = QUAD4
[]
[Functions]
[./f_fn]
type = ParsedFunction
expression = -4
[../]
[./bc_all_fn]
type = ParsedFunction
expression = x*x+y*y
[../]
# ODEs
[./exact_x_fn]
type = ParsedFunction
expression = (-1/3)*exp(-t)+(4/3)*exp(5*t)
[../]
[]
# NL
[Variables]
[./u]
family = LAGRANGE
order = FIRST
[../]
# ODE variables
[./x]
family = SCALAR
order = FIRST
initial_condition = 1
[../]
[./y]
family = SCALAR
order = FIRST
initial_condition = 2
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./uff]
type = BodyForce
variable = u
function = f_fn
[../]
[]
[ScalarKernels]
[./td1]
type = ODETimeDerivative
variable = x
[../]
[./ode1]
type = ParsedODEKernel
expression = '-3*x - 2*y'
variable = x
coupled_variables = y
[../]
[./td2]
type = ODETimeDerivative
variable = y
[../]
[./ode2]
type = ParsedODEKernel
expression = '-4*x - y'
variable = y
coupled_variables = x
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = bc_all_fn
[../]
[]
[Postprocessors]
active = 'exact_x l2err_x'
[./exact_x]
type = FunctionValuePostprocessor
function = exact_x_fn
execute_on = 'initial timestep_end'
point = '0 0 0'
[../]
[./l2err_x]
type = ScalarL2Error
variable = x
function = exact_x_fn
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
start_time = 0
dt = 0.01
num_steps = 100
solve_type = 'PJFNK'
[]
[Outputs]
file_base = ode_sys_impl_test_out
exodus = true
[]
(modules/peridynamics/test/tests/simple_tests/2D_regularD_constH_OSPD.i)
# Test for ordinary state-based peridynamic formulation
# for regular grid from generated mesh with const bond constants
# partial Jacobian
# Jacobian from bond-based formulation is used for preconditioning
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 4
ny = 4
[../]
[./gpd]
type = MeshGeneratorPD
input = gmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1002
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1000
function = '-0.001 * t'
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = ORDINARY_STATE
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.0
[../]
[./force_density]
type = ComputeSmallStrainConstantHorizonMaterialOSPD
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
end_time = 1
[]
[Outputs]
file_base = 2D_regularD_constH_OSPD
exodus = true
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test2q.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test2q.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1.e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test2q_out
exodus = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform_hard22.i)
# Mohr-Coulomb only
# apply stretches in x direction and smaller stretches in the y direction
# to observe return to the MC plane
# This tests uses hardening of the friction and dilation angles. The returned configuration
# should obey
# 0 = 0.5 * (Smax - Smin) + 0.5 * (Smax + Smin) * sin(phi) - C cos(phi)
# which allows inference of phi.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.4E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.17E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 6
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[]
[Postprocessors]
[./s_max]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_mid]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_min]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningCubic
value_residual = 0.524 # 30deg
value_0 = 0.174 # 10deg
internal_limit = 4E-6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1E7
poissons_ratio = 0.0
[../]
[./mc]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = ts
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_phi
smoothing_tol = 0
yield_function_tol = 1.0E-9
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 9
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_hard22
csv = true
[]
(test/tests/misc/check_error/missing_required_coupled.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = 0
ymax = 1
nx = 20
ny = 10
elem_type = QUAD9
[]
[Functions]
[./bc_fn_v]
type = ParsedFunction
expression = (x*x+y*y)
[../]
[]
[Variables]
[./v]
family = LAGRANGE
order = SECOND
[../]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[Kernels]
# V equation
[./td_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = CoefDiffusion
variable = v
coef = 0.5
[../]
[./conv_v]
type = CoupledConvection
variable = v
# Coupled parameter is missing for CoupledConvection
[../]
[]
[BCs]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = 'top'
function = bc_fn_v
[../]
[]
[Executioner]
type = Transient
start_time = 0
dt = 0.05
num_steps = 10
[]
[Outputs]
execute_on = 'timestep_end'
[]
(test/tests/time_integrators/newmark-beta/newmark_beta_default_parameters.i)
###########################################################
# This is a simple test with a time-dependent problem
# demonstrating the use of the TimeIntegrator system.
#
# Testing that the first and second time derivatives
# are calculated correctly using the Newmark-Beta method
#
# @Requirement F1.30
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 1
ny = 1
[]
[Variables]
[./u]
[../]
[]
[Functions]
[./forcing_fn]
type = PiecewiseLinear
x = '0.0 0.1 0.2 0.3 0.4 0.5 0.6'
y = '0.0 0.0 0.0025 0.01 0.0175 0.02 0.02'
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
preset = false
boundary = 'left'
function = forcing_fn
[../]
[./right]
type = FunctionDirichletBC
variable = u
preset = false
boundary = 'right'
function = forcing_fn
[../]
[]
[Executioner]
type = Transient
# Time integrator scheme
scheme = "newmark-beta"
start_time = 0.0
num_steps = 6
dt = 0.1
[]
[Postprocessors]
[./udot]
type = ElementAverageTimeDerivative
variable = u
[../]
[./udotdot]
type = ElementAverageSecondTimeDerivative
variable = u
[../]
[./u]
type = ElementAverageValue
variable = u
[../]
[]
[Outputs]
csv = true
[]
(test/tests/time_integrators/newmark-beta/newmark_beta_prescribed_parameters.i)
###########################################################
# This is a simple test with a time-dependent problem
# demonstrating the use of the TimeIntegrator system.
#
# Testing that the first and second time derivatives
# are calculated correctly using the Newmark-Beta method
#
# @Requirement F1.30
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 1
ny = 1
[]
[Variables]
[u]
[]
[]
[Functions]
[forcing_fn]
type = PiecewiseLinear
x = '0.0 0.1 0.2 0.3 0.4 0.5 0.6'
y = '0.0 0.0 0.0025 0.01 0.0175 0.02 0.02'
[]
[]
[Kernels]
[ie]
type = TimeDerivative
variable = u
[]
[diff]
type = Diffusion
variable = u
[]
[]
[BCs]
[left]
type = FunctionDirichletBC
variable = u
boundary = 'left'
function = forcing_fn
[]
[right]
type = FunctionDirichletBC
variable = u
boundary = 'right'
function = forcing_fn
[]
[]
[Executioner]
type = Transient
start_time = 0.0
num_steps = 6
dt = 0.1
[TimeIntegrator]
type = NewmarkBeta
beta = 0.4225
gamma = 0.8
[]
[]
[Postprocessors]
[udot]
type = ElementAverageTimeDerivative
variable = u
[]
[udotdot]
type = ElementAverageSecondTimeDerivative
variable = u
[]
[u]
type = ElementAverageValue
variable = u
[]
[]
[Outputs]
csv = true
[]
(modules/combined/test/tests/internal_volume/rz_displaced.i)
#
# Volume Test
#
# This test is designed to compute the volume of a space when displacements
# are imposed.
#
# The mesh is composed of one block (1) with two elements. The mesh is
# such that the initial volume is 1. One element face is displaced to
# produce a final volume of 2.
#
# r1
# +----+ -
# | | |
# +----+ h V1 = pi * h * r1^2
# | | |
# +----+ -
#
# becomes
#
# +----+
# | \
# +------+ v2 = pi * h/2 * ( r2^2 + 1/3 * ( r2^2 + r2*r1 + r1^2 ) )
# | |
# +------+
# r2
#
# r1 = 1
# r2 = 1.5380168369562588
# h = 1/pi
#
# Note: Because the InternalVolume PP computes cavity volumes as positive,
# the volumes reported are negative.
#
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = meshes/rz_displaced.e
# This test uses ElementalVariableValue postprocessors on specific
# elements, so element numbering needs to stay unchanged
allow_renumbering = false
[]
[Functions]
[./disp_x]
type = PiecewiseLinear
x = '0. 1.'
y = '0. 0.5380168369562588'
[../]
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./volumetric_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
volumetric_locking_correction = false
decomposition_method = EigenSolution
incremental = true
strain = FINITE
[../]
[]
[AuxKernels]
[./fred]
type = RankTwoScalarAux
rank_two_tensor = total_strain
variable = volumetric_strain
scalar_type = VolumetricStrain
execute_on = timestep_end
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[./x]
type = FunctionDirichletBC
boundary = 3
variable = disp_x
function = disp_x
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
start_time = 0.0
dt = 1.0
end_time = 1.0
[]
[Postprocessors]
[./internalVolume]
type = InternalVolume
boundary = 2
execute_on = 'initial timestep_end'
[../]
[./volStrain0]
type = ElementalVariableValue
elementid = 0
variable = volumetric_strain
[../]
[./volStrain1]
type = ElementalVariableValue
elementid = 1
variable = volumetric_strain
[../]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_cutback.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
gen_random_stress_flag = true
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_factor_shift_type'
petsc_options_value = 'nonzero'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 1.0
dtmax = 10.0
dtmin = 1e-5
num_steps = 3
snesmf_reuse_base = false
[]
[Outputs]
file_base = crysp_cutback_out
exodus = true
csv = true
gnuplot = true
[]
(modules/contact/test/tests/normalized_penalty/normalized_penalty_kin_Q8.i)
[GlobalParams]
order = SECOND
displacements = 'disp_x disp_y'
[]
[Mesh]
file = normalized_penalty_Q8.e
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[]
[Functions]
[./left_x]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0.02 0'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
generate_output = 'stress_xx'
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
[]
[]
[Contact]
[./m3_s2]
primary = 3
secondary = 2
penalty = 1e10
normalize_penalty = true
tangential_tolerance = 1e-3
[../]
[]
[BCs]
[./left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 1
function = left_x
[../]
[./y]
type = DirichletBC
variable = disp_y
boundary = '1 2 3 4'
value = 0.0
[../]
[./right]
type = DirichletBC
variable = disp_x
boundary = '3 4'
value = 0
[../]
[]
[Materials]
[./stiffStuff1]
type = ComputeIsotropicElasticityTensor
block = '1 2 3 4 1000'
youngs_modulus = 3e8
poissons_ratio = 0.0
[../]
[./stiffStuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2 3 4 1000'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 5e-8
l_max_its = 100
nl_max_its = 20
dt = 0.5
num_steps = 4
[]
[Outputs]
exodus = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_no_parts_steady_nobcbc.i)
# This input file tests several different things:
# .) The axisymmetric (RZ) form of the governing equations.
# .) An open boundary.
# .) Not integrating the pressure by parts, thereby requiring a pressure pin.
# .) Natural boundary condition at the outlet.
[GlobalParams]
integrate_p_by_parts = false
laplace = true
gravity = '0 0 0'
[]
[Mesh]
file = '2d_cone.msh'
[]
[Problem]
coord_type = RZ
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = Newton
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'bjacobi ilu 4'
nl_rel_tol = 1e-12
nl_max_its = 6
[]
[Outputs]
console = true
[./out]
type = Exodus
[../]
[]
[Variables]
[./vel_x]
# Velocity in radial (r) direction
family = LAGRANGE
order = SECOND
[../]
[./vel_y]
# Velocity in axial (z) direction
family = LAGRANGE
order = SECOND
[../]
[./p]
family = LAGRANGE
order = FIRST
[../]
[]
[BCs]
[./p_corner]
# This is required, because pressure term is *not* integrated by parts.
type = DirichletBC
boundary = top_right
value = 0
variable = p
[../]
[./u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[../]
[./v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[../]
[./u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[../]
[./v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[../]
[./u_out]
type = INSMomentumNoBCBCLaplaceForm
boundary = top
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./v_out]
type = INSMomentumNoBCBCLaplaceForm
boundary = top
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Kernels]
[./mass]
type = INSMassRZ
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 'volume'
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[../]
[]
[Postprocessors]
[./flow_in]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'bottom'
execute_on = 'timestep_end'
[../]
[./flow_out]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'top'
execute_on = 'timestep_end'
[../]
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence-auto/1D/dirichlet.i)
# Simple 1D plane strain test
[GlobalParams]
displacements = 'disp_x'
large_kinematics = true
stabilize_strain = true
[]
[Variables]
[disp_x]
[]
[]
[ICs]
[disp_x]
type = RandomIC
variable = disp_x
min = -0.1
max = 0.1
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 1
nx = 10
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[]
[Functions]
[pull]
type = ParsedFunction
expression = '0.06 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = right
variable = disp_x
value = 0.0
[]
[pull]
type = FunctionDirichletBC
boundary = left
variable = disp_x
function = pull
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 5.0
dtmin = 5.0
end_time = 5.0
[]
(modules/solid_mechanics/test/tests/umat/analysis_steps/elastic_temperature_steps_uo_end_times.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Functions]
[top_pull_step2]
type = ParsedFunction
expression = (t-5.0)/20
[]
# Forced evolution of temperature
[temperature_load]
type = ParsedFunction
expression = '273'
[]
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temperature_function]
type = FunctionAux
variable = temperature
function = temperature_load
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
[]
[]
[BCs]
[y_step1]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[]
[y_pull_function_step2]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull_step2
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Controls]
[step1]
type = AnalysisStepPeriod
enable_objects = 'BCs::y_step1'
disable_objects = 'BCs::y_pull_function_step2'
analysis_step_user_object = step_uo
step_number = 0
[]
[step2]
type = AnalysisStepPeriod
enable_objects = 'BCs::y_pull_function_step2'
disable_objects = 'BCs::y_step1'
analysis_step_user_object = step_uo
step_number = 1
[]
[]
[UserObjects]
[step_uo]
type = AnalysisStepUserObject
step_end_times = '5 10'
[]
[]
[Materials]
[umat]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_temperature'
num_state_vars = 0
temperature = temperature
use_one_based_indexing = true
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 10
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/tensile/planar3.i)
# checking for small deformation
# A single element is stretched by 1E-6m in the z and x directions, with lame mu = 1E6, so trial stress is 2Pa in those directions
# tensile_strength is set to 1Pa
# Then the final stress should return to the z and x stresses being 1.0 (up to tolerance), and internal parameter = (0.5+0.5)E-6 = 1.0E-6
# Using 'planar' Tensile plasticity
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
outputs = console
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./hard]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./tens]
type = SolidMechanicsPlasticTensileMulti
tensile_strength = hard
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
max_NR_iterations = 4
min_stepsize = 1
plastic_models = tens
debug_fspb = crash
debug_jac_at_stress = '1 2 3 2 -4 -5 3 -5 10'
debug_jac_at_pm = '0.1 0.2 0.3'
debug_jac_at_intnl = 1E-6
debug_stress_change = 1E-6
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = planar3
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/shell/static/finite_straintest.i)
# Test for the axial stress and strain output for single shell element
# for 2D planar shell with uniform mesh.
# A single shell 1 mm x 1 mm element having Young's Modulus of 5 N/mm^2
# and poissons ratio of 0 is fixed at the left end and
# an axial displacement of 0.2 mm is applied at the right.
# Theoretical value of axial stress and strain are 1 N/mm^2 and 0.2.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[disp_z]
order = FIRST
family = LAGRANGE
[]
[rot_x]
order = FIRST
family = LAGRANGE
[]
[rot_y]
order = FIRST
family = LAGRANGE
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
variable = stress_xx
rank_two_tensor = global_stress_t_points_1
index_i = 0
index_j = 0
[]
[strain_xx]
type = RankTwoAux
variable = strain_xx
rank_two_tensor = total_global_strain_t_points_1
index_i = 0
index_j = 0
[]
[]
[BCs]
[fixx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[fixy]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[]
[fixz]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[]
[fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[]
[fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[]
[disp]
type = FunctionDirichletBC
variable = disp_x
boundary = 'right'
function = displacement
[]
[]
[Functions]
[displacement]
type = PiecewiseLinear
x = '0.0 1.0'
y = '0.0 0.2'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
automatic_scaling = true
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-14
dt = 1
dtmin = 1
end_time = 1
[]
[Kernels]
[solid_disp_x]
type = ADStressDivergenceShell
block = '0'
component = 0
variable = disp_x
through_thickness_order = SECOND
[]
[solid_disp_y]
type = ADStressDivergenceShell
block = '0'
component = 1
variable = disp_y
through_thickness_order = SECOND
[]
[solid_disp_z]
type = ADStressDivergenceShell
block = '0'
component = 2
variable = disp_z
through_thickness_order = SECOND
[]
[solid_rot_x]
type = ADStressDivergenceShell
block = '0'
component = 3
variable = rot_x
through_thickness_order = SECOND
[]
[solid_rot_y]
type = ADStressDivergenceShell
block = '0'
component = 4
variable = rot_y
through_thickness_order = SECOND
[]
[]
[Materials]
[elasticity]
type = ADComputeIsotropicElasticityTensorShell
youngs_modulus = 5.0
poissons_ratio = 0.0
block = 0
through_thickness_order = SECOND
[]
[strain]
type = ADComputeFiniteShellStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y'
thickness = 0.1
through_thickness_order = SECOND
[]
[stress]
type = ADComputeShellStress
block = 0
through_thickness_order = SECOND
[]
[]
[Postprocessors]
[disp_x]
type = PointValue
point = '0.5 0.0 0.0'
variable = disp_z
[]
[stress_xx_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_xx
[]
[strain_xx_el_0]
type = ElementalVariableValue
elementid = 0
variable = strain_xx
[]
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_hex_template.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 5
ny = 1
nz = 1
xmin = 0.0
xmax = 0.1
ymin = 0.0
ymax = 0.01
zmin = 0.0
zmax = 0.01
elem_type = HEX8
[]
[Variables]
[./temp]
initial_condition = 0.0
[../]
[]
[BCs]
[./FixedTempLeft]
type = DirichletBC
variable = temp
boundary = left
value = 0.0
[../]
[./FunctionTempRight]
type = FunctionDirichletBC
variable = temp
boundary = right
function = '100.0 * sin(pi*t/40)'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./HeatTdot]
type = HeatConductionTimeDerivative
variable = temp
[../]
[]
[Materials]
[./density]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '35.0 440.5 7200.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-5
nl_max_its = 50
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
dt = 1
end_time = 32.0
[]
[Postprocessors]
[./target_temp]
type = NodalVariableValue
variable = temp
nodeid = 19
[../]
[]
[Outputs]
csv = true
[]
(modules/contact/test/tests/sliding_block/in_and_out/frictionless_penalty_contact_line_search.i)
# This is a benchmark test that checks constraint based frictionless
# contact using the penalty method. In this test a sinusoidal
# displacement is applied in the horizontal direction to simulate
# a small block come in and out of contact as it slides down a larger block.
#
# The sinusoid is of the form 0.4sin(4t)+0.2. The gold file is run
# on one processor and the benchmark
# case is run on a minimum of 4 processors to ensure no parallel variability
# in the contact pressure and penetration results. Further documentation can
# found in moose/modules/contact/doc/sliding_block/
#
[Mesh]
file = sliding_elastic_blocks_2d.e
patch_size = 80
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[./horizontal_movement]
type = ParsedFunction
expression = -0.04*sin(4*t)+0.02
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[../]
[]
[AuxKernels]
[./zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./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
[../]
[]
[Postprocessors]
[./nonlinear_its]
type = NumNonlinearIterations
execute_on = timestep_end
[../]
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 222
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 222
[../]
[./tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = nonlinear_its
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = horizontal_movement
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
constant_on = SUBDOMAIN
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-ksp_monitor_true_residual'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'contact'
contact_line_search_ltol = .5
contact_line_search_allowed_lambda_cuts = 0
l_max_its = 100
nl_max_its = 20
dt = 0.1
end_time = 3
# num_steps = 30
l_tol = 1e-6
nl_rel_tol = 1e-10
nl_abs_tol = 1e-6
dtmin = 0.01
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
secondary = 3
primary = 2
model = frictionless
penalty = 1e+7
formulation = penalty
normal_smoothing_distance = 0.1
[../]
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform11.i)
# use an initial stress, then apply a shear deformation and tensile stretch to observe all hardening.
# Here p_trial=12, q_trial=2*Sqrt(20)
# MOOSE yields:
# q_returned = 1.696
# p_returned = 0.100
# intnl_shear = 1.81
# intnl_tens = 0.886
# These give, at the returned point
# cohesion = 1.84
# tanphi = 0.513
# tanpsi = 0.058
# tensile = 0.412
# This means that
# f_shear = -0.0895
# f_tensile = -0.312
# Note that these are within smoothing_tol (=1) of each other
# Hence, smoothing must be used:
# ismoother = 0.0895
# (which gives the yield function value = 0)
# smoother = 0.328
# This latter gives dg/dq = 0.671, dg/dp = 0.368
# for the flow directions. Finally ga = 2.70, and
# the returned point satisfies the normality conditions.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
eigenstrain_names = ini_stress
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = '0.5*t'
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 't'
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.5*t'
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningExponential
value_0 = 1
value_residual = 2
rate = 1
[../]
[./tanphi]
type = SolidMechanicsHardeningExponential
value_0 = 1.0
value_residual = 0.5
rate = 2
[../]
[./tanpsi]
type = SolidMechanicsHardeningExponential
value_0 = 0.1
value_residual = 0.05
rate = 1
[../]
[./t_strength]
type = SolidMechanicsHardeningExponential
value_0 = 1
value_residual = 0
rate = 1
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 1E8
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
lambda = 4.0
shear_modulus = 4.0
[../]
[./ini_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '0 0 2 0 0 4 2 4 6'
eigenstrain_name = ini_stress
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
max_NR_iterations = 20
tip_smoother = 0
smoothing_tol = 1
yield_function_tol = 1E-3
perfect_guess = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform11
[./csv]
type = CSV
[../]
[]
(test/tests/auxscalarkernels/function_scalar_aux/function_scalar_aux.i)
#
# Testing a solution that is second order in space and first order in time
#
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[AuxVariables]
[./x]
family = SCALAR
order = FIRST
[../]
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = ((x*x)+(y*y))-(4*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[./x_fn]
type = ParsedFunction
expression = t
[../]
[]
[AuxScalarKernels]
[./x_saux]
type = FunctionScalarAux
variable = x
function = x_fn
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
dt = 0.25
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/thermal_expansion/ad_constant_expansion_coeff.i)
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material. An initial temperature of 25 degrees C is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. After the first timestep,in which the
# temperature jumps, the temperature increases by 6.25C each timestep.
# The thermal strain increment should therefore be
# 6.25 C * 1.3e-5 1/C = 8.125e-5 m/m.
# This test is also designed to be used to identify problems with restart files
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./temp]
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
expression = t*(500.0)+300.0
[../]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
generate_output = 'strain_xx strain_yy strain_zz'
use_automatic_differentiation = true
[../]
[../]
[../]
[]
[Kernels]
[./tempfuncaux]
type = Diffusion
variable = temp
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
function = temperature_load
boundary = 'left right'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ADComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ADComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
[../]
[./temperature]
type = AverageNodalVariableValue
variable = temp
[../]
[]
(modules/solid_mechanics/test/tests/thermal_expansion/ad_constant_expansion_stress_free_temp.i)
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material; however, in this case the stress free temperature of the material
# has been set to 200K so that there is an initial delta temperature of 100K.
# An initial temperature of 300K is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. The final temperature is 675K
# The thermal strain increment should therefore be
# (675K - 300K) * 1.3e-5 1/K + 100K * 1.3e-5 1/K = 6.175e-3 m/m.
# This test uses a start up step to identify problems in the calculation of
# eigenstrains with a stress free temperature that is different from the initial
# value of the temperature in the problem
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./temp]
initial_condition = 300.0
[../]
[]
[AuxVariables]
[./eigenstrain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./eigenstrain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./eigenstrain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
expression = t*(5000.0)+300.0
[../]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
use_automatic_differentiation = true
[../]
[../]
[../]
[]
[Kernels]
[./temp]
type = Diffusion
variable = temp
[../]
[]
[AuxKernels]
[./eigenstrain_yy]
type = ADRankTwoAux
rank_two_tensor = eigenstrain
variable = eigenstrain_yy
index_i = 1
index_j = 1
execute_on = 'initial timestep_end'
[../]
[./eigenstrain_xx]
type = ADRankTwoAux
rank_two_tensor = eigenstrain
variable = eigenstrain_xx
index_i = 0
index_j = 0
execute_on = 'initial timestep_end'
[../]
[./eigenstrain_zz]
type = ADRankTwoAux
rank_two_tensor = eigenstrain
variable = eigenstrain_zz
index_i = 2
index_j = 2
execute_on = 'initial timestep_end'
[../]
[./total_strain_yy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yy
index_i = 1
index_j = 1
execute_on = 'initial timestep_end'
[../]
[./total_strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xx
index_i = 0
index_j = 0
execute_on = 'initial timestep_end'
[../]
[./total_strain_zz]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zz
index_i = 2
index_j = 2
execute_on = 'initial timestep_end'
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
function = temperature_load
boundary = 'left right'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ADComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ADComputeThermalExpansionEigenstrain
stress_free_temperature = 200
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = -0.0125
n_startup_steps = 1
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[./eigenstrain_xx]
type = ElementAverageValue
variable = eigenstrain_xx
execute_on = 'initial timestep_end'
[../]
[./eigenstrain_yy]
type = ElementAverageValue
variable = eigenstrain_yy
execute_on = 'initial timestep_end'
[../]
[./eigenstrain_zz]
type = ElementAverageValue
variable = eigenstrain_zz
execute_on = 'initial timestep_end'
[../]
[./total_strain_xx]
type = ElementAverageValue
variable = total_strain_xx
execute_on = 'initial timestep_end'
[../]
[./total_strain_yy]
type = ElementAverageValue
variable = total_strain_yy
execute_on = 'initial timestep_end'
[../]
[./total_strain_zz]
type = ElementAverageValue
variable = total_strain_zz
execute_on = 'initial timestep_end'
[../]
[./temperature]
type = AverageNodalVariableValue
variable = temp
execute_on = 'initial timestep_end'
[../]
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence/1D/dirichlet.i)
# Simple 1D plane strain test
[GlobalParams]
displacements = 'disp_x'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 1
nx = 10
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[]
[Functions]
[pull]
type = ParsedFunction
expression = '0.06 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = right
variable = disp_x
value = 0.0
[]
[pull]
type = FunctionDirichletBC
boundary = left
variable = disp_x
function = pull
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[stress_base]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
dtmin = 1.0
end_time = 5.0
[]
[Postprocessors]
[nonlin]
type = NumNonlinearIterations
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform6.i)
# Plastic deformation, both tensile and shear failure
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 'if(t<30,0.2*t,6)'
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 'if(t<30,if(t<10,0,t),30-0.2*t)'
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 'if(t<15,3*t,45)+if(t<30,0,45-3*t)'
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 20
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 20
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '4 4'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
max_NR_iterations = 20
tip_smoother = 5
smoothing_tol = 5
yield_function_tol = 1E-10
perfect_guess = false
[../]
[]
[Executioner]
end_time = 40
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform6
csv = true
[]
(test/tests/executioners/executioner/sln-time-adapt.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
# dudt = 3*t^2*(x^2 + y^2)
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 1
value = 1
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./dt]
type = TimestepSize
[../]
[]
[Executioner]
type = Transient
[./TimeStepper]
type = SolutionTimeAdaptiveDT
dt = 0.1
[../]
scheme = 'implicit-euler'
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_sta
exodus = true
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test4q.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test4q.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1.e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test4q_out
exodus = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface21.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 2.0E-6m in y direction and 2.0E-6 in z direction.
# trial stress_yy = 2.0 and stress_zz = 2.0
#
# Then all yield functions will activate
# However, there is linear dependence. SimpleTester1 or SimpleTester0 will be rutned off (they are equi-distant).
# The algorithm will return to one corner point, but there will be negative plastic multipliers
# so the other SimpleTester0 or SimpleTester1 will turn off, and the algorithm will return to
# stress_yy=0.75 and stress_zz=0.75
# internal2=1.25
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2.0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '2.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface21
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/tutorials/basics/part_2.3.i)
#Tensor Mechanics tutorial: the basics
#Step 2, part 3
#2D axisymmetric RZ simulation of uniaxial tension with J2 plasticity with no
#hardening
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = necking_quad4.e
uniform_refine = 0
second_order = true
[]
[Physics/SolidMechanics/QuasiStatic]
[./block1]
strain = FINITE
add_variables = true
generate_output = 'stress_yy strain_yy' #use the yy option to get the zz component in axisymmetric coords
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1e-9
plastic_models = J2
[../]
[]
[UserObjects]
[./str]
type = SolidMechanicsHardeningConstant
value = 2.4e2
[../]
[./J2]
type = SolidMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_r
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_z
boundary = top
function = '0.0007*t'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.25
end_time = 20
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 1 101'
[]
[Postprocessors]
[./ave_stress_bottom]
type = SideAverageValue
variable = stress_yy
boundary = bottom
[../]
[./ave_strain_bottom]
type = SideAverageValue
variable = strain_yy
boundary = bottom
[../]
[]
[Outputs]
exodus = true
perf_graph = true
csv = true
print_linear_residuals = false
[]
(modules/combined/test/tests/thermal_strain/thermal_strain.i)
# Patch Test
# This test is designed to compute displacements from a thermal strain.
# The cube is displaced by 1e-6 units in x, 2e-6 in y, and 3e-6 in z.
# The faces are sheared as well (1e-6, 2e-6, and 3e-6 for xy, yz, and
# zx). This gives a uniform strain/stress state for all six unique
# tensor components.
# The temperature moves 100 degrees, and the coefficient of thermal
# expansion is 1e-6. Therefore, the strain (and the displacement
# since this is a unit cube) is 1e-4.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = thermal_strain_test.e
[]
[Functions]
[./tempFunc]
type = PiecewiseLinear
x = '0. 1.'
y = '117.56 217.56'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 117.56
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
add_variables = true
strain = SMALL
incremental = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
temperature = temp
[./block1]
eigenstrain_names = eigenstrain1
block = 1
[../]
[./block2]
eigenstrain_names = eigenstrain2
block = 2
[../]
[./block3]
eigenstrain_names = eigenstrain3
block = 3
[../]
[./block4]
eigenstrain_names = eigenstrain4
block = 4
[../]
[./block5]
eigenstrain_names = eigenstrain5
block = 5
[../]
[./block6]
eigenstrain_names = eigenstrain6
block = 6
[../]
[./block7]
eigenstrain_names = eigenstrain7
block = 7
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 10
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 9
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = 14
value = 0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = '10 12'
function = tempFunc
[../]
[]
[Materials]
[./elasticity_tensor1]
type = ComputeIsotropicElasticityTensor
block = 1
bulk_modulus = 0.333333333333e6
poissons_ratio = 0.0
[../]
[./thermal_strain1]
type = ComputeThermalExpansionEigenstrain
block = 1
temperature = temp
stress_free_temperature = 117.56
thermal_expansion_coeff = 1e-6
eigenstrain_name = eigenstrain1
[../]
[./stress1]
type = ComputeStrainIncrementBasedStress
block = 1
[../]
[./elasticity_tensor2]
type = ComputeIsotropicElasticityTensor
block = 2
bulk_modulus = 0.333333333333e6
lambda = 0.0
[../]
[./thermal_strain2]
type = ComputeThermalExpansionEigenstrain
block = 2
temperature = temp
stress_free_temperature = 117.56
thermal_expansion_coeff = 1e-6
eigenstrain_name = eigenstrain2
[../]
[./stress2]
type = ComputeStrainIncrementBasedStress
block = 2
[../]
[./elasticity_tensor3]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./thermal_strain3]
type = ComputeThermalExpansionEigenstrain
block = 3
temperature = temp
stress_free_temperature = 117.56
thermal_expansion_coeff = 1e-6
eigenstrain_name = eigenstrain3
[../]
[./stress3]
type = ComputeStrainIncrementBasedStress
block = 3
[../]
[./elasticity_tensor4]
type = ComputeIsotropicElasticityTensor
block = 4
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./thermal_strain4]
type = ComputeThermalExpansionEigenstrain
block = 4
temperature = temp
stress_free_temperature = 117.56
thermal_expansion_coeff = 1e-6
eigenstrain_name = eigenstrain4
[../]
[./stress4]
type = ComputeStrainIncrementBasedStress
block = 4
[../]
[./elasticity_tensor5]
type = ComputeIsotropicElasticityTensor
block = 5
youngs_modulus = 1e6
lambda = 0.0
[../]
[./thermal_strain5]
type = ComputeThermalExpansionEigenstrain
block = 5
temperature = temp
stress_free_temperature = 117.56
thermal_expansion_coeff = 1e-6
eigenstrain_name = eigenstrain5
[../]
[./stress5]
type = ComputeStrainIncrementBasedStress
block = 5
[../]
[./elasticity_tensor6]
type = ComputeIsotropicElasticityTensor
block = 6
youngs_modulus = 1e6
shear_modulus = 5e5
[../]
[./thermal_strain6]
type = ComputeThermalExpansionEigenstrain
block = 6
temperature = temp
stress_free_temperature = 117.56
thermal_expansion_coeff = 1e-6
eigenstrain_name = eigenstrain6
[../]
[./stress6]
type = ComputeStrainIncrementBasedStress
block = 6
[../]
[./elasticity_tensor7]
type = ComputeIsotropicElasticityTensor
block = 7
shear_modulus = 5e5
poissons_ratio = 0.0
[../]
[./thermal_strain7]
type = ComputeThermalExpansionEigenstrain
block = 7
temperature = temp
stress_free_temperature = 117.56
thermal_expansion_coeff = 1e-6
eigenstrain_name = eigenstrain7
[../]
[./stress7]
type = ComputeStrainIncrementBasedStress
block = 7
[../]
[./heat]
type = HeatConductionMaterial
block = '1 2 3 4 5 6 7'
specific_heat = 1.0
thermal_conductivity = 1.0
[../]
[./density]
type = Density
block = '1 2 3 4 5 6 7'
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_abs_tol = 1e-10
l_max_its = 20
start_time = 0.0
dt = 0.5
num_steps = 2
end_time = 1.0
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/block_w_line.i)
[Mesh]
parallel_type = 'replicated'
[block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 50
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -1.25
ymax = 1.25
zmin = -0.04
zmax = 0.04
boundary_name_prefix = block
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 1
[]
[line]
type = GeneratedMeshGenerator
dim = 1
xmin = -0.5
xmax = 0.5
nx = 10
boundary_name_prefix = line
boundary_id_offset = 10
[]
[line_id]
type = SubdomainIDGenerator
input = line
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'block_id line_id'
[]
[line_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'block line'
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time_derivative]
type = HeatConductionTimeDerivative
variable = temperature
block = 'block'
[]
[heat_conduction]
type = HeatConduction
variable = temperature
block = 'block'
[]
[time_derivative_line]
type = TrussHeatConductionTimeDerivative
variable = temperature
area = area
block = 'line'
[]
[heat_conduction_line]
type = TrussHeatConduction
variable = temperature
area = area
block = 'line'
[]
[]
[AuxVariables]
[area]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[area]
type = ConstantAux
variable = area
value = 0.008
execute_on = 'initial timestep_begin'
[]
[]
[Constraints]
[equalvalue]
type = EqualValueEmbeddedConstraint
secondary = 'line'
primary = 'block'
penalty = 1e6
formulation = kinematic
primary_variable = temperature
variable = temperature
[]
[]
[Materials]
[block]
type = GenericConstantMaterial
block = 'block'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[line]
type = GenericConstantMaterial
block = 'line'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '10.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[]
[BCs]
[right]
type = FunctionDirichletBC
variable = temperature
boundary = 'block_right line_right'
function = '10*t'
[]
[]
[VectorPostprocessors]
[x_n0_25]
type = LineValueSampler
start_point = '-0.25 0 0'
end_point = '-0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[x_0_25]
type = LineValueSampler
start_point = '0.25 0 0'
end_point = '0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
end_time = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-12
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = 'csv/block_w_line'
time_data = true
[]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform6.i)
# Using CappedMohrCoulomb with tensile failure only
# A single element is incrementally stretched in the in the z direction
# This causes the return direction to be along the hypersurface sigma_II = sigma_III,
# and the resulting stresses are checked to lie on the expected yield surface
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = finite
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '4*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = 'y*(t-0.5)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = 'z*(t-0.5)'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 2.0'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.5
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 0.1
type = Transient
[]
[Outputs]
file_base = small_deform6
csv = true
[]
(modules/combined/test/tests/elastic_thermal_patch/elastic_thermal_patch_rz.i)
#
# This problem is modified from the Abaqus verification manual:
# "1.5.4 Patch test for axisymmetric elements"
# The original stress solution is given as:
# xx = yy = zz = 2000
# xy = 400
#
# Here, E=1e6 and nu=0.25.
# However, with a +100 degree change in temperature and a coefficient
# of thermal expansion of 1e-6, the solution becomes:
# xx = yy = zz = 1800
# xy = 400
# since
# E*(1-nu)/(1+nu)/(1-2*nu)*(1+2*nu/(1-nu))*(1e-3-1e-4) = 1800
#
# Also,
#
# dSrr dSrz Srr-Stt
# ---- + ---- + ------- + br = 0
# dr dz r
#
# and
#
# dSrz Srz dSzz
# ---- + --- + ---- + bz = 0
# dr r dz
#
# where
# Srr = stress in rr
# Szz = stress in zz
# Stt = stress in theta-theta
# Srz = stress in rz
# br = body force in r direction
# bz = body force in z direction
#
[GlobalParams]
displacements = 'disp_x disp_y'
temperature = temp
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = elastic_thermal_patch_rz_test.e
[]
[Functions]
[./ur]
type = ParsedFunction
expression = '1e-3*x'
[../]
[./uz]
type = ParsedFunction
expression = '1e-3*(x+y)'
[../]
[./body]
type = ParsedFunction
expression = '-400/x'
[../]
[./temp]
type = ParsedFunction
expression = '117.56+100*t'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 117.56
[../]
[]
[Physics/SolidMechanics/QuasiStatic/All]
add_variables = true
strain = SMALL
incremental = true
eigenstrain_names = eigenstrain
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[]
[Kernels]
[./body]
type = BodyForce
variable = disp_y
value = 1
function = body
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./ur]
type = FunctionDirichletBC
variable = disp_x
boundary = 10
function = ur
[../]
[./uz]
type = FunctionDirichletBC
variable = disp_y
boundary = 10
function = uz
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = 10
function = temp
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
lambda = 400000.0
poissons_ratio = 0.25
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-6
stress_free_temperature = 117.56
eigenstrain_name = eigenstrain
[../]
[./stress]
type = ComputeStrainIncrementBasedStress
[../]
[./heat]
type = HeatConductionMaterial
specific_heat = 0.116
thermal_conductivity = 4.85e-4
[../]
[./density]
type = Density
density = 0.283
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_abs_tol = 1e-11
nl_rel_tol = 1e-12
l_max_its = 20
start_time = 0.0
dt = 1.0
num_steps = 1
end_time = 1.0
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/3d-mortar-contact/frictional-mortar-3d.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[AuxVariables]
[mortar_tangent_x]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_y]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_z]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[friction_x_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_x
component = 0
boundary = 'top_bottom'
[]
[friction_y_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_y
component = 1
boundary = 'top_bottom'
[]
[friction_z_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_z
component = 2
boundary = 'top_bottom'
[]
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
uniform_refine = 0
allow_renumbering = false
[]
[Variables]
[mortar_normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[mortar_tangential_lm]
block = 'secondary_lower'
use_dual = true
[]
[mortar_tangential_3d_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
[]
[]
[Materials]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e4
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e5
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_variable_normal = mortar_normal_lm
lm_variable_tangential_one = mortar_tangential_lm
lm_variable_tangential_two = mortar_tangential_3d_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
[]
[]
[Constraints]
[friction]
type = ComputeFrictionalForceLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
mu = 0.4
c = 1e4
c_t = 1.0e4
friction_lm = mortar_tangential_lm
friction_lm_dir = mortar_tangential_3d_lm
weighted_gap_uo = weighted_vel_uo
weighted_velocities_uo = weighted_vel_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_x
component = x
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_y
component = y
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_z
component = z
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = .025
dt = .025
dtmin = .001
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -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-14 1e-5'
l_max_its = 15
nl_max_its = 30
nl_rel_tol = 1e-11
nl_abs_tol = 1e-12
line_search = 'basic'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'contact'
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_normal_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[frictional-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[frictional-pressure-3d]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_3d_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[tangent_x]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_x
sort_by = 'id'
execute_on = NONLINEAR
[]
[tangent_y]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_y
sort_by = 'id'
execute_on = NONLINEAR
[]
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = cond_number.e
[]
allow_renumbering = false
[]
[Problem]
type = AugmentedLagrangianContactFEProblem
extra_tag_vectors = 'ref'
maximum_lagrangian_update_iterations = 1000
[]
[AuxVariables]
[penalty_normal_pressure]
[]
[penalty_frictional_pressure]
[]
[accumulated_slip_one]
[]
[tangential_vel_one]
[]
[normal_gap]
[]
[normal_lm]
[]
[saved_x]
[]
[saved_y]
[]
[active]
[]
[]
[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'
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
save_in = 'saved_x saved_y'
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 = penalty_friction_object_al_friction
contact_quantity = normal_pressure
boundary = 3
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_pressure_one
boundary = 3
[]
[penalty_tangential_vel_one]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_velocity_one
boundary = 3
[]
[penalty_accumulated_slip_one]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = penalty_friction_object_al_friction
contact_quantity = accumulated_slip_one
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = penalty_friction_object_al_friction
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
variable = normal_gap
user_object = penalty_friction_object_al_friction
contact_quantity = normal_gap
boundary = 3
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_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
[]
[active_set_size]
type = NodalSum
variable = active
[]
[]
[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 = 1e8
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 = 'NEWTON'
petsc_options = '-ksp_snes_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = ' 201 hypre boomeramg 8'
line_search = 'none'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
nl_max_its = 50
l_tol = 1e-05
l_abs_tol = 1e-13
start_time = 0.0
end_time = 0.2 # 1.0
dt = 0.1
dtmin = 0.1
[Predictor]
type = SimplePredictor
scale = 1.0
[]
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
[]
[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
[vectorpp_output]
type = CSV
create_final_symlink = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
[]
[Contact]
[al_friction]
formulation = mortar_penalty
model = coulomb
primary = '2'
secondary = '3'
penalty = 1e7
penalty_friction = 1e+7
friction_coefficient = 0.4
al_penetration_tolerance = 1e-7
al_incremental_slip_tolerance = 1.0 # Not active
penalty_multiplier = 100
[]
[]
(modules/contact/test/tests/bouncing-block-contact/frictionless-nodal-reduced-active-set.i)
starting_point = .5
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1
[]
[Mesh]
file = square-blocks-no-offset.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[ICs]
[./disp_y]
block = 2
variable = disp_y
value = ${starting_point}
type = ConstantIC
[../]
[]
[Kernels]
[./disp_x]
type = MatDiffusion
variable = disp_x
[../]
[./disp_y]
type = MatDiffusion
variable = disp_y
[../]
[]
[Constraints]
[./disp_x]
type = RANFSNormalMechanicalContact
secondary = 10
primary = 20
variable = disp_x
primary_variable = disp_x
component = x
[../]
[./disp_y]
type = RANFSNormalMechanicalContact
secondary = 10
primary = 20
variable = disp_y
primary_variable = disp_y
component = y
[../]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
preset = false
boundary = 40
value = 0.0
[../]
[./topx]
type = DirichletBC
variable = disp_x
preset = false
boundary = 30
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
preset = false
boundary = 40
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 30
function = '${starting_point} - t'
[../]
[]
[Executioner]
type = Transient
num_steps = 1
dt = 1
dtmin = 1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -ksp_monitor_true_residual -snes_view'
petsc_options_iname = '-mat_mffd_err -pc_type -pc_hypre_type'
petsc_options_value = '1e-5 hypre boomeramg'
l_max_its = 30
nl_max_its = 20
line_search = 'project'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
[exo]
type = Exodus
execute_on = 'nonlinear'
[]
print_linear_residuals = false
[dof]
type = DOFMap
execute_on = 'initial'
[]
[]
[Postprocessors]
[./num_nl]
type = NumNonlinearIterations
[../]
[./cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[../]
[]
(modules/contact/test/tests/mortar_dynamics/frictional-mortar-3d-dynamics-light.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[AuxVariables]
[mortar_tangent_x]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_y]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_z]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[friction_x_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_x
component = 0
boundary = 'top_bottom'
[]
[friction_y_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_y
component = 1
boundary = 'top_bottom'
[]
[friction_z_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_z
component = 2
boundary = 'top_bottom'
[]
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 1
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 1
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
uniform_refine = 0
allow_renumbering = false
[]
[Variables]
[mortar_normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[mortar_tangential_lm]
block = 'secondary_lower'
use_dual = true
[]
[mortar_tangential_3d_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[Physics/SolidMechanics/Dynamic]
[all]
add_variables = true
hht_alpha = 0.0
newmark_beta = 0.25
newmark_gamma = 0.5
mass_damping_coefficient = 0.0
stiffness_damping_coefficient = 0.1
displacements = 'disp_x disp_y disp_z'
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
block = '1 2'
strain = FINITE
density = density
[]
[]
[Materials]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e4
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e5
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable_normal = mortar_normal_lm
lm_variable_tangential_one = mortar_tangential_lm
lm_variable_tangential_two = mortar_tangential_3d_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[friction]
type = ComputeDynamicFrictionalForceLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
friction_lm = mortar_tangential_lm
friction_lm_dir = mortar_tangential_3d_lm
mu = 0.4
c = 1e4
c_t = 1.0e4
newmark_beta = 0.25
newmark_gamma = 0.5
correct_edge_dropping = true
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_vel_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_x
component = x
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_y
component = y
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_z
component = z
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = .025
dt = .025
dtmin = .001
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu NONZERO 1e-14'
nl_rel_tol = 1e-11
nl_abs_tol = 1e-11
line_search = 'basic'
[TimeIntegrator]
type = NewmarkBeta
gamma = 0.5
beta = 0.25
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'contact'
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_normal_lm
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[frictional-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_lm
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[frictional-pressure-3d]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_3d_lm
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[tangent_x]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_x
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[tangent_y]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_y
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[]
(modules/solid_mechanics/test/tests/multi/special_rock1.i)
# Plasticity models:
# Mohr-Coulomb with cohesion = 40MPa, friction angle = 35deg, dilation angle = 5deg
# Tensile with strength = 1MPa
#
# Lame lambda = 1GPa. Lame mu = 1.3GPa
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
#
# NOTE: The yield function tolerances here are set at 100-times what i would usually use
# This is because otherwise the test fails on the 'pearcey' architecture.
# This is because identical stress tensors yield slightly different eigenvalues
# (and hence return-map residuals) on 'pearcey' than elsewhere, which results in
# a different number of NR iterations are needed to return to the yield surface.
# This is presumably because of compiler internals, or the BLAS routines being
# optimised differently or something similar.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 125
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[GlobalParams]
volumetric_locking_correction=true
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./linesearch]
order = CONSTANT
family = MONOMIAL
[../]
[./ld]
order = CONSTANT
family = MONOMIAL
[../]
[./constr_added]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./linesearch]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = linesearch
[../]
[./ld]
type = MaterialRealAux
property = plastic_linear_dependence_encountered
variable = ld
[../]
[./constr_added]
type = MaterialRealAux
property = plastic_constraints_added
variable = constr_added
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./max_iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./av_linesearch]
type = ElementAverageValue
variable = linesearch
outputs = 'console csv'
[../]
[./av_ld]
type = ElementAverageValue
variable = ld
outputs = 'console csv'
[../]
[./av_constr_added]
type = ElementAverageValue
variable = constr_added
outputs = 'console csv'
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console csv'
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 4E7
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
use_custom_returnMap = false
yield_function_tolerance = 1.0E+2 # Note larger value
shift = 1.0E+2 # Note larger value
internal_constraint_tolerance = 1.0E-7
[../]
[./mc_smooth]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 4E6
yield_function_tolerance = 1.0
internal_constraint_tolerance = 1.0E-7
[../]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./tensile]
type = SolidMechanicsPlasticTensileMulti
tensile_strength = ts
yield_function_tolerance = 1.0E+2 # Note larger value
shift = 1.0E+2 # Note larger value
internal_constraint_tolerance = 1.0E-7
use_custom_returnMap = false
use_custom_cto = false
[../]
[./tensile_smooth]
type = SolidMechanicsPlasticTensile
tensile_strength = ts
tensile_tip_smoother = 1E5
yield_function_tolerance = 1.0
internal_constraint_tolerance = 1.0E-7
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1.0E9 1.3E9'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5 # Note larger value, to match the larger yield_function_tolerances
plastic_models = 'tensile mc'
max_NR_iterations = 5
specialIC = 'rock'
deactivation_scheme = 'safe'
min_stepsize = 1
max_stepsize_for_dumb = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1 1'
debug_jac_at_intnl = '1 1 1 1'
debug_stress_change = 1E1
debug_pm_change = '1E-6 1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = special_rock1
exodus = false
csv = true
[]
(modules/contact/test/tests/3d-mortar-contact/frictional-mortar-3d-function.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[AuxVariables]
[mortar_tangent_x]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_y]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_z]
family = LAGRANGE
order = FIRST
[]
[]
[Functions]
# x: Contact pressure
# y: Magnitude of tangential relative velocity
# z: Temperature (to be implemented)
[mu_function]
type = ParsedFunction
expression = '0.3 + (0.7 - 0.3) * 2.17^(-0.5/y) - x/10000'
[]
[]
[AuxKernels]
[friction_x_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_x
component = 0
boundary = 'top_bottom'
[]
[friction_y_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_y
component = 1
boundary = 'top_bottom'
[]
[friction_z_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_z
component = 2
boundary = 'top_bottom'
[]
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
uniform_refine = 0
allow_renumbering = false
[]
[Variables]
[mortar_normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[mortar_tangential_lm]
block = 'secondary_lower'
use_dual = true
[]
[mortar_tangential_3d_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
[]
[]
[Materials]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e4
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e5
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_variable_normal = mortar_normal_lm
lm_variable_tangential_one = mortar_tangential_lm
lm_variable_tangential_two = mortar_tangential_3d_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
[]
[]
[Constraints]
[friction]
type = ComputeFrictionalForceLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
# mu = 0.4
function_friction = mu_function
c = 1e4
c_t = 1.0e6
friction_lm = mortar_tangential_lm
friction_lm_dir = mortar_tangential_3d_lm
weighted_gap_uo = weighted_vel_uo
weighted_velocities_uo = weighted_vel_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_x
component = x
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_y
component = y
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_z
component = z
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top_top'
function = '0.1*t'
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = .05
dt = .025
dtmin = .001
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -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-14 1e-5'
l_max_its = 15
nl_max_its = 30
nl_rel_tol = 1e-11
nl_abs_tol = 1e-12
line_search = 'basic'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'contact'
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_normal_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[frictional-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[frictional-pressure-3d]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_3d_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[tangent_x]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_x
sort_by = 'id'
execute_on = NONLINEAR
[]
[tangent_y]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_y
sort_by = 'id'
execute_on = NONLINEAR
[]
[]
(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/contact/test/tests/bouncing-block-contact/frictional-mortar-min-lm-mortar-disp.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
[]
[Variables]
[./disp_x]
block = '1 2'
# order = SECOND
[../]
[./disp_y]
block = '1 2'
# order = SECOND
[../]
[./normal_lm]
block = 3
family = MONOMIAL
order = CONSTANT
[../]
[./tangential_lm]
block = 3
family = MONOMIAL
order = CONSTANT
[../]
[]
[ICs]
[./disp_y]
block = 2
variable = disp_y
value = ${fparse starting_point + offset}
type = ConstantIC
[../]
[]
[Kernels]
[./disp_x]
type = MatDiffusion
variable = disp_x
[../]
[./disp_y]
type = MatDiffusion
variable = disp_y
[../]
[]
[Constraints]
[normal_lm]
type = NormalMortarLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_x
secondary_disp_y = disp_y
use_displaced_mesh = true
compute_primal_residuals = false
ncp_function_type = min
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
[]
[tangential_lm]
type = TangentialMortarLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = tangential_lm
secondary_variable = disp_x
secondary_disp_y = disp_y
use_displaced_mesh = true
compute_primal_residuals = false
contact_pressure = normal_lm
friction_coefficient = .1
ncp_function_type = min
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
[]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
preset = false
boundary = 40
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
preset = false
boundary = 40
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[../]
[./leftx]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = 50
function = '1e-2 * t'
[../]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor -snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./num_nl]
type = NumNonlinearIterations
[../]
[./cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[../]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(test/tests/functions/piecewise_linear_from_vectorpostprocessor/vector_postprocessor_function.i)
# This function linearly interpolates the data generated by a vector post
# processor. The purpose is to have a function take points and a field variable
# (aux or primary) as arguments.
# It also uses a ConstantVectorPostprocessor to test that parallel syncing is
# working for VectorPostprocessorFunction.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 4
xmin = 0.0
xmax = 0.004
ymin = 0.0
ymax = 0.008
[]
[Variables]
[u]
initial_condition = 0
[]
[]
[AuxVariables]
[v]
initial_condition = 1
[]
[test_parallel]
[]
[]
[Functions]
[ramp_u]
type = ParsedFunction
expression = 't'
[]
[point_value_function_u]
type = VectorPostprocessorFunction
component = y
argument_column = y
value_column = u
vectorpostprocessor_name = point_value_vector_postprocessor_u
[]
[line_value_function_v]
type = VectorPostprocessorFunction
component = y
argument_column = y
value_column = v
vectorpostprocessor_name = line_value_vector_postprocessor_v
[]
[test_parallel_func]
type = VectorPostprocessorFunction
component = x
argument_column = xx
value_column = qq
vectorpostprocessor_name = test_parallel_vpp
[]
[function_v]
type = PiecewiseLinear
x = '0 0.008'
y = '1 2'
axis = y
[]
[]
[Kernels]
[diffusion_u]
type = Diffusion
variable = u
[]
[]
[AuxKernels]
[aux_v]
type = FunctionAux
variable = v
function = function_v
execute_on = 'TIMESTEP_BEGIN'
[]
[test_parallel]
type = FunctionAux
variable = test_parallel
function = test_parallel_func
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[top_u]
type = FunctionDirichletBC
boundary = top
variable = u
function = ramp_u
[]
[bottom_u]
type = DirichletBC
boundary = bottom
variable = u
value = 0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = ' lu superlu_dist 51'
line_search = 'none'
l_max_its = 50
l_tol = 1e-3
nl_max_its = 20
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
start_time = 0
num_steps = 1
dt = 1
[]
[Postprocessors]
[point_value_postprocessor_u]
type = FunctionValuePostprocessor
function = point_value_function_u
point = '0.002 0.004 0'
[]
[line_value_postprocessor_v]
type = FunctionValuePostprocessor
function = line_value_function_v
point = '0.002 0.004 0'
[]
[postprocessor_average_u]
type = ElementAverageValue
variable = u
[]
[postprocessor_average_v]
type = ElementAverageValue
variable = v
[]
[]
[VectorPostprocessors]
[point_value_vector_postprocessor_u]
type = PointValueSampler
variable = u
points = '0 0.001 0 0 0.004 0 0 0.008 0'
#points = '0.001 0 0 0.002 0 0'
sort_by = y
execute_on = linear
[]
[line_value_vector_postprocessor_v]
type = LineValueSampler
variable = v
start_point = '0 0.001 0'
end_point = '0 0.008 0'
num_points = 5
sort_by = y
execute_on = linear
[]
[test_parallel_vpp]
type = ConstantVectorPostprocessor
vector_names = 'xx qq'
value = '0 1;
1000 1000'
execute_on = 'initial timestep_begin'
[]
[]
[Outputs]
time_step_interval = 1
csv = false
exodus = true
file_base = out
[console]
type = Console
output_linear = true
max_rows = 10
[]
[]
(modules/solid_mechanics/test/tests/j2_plasticity/hard1.i)
# UserObject J2 test, with hardening, but with rate=0
# apply uniform compression in x direction to give
# trial stress_xx = -5, so sqrt(3*J2) = 5
# with zero Poisson's ratio, this should return to
# stress_xx = -3, stress_yy = -1 = stress_zz,
# for strength = 2
# (note that stress_xx - stress_yy = stress_xx - stress_zz = -2, so sqrt(3*j2) = 2,
# and that the mean stress remains = -5/3)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-2.5E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[]
[UserObjects]
[./str]
type = SolidMechanicsHardeningConstant
value = 2
[../]
[./j2]
type = SolidMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = j2
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = hard1
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/porous_flow/test/tests/hysteresis/hys_sat_02.i)
# 1-phase hysteresis. Saturation calculation. Primary drying curve with low_extension_type = quadratic
# When comparing the results with a by-hand computation, remember the MOOSE results are averaged over an element
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmin = 0
xmax = 10
nx = 100
[]
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
number_fluid_phases = 1
number_fluid_components = 1
porous_flow_vars = pp
[]
[]
[Variables]
[pp]
[]
[]
[ICs]
[pp]
type = FunctionIC
variable = pp
function = '1 - x'
[]
[]
[BCs]
[pp]
type = FunctionDirichletBC
variable = pp
function = '1 - x'
boundary = 'left right'
[]
[]
[Kernels]
[dummy]
type = Diffusion
variable = pp
[]
[]
[Materials]
[hys_order]
type = PorousFlowHysteresisOrder
[]
[saturation_calculator]
type = PorousFlow1PhaseHysP
alpha_d = 10.0
alpha_w = 10.0
n_d = 1.1
n_w = 1.9
S_l_min = 0.1
S_lr = 0.2
S_gr_max = 0.3
Pc_max = 7.0
low_extension_type = quadratic
porepressure = pp
[]
[]
[AuxVariables]
[hys_order]
family = MONOMIAL
order = CONSTANT
[]
[saturation]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[hys_order]
type = PorousFlowPropertyAux
variable = hys_order
property = hysteresis_order
[]
[saturation]
type = PorousFlowPropertyAux
variable = saturation
property = saturation
phase = 0
[]
[]
[VectorPostprocessors]
[sat]
type = LineValueSampler
warn_discontinuous_face_values = false
start_point = '0.5 0 0'
end_point = '9.5 0 0'
num_points = 10
sort_by = x
variable = 'saturation pp'
[]
[]
[Executioner]
type = Transient
solve_type = Linear
dt = 1
end_time = 1
[]
[Outputs]
csv = true
[]
(test/tests/postprocessors/element_integral_var_pps/pps_old_value.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 4
ny = 4
elem_type = QUAD4
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
initial_condition = 1
[../]
[]
[Functions]
[./force_fn]
type = ParsedFunction
expression = '1'
[../]
[./exact_fn]
type = ParsedFunction
expression = 't'
[../]
[]
[Kernels]
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[]
[BCs]
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./a]
type = ElementIntegralVariablePostprocessor
variable = u
execute_on = 'initial timestep_end'
[../]
[./total_a]
type = TimeIntegratedPostprocessor
value = a
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 1
start_time = 1
end_time = 3
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/porous_flow/examples/ates/ates.i)
# Simulation designed to assess the recovery efficiency of a single-well ATES system
# Using KT stabilisation
# Boundary conditions: fixed porepressure and temperature at top, bottom and far end of model.
#####################################
flux_limiter = minmod # minmod, vanleer, mc, superbee, none
# depth of top of aquifer (m)
depth = 400
inject_fluid_mass = 1E8 # kg
produce_fluid_mass = ${inject_fluid_mass} # kg
inject_temp = 90 # degC
inject_time = 91 # days
store_time = 91 # days
produce_time = 91 # days
rest_time = 91 # days
num_cycles = 5 # Currently needs to be <= 10
cycle_length = '${fparse inject_time + store_time + produce_time + rest_time}'
end_simulation = '${fparse cycle_length * num_cycles}'
# Note: I have setup 10 cycles but you can set num_cycles less than 10.
start_injection1 = 0
start_injection2 = ${cycle_length}
start_injection3 = '${fparse cycle_length * 2}'
start_injection4 = '${fparse cycle_length * 3}'
start_injection5 = '${fparse cycle_length * 4}'
start_injection6 = '${fparse cycle_length * 5}'
start_injection7 = '${fparse cycle_length * 6}'
start_injection8 = '${fparse cycle_length * 7}'
start_injection9 = '${fparse cycle_length * 8}'
start_injection10 = '${fparse cycle_length * 9}'
end_injection1 = '${fparse start_injection1 + inject_time}'
end_injection2 = '${fparse start_injection2 + inject_time}'
end_injection3 = '${fparse start_injection3 + inject_time}'
end_injection4 = '${fparse start_injection4 + inject_time}'
end_injection5 = '${fparse start_injection5 + inject_time}'
end_injection6 = '${fparse start_injection6 + inject_time}'
end_injection7 = '${fparse start_injection7 + inject_time}'
end_injection8 = '${fparse start_injection8 + inject_time}'
end_injection9 = '${fparse start_injection9 + inject_time}'
end_injection10 = '${fparse start_injection10 + inject_time}'
start_production1 = '${fparse end_injection1 + store_time}'
start_production2 = '${fparse end_injection2 + store_time}'
start_production3 = '${fparse end_injection3 + store_time}'
start_production4 = '${fparse end_injection4 + store_time}'
start_production5 = '${fparse end_injection5 + store_time}'
start_production6 = '${fparse end_injection6 + store_time}'
start_production7 = '${fparse end_injection7 + store_time}'
start_production8 = '${fparse end_injection8 + store_time}'
start_production9 = '${fparse end_injection9 + store_time}'
start_production10 = '${fparse end_injection10 + store_time}'
end_production1 = '${fparse start_production1 + produce_time}'
end_production2 = '${fparse start_production2 + produce_time}'
end_production3 = '${fparse start_production3 + produce_time}'
end_production4 = '${fparse start_production4 + produce_time}'
end_production5 = '${fparse start_production5 + produce_time}'
end_production6 = '${fparse start_production6 + produce_time}'
end_production7 = '${fparse start_production7 + produce_time}'
end_production8 = '${fparse start_production8 + produce_time}'
end_production9 = '${fparse start_production9 + produce_time}'
end_production10 = '${fparse start_production10 + produce_time}'
synctimes = '${start_injection1} ${end_injection1} ${start_production1} ${end_production1}
${start_injection2} ${end_injection2} ${start_production2} ${end_production2}
${start_injection3} ${end_injection3} ${start_production3} ${end_production3}
${start_injection4} ${end_injection4} ${start_production4} ${end_production4}
${start_injection5} ${end_injection5} ${start_production5} ${end_production5}
${start_injection6} ${end_injection6} ${start_production6} ${end_production6}
${start_injection7} ${end_injection7} ${start_production7} ${end_production7}
${start_injection8} ${end_injection8} ${start_production8} ${end_production8}
${start_injection9} ${end_injection9} ${start_production9} ${end_production9}
${start_injection10} ${end_injection10} ${start_production10} ${end_production10}'
#####################################
# Geometry in RZ coordinates
# borehole radius (m)
bh_r = 0.1
# model radius (m)
max_r = 1000
# aquifer thickness (m)
aq_thickness = 20
# cap thickness (m)
cap_thickness = 40
# injection region top and bottom (m). Note, the mesh is created with the aquifer in y = (-0.5 * aq_thickness, 0.5 * aq_thickness), irrespective of depth (depth only sets the insitu porepressure and temperature)
screen_top = '${fparse 0.5 * aq_thickness}'
screen_bottom = '${fparse -0.5 * aq_thickness}'
# number of elements in radial direction
num_r = 25
# number of elements across half height of aquifer
num_y_aq = 10
# number of elements across height of cap
num_y_cap = 8
# mesh bias in radial direction
bias_r = 1.22
# mesh bias in vertical direction in aquifer top
bias_y_aq_top = 0.9
# mesh bias in vertical direction in cap top
bias_y_cap_top = 1.3
# mesh bias in vertical direction in aquifer bottom
bias_y_aq_bottom = '${fparse 1.0 / bias_y_aq_top}'
# mesh bias in vertical direction in cap bottom
bias_y_cap_bottom = '${fparse 1.0 / bias_y_cap_top}'
depth_centre = '${fparse depth + aq_thickness/2}'
#####################################
# temperature at ground surface (degC)
temp0 = 20
# Vertical geothermal gradient (K/m). A positive number means temperature increases downwards.
geothermal_gradient = 20E-3
#####################################
# Gravity
gravity = -9.81
#####################################
half_aq_thickness = '${fparse aq_thickness * 0.5}'
half_height = '${fparse half_aq_thickness + cap_thickness}'
approx_screen_length = '${fparse screen_top - screen_bottom}'
# Thermal radius (note this is not strictly correct, it should use the bulk specific heat
# capacity as defined below, but it doesn't matter here because this is purely for
# defining the region of refined mesh)
th_r = '${fparse sqrt(inject_fluid_mass / 1000 * 4.12e6 / (approx_screen_length * 3.1416 * aq_specific_heat_cap * aq_density))}'
# radius of fine mesh
fine_r = '${fparse th_r * 2}'
bias_r_fine = 1
num_r_fine = '${fparse int(fine_r/1)}'
######################################
# aquifer properties
aq_porosity = 0.25
aq_hor_perm = 1E-11 # m^2
aq_ver_perm = 2E-12 # m^2
aq_density = 2650 # kg/m^3
aq_specific_heat_cap = 800 # J/Kg/K
aq_hor_thermal_cond = 3 # W/m/K
aq_ver_thermal_cond = 3 # W/m/K
aq_disp_parallel = 0 # m
aq_disp_perp = 0 # m
# Bulk volumetric heat capacity of aquifer:
aq_vol_cp = '${fparse aq_specific_heat_cap * aq_density * (1 - aq_porosity) + 4180 * 1000 * aq_porosity}'
# Thermal radius (correct version using bulk cp):
R_th = '${fparse sqrt(inject_fluid_mass * 4180 / (approx_screen_length * 3.1416 * aq_vol_cp))}'
aq_lambda_eff_hor = '${fparse aq_hor_thermal_cond + 0.3 * aq_disp_parallel * R_th * aq_vol_cp / (inject_time * 60 * 60 * 24)}'
aq_lambda_eff_ver = '${fparse aq_ver_thermal_cond + 0.3 * aq_disp_perp * R_th * aq_vol_cp / (inject_time * 60 * 60 * 24)}'
aq_hor_dry_thermal_cond = '${fparse aq_lambda_eff_hor * 60 * 60 * 24}' # J/day/m/K
aq_ver_dry_thermal_cond = '${fparse aq_lambda_eff_ver * 60 * 60 * 24}' # J/day/m/K
aq_hor_wet_thermal_cond = '${fparse aq_lambda_eff_hor * 60 * 60 * 24}' # J/day/m/K
aq_ver_wet_thermal_cond = '${fparse aq_lambda_eff_ver * 60 * 60 * 24}' # J/day/m/K
# cap-rock properties
cap_porosity = 0.25
cap_hor_perm = 1E-16 # m^2
cap_ver_perm = 1E-17 # m^2
cap_density = 2650 # kg/m^3
cap_specific_heat_cap = 800 # J/kg/K
cap_hor_thermal_cond = 3 # W/m/K
cap_ver_thermal_cond = 3 # W/m/K
cap_hor_dry_thermal_cond = '${fparse cap_hor_thermal_cond * 60 * 60 * 24}' # J/day/m/K
cap_ver_dry_thermal_cond = '${fparse cap_ver_thermal_cond * 60 * 60 * 24}' # J/day/m/K
cap_hor_wet_thermal_cond = '${fparse cap_hor_thermal_cond * 60 * 60 * 24}' # J/day/m/K
cap_ver_wet_thermal_cond = '${fparse cap_ver_thermal_cond * 60 * 60 * 24}' # J/day/m/K
######################################
[Mesh]
coord_type = RZ
[aq_top_fine]
type = GeneratedMeshGenerator
dim = 2
nx = ${num_r_fine}
xmin = ${bh_r}
xmax = ${fine_r}
bias_x = ${bias_r_fine}
bias_y = ${bias_y_aq_top}
ny = ${num_y_aq}
ymin = 0
ymax = ${half_aq_thickness}
[]
[cap_top_fine]
type = GeneratedMeshGenerator
dim = 2
nx = ${num_r_fine}
xmin = ${bh_r}
xmax = ${fine_r}
bias_x = ${bias_r_fine}
bias_y = ${bias_y_cap_top}
ny = ${num_y_cap}
ymax = ${half_height}
ymin = ${half_aq_thickness}
[]
[aq_and_cap_top_fine]
type = StitchedMeshGenerator
inputs = 'aq_top_fine cap_top_fine'
clear_stitched_boundary_ids = true
stitch_boundaries_pairs = 'top bottom'
[]
[aq_bottom_fine]
type = GeneratedMeshGenerator
dim = 2
nx = ${num_r_fine}
xmin = ${bh_r}
xmax = ${fine_r}
bias_x = ${bias_r_fine}
bias_y = ${bias_y_aq_bottom}
ny = ${num_y_aq}
ymax = 0
ymin = -${half_aq_thickness}
[]
[cap_bottom_fine]
type = GeneratedMeshGenerator
dim = 2
nx = ${num_r_fine}
xmin = ${bh_r}
xmax = ${fine_r}
bias_x = ${bias_r_fine}
bias_y = ${bias_y_cap_bottom}
ny = ${num_y_cap}
ymin = -${half_height}
ymax = -${half_aq_thickness}
[]
[aq_and_cap_bottom_fine]
type = StitchedMeshGenerator
inputs = 'aq_bottom_fine cap_bottom_fine'
clear_stitched_boundary_ids = true
stitch_boundaries_pairs = 'bottom top'
merge_boundaries_with_same_name = false
[]
[aq_and_cap_fine]
type = StitchedMeshGenerator
inputs = 'aq_and_cap_bottom_fine aq_and_cap_top_fine'
clear_stitched_boundary_ids = true
stitch_boundaries_pairs = 'top bottom'
[]
[aq_top]
type = GeneratedMeshGenerator
dim = 2
nx = ${num_r}
xmin = ${fine_r}
xmax = ${max_r}
bias_x = ${bias_r}
bias_y = ${bias_y_aq_top}
ny = ${num_y_aq}
ymin = 0
ymax = ${half_aq_thickness}
[]
[cap_top]
type = GeneratedMeshGenerator
dim = 2
nx = ${num_r}
xmin = ${fine_r}
xmax = ${max_r}
bias_x = ${bias_r}
bias_y = ${bias_y_cap_top}
ny = ${num_y_cap}
ymax = ${half_height}
ymin = ${half_aq_thickness}
[]
[aq_and_cap_top]
type = StitchedMeshGenerator
inputs = 'aq_top cap_top'
clear_stitched_boundary_ids = true
stitch_boundaries_pairs = 'top bottom'
[]
[aq_bottom]
type = GeneratedMeshGenerator
dim = 2
nx = ${num_r}
xmin = ${fine_r}
xmax = ${max_r}
bias_x = ${bias_r}
bias_y = ${bias_y_aq_bottom}
ny = ${num_y_aq}
ymax = 0
ymin = -${half_aq_thickness}
[]
[cap_bottom]
type = GeneratedMeshGenerator
dim = 2
nx = ${num_r}
xmin = ${fine_r}
xmax = ${max_r}
bias_x = ${bias_r}
bias_y = ${bias_y_cap_bottom}
ny = ${num_y_cap}
ymin = -${half_height}
ymax = -${half_aq_thickness}
[]
[aq_and_cap_bottom]
type = StitchedMeshGenerator
inputs = 'aq_bottom cap_bottom'
clear_stitched_boundary_ids = true
stitch_boundaries_pairs = 'bottom top'
[]
[aq_and_cap]
type = StitchedMeshGenerator
inputs = 'aq_and_cap_bottom aq_and_cap_top'
clear_stitched_boundary_ids = true
stitch_boundaries_pairs = 'top bottom'
[]
[aq_and_cap_all]
type = StitchedMeshGenerator
inputs = 'aq_and_cap_fine aq_and_cap'
clear_stitched_boundary_ids = true
stitch_boundaries_pairs = 'right left'
[]
[aquifer]
type = ParsedSubdomainMeshGenerator
input = aq_and_cap_all
combinatorial_geometry = 'y >= -${half_aq_thickness} & y <= ${half_aq_thickness}'
block_id = 1
[]
[top_cap]
type = ParsedSubdomainMeshGenerator
input = aquifer
combinatorial_geometry = 'y >= ${half_aq_thickness}'
block_id = 2
[]
[bottom_cap]
type = ParsedSubdomainMeshGenerator
input = top_cap
combinatorial_geometry = 'y <= -${half_aq_thickness}'
block_id = 3
[]
[injection_area]
type = ParsedGenerateSideset
combinatorial_geometry = 'x<=${bh_r}*1.000001 & y >= ${screen_bottom} & y <= ${screen_top}'
included_subdomains = 1
new_sideset_name = 'injection_area'
input = 'bottom_cap'
[]
[rename]
type = RenameBlockGenerator
old_block = '1 2 3'
new_block = 'aquifer caps caps'
input = 'injection_area'
[]
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 ${gravity} 0'
[]
[Variables]
[porepressure]
[]
[temperature]
scaling = 1E-5
[]
[]
[PorousFlowFullySaturated]
coupling_type = ThermoHydro
porepressure = porepressure
temperature = temperature
fp = tabulated_water
stabilization = KT
flux_limiter_type = ${flux_limiter}
use_displaced_mesh = false
temperature_unit = Celsius
pressure_unit = Pa
time_unit = days
[]
[ICs]
[porepressure]
type = FunctionIC
variable = porepressure
function = insitu_pressure
[]
[temperature]
type = FunctionIC
variable = temperature
function = insitu_temperature
[]
[]
[BCs]
[outer_boundary_porepressure]
type = FunctionDirichletBC
preset = true
variable = porepressure
function = insitu_pressure
boundary = 'bottom right top'
[]
[outer_boundary_temperature]
type = FunctionDirichletBC
preset = true
variable = temperature
function = insitu_temperature
boundary = 'bottom right top'
[]
[inject_heat]
type = FunctionDirichletBC
variable = temperature
function = ${inject_temp}
boundary = 'injection_area'
[]
[inject_fluid]
type = PorousFlowSink
variable = porepressure
boundary = injection_area
flux_function = injection_rate_value
[]
[produce_heat]
type = PorousFlowSink
variable = temperature
boundary = injection_area
flux_function = production_rate_value
fluid_phase = 0
use_enthalpy = true
save_in = heat_flux_out
[]
[produce_fluid]
type = PorousFlowSink
variable = porepressure
boundary = injection_area
flux_function = production_rate_value
[]
[]
[Controls]
[inject_on]
type = ConditionalFunctionEnableControl
enable_objects = 'BCs::inject_heat BCs::inject_fluid'
conditional_function = inject
implicit = false
execute_on = 'initial timestep_begin'
[]
[produce_on]
type = ConditionalFunctionEnableControl
enable_objects = 'BCs::produce_heat BCs::produce_fluid'
conditional_function = produce
implicit = false
execute_on = 'initial timestep_begin'
[]
[]
[Functions]
[insitu_pressure]
type = ParsedFunction
expression = '(y - ${depth_centre}) * 1000 * ${gravity} + 1E5' # approx insitu pressure in Pa
[]
[insitu_temperature]
type = ParsedFunction
expression = '${temp0} + (${depth_centre} - y) * ${geothermal_gradient}'
[]
[inject]
type = ParsedFunction
expression = 'if(t >= ${start_injection1} & t < ${end_injection1}, 1,
if(t >= ${start_injection2} & t < ${end_injection2}, 1,
if(t >= ${start_injection3} & t < ${end_injection3}, 1,
if(t >= ${start_injection4} & t < ${end_injection4}, 1,
if(t >= ${start_injection5} & t < ${end_injection5}, 1,
if(t >= ${start_injection6} & t < ${end_injection6}, 1,
if(t >= ${start_injection7} & t < ${end_injection7}, 1,
if(t >= ${start_injection8} & t < ${end_injection8}, 1,
if(t >= ${start_injection9} & t < ${end_injection9}, 1,
if(t >= ${start_injection10} & t < ${end_injection10}, 1, 0))))))))))'
[]
[produce]
type = ParsedFunction
expression = 'if(t >= ${start_production1} & t < ${end_production1}, 1,
if(t >= ${start_production2} & t < ${end_production2}, 1,
if(t >= ${start_production3} & t < ${end_production3}, 1,
if(t >= ${start_production4} & t < ${end_production4}, 1,
if(t >= ${start_production5} & t < ${end_production5}, 1,
if(t >= ${start_production6} & t < ${end_production6}, 1,
if(t >= ${start_production7} & t < ${end_production7}, 1,
if(t >= ${start_production8} & t < ${end_production8}, 1,
if(t >= ${start_production9} & t < ${end_production9}, 1,
if(t >= ${start_production10} & t < ${end_production10}, 1, 0))))))))))'
[]
[injection_rate_value]
type = ParsedFunction
symbol_names = true_screen_area
symbol_values = true_screen_area
expression = '-${inject_fluid_mass}/(true_screen_area * ${inject_time})'
[]
[production_rate_value]
type = ParsedFunction
symbol_names = true_screen_area
symbol_values = true_screen_area
expression = '${produce_fluid_mass}/(true_screen_area * ${produce_time})'
[]
[heat_out_in_timestep]
type = ParsedFunction
symbol_names = 'dt heat_out'
symbol_values = 'dt heat_out_fromBC'
expression = 'dt*heat_out'
[]
[produced_T_time_integrated]
type = ParsedFunction
symbol_names = 'dt produced_T'
symbol_values = 'dt produced_T'
expression = 'dt*produced_T / ${produce_time}'
[]
[]
[AuxVariables]
[density]
family = MONOMIAL
order = CONSTANT
[]
[porosity]
family = MONOMIAL
order = CONSTANT
[]
[heat_flux_out]
outputs = none
[]
[]
[AuxKernels]
[density]
type = PorousFlowPropertyAux
variable = density
property = density
[]
[porosity]
type = PorousFlowPropertyAux
variable = porosity
property = porosity
[]
[]
[FluidProperties]
[true_water]
type = Water97FluidProperties
[]
[tabulated_water]
type = TabulatedFluidProperties
fp = true_water
temperature_min = 275 # K
temperature_max = 600
interpolated_properties = 'density viscosity enthalpy internal_energy'
fluid_property_output_file = water97_tabulated_modified.csv
# Comment out the fp parameter and uncomment below to use the newly generated tabulation
# fluid_property_file = water97_tabulated_modified.csv
[]
[]
[Materials]
[porosity_aq]
type = PorousFlowPorosityConst
porosity = ${aq_porosity}
block = aquifer
[]
[porosity_caps]
type = PorousFlowPorosityConst
porosity = ${cap_porosity}
block = caps
[]
[permeability_aquifer]
type = PorousFlowPermeabilityConst
block = aquifer
permeability = '${aq_hor_perm} 0 0 0 ${aq_ver_perm} 0 0 0 0'
[]
[permeability_caps]
type = PorousFlowPermeabilityConst
block = caps
permeability = '${cap_hor_perm} 0 0 0 ${cap_ver_perm} 0 0 0 0'
[]
[aq_internal_energy]
type = PorousFlowMatrixInternalEnergy
block = aquifer
density = ${aq_density}
specific_heat_capacity = ${aq_specific_heat_cap}
[]
[caps_internal_energy]
type = PorousFlowMatrixInternalEnergy
block = caps
density = ${cap_density}
specific_heat_capacity = ${cap_specific_heat_cap}
[]
[aq_thermal_conductivity]
type = PorousFlowThermalConductivityIdeal
block = aquifer
dry_thermal_conductivity = '${aq_hor_dry_thermal_cond} 0 0 0 ${aq_ver_dry_thermal_cond} 0 0 0 0'
wet_thermal_conductivity = '${aq_hor_wet_thermal_cond} 0 0 0 ${aq_ver_wet_thermal_cond} 0 0 0 0'
[]
[caps_thermal_conductivity]
type = PorousFlowThermalConductivityIdeal
block = caps
dry_thermal_conductivity = '${cap_hor_dry_thermal_cond} 0 0 0 ${cap_ver_dry_thermal_cond} 0 0 0 0'
wet_thermal_conductivity = '${cap_hor_wet_thermal_cond} 0 0 0 ${cap_ver_wet_thermal_cond} 0 0 0 0'
[]
[]
[Postprocessors]
[true_screen_area] # this accounts for meshes that do not match screen_top and screen_bottom exactly
type = AreaPostprocessor
boundary = injection_area
execute_on = 'initial'
outputs = 'none'
[]
[dt]
type = TimestepSize
[]
[heat_out_fromBC]
type = NodalSum
variable = heat_flux_out
boundary = injection_area
execute_on = 'initial timestep_end'
outputs = 'none'
[]
[heat_out_per_timestep]
type = FunctionValuePostprocessor
function = heat_out_in_timestep
execute_on = 'timestep_end'
outputs = 'none'
[]
[heat_out_cumulative]
type = CumulativeValuePostprocessor
postprocessor = heat_out_per_timestep
execute_on = 'timestep_end'
outputs = 'csv console'
[]
[produced_T]
type = SideAverageValue
boundary = injection_area
variable = temperature
execute_on = 'initial timestep_end'
outputs = 'csv console'
[]
[produced_T_time_integrated]
type = FunctionValuePostprocessor
function = produced_T_time_integrated
execute_on = 'timestep_end'
outputs = 'none'
[]
[produced_T_cumulative]
type = CumulativeValuePostprocessor
postprocessor = produced_T_time_integrated
execute_on = 'timestep_end'
outputs = 'csv console'
[]
[]
[Preconditioning]
[basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = ${end_simulation}
timestep_tolerance = 1e-5
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e-3
growth_factor = 2
[]
dtmax = 1
dtmin = 1e-5
# rough calc for fluid, |R| ~ V*k*1E6 ~ V*1E-5
# rough calc for heat, |R| ~ V*(lam*1E-3 + h*1E-5) ~ V*(1E3 + 1E-2)
# so scale heat by 1E-7 and go for nl_abs_tol = 1E-4, which should give a max error of
# ~1Pa and ~0.1K in the first metre around the borehole
nl_abs_tol = 1E-4
nl_rel_tol = 1E-5
[]
[Outputs]
sync_times = ${synctimes}
[ex]
type = Exodus
time_step_interval = 20
[]
[csv]
type = CSV
execute_postprocessors_on = 'initial timestep_end'
[]
[]
(test/tests/time_integrators/crank-nicolson/cranic_adapt.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 4
ny = 4
elem_type = QUAD4
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
# dudt = 3*t^2*(x^2 + y^2)
expression = sin(pi*x)*sin(pi*y)+2*t*pi*pi*sin(pi*x)*sin(pi*y)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*sin(pi*x)*sin(pi*y)
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
# Use the block format instead of the scheme parameter
[./TimeIntegrator]
type = CrankNicolson
[../]
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
dt = 0.1
[./Adaptivity]
refine_fraction = 0.2
coarsen_fraction = 0.3
max_h_level = 4
[../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-wear-vel.i)
starting_point = 0.5e-1
offset = -0.05
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[normal_lm]
block = 3
use_dual = true
scaling = 1.0e3
[]
[frictional_lm]
block = 3
use_dual = true
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[DynamicTensorMechanics]
displacements = 'disp_x disp_y'
generate_output = 'stress_xx stress_yy'
strain = FINITE
block = '1 2'
stiffness_damping_coefficient = 1.0
hht_alpha = 0.0
[]
[inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[]
[Materials]
[elasticity_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elasticity_1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e8
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[strain]
type = ComputeFiniteStrain
block = '1 2'
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '7750'
[]
[]
[AuxVariables]
[worn_depth]
block = '3'
[]
[gap_vel]
block = '3'
[]
[vel_x]
block = '1 2'
[]
[accel_x]
block = '1 2'
[]
[vel_y]
block = '1 2'
[]
[accel_y]
block = '1 2'
[]
[vel_z]
block = '1 2'
[]
[accel_z]
block = '1 2'
[]
[]
[AuxKernels]
[gap_vel]
type = WeightedGapVelAux
variable = gap_vel
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
disp_x = disp_x
disp_y = disp_y
[]
[worn_depth]
type = MortarArchardsLawAux
variable = worn_depth
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
displacements = 'disp_x disp_y'
friction_coefficient = 0.5
energy_wear_coefficient = 1.0
normal_pressure = normal_lm
[]
[accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = 'linear timestep_end'
[]
[vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = 'linear timestep_end'
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = 'linear timestep_end'
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = 'linear timestep_end'
[]
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
secondary_variable = disp_x
lm_variable_normal = normal_lm
lm_variable_tangential_one = frictional_lm
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeDynamicFrictionalForceLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
c = 1e4
c_t = 1e6
mu = 0.15
friction_lm = frictional_lm
capture_tolerance = 1.0e-5
newmark_beta = 0.25
newmark_gamma = 0.5
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(16.0 * pi / 4 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 0.3
dt = 0.03
dtmin = .002
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist NONZERO 1e-15'
nl_max_its = 40
nl_abs_tol = 1.0e-11
nl_rel_tol = 1.0e-11
line_search = 'none'
snesmf_reuse_base = true
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
checkpoint = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(test/tests/multiapps/restart_multilevel/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 1
nx = 10
[]
[Functions]
[u_fn]
type = ParsedFunction
expression = t*x
[]
[ffn]
type = ParsedFunction
expression = x
[]
[]
[Variables]
[u]
[]
[]
[AuxVariables]
[v]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[td]
type = TimeDerivative
variable = u
[]
[fn]
type = BodyForce
variable = u
function = ffn
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = FunctionDirichletBC
variable = u
boundary = right
function = u_fn
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
[MultiApps]
[sub_app]
app_type = MooseTestApp
type = TransientMultiApp
input_files = 'subsub.i'
execute_on = timestep_end
positions = '0 -1 0'
[]
[]
[Transfers]
[from_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub_app
source_variable = u
variable = v
[]
[]
(modules/solid_mechanics/test/tests/j2_plasticity/small_deform2.i)
# UserObject J2 test
# apply uniform stretch in z direction to give
# trial stress_zz = 7, so sqrt(3*J2) = 7
# with zero Poisson's ratio, this should return to
# stress_zz = 3, stress_xx = 2 = stress_yy
# (note that stress_zz - stress_xx = stress_zz - stress_yy = 1, so sqrt(3*j2) = 1,
# and that the mean stress remains = 7/3)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '3.5E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[]
[UserObjects]
[./str]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./j2]
type = SolidMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = j2
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/xfem/test/tests/init_solution_propagation/init_solution_propagation.i)
# The purpose of this test is to verify that the procedures for initializing
# the solution on nodes/elements affected by XFEM works correctly in both
# serial and parallel.
# The crack cuts near to domain boundaries in parallel, and the displacement
# solution will be wrong in parallel if this is not done correctly. This
# test also has multiple aux variables of various types that are only computed
# on initialization, and which will be wrong if the XFEM initializtion
# is not done correctly.
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[XFEM]
output_cut_plane = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 7
ny = 7
xmin = 0.0
xmax = 25.0
ymin = -12.5
ymax = 12.5
elem_type = QUAD4
[]
[UserObjects]
[./line_seg_cut_set_uo]
type = LineSegmentCutSetUserObject
cut_data ='0.0000e+000 0.0000e+000 5.5000e+000 0.0000e+000 0.0 0.0
5.5000e+000 0.0000e+000 2.5500e+001 0.0000e+000 0.05 1.05'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./const_monomial]
order = CONSTANT
family = MONOMIAL
[../]
[./first_monomial]
order = FIRST
family = MONOMIAL
[../]
[./first_linear]
order = FIRST
family = LAGRANGE
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
planar_formulation = PLANE_STRAIN
[../]
[]
[AuxKernels]
[./const_monomial]
type = FunctionAux
function = 'dummy'
variable = const_monomial
execute_on = 'initial'
[../]
[./first_monomial]
type = FunctionAux
function = 'dummy'
variable = first_monomial
execute_on = 'initial'
[../]
[./first_linear]
type = FunctionAux
function = 'dummy'
variable = first_linear
execute_on = 'initial'
[../]
[]
[Functions]
[./dummy]
type = ParsedFunction
expression = 'x*x+y*y'
[../]
[./disp_top_y]
type = PiecewiseLinear
x = '0 1'
y = '0 0.1'
[../]
[]
[BCs]
[./top_y]
type = FunctionDirichletBC
boundary = 2
variable = disp_y
function = disp_top_y
[../]
[./bottom_y]
type = DirichletBC
boundary = 0
variable = disp_y
value = 0.0
[../]
[./right_x]
type = DirichletBC
boundary = 1
variable = disp_x
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
petsc_options = '-snes_ksp_ew'
l_max_its = 100
nl_max_its = 25
nl_rel_tol = 1e-6
nl_abs_tol = 1e-8
start_time = 0.0
dt = 0.1
end_time = 1.0
max_xfem_update = 1
[]
[Outputs]
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(tutorials/darcy_thermo_mech/step07_adaptivity/problems/step7a_coarse.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 3
xmax = 0.304 # Length of test chamber
ymax = 0.0257 # Test chamber radius
[]
coord_type = RZ
rz_coord_axis = X
[]
[Variables]
[pressure]
[]
[temperature]
initial_condition = 300 # Start at room temperature
[]
[]
[Kernels]
[darcy_pressure]
type = DarcyPressure
variable = pressure
[]
[heat_conduction]
type = ADHeatConduction
variable = temperature
[]
[heat_conduction_time_derivative]
type = ADHeatConductionTimeDerivative
variable = temperature
[]
[heat_convection]
type = DarcyAdvection
variable = temperature
pressure = pressure
[]
[]
[BCs]
[inlet_temperature]
type = FunctionDirichletBC
variable = temperature
boundary = left
function = 'if(t<0,350+50*t,350)'
[]
[outlet_temperature]
type = HeatConductionOutflow
variable = temperature
boundary = right
[]
[inlet]
type = DirichletBC
variable = pressure
boundary = left
value = 4000 # (Pa) From Figure 2 from paper. First data point for 1mm spheres.
[]
[outlet]
type = DirichletBC
variable = pressure
boundary = right
value = 0 # (Pa) Gives the correct pressure drop from Figure 2 for 1mm spheres
[]
[]
[Materials/column]
type = PackedColumn
temperature = temperature
radius = 1
[]
[AuxVariables/velocity]
order = CONSTANT
family = MONOMIAL_VEC
[]
[AuxKernels/velocity]
type = DarcyVelocity
variable = velocity
execute_on = timestep_end
pressure = pressure
[]
[Problem]
type = FEProblem
[]
[Executioner]
type = Transient
end_time = 100
dt = 0.25
start_time = -1
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
steady_state_tolerance = 1e-5
steady_state_detection = true
[TimeStepper]
type = FunctionDT
function = 'if(t<0,0.1,0.25)'
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/centrosymmetric_spherical/total/jacobian/neumann.i)
[GlobalParams]
displacements = 'disp_r'
large_kinematics = true
stabilize_strain = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
nx = 5
[]
[]
[Problem]
coord_type = RSPHERICAL
[]
[Variables]
[disp_r]
[]
[]
[Kernels]
[sdr]
type = TotalLagrangianStressDivergenceCentrosymmetricSpherical
variable = disp_r
component = 0
[]
[]
[BCs]
[top]
type = FunctionDirichletBC
preset = false
variable = disp_r
boundary = right
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrainCentrosymmetricSpherical
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dt = 0.1
num_steps = 5
[]
(modules/porous_flow/test/tests/hysteresis/hys_pc_02.i)
# Capillary-pressure calculation. Primary drying curve with low_extension_type = quadratic
# When comparing the results with a by-hand computation, remember the MOOSE results are averaged over an element
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmin = 0
xmax = 1
nx = 100
[]
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
number_fluid_phases = 1
number_fluid_components = 1
porous_flow_vars = ''
[]
[]
[Variables]
[sat]
[]
[]
[ICs]
[sat]
type = FunctionIC
variable = sat
function = 'x'
[]
[]
[BCs]
[sat]
type = FunctionDirichletBC
variable = sat
function = 'x'
boundary = 'left right'
[]
[]
[Kernels]
[dummy]
type = Diffusion
variable = sat
[]
[]
[Materials]
[hys_order]
type = PorousFlowHysteresisOrder
[]
[pc_calculator]
type = PorousFlowHystereticInfo
alpha_d = 10.0
alpha_w = 10.0
n_d = 1.5
n_w = 1.9
S_l_min = 0.1
S_lr = 0.2
S_gr_max = 0.3
Pc_max = 12.0
low_extension_type = quadratic
sat_var = sat
[]
[]
[AuxVariables]
[hys_order]
family = MONOMIAL
order = CONSTANT
[]
[pc]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[hys_order]
type = PorousFlowPropertyAux
variable = hys_order
property = hysteresis_order
[]
[pc]
type = PorousFlowPropertyAux
variable = pc
property = hysteretic_info
[]
[]
[VectorPostprocessors]
[pc]
type = LineValueSampler
warn_discontinuous_face_values = false
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 10
sort_by = x
variable = 'sat pc'
[]
[]
[Executioner]
type = Transient
solve_type = Linear
dt = 1
end_time = 1
[]
[Outputs]
csv = true
[]
(test/tests/time_integrators/explicit-euler/ee-1d-quadratic.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = -1
xmax = 1
nx = 20
elem_type = EDGE3
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = x*x-2*t
[../]
[./exact_fn]
type = ParsedFunction
expression = t*x*x
[../]
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = ic
[../]
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
# lumping = true
implicit = true
[../]
[./diff]
type = Diffusion
variable = u
implicit = false
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
implicit = false
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1'
function = exact_fn
implicit = true
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
scheme = 'explicit-euler'
solve_type = 'LINEAR'
l_tol = 1e-12
start_time = 0.0
num_steps = 20
dt = 0.00005
[]
[Outputs]
exodus = true
[./console]
type = Console
max_rows = 10
[../]
[]
(modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-pdass-tangential-lm-mortar-action.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
[original_file_mesh]
type = FileMeshGenerator
file = long-bottom-block-1elem-blocks-coarse.e
[]
# These sidesets need to be deleted because the contact action adds them automatically. For this
# particular mesh, the new IDs will be identical to the deleted ones and will conflict if we don't
# remove the original ones.
[delete_3]
type = BlockDeletionGenerator
input = original_file_mesh
block = 3
[]
[revised_file_mesh]
type = BlockDeletionGenerator
input = delete_3
block = 4
[]
[]
[Variables]
[disp_x]
block = '1 2'
# order = SECOND
[]
[disp_y]
block = '1 2'
# order = SECOND
[]
[]
[Contact]
[frictional]
primary = 20
secondary = 10
formulation = mortar
model = coulomb
friction_coefficient = 0.1
c_normal = 1.0e-2
c_tangential = 1.0e-1
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
hide = 'contact_pressure nodal_area penetration'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = frictional_normal_lm
subdomain = frictional_secondary_subdomain
execute_on = 'nonlinear timestep_end'
[]
[]
(modules/solid_mechanics/test/tests/transfer_from_displaced/child.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
ymin = 0
xmax = 0.2
ymax = 0.5
nx = 5
ny = 15
elem_type = QUAD4
[]
[]
[Variables]
[disp_x][]
[disp_y][]
[]
[AuxVariables]
[solid_indicator]
[AuxKernel]
type = ConstantAux
variable = solid_indicator
value = 0.0
boundary = 'left right top'
execute_on = 'initial timestep_end'
[]
initial_condition = 1.0
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = SMALL
incremental = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 10000.0
poissons_ratio = 0.3
use_displaced_mesh = true
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[BCs]
[move_bottom_x]
type = FunctionDirichletBC
boundary = bottom
variable = disp_x
function = 't'
[]
[move_bottom_y]
type = DirichletBC
boundary = bottom
variable = disp_y
value = '0'
[]
[]
[Executioner]
type = Transient
num_steps = 1
solve_type = 'NEWTON'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type'
petsc_options_value = 'lu superlu_dist NONZERO'
nl_max_its = 40
l_max_its = 15
line_search = 'none'
nl_abs_tol = 1e-5
nl_rel_tol = 1e-4
automatic_scaling = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/linesearch.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
[../]
[./uy]
[../]
[./uz]
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
maximum_substep_iteration = 200
use_line_search = true
min_line_search_step_size = 0.01
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'ux uy uz'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.02
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/push_and_shear.i)
# Dynamic problem with plasticity.
# A column of material (not subject to gravity) has the z-displacement
# of its sides fixed, but the centre of its bottom side is pushed
# upwards. This causes failure in the bottom elements.
#
# The problem utilises damping in the following way.
# The DynamicStressDivergenceTensors forms the residual
# integral grad(stress) + zeta*grad(stress-dot)
# = V/L * elasticity * (du/dx + zeta * dv/dx)
# where V is the elemental volume, and L is the length-scale,
# and u is the displacement, and v is the velocity.
# The InertialForce forms the residual
# integral density * (accel + eta * velocity)
# = V * density * (a + eta * v)
# where a is the acceleration.
# So, a damped oscillator description with both these
# kernels looks like
# 0 = V * (density * a + density * eta * v + elasticity * zeta * v / L^2 + elasticity / L^2 * u)
# Critical damping is when the coefficient of v is
# 2 * sqrt(density * elasticity / L^2)
# In the case at hand, density=1E4, elasticity~1E10 (Young is 16GPa),
# L~1 to 10 (in the horizontal or vertical direction), so this coefficient ~ 1E7 to 1E6.
# Choosing eta = 1E3 and zeta = 1E-2 gives approximate critical damping.
# If zeta is high then steady-state is achieved very quickly.
#
# In the case of plasticity, the effective stiffness of the elements
# is significantly less. Therefore, the above parameters give
# overdamping.
#
# This simulation is a nice example of the irreversable and non-uniqueness
# of simulations involving plasticity. The result depends on the damping
# parameters and the time stepping.
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 1
nz = 5
bias_z = 1.5
xmin = -10
xmax = 10
ymin = -10
ymax = 10
zmin = -100
zmax = 0
[]
[bottomz_middle]
type = BoundingBoxNodeSetGenerator
new_boundary = bottomz_middle
bottom_left = '-1 -1500 -105'
top_right = '1 1500 -95'
input = generated_mesh
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
beta = 0.25 # Newmark time integration
gamma = 0.5 # Newmark time integration
eta = 1E3 #0.3E4 # higher values mean more damping via density
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Kernels]
[DynamicSolidMechanics] # zeta*K*vel + K * disp
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 1E-2 # higher values mean more damping via stiffness
hht_alpha = 0 # better nonlinear convergence than for alpha>0
[]
[inertia_x] # M*accel + eta*M*vel
type = InertialForce
use_displaced_mesh = false
variable = disp_x
velocity = vel_x
acceleration = accel_x
[]
[inertia_y]
type = InertialForce
use_displaced_mesh = false
variable = disp_y
velocity = vel_y
acceleration = accel_y
[]
[inertia_z]
type = InertialForce
use_displaced_mesh = false
variable = disp_z
velocity = vel_z
acceleration = accel_z
[]
[]
[BCs]
[no_x2]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.0
[]
[no_x1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[no_y1]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[no_y2]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[]
[z_fixed_sides_xmin]
type = DirichletBC
variable = disp_z
boundary = left
value = 0
[]
[z_fixed_sides_xmax]
type = DirichletBC
variable = disp_z
boundary = right
value = 0
[]
[bottomz]
type = FunctionDirichletBC
variable = disp_z
boundary = bottomz_middle
function = min(10*t,1)
[]
[]
[AuxVariables]
[accel_x]
[]
[vel_x]
[]
[accel_y]
[]
[vel_y]
[]
[accel_z]
[]
[vel_z]
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[strainp_xx]
order = CONSTANT
family = MONOMIAL
[]
[strainp_xy]
order = CONSTANT
family = MONOMIAL
[]
[strainp_xz]
order = CONSTANT
family = MONOMIAL
[]
[strainp_yy]
order = CONSTANT
family = MONOMIAL
[]
[strainp_yz]
order = CONSTANT
family = MONOMIAL
[]
[strainp_zz]
order = CONSTANT
family = MONOMIAL
[]
[straint_xx]
order = CONSTANT
family = MONOMIAL
[]
[straint_xy]
order = CONSTANT
family = MONOMIAL
[]
[straint_xz]
order = CONSTANT
family = MONOMIAL
[]
[straint_yy]
order = CONSTANT
family = MONOMIAL
[]
[straint_yz]
order = CONSTANT
family = MONOMIAL
[]
[straint_zz]
order = CONSTANT
family = MONOMIAL
[]
[f_shear]
order = CONSTANT
family = MONOMIAL
[]
[f_tensile]
order = CONSTANT
family = MONOMIAL
[]
[f_compressive]
order = CONSTANT
family = MONOMIAL
[]
[intnl_shear]
order = CONSTANT
family = MONOMIAL
[]
[intnl_tensile]
order = CONSTANT
family = MONOMIAL
[]
[iter]
order = CONSTANT
family = MONOMIAL
[]
[ls]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[accel_x] # Calculates and stores acceleration at the end of time step
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
execute_on = timestep_end
[]
[vel_x] # Calculates and stores velocity at the end of the time step
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
execute_on = timestep_end
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
execute_on = timestep_end
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
execute_on = timestep_end
[]
[accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
execute_on = timestep_end
[]
[vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
execute_on = timestep_end
[]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[]
[strainp_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xx
index_i = 0
index_j = 0
[]
[strainp_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xy
index_i = 0
index_j = 1
[]
[strainp_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xz
index_i = 0
index_j = 2
[]
[strainp_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yy
index_i = 1
index_j = 1
[]
[strainp_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yz
index_i = 1
index_j = 2
[]
[strainp_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zz
index_i = 2
index_j = 2
[]
[straint_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xx
index_i = 0
index_j = 0
[]
[straint_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xy
index_i = 0
index_j = 1
[]
[straint_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xz
index_i = 0
index_j = 2
[]
[straint_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yy
index_i = 1
index_j = 1
[]
[straint_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yz
index_i = 1
index_j = 2
[]
[straint_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zz
index_i = 2
index_j = 2
[]
[f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[]
[f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[]
[f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[]
[intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[]
[intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[]
[iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[]
[ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[]
[tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[]
[tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.166666666667
[]
[t_strength]
type = SolidMechanicsHardeningConstant
value = 1E80
[]
[c_strength]
type = SolidMechanicsHardeningConstant
value = 0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '6.4E9 6.4E9' # young 16MPa, Poisson 0.25
[]
[strain]
type = ComputeIncrementalStrain
[]
[admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[]
[stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0.5E6
smoothing_tol = 0.5E6
yield_function_tol = 1E-2
[]
[density]
type = GenericConstantMaterial
block = 0
prop_names = density
prop_values = 1E4
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[]
[]
[Executioner]
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
line_search = bt
nl_abs_tol = 1E1
nl_rel_tol = 1e-5
l_tol = 1E-10
l_max_its = 100
nl_max_its = 100
end_time = 0.5
dt = 0.1
type = Transient
[]
[Outputs]
file_base = push_and_shear
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/mean_cap_TC/small_deform2.i)
# apply uniform stretch in x, y and z directions.
# trial_stress(0, 0) = -2
# trial_stress(1, 1) = 6
# trial_stress(2, 2) = 10
# With tensile_strength = 2, the algorithm should return to trace(stress) = 2, or
# stress(0, 0) = -6
# stress(1, 1) = 2
# stress(2, 2) = 6
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1E-7*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '3E-7*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '5E-7*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[]
[UserObjects]
[./tensile_strength]
type = SolidMechanicsHardeningConstant
value = 2
[../]
[./compressive_strength]
type = SolidMechanicsHardeningConstant
value = -1
[../]
[./cap]
type = SolidMechanicsPlasticMeanCapTC
tensile_strength = tensile_strength
compressive_strength = compressive_strength
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
use_custom_returnMap = true
use_custom_cto = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mean_cap]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = cap
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform3_inner_edge.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-1.7E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E5
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E5
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
mc_interpolation_scheme = inner_edge
yield_function_tolerance = 1 # irrelevant here
internal_constraint_tolerance = 1 # irrelevant here
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[./mc]
type = CappedDruckerPragerStressUpdate
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-8
tip_smoother = 8
smoothing_tol = 1E-7
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3_inner_edge
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/beam/fric_constraint/2_block_common_cross_stick.i)
# Test for LineElementAction on multiple blocks by placing parameters
# common to all blocks outside of the individual action blocks
# 2 beams of length 1m are fixed at one end and a force of 1e-4 N
# is applied at the other end of the beams. Beam 1 is in block 1
# and beam 2 is in block 2. All the material properties for the two
# beams are identical. The moment of inertia of beam 2 is twice that
# of beam 1.
# Since the end displacement of a cantilever beam is inversely proportional
# to the moment of inertia, the y displacement at the end of beam 1 should be twice
# that of beam 2.
[Mesh]
type = FileMesh
file = test_fric_cross.e
#displacements = 'disp_x disp_y disp_z'
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = '1 2 3'
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = '1 2 3'
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = '1 3'
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = '1 2 3'
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = '1 2 3'
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = '1 2 3'
value = 0.0
[../]
[./move_z4]
type = FunctionDirichletBC
variable = disp_z
boundary = 2
function = pull
[../]
[]
[Functions]
[./pull]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0'
y = '0.0 0.0 -0.2 -0.4 -0.6 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 5e-5
l_max_its = 10
dt = 1
dtmin = 1
end_time = 13
[]
[Physics/SolidMechanics/LineElement/QuasiStatic]
# parameters common to all blocks
add_variables = true
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
# Geometry parameters
area = 0.5
y_orientation = '0.0 1.0 0.0'
[./block_1]
Iy = 1e-5
Iz = 1e-5
block = 1
[../]
[./block_2]
Iy = 8e-4
Iz = 8e-4
block = '2 3'
[../]
[]
[Materials]
[./stress]
type = ComputeBeamResultants
block = '1 2 3'
[../]
[./elasticity_1]
type = ComputeElasticityBeam
youngs_modulus = 2.0
poissons_ratio = 0.3
shear_coefficient = 1.0
block = '1 2 3'
[../]
[]
[Constraints]
[./tie_z]
type = NodalStickConstraint
penalty = 1e8
boundary = 6
secondary = 4
variable = disp_z
formulation = kinematic
[../]
[./tie_z2]
type = NodalStickConstraint
penalty = 1e8
boundary = 6
secondary = 5
variable = disp_z
formulation = kinematic
[../]
[]
[Postprocessors]
[./disp_x_1]
type = NodalVariableValue
nodeid = 1
variable = disp_x
[../]
[./disp_x_2]
type = NodalVariableValue
nodeid = 2
variable = disp_x
[../]
[./disp_z_1]
type = NodalVariableValue
nodeid = 1
variable = disp_z
[../]
[./disp_z_2]
type = NodalVariableValue
nodeid = 2
variable = disp_z
[../]
[]
[Outputs]
#file_base = '2_block_out'
exodus = true
[]
(test/tests/time_integrators/bdf2/bdf2.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 20
ny = 20
elem_type = QUAD9
[]
[Variables]
active = 'u'
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
# dudt = 3*t^2*(x^2 + y^2)
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 1
value = 1
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0.0
num_steps = 5
dt = 0.25
# [./Adaptivity]
# refine_fraction = 0.2
# coarsen_fraction = 0.3
# max_h_level = 4
# [../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(test/tests/time_integrators/actually_explicit_euler_verification/ee-1d-quadratic.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = -1
xmax = 1
nx = 20
elem_type = EDGE3
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = x*x-2*t
[../]
[./exact_fn]
type = ParsedFunction
expression = t*x*x
[../]
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = ic
[../]
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
preset = false
boundary = '0 1'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
l_tol = 1e-12
start_time = 0.0
num_steps = 20
dt = 0.00005
[./TimeIntegrator]
type = ActuallyExplicitEuler
[../]
[]
[Outputs]
exodus = true
[./console]
type = Console
max_rows = 10
[../]
[]
(modules/solid_mechanics/tutorials/basics/part_2.2.i)
#Tensor Mechanics tutorial: the basics
#Step 2, part 2
#2D axisymmetric RZ simulation of uniaxial tension with finite strain elasticity
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = necking_quad4.e
uniform_refine = 1
second_order = true
[]
[Physics/SolidMechanics/QuasiStatic]
[./block1]
strain = FINITE #change to use finite strain instead of small linearized strain class
add_variables = true #detects the change of the mesh to second order and automatically sets the variables
generate_output = 'stress_zz vonmises_stress'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_r
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_z
boundary = top
function = '0.0007*t'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
end_time = 5
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 1 101'
[]
[Outputs]
exodus = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/elem_prop_read_user_object/prop_grain_read_3d.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
nx = 30
ny = 30
nz = 30
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[./disp_z]
block = 0
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.05*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'input_file.txt'
nprop = 4
read_type = grain
ngrain = 4
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = elastic_strain
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./elasticity_tensor_with_Euler]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 2
nl_abs_step_tol = 1e-10
[]
[Outputs]
file_base = prop_grain_read_3d_out
exodus = true
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
(modules/solid_mechanics/test/tests/rate_independent_cyclic_hardening/linear_kinharden_symmetric_strain_controlled.i)
# This simulation uses the piece-wise strain hardening model
# with the Finite strain formulation.
#
# This test applies a repeated displacement loading and unloading condition on
# the top in the y direction. The material deforms elastically until the
# loading reaches the initial yield point and then plastic deformation starts.
#
# The yield surface begins to translate as stress increases, but its size
# remains the same. The backstress evolves with plastic strain to capture
# this translation. Upon unloading, the stress reverses direction, and material
# first behaves elastically. However, due to the translation of the yield surface
# the yield point in the reverse direction is lower.
#
# If the reverse load is strong enough, the material will yield in the reverse
# direction, which models the Bauschinger effect(reduction in yield stress in
# the opposite direction).
#
# This test is based on the similar response obtained for a prescribed symmetrical
# stress path in Besson, Jacques, et al. Non-linear mechanics of materials. Vol. 167.
# Springer Science & Business Media, 2009 pg. 87 fig. 3.4(b). This SolidMechanics code
# matches the SolidMechanics solution.
[Mesh]
file = 1x1x1cube.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[top_pull]
type = PiecewiseLinear
xy_data = '0 0
0.025 0.0025
0.05 0.005
0.1 0.01
0.15 0.005
0.2 0
0.25 -0.005
0.3 -0.01
0.35 -0.005
0.45 0
0.5 0.005
0.55 0.01
0.65 0.005
0.7 0
0.75 -0.005
0.8 -0.01
0.85 -0.005
0.9 0
0.95 0.005
1 0.01
1.05 0.005
1.1 0
1.15 -0.005
1.2 -0.01
1.25 -0.005'
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'strain_yy stress_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
[]
[]
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0
[]
[kinematic_plasticity]
type = CombinedNonlinearHardeningPlasticity
yield_stress = 100
isotropic_hardening_constant = 0
q = 0
b = 0
kinematic_hardening_modulus = 10000
gamma = 0
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'kinematic_plasticity'
[]
[]
[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 = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 1.25
dt = 0.0025
dtmin = 0.0001
[]
[Postprocessors]
[stress_yy]
type = ElementAverageValue
variable = stress_yy
[]
[strain_yy]
type = ElementAverageValue
variable = strain_yy
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_cosserat4.i)
# Plastic deformation. Layered Cosserat with parameters:
# Young = 10.0
# Poisson = 0.25
# layer_thickness = 10
# joint_normal_stiffness = 2.5
# joint_shear_stiffness = 2.0
# These give the following nonzero components of the elasticity tensor:
# E_0000 = E_1111 = 1.156756756757E+01
# E_0011 = E_1100 = 3.855855855856E+00
# E_2222 = E_pp = 8.108108108108E+00
# E_0022 = E_1122 = E_2200 = E_2211 = 2.702702702703E+00
# G = E_0101 = E_0110 = E_1001 = E_1010 = 4
# Gt = E_qq = E_0202 = E_0220 = E_2002 = E_1212 = E_1221 = E_2112 = 3.333333333333E+00
# E_2020 = E_2121 = 3.666666666667E+00
# They give the following nonzero components of the bending rigidity tensor:
# D = 8.888888888889E+02
# B_0101 = B_1010 = 8.080808080808E+00
# B_0110 = B_1001 = -2.020202020202E+00
#
# Applying the following deformation to the zmax surface of a unit cube:
# disp_x = 32*t/Gt
# disp_y = 24*t/Gt
# disp_z = 10*t/E_2222
# but leaving wc_x and wc_y unfixed
# yields the following strains:
# strain_xz = 32*t/Gt - wc_y = 9.6*t - wc_y
# strain_zx = wc_y
# strain_yz = 24*t/Gt + wc_x = 7.2*t + wc_x
# strain_zy = - wc_x
# strain_zz = 10*t/E_2222 = 1.23333333*t
# and all other components, and the curvature, are zero (assuming
# wc is uniform over the cube).
#
# When wc=0, the nonzero components of stress are therefore:
# stress_xx = stress_yy = 3.33333*t
# stress_xz = stress_zx = 32*t
# stress_yz = stress_zy = 24*t
# stress_zz = 10*t
# The moment stress is zero.
# So q = 40*t and p = 10*t
#
# Use tan(friction_angle) = 0.5 and tan(dilation_angle) = E_qq/Epp/2, and cohesion=20,
# the system should return to p=0, q=20, ie stress_zz=0, stress_xz=16,
# stress_yz=12 on the first time step (t=1)
# and
# stress_xx = stress_yy = 0
# and
# stress_zx = 32, and stress_zy = 24.
# This has resulted in a non-symmetric stress tensor, and there is
# zero moment stress, so the system is not in equilibrium. A
# nonzero wc must therefore be generated.
#
# The obvious choice of wc is such that stress_zx = 16 and
# stress_zy = 12, because then the final returned stress will
# be symmetric. This gives
# wc_y = - 48
# wc_x = 36
# At t=1, the nonzero components of stress are
# stress_xx = stress_yy = 3.33333
# stress_xz = 32, stress_zx = 16
# stress_yz = 24, stress_zy = 12
# stress_zz = 10*t
# The moment stress is zero.
#
# The returned stress is
# stress_xx = stress_yy = 0
# stress_xz = stress_zx = 16
# stress_yz = stress_zy = 12
# stress_zz = 0
# The total strains are given above.
# Since q returned from 40 to 20, plastic_strain_xz = 9.6/2 = 4.8
# and plastic_strain_yz = 7.2/2 = 3.6.
# Since p returned to zero, all of the total strain_zz is
# plastic, ie plastic_strain_zz = 1.23333
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 32*t/3.333333333333E+00
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 24*t/3.333333333333E+00
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 10*t/8.108108108108E+00
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./strainp_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[./strainp_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xx
index_i = 0
index_j = 0
[../]
[./strainp_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xy
index_i = 0
index_j = 1
[../]
[./strainp_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xz
index_i = 0
index_j = 2
[../]
[./strainp_yx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yx
index_i = 1
index_j = 0
[../]
[./strainp_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yy
index_i = 1
index_j = 1
[../]
[./strainp_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yz
index_i = 1
index_j = 2
[../]
[./strainp_zx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zx
index_i = 2
index_j = 0
[../]
[./strainp_zy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zy
index_i = 2
index_j = 1
[../]
[./strainp_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zz
index_i = 2
index_j = 2
[../]
[./straint_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xx
index_i = 0
index_j = 0
[../]
[./straint_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xy
index_i = 0
index_j = 1
[../]
[./straint_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xz
index_i = 0
index_j = 2
[../]
[./straint_yx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yx
index_i = 1
index_j = 0
[../]
[./straint_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yy
index_i = 1
index_j = 1
[../]
[./straint_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yz
index_i = 1
index_j = 2
[../]
[./straint_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zx
index_i = 2
index_j = 0
[../]
[./straint_zy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zy
index_i = 2
index_j = 1
[../]
[./straint_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zz
index_i = 2
index_j = 2
[../]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./wc_x]
type = PointValue
point = '0 0 0'
variable = wc_x
[../]
[./wc_y]
type = PointValue
point = '0 0 0'
variable = wc_y
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yx]
type = PointValue
point = '0 0 0'
variable = stress_yx
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zx]
type = PointValue
point = '0 0 0'
variable = stress_zx
[../]
[./s_zy]
type = PointValue
point = '0 0 0'
variable = stress_zy
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./c_s_xx]
type = PointValue
point = '0 0 0'
variable = couple_stress_xx
[../]
[./c_s_xy]
type = PointValue
point = '0 0 0'
variable = couple_stress_xy
[../]
[./c_s_xz]
type = PointValue
point = '0 0 0'
variable = couple_stress_xz
[../]
[./c_s_yx]
type = PointValue
point = '0 0 0'
variable = couple_stress_yx
[../]
[./c_s_yy]
type = PointValue
point = '0 0 0'
variable = couple_stress_yy
[../]
[./c_s_yz]
type = PointValue
point = '0 0 0'
variable = couple_stress_yz
[../]
[./c_s_zx]
type = PointValue
point = '0 0 0'
variable = couple_stress_zx
[../]
[./c_s_zy]
type = PointValue
point = '0 0 0'
variable = couple_stress_zy
[../]
[./c_s_zz]
type = PointValue
point = '0 0 0'
variable = couple_stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = strainp_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = strainp_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = strainp_xz
[../]
[./strainp_yx]
type = PointValue
point = '0 0 0'
variable = strainp_yx
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = strainp_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = strainp_yz
[../]
[./strainp_zx]
type = PointValue
point = '0 0 0'
variable = strainp_zx
[../]
[./strainp_zy]
type = PointValue
point = '0 0 0'
variable = strainp_zy
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = strainp_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = straint_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = straint_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = straint_xz
[../]
[./straint_yx]
type = PointValue
point = '0 0 0'
variable = straint_yx
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = straint_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = straint_yz
[../]
[./straint_zx]
type = PointValue
point = '0 0 0'
variable = straint_zx
[../]
[./straint_zy]
type = PointValue
point = '0 0 0'
variable = straint_zy
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = straint_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 20
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 2.055555555556E-01
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 100
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 100
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 10.0
poisson = 0.25
layer_thickness = 10.0
joint_normal_stiffness = 2.5
joint_shear_stiffness = 2.0
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
[../]
[./admissible]
type = ComputeMultipleInelasticCosseratStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneCosseratStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-5
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
solve_type = 'NEWTON'
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_cosserat4
csv = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/uni_axial2_planar.i)
# same as uni_axial2 but with planar mohr-coulomb
[Mesh]
type = FileMesh
file = quarter_hole.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./zmin_zzero]
type = DirichletBC
variable = disp_z
boundary = 'zmin'
value = '0'
[../]
[./xmin_xzero]
type = DirichletBC
variable = disp_x
boundary = 'xmin'
value = '0'
[../]
[./ymin_yzero]
type = DirichletBC
variable = disp_y
boundary = 'ymin'
value = '0'
[../]
[./ymax_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'ymax'
function = '-1E-4*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0.005 0.02 0.002'
variable = yield_fcn
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E7
[../]
[./fric]
type = SolidMechanicsHardeningConstant
value = 2
convert_to_radians = true
[../]
[./dil]
type = SolidMechanicsHardeningConstant
value = 2
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = coh
friction_angle = fric
dilation_angle = dil
yield_function_tolerance = 1.0 # THIS IS HIGHER THAN THE SMOOTH CASE TO AVOID PRECISION-LOSS PROBLEMS!
shift = 1.0
internal_constraint_tolerance = 1E-9
use_custom_returnMap = false
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 1
fill_method = symmetric_isotropic
C_ijkl = '0 5E9' # young = 10Gpa, poisson = 0.0
[../]
[./strain]
type = ComputeIncrementalStrain
block = 1
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 1
ep_plastic_tolerance = 1E-9
plastic_models = mc
max_NR_iterations = 100
deactivation_scheme = 'safe'
min_stepsize = 1
max_stepsize_for_dumb = 1
debug_fspb = crash
[../]
[]
# Preconditioning and Executioner options kindly provided by Andrea
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
end_time = 0.5
dt = 0.1
solve_type = NEWTON
type = Transient
[]
[Outputs]
file_base = uni_axial2_planar
[./exodus]
type = Exodus
hide = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz yield_fcn s_xx s_xy s_xz s_yy s_yz s_zz f'
[../]
[./csv]
type = CSV
time_step_interval = 1
[../]
[]
(modules/solid_mechanics/test/tests/multi/three_surface20.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 1.1E-6m in y direction and 1.7E-6 in z direction.
# trial stress_yy = 1.1 and stress_zz = 1.7
#
# Then all yield functions will activate
# However, there is linear dependence. SimpleTester1 will be rutned off.
# The algorithm will return to
# stress_yy=0.5 and stress_zz=1
# internal0=0.1, internal2=0.6
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1.1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.7E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface20
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/restart/restart_subapp_not_parent/two_step_solve_parent.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[ICs]
active = ''
[./u_var]
type = FunctionIC
variable = u
function = exact_fn
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Postprocessors]
[./average]
type = ElementAverageValue
variable = u
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
start_time = 2.0
end_time = 4.0
dt = 1.0
[]
[MultiApps]
[./full_solve]
type = FullSolveMultiApp
execute_on = initial
positions = '0 0 0'
# input file will come from cli-coupled_variables
[../]
[]
[Transfers]
[./transfer_u]
type = MultiAppProjectionTransfer
multi_app = full_solve
direction = FROM_MULTIAPP
variable = u
source_variable = u
[../]
[]
[Outputs]
#file_base will come from cli-coupled_variables
exodus = true
[]
(modules/solid_mechanics/test/tests/smeared_cracking/cracking.i)
#
# Simple pull test for cracking.
# The stress increases for two steps and then drops to zero.
[Mesh]
file = cracking_test.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./displ]
type = PiecewiseLinear
x = '0 1 2 3 4'
y = '0 1 0 -1 0'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[../]
[]
[BCs]
[./pull]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = displ
[../]
[./left]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = 3
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.8e7
poissons_ratio = 0
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
cracking_stress = 1.68e6
softening_models = abrupt_softening
[../]
[./abrupt_softening]
type = AbruptSoftening
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type'
petsc_options_value = '101 asm lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-5
start_time = 0.0
end_time = 0.1
dt = 0.025
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/materials/badproperties/stvenantkirchhoff.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[Functions]
[strain]
type = ParsedFunction
expression = 't'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[boty]
type = DirichletBC
preset = true
boundary = bottom
variable = disp_y
value = 0.0
[]
[backz]
type = DirichletBC
preset = true
boundary = back
variable = disp_z
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = strain
[]
[]
[Materials]
[elastic_tensor]
type = ComputeElasticityTensor
C_ijkl = '102272 113636 113636 1022726 454545'
fill_method = axisymmetric_rz
[]
[compute_stress]
type = ComputeStVenantKirchhoffStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[AuxVariables]
[s11]
family = MONOMIAL
order = CONSTANT
[]
[s21]
family = MONOMIAL
order = CONSTANT
[]
[s31]
family = MONOMIAL
order = CONSTANT
[]
[s12]
family = MONOMIAL
order = CONSTANT
[]
[s22]
family = MONOMIAL
order = CONSTANT
[]
[s32]
family = MONOMIAL
order = CONSTANT
[]
[s13]
family = MONOMIAL
order = CONSTANT
[]
[s23]
family = MONOMIAL
order = CONSTANT
[]
[s33]
family = MONOMIAL
order = CONSTANT
[]
[F11]
family = MONOMIAL
order = CONSTANT
[]
[F21]
family = MONOMIAL
order = CONSTANT
[]
[F31]
family = MONOMIAL
order = CONSTANT
[]
[F12]
family = MONOMIAL
order = CONSTANT
[]
[F22]
family = MONOMIAL
order = CONSTANT
[]
[F32]
family = MONOMIAL
order = CONSTANT
[]
[F13]
family = MONOMIAL
order = CONSTANT
[]
[F23]
family = MONOMIAL
order = CONSTANT
[]
[F33]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[s11]
type = RankTwoAux
variable = s11
rank_two_tensor = pk1_stress
index_i = 0
index_j = 0
[]
[s21]
type = RankTwoAux
variable = s21
rank_two_tensor = pk1_stress
index_i = 1
index_j = 0
[]
[s31]
type = RankTwoAux
variable = s31
rank_two_tensor = pk1_stress
index_i = 2
index_j = 0
[]
[s12]
type = RankTwoAux
variable = s12
rank_two_tensor = pk1_stress
index_i = 0
index_j = 1
[]
[s22]
type = RankTwoAux
variable = s22
rank_two_tensor = pk1_stress
index_i = 1
index_j = 1
[]
[s32]
type = RankTwoAux
variable = s32
rank_two_tensor = pk1_stress
index_i = 2
index_j = 1
[]
[s13]
type = RankTwoAux
variable = s13
rank_two_tensor = pk1_stress
index_i = 0
index_j = 2
[]
[s23]
type = RankTwoAux
variable = s23
rank_two_tensor = pk1_stress
index_i = 1
index_j = 2
[]
[s33]
type = RankTwoAux
variable = s33
rank_two_tensor = pk1_stress
index_i = 2
index_j = 2
[]
[F11]
type = RankTwoAux
variable = F11
rank_two_tensor = deformation_gradient
index_i = 0
index_j = 0
[]
[F21]
type = RankTwoAux
variable = F21
rank_two_tensor = deformation_gradient
index_i = 1
index_j = 0
[]
[F31]
type = RankTwoAux
variable = F31
rank_two_tensor = deformation_gradient
index_i = 2
index_j = 0
[]
[F12]
type = RankTwoAux
variable = F12
rank_two_tensor = deformation_gradient
index_i = 0
index_j = 1
[]
[F22]
type = RankTwoAux
variable = F22
rank_two_tensor = deformation_gradient
index_i = 1
index_j = 1
[]
[F32]
type = RankTwoAux
variable = F32
rank_two_tensor = deformation_gradient
index_i = 2
index_j = 1
[]
[F13]
type = RankTwoAux
variable = F13
rank_two_tensor = deformation_gradient
index_i = 0
index_j = 2
[]
[F23]
type = RankTwoAux
variable = F23
rank_two_tensor = deformation_gradient
index_i = 1
index_j = 2
[]
[F33]
type = RankTwoAux
variable = F33
rank_two_tensor = deformation_gradient
index_i = 2
index_j = 2
[]
[]
[Postprocessors]
[s11]
type = ElementAverageValue
variable = s11
execute_on = 'initial timestep_end'
[]
[s21]
type = ElementAverageValue
variable = s21
execute_on = 'initial timestep_end'
[]
[s31]
type = ElementAverageValue
variable = s31
execute_on = 'initial timestep_end'
[]
[s12]
type = ElementAverageValue
variable = s12
execute_on = 'initial timestep_end'
[]
[s22]
type = ElementAverageValue
variable = s22
execute_on = 'initial timestep_end'
[]
[s32]
type = ElementAverageValue
variable = s32
execute_on = 'initial timestep_end'
[]
[s13]
type = ElementAverageValue
variable = s13
execute_on = 'initial timestep_end'
[]
[s23]
type = ElementAverageValue
variable = s23
execute_on = 'initial timestep_end'
[]
[s33]
type = ElementAverageValue
variable = s33
execute_on = 'initial timestep_end'
[]
[F11]
type = ElementAverageValue
variable = F11
execute_on = 'initial timestep_end'
[]
[F21]
type = ElementAverageValue
variable = F21
execute_on = 'initial timestep_end'
[]
[F31]
type = ElementAverageValue
variable = F31
execute_on = 'initial timestep_end'
[]
[F12]
type = ElementAverageValue
variable = F12
execute_on = 'initial timestep_end'
[]
[F22]
type = ElementAverageValue
variable = F22
execute_on = 'initial timestep_end'
[]
[F32]
type = ElementAverageValue
variable = F32
execute_on = 'initial timestep_end'
[]
[F13]
type = ElementAverageValue
variable = F13
execute_on = 'initial timestep_end'
[]
[F23]
type = ElementAverageValue
variable = F23
execute_on = 'initial timestep_end'
[]
[F33]
type = ElementAverageValue
variable = F33
execute_on = 'initial timestep_end'
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 5
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 0.01
dtmin = 0.01
end_time = 0.01
[]
[Outputs]
exodus = false
[]
(modules/solid_mechanics/test/tests/weak_plane_shear/small_deform_harden4.i)
# apply repeated stretches to observe cohesion hardening, with cubic
[GlobalParams]
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = 'stress_xz stress_zx stress_yz stress_zz'
[]
[BCs]
[bottomx]
type = DirichletBC
variable = x_disp
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = y_disp
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = z_disp
boundary = back
value = 0.0
[]
[topx]
type = FunctionDirichletBC
variable = x_disp
boundary = front
function = '0'
[]
[topy]
type = FunctionDirichletBC
variable = y_disp
boundary = front
function = '0'
[]
[topz]
type = FunctionDirichletBC
variable = z_disp
boundary = front
function = '2*t'
[]
[]
[AuxVariables]
[wps_internal]
order = CONSTANT
family = MONOMIAL
[]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[wps_internal_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = wps_internal
[]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[]
[s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[int]
type = PointValue
point = '0 0 0'
variable = wps_internal
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningCubic
value_0 = 1E3
value_residual = 2E3
internal_limit = 0.00007
[]
[tanphi]
type = SolidMechanicsHardeningConstant
value = 1
[]
[tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.01745506
[]
[wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
smoother = 500
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '1E9 0.5E9'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wps
transverse_direction = '0 0 1'
ep_plastic_tolerance = 1E-3
debug_fspb = crash
[]
[]
[Executioner]
end_time = 1E-6
dt = 1E-7
type = Transient
[]
[Outputs]
csv = true
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test1tt.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test1.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.1
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.1
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[]
[Outputs]
file_base = pl_test1tt_out
exodus = true
[]
(modules/heat_transfer/tutorials/introduction/therm_step02a.i)
#
# Single block thermal input with a line value sampler
# https://mooseframework.inl.gov/modules/heat_transfer/tutorials/introduction/therm_step02.html
#
[Mesh]
[generated]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 2
ymax = 1
[]
[]
[Variables]
[T]
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = T
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 45.0
[]
[]
[BCs]
[t_left]
type = DirichletBC
variable = T
value = 300
boundary = 'left'
[]
[t_right]
type = FunctionDirichletBC
variable = T
function = '300+5*t'
boundary = 'right'
[]
[]
[Executioner]
type = Transient
end_time = 5
dt = 1
[]
[VectorPostprocessors]
[t_sampler]
type = LineValueSampler
variable = T
start_point = '0 0.5 0'
end_point = '2 0.5 0'
num_points = 20
sort_by = x
[]
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = therm_step02a_out
execute_on = final
[]
[]
(test/tests/outputs/displacement/displaced_eq_transient_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 5
ny = 5
elem_type = QUAD4
displacements = 'u v'
[]
[Functions]
[./right_u]
type = ParsedFunction
expression = 0.1*t
[../]
[./fn_v]
type = ParsedFunction
expression = (x+1)*y*0.1*t
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./td_u]
type = TimeDerivative
variable = u
use_displaced_mesh = true
[../]
[./diff_u]
type = Diffusion
variable = u
use_displaced_mesh = true
[../]
[./td_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./left_u]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right_u]
type = FunctionDirichletBC
variable = u
boundary = 1
function = right_u
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '0 2'
function = fn_v
[../]
[]
[Executioner]
type = Transient
dt = 0.1
start_time = 0
num_steps = 10
solve_type = 'PJFNK'
[]
[Outputs]
[./out_displaced]
type = Exodus
use_displaced = true
[../]
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence/L/small.i)
[Mesh]
type = FileMesh
file = 'L.exo'
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Functions]
[pfn]
type = PiecewiseLinear
x = '0 1 2'
y = '0.00 0.3 0.5'
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[BCs]
[left]
type = DirichletBC
preset = true
variable = disp_x
boundary = fix
value = 0.0
[]
[bottom]
type = DirichletBC
preset = true
variable = disp_y
boundary = fix
value = 0.0
[]
[back]
type = DirichletBC
preset = true
variable = disp_z
boundary = fix
value = 0.0
[]
[front]
type = FunctionDirichletBC
variable = disp_z
boundary = pull
function = pfn
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
petsc_options_iname = -pc_type
petsc_options_value = lu
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
end_time = 1.0
dtmin = 0.5
dt = 0.5
[]
[Postprocessors]
[nonlin]
type = NumNonlinearIterations
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/mean_cap_TC/small_deform1.i)
# apply uniform stretch in x, y and z directions.
# trial_stress(0, 0) = -2
# trial_stress(1, 1) = 6
# trial_stress(2, 2) = 10
# With tensile_strength = 2, the algorithm should return to trace(stress) = 2, or
# stress(0, 0) = -6
# stress(1, 1) = 2
# stress(2, 2) = 6
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1E-7*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '3E-7*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '5E-7*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[]
[UserObjects]
[./tensile_strength]
type = SolidMechanicsHardeningConstant
value = 2
[../]
[./compressive_strength]
type = SolidMechanicsHardeningConstant
value = -1
[../]
[./cap]
type = SolidMechanicsPlasticMeanCapTC
tensile_strength = tensile_strength
compressive_strength = compressive_strength
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
use_custom_returnMap = false
use_custom_cto = false
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mean_cap]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = cap
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform1
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/weak_plane_shear/small_deform2.i)
# apply a pure tension, then some shear with compression
# the BCs are designed to map out the yield function, showing
# the affect of the small_smoother parameter
[GlobalParams]
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = 'stress_xz stress_zx stress_yz stress_zz'
[]
[BCs]
[bottomx]
type = DirichletBC
variable = x_disp
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = y_disp
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = z_disp
boundary = back
value = 0.0
[]
[topx]
type = FunctionDirichletBC
variable = x_disp
boundary = front
function = 'if(t<1E-6,0,3*t)'
[]
[topy]
type = FunctionDirichletBC
variable = y_disp
boundary = front
function = 'if(t<1E-6,0,5*(t-0.01E-6))'
[]
[topz]
type = FunctionDirichletBC
variable = z_disp
boundary = front
function = 'if(t<1E-6,t,2E-6-t)'
[]
[]
[AuxVariables]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[]
[s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningConstant
value = 1E3
[]
[tanphi]
type = SolidMechanicsHardeningConstant
value = 1
[]
[tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.01745506
[]
[wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
smoother = 500
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-6
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '1E9 0.5E9'
[]
[mc]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1E-4
plastic_models = wps
transverse_direction = '0 0 1'
debug_fspb = crash
[]
[]
[Executioner]
end_time = 2E-6
dt = 1E-7
type = Transient
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform_hard21.i)
# Mohr-Coulomb only
# apply stretches in x direction and smaller stretches in the y direction
# to observe return to the MC plane
# This tests uses hardening of the cohesion. The returned configuration
# should obey
# 0 = 0.5 * (Smax - Smin) + 0.5 * (Smax + Smin) * sin(phi) - C cos(phi)
# which allows inference of C.
# The tensile internal parameter is recorded, to check that it is zero
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.4E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.1E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 6
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[]
[Postprocessors]
[./s_max]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_mid]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_min]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./mc_coh]
type = SolidMechanicsHardeningCubic
value_0 = 10
value_residual = 20
internal_limit = 5E-6
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1E7
poissons_ratio = 0.3
[../]
[./mc]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = ts
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
smoothing_tol = 0
yield_function_tol = 1.0E-9
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_hard21
csv = true
[]
(modules/combined/test/tests/phase_field_fracture_viscoplastic/crack2d.i)
[Mesh]
type = FileMesh
file = crack_mesh.e
[]
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./All]
add_variables = true
strain = Finite
additional_generate_output = stress_yy
save_in = 'resid_x resid_y'
[../]
[../]
[../]
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = E_el
mobility = L
kappa = kappa_op
[../]
[../]
[../]
[]
[AuxVariables]
[./resid_x]
[../]
[./resid_y]
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./peeq]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
use_displaced_mesh = true
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./peeq]
type = MaterialRealAux
variable = peeq
property = ep_eqv
execute_on = timestep_end
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = '0.0001*t'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0
[../]
[]
[UserObjects]
[./flowstress]
type = HEVPLinearHardening
yield_stress = 300
slope = 1000
intvar_prop_name = ep_eqv
[../]
[./flowrate]
type = HEVPFlowRatePowerLawJ2
reference_flow_rate = 0.0001
flow_rate_exponent = 10.0
flow_rate_tol = 1
strength_prop_name = flowstress
[../]
[./ep_eqv]
type = HEVPEqvPlasticStrain
intvar_rate_prop_name = ep_eqv_rate
[../]
[./ep_eqv_rate]
type = HEVPEqvPlasticStrainRate
flow_rate_prop_name = flowrate
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'l visco'
prop_values = '0.08 1'
[../]
[./pfgc]
type = GenericFunctionMaterial
prop_names = 'gc_prop'
prop_values = '1.0e-3'
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
property_name = L
expression = '1/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
property_name = kappa_op
expression = 'gc_prop * l'
[../]
[./viscop_damage]
type = HyperElasticPhaseFieldIsoDamage
resid_abs_tol = 1e-18
resid_rel_tol = 1e-8
maxiters = 50
max_substep_iteration = 5
flow_rate_user_objects = 'flowrate'
strength_user_objects = 'flowstress'
internal_var_user_objects = 'ep_eqv'
internal_var_rate_user_objects = 'ep_eqv_rate'
numerical_stiffness = false
damage_stiffness = 1e-8
c = c
F_name = E_el
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
[../]
[]
[Postprocessors]
[./resid_x]
type = NodalSum
variable = resid_x
boundary = 2
[../]
[./resid_y]
type = NodalSum
variable = resid_y
boundary = 2
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -ksp_grmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 preonly lu 1'
nl_rel_tol = 1e-8
l_max_its = 10
nl_max_its = 10
dt = 1
dtmin = 1e-4
num_steps = 2
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/normalized_penalty/normalized_penalty_kin.i)
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Mesh]
file = normalized_penalty.e
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Functions]
[./left_x]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0.02 0'
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
generate_output = 'stress_xx'
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
[]
[]
[Contact]
[./m3_s2]
primary = 3
secondary = 2
penalty = 1e10
normalize_penalty = true
tangential_tolerance = 1e-3
[../]
[]
[BCs]
[./left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 1
function = left_x
[../]
[./y]
type = DirichletBC
variable = disp_y
boundary = '1 2 3 4'
value = 0.0
[../]
[./right]
type = DirichletBC
variable = disp_x
boundary = '3 4'
value = 0
[../]
[]
[Materials]
[./stiffStuff1]
type = ComputeIsotropicElasticityTensor
block = '1 2 3 4 1000'
youngs_modulus = 3e8
poissons_ratio = 0.0
[../]
[./stiffStuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2 3 4 1000'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 3e-8
l_max_its = 100
nl_max_its = 20
dt = 0.5
num_steps = 4
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence-auto/3D/dirichlet.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[ICs]
[disp_x]
type = RandomIC
variable = disp_x
min = -0.02
max = 0.02
[]
[disp_y]
type = RandomIC
variable = disp_y
min = -0.02
max = 0.02
[]
[disp_z]
type = RandomIC
variable = disp_z
min = -0.02
max = 0.02
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 4
ny = 4
nz = 4
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[sdy]
type = UpdatedLagrangianStressDivergence
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[sdz]
type = UpdatedLagrangianStressDivergence
variable = disp_z
component = 2
use_displaced_mesh = true
[]
[]
[Functions]
[pullx]
type = ParsedFunction
expression = '0.4 * t'
[]
[pully]
type = ParsedFunction
expression = '-0.2 * t'
[]
[pullz]
type = ParsedFunction
expression = '0.3 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[lefty]
type = DirichletBC
preset = true
boundary = left
variable = disp_y
value = 0.0
[]
[leftz]
type = DirichletBC
preset = true
boundary = left
variable = disp_z
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = pullx
preset = true
[]
[pull_y]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pully
preset = true
[]
[pull_z]
type = FunctionDirichletBC
boundary = right
variable = disp_z
function = pullz
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 0.2
dtmin = 0.2
end_time = 0.2
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform24.i)
# apply repeated stretches in z directions, and smaller stretches along the x and y directions,
# so that sigma_mid = sigma_min (approximately),
# which means that lode angle = -30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.25E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.25E-6*y*sin(t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 6
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./mc]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = ts
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
smoothing_tol = 5.0
yield_function_tol = 1.0E-7
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 30
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform24
csv = true
[]
(modules/contact/test/tests/ring_contact/ring_contact.i)
#
# A test of contact with quadratic (Hex20) elements
#
# A stiff ring is pushed into a soft base. The base shows a circular impression.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = false
[]
[Mesh]
file = ring_contact.e
[]
[Functions]
[./ring_y]
type = PiecewiseLinear
x = '0 1'
y = '0 1'
scale_factor = -0.2
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[../]
[]
[Contact]
[./dummy_name]
primary = 3
secondary = 2
penalty = 1e3
tension_release = -1
[../]
[]
[BCs]
[./plane]
type = DirichletBC
variable = disp_z
boundary = 10
value = 0.0
[../]
[./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
[../]
[./ring_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[../]
[./ring_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = ring_y
[../]
[]
[Materials]
[./stiffStuff1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stiffStuff2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e3
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[] # Materials
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_rel_tol = 1.e-10
l_max_its = 100
nl_max_its = 10
dt = 0.1
end_time = 0.5
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/multi/eight_surface14.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 3
# SimpleTester3 with a = 0 and b = 1 and strength = 1.1
# SimpleTester4 with a = 1 and b = 0 and strength = 1.1
# SimpleTester5 with a = 1 and b = 1 and strength = 3.1
# SimpleTester6 with a = 1 and b = 2 and strength = 3.1
# SimpleTester7 with a = 2 and b = 1 and strength = 3.1
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 2.1E-6m in y direction and 3E-6 in z direction.
# trial stress_yy = 2.1 and stress_zz = 3.0
#
# This is similar to three_surface14.i, and a description is found there.
# The result should be stress_zz=1=stress_yy, with internal0=2
# and internal1=1.1
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2.1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '3.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./f3]
order = CONSTANT
family = MONOMIAL
[../]
[./f4]
order = CONSTANT
family = MONOMIAL
[../]
[./f5]
order = CONSTANT
family = MONOMIAL
[../]
[./f6]
order = CONSTANT
family = MONOMIAL
[../]
[./f7]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[./int3]
order = CONSTANT
family = MONOMIAL
[../]
[./int4]
order = CONSTANT
family = MONOMIAL
[../]
[./int5]
order = CONSTANT
family = MONOMIAL
[../]
[./int6]
order = CONSTANT
family = MONOMIAL
[../]
[./int7]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./f3]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 3
variable = f3
[../]
[./f4]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 4
variable = f4
[../]
[./f5]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 5
variable = f5
[../]
[./f6]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 6
variable = f6
[../]
[./f7]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 7
variable = f7
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[./int3]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 3
variable = int3
[../]
[./int4]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 4
variable = int4
[../]
[./int5]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 5
variable = int5
[../]
[./int6]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 6
variable = int6
[../]
[./int7]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 7
variable = int7
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./f3]
type = PointValue
point = '0 0 0'
variable = f3
[../]
[./f4]
type = PointValue
point = '0 0 0'
variable = f4
[../]
[./f5]
type = PointValue
point = '0 0 0'
variable = f5
[../]
[./f6]
type = PointValue
point = '0 0 0'
variable = f6
[../]
[./f7]
type = PointValue
point = '0 0 0'
variable = f7
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[./int3]
type = PointValue
point = '0 0 0'
variable = int3
[../]
[./int4]
type = PointValue
point = '0 0 0'
variable = int4
[../]
[./int5]
type = PointValue
point = '0 0 0'
variable = int5
[../]
[./int6]
type = PointValue
point = '0 0 0'
variable = int6
[../]
[./int7]
type = PointValue
point = '0 0 0'
variable = int7
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 3
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple3]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1.1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple4]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1.1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple5]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 3.1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple6]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 2
strength = 3.1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple7]
type = SolidMechanicsPlasticSimpleTester
a = 2
b = 1
strength = 3.1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2 simple3 simple4 simple5 simple6 simple7'
deactivation_scheme = optimized_to_safe
max_NR_iterations = 4
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1'
debug_jac_at_intnl = '1 1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = eight_surface14
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/fluid_properties/test/tests/ideal_gas/test.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
elem_type = QUAD4
[]
[Functions]
[./f_fn]
type = ParsedFunction
expression = -4
[../]
[./bc_fn]
type = ParsedFunction
expression = 'x*x+y*y'
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./e]
initial_condition = 6232.5
[../]
[./v]
initial_condition = 0.02493
[../]
[./p]
family = MONOMIAL
order = CONSTANT
[../]
[./T]
family = MONOMIAL
order = CONSTANT
[../]
[./cp]
family = MONOMIAL
order = CONSTANT
[../]
[./cv]
family = MONOMIAL
order = CONSTANT
[../]
[./c]
family = MONOMIAL
order = CONSTANT
[../]
[./mu]
family = MONOMIAL
order = CONSTANT
[../]
[./k]
family = MONOMIAL
order = CONSTANT
[../]
[./g]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./p]
type = MaterialRealAux
variable = p
property = pressure
[../]
[./T]
type = MaterialRealAux
variable = T
property = temperature
[../]
[./cp]
type = MaterialRealAux
variable = cp
property = cp
[../]
[./cv]
type = MaterialRealAux
variable = cv
property = cv
[../]
[./c]
type = MaterialRealAux
variable = c
property = c
[../]
[./mu]
type = MaterialRealAux
variable = mu
property = mu
[../]
[./k]
type = MaterialRealAux
variable = k
property = k
[../]
[./g]
type = MaterialRealAux
variable = g
property = g
[../]
[]
[FluidProperties]
[./ideal_gas]
type = IdealGasFluidProperties
gamma = 1.4
molar_mass = 1.000536678700361
[../]
[]
[Materials]
[./fp_mat]
type = FluidPropertiesMaterialVE
e = e
v = v
fp = ideal_gas
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = f_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = bc_fn
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test3nnstt.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test3tt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
# [./element_id]
# [../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.09
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.09
normal_smoothing_method = nodal_normal_based
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
# [./penetrate17]
# type = PenetrationAux
# variable = element_id
# boundary = 11
# paired_boundary = 12
# quantity = element_id
# [../]
#
# [./penetrate18]
# type = PenetrationAux
# variable = element_id
# boundary = 12
# paired_boundary = 11
# quantity = element_id
# [../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[]
[Outputs]
file_base = pl_test3nnstt_out
exodus = true
[]
[NodalNormals]
boundary = 11
corner_boundary = 20
[]
(test/tests/utils/spline_interpolation/bicubic_spline_interpolation.i)
[Mesh]
type = GeneratedMesh
dim = 3
nz = 1
nx = 4
ny = 4
xmax = 4
ymax = 4
[]
[Functions]
[./yx1]
type = ParsedFunction
expression = '3*x^2'
[../]
[./yx2]
type = ParsedFunction
expression = '6*y^2'
[../]
[./spline_fn]
type = BicubicSplineFunction
x1 = '0 2 4'
x2 = '0 2 4 6'
y = '0 16 128 432 8 24 136 440 64 80 192 496'
yx11 = '0 0 0 0'
yx1n = '48 48 48 48'
yx21 = '0 0 0'
yx2n = '216 216 216'
yx1 = 'yx1'
yx2 = 'yx2'
[../]
[./u_func]
type = ParsedFunction
expression = 'x^3 + 2*y^3'
[../]
[./u2_forcing_func]
type = ParsedFunction
expression = '-6*x - 12*y'
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./bi_func_value]
order = FIRST
family = LAGRANGE
[../]
[./x_deriv]
order = FIRST
family = LAGRANGE
[../]
[./y_deriv]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./bi_func_value]
type = FunctionAux
variable = bi_func_value
function = spline_fn
[../]
[./deriv_1]
type = FunctionDerivativeAux
function = spline_fn
variable = x_deriv
component = x
[../]
[./deriv_2]
type = FunctionDerivativeAux
function = spline_fn
variable = y_deriv
component = y
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./body_force]
type = BodyForce
variable = u
function = u2_forcing_func
[../]
[]
[BCs]
[./sides]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = u_func
[../]
[]
[Postprocessors]
[./nodal_l2_err_spline]
type = NodalL2Error
variable = u
function = spline_fn
execute_on = 'initial timestep_end'
[../]
[./nodal_l2_err_analytic]
type = NodalL2Error
variable = u
function = u_func
execute_on = 'initial timestep_end'
[../]
[./x_deriv_err_analytic]
type = NodalL2Error
variable = x_deriv
function = yx1
execute_on = 'initial timestep_end'
[../]
[./y_deriv_err_analytic]
type = NodalL2Error
variable = y_deriv
function = yx2
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/uni_axial3_planar.i)
# same as uni_axial2 but with planar mohr-coulomb
[Mesh]
type = FileMesh
file = quarter_hole.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./zmin_zzero]
type = DirichletBC
variable = disp_z
boundary = 'zmin'
value = '0'
[../]
[./xmin_xzero]
type = DirichletBC
variable = disp_x
boundary = 'xmin'
value = '0'
[../]
[./ymin_yzero]
type = DirichletBC
variable = disp_y
boundary = 'ymin'
value = '0'
[../]
[./ymax_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'ymax'
function = '-1E-4*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0.005 0.02 0.002'
variable = yield_fcn
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E7
[../]
[./fric]
type = SolidMechanicsHardeningConstant
value = 40
convert_to_radians = true
[../]
[./dil]
type = SolidMechanicsHardeningConstant
value = 40
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = coh
friction_angle = fric
dilation_angle = dil
yield_function_tolerance = 1.0 # THIS IS HIGHER THAN THE SMOOTH CASE TO AVOID PRECISION-LOSS PROBLEMS!
shift = 1.0
use_custom_returnMap = false
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 1
fill_method = symmetric_isotropic
C_ijkl = '0 5E9' # young = 10Gpa, poisson = 0.0
[../]
[./strain]
type = ComputeIncrementalStrain
block = 1
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 1
ep_plastic_tolerance = 1E-9
plastic_models = mc
max_NR_iterations = 100
deactivation_scheme = 'safe'
min_stepsize = 1
max_stepsize_for_dumb = 1
debug_fspb = crash
[../]
[]
# Preconditioning and Executioner options kindly provided by Andrea
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
end_time = 1.05
dt = 0.1
solve_type = NEWTON
type = Transient
[]
[Outputs]
file_base = uni_axial3_planar
[./exodus]
type = Exodus
hide = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz yield_fcn s_xx s_xy s_xz s_yy s_yz s_zz f'
[../]
[./csv]
type = CSV
time_step_interval = 1
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/substep.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
block = 0
stol = 1e-2
tan_mod_type = exact
maximum_substep_iteration = 10
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss]
type = ElementAverageValue
variable = gss
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 2.0
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 30.0
dtmin = 0.5
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
csv = true
gnuplot = true
[]
(modules/heat_transfer/test/tests/heat_conduction/3d_quadrature_gap_heat_transfer/moving.i)
[Mesh]
file = nonmatching.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[temp]
[]
[]
[AuxVariables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Functions]
[disp_y]
type = ParsedFunction
expression = 0.1*t
[]
[left_temp]
type = ParsedFunction
expression = 1000+t
[]
[]
[Kernels]
[hc]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[disp_y]
type = FunctionAux
variable = disp_y
function = disp_y
block = left
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[BCs]
[left]
type = FunctionDirichletBC
variable = temp
boundary = leftleft
function = left_temp
[]
[right]
type = DirichletBC
variable = temp
boundary = rightright
value = 400
[]
[]
[ThermalContact]
[left_to_right]
type = GapHeatTransfer
variable = temp
primary = rightleft
secondary = leftright
emissivity_primary = 0
emissivity_secondary = 0
quadrature = true
[]
[]
[Materials]
[hcm]
type = HeatConductionMaterial
block = 'left right'
specific_heat = 1
thermal_conductivity = 1
use_displaced_mesh = true
[]
[]
[Postprocessors]
[left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = leftright
diffusivity = thermal_conductivity
[]
[right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = rightleft
diffusivity = thermal_conductivity
[]
[]
[Executioner]
type = Transient
num_steps = 9
dt = 1
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/rot-eg1.i)
#
# Rotation Test
#
# This test is designed to compute a uniaxial stress and then follow that
# stress as the mesh is rotated 90 degrees.
#
# The mesh is composed of one block with a single element. The nodal
# displacements in the x and y directions are prescribed. Poisson's
# ratio is zero.
#
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[./side1n1]
input = gen
type = ExtraNodesetGenerator
coord = '0.0 0.0 0.0'
boundary = 6
[../]
[./side1n2]
input = side1n1
type = ExtraNodesetGenerator
coord = '1.0 0.0 0.0'
boundary = 7
[../]
[./side2n1]
input = side1n2
type = ExtraNodesetGenerator
coord = '0.0 1.0 0.0'
boundary = 8
[../]
[./side2n2]
input = side2n1
type = ExtraNodesetGenerator
coord = '1.0 1.0 0.0'
boundary = 9
[../]
[./side3n1]
input = side2n2
type = ExtraNodesetGenerator
coord = '0.0 1.0 1.0'
boundary = 10
[../]
[./side3n2]
input = side3n1
type = ExtraNodesetGenerator
coord = '1.0 1.0 1.0'
boundary = 11
[../]
[./side4n1]
input = side3n2
type = ExtraNodesetGenerator
coord = '0.0 0.0 1.0'
boundary = 12
[../]
[./side4n2]
input = side4n1
type = ExtraNodesetGenerator
coord = '1.0 0.0 1.0'
boundary = 13
[../]
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[Functions]
[./side2uxfunc]
type = ParsedFunction
expression = cos(pi/2*t)-1
[../]
[./side2uyfunc]
type = ParsedFunction
expression = sin(pi/2*t)
[../]
[./side3uxfunc]
type = ParsedFunction
expression = cos(pi/2*t)-sin(pi/2*t)-1
[../]
[./side3uyfunc]
type = ParsedFunction
expression = cos(pi/2*t)+sin(pi/2*t)-1
[../]
[./side4uxfunc]
type = ParsedFunction
expression = -sin(pi/2*t)
[../]
[./side4uyfunc]
type = ParsedFunction
expression = cos(pi/2*t)-1
[../]
[]
[BCs]
active = 'bcside1 bcside2ux bcside2uy bcside4ux bcside4uy bcside3uy bcside3ux bcx'
[./bcside1]
type = DirichletBC
variable = 'uy uz'
boundary = '6 7'
value = 0
[../]
[./bcside2ux]
type = FunctionDirichletBC
variable = uy
boundary = '8 9'
function = side2uxfunc
[../]
[./bcside2uy]
type = FunctionDirichletBC
variable = uz
boundary = '8 9'
function = side2uyfunc
[../]
[./bcside3ux]
type = FunctionDirichletBC
variable = uy
boundary = '10 11'
function = side3uxfunc
[../]
[./bcside3uy]
type = FunctionDirichletBC
variable = uz
boundary = '10 11'
function = side3uyfunc
[../]
[./bcside4ux]
type = FunctionDirichletBC
variable = uy
boundary = '12 13'
function = side4uxfunc
[../]
[./bcside4uy]
type = FunctionDirichletBC
variable = uz
boundary = '12 13'
function = side4uyfunc
[../]
[./bot]
type = DirichletBC
variable = 'ux uy uz'
boundary = back
value = 0
[../]
[./topxz]
type = DirichletBC
variable = 'ux uz'
boundary = front
value = 0
[../]
[./topy]
type = DirichletBC
variable = uy
boundary = front
value = 1
[../]
[./bcx]
type = DirichletBC
variable = ux
boundary = '6 7 8 9 10 11 12 13'
value = 0
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
disp_y = uy
disp_x = ux
slip_sys_file_name = input_slip_sys.txt
disp_z = uz
flowprops = ' 1 12 0.001 0.1'
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 .754e5 .754e5 .754e5'
nss = 12
hprops = '1 541.5 60.8 109.8'
gprops = '1 12 60.8'
fill_method = symmetric9
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.01
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
dtmax = 0.01
end_time = 1
dtmin = 0.01
[]
[Outputs]
file_base = rot_eg1
solution_history = true
[./exodus]
type = Exodus
use_displaced = true
[../]
[]
[SolidMechanics]
[./tensormech]
disp_z = uz
disp_y = uy
disp_x = ux
[../]
[]
(modules/contact/test/tests/pdass_problems/ironing_penalty_al.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = iron.e
[]
[secondary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10001
new_block_name = 'secondary_lower'
sidesets = '10'
input = input_file
[]
[primary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10000
sidesets = '20'
new_block_name = 'primary_lower'
input = secondary
[]
patch_update_strategy = auto
patch_size = 20
allow_renumbering = false
[]
[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
[]
[real_weighted_gap]
order = FIRST
family = LAGRANGE
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[saved_x]
[]
[saved_y]
[]
[diag_saved_x]
[]
[diag_saved_y]
[]
[von_mises]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[disp_ramp_vert]
type = PiecewiseLinear
x = '0. 2. 8.'
y = '0. -1.0 -1.0'
[]
[disp_ramp_horz]
type = PiecewiseLinear
x = '0. 8.'
y = '0. 8.'
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
save_in = 'saved_x saved_y'
block = '1 2'
strain = FINITE
[]
[]
[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
[]
[real_weighted_gap_auxk]
type = PenaltyMortarUserObjectAux
variable = real_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'
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
block = '1 2'
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
block = '1 2'
[]
[von_mises_kernel]
#Calculates the von mises stress and assigns it to von_mises
type = RankTwoScalarAux
variable = von_mises
rank_two_tensor = stress
execute_on = timestep_end
scalar_type = VonMisesStress
block = '1 2'
[]
[]
# [VectorPostprocessors]
# [penalty_normal_pressure]
# type = NodalValueSampler
# variable = penalty_normal_pressure
# boundary = 10
# sort_by = id
# []
# []
[Postprocessors]
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[force_x]
type = NodalSum
boundary = 30
variable = saved_x
[]
[force_y]
type = NodalSum
boundary = 30
variable = saved_y
[]
[gap]
type = SideExtremeValue
value_type = min
variable = real_weighted_gap
boundary = 10
[]
[num_al]
type = NumAugmentedLagrangeIterations
[]
[]
[BCs]
[bot_x_disp]
type = DirichletBC
variable = disp_x
boundary = '40'
value = 0.0
preset = false
[]
[bot_y_disp]
type = DirichletBC
variable = disp_y
boundary = '40'
value = 0.0
preset = false
[]
[top_y_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = '30'
function = disp_ramp_vert
preset = false
[]
[top_x_disp]
type = FunctionDirichletBC
variable = disp_x
boundary = '30'
function = disp_ramp_horz
preset = false
[]
[]
[Materials]
[stuff1_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 6896
poissons_ratio = 0.32
[]
[stuff1_strain]
type = ComputeFiniteStrain
block = '2'
[]
[stuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[stuff2_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 689.6
poissons_ratio = 0.32
[]
[stuff2_strain]
type = ComputeFiniteStrain
block = '1'
[]
[stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-7
nl_rel_tol = 1e-7
l_tol = 1e-6
l_max_its = 7
nl_max_its = 300
start_time = 0.0
end_time = 6.5
dt = 0.0125
dtmin = 1e-5
[Predictor]
type = SimplePredictor
scale = 1.0
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
exodus = true
csv = true
# [chkfile]
# type = CSV
# start_time = 0.0
# execute_vector_postprocessors_on = FINAL
# []
[console]
type = Console
max_rows = 5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Problem]
type = AugmentedLagrangianContactFEProblem
[]
[UserObjects]
[friction_uo]
type = PenaltyFrictionUserObject
primary_boundary = 20
secondary_boundary = 10
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 = 5e5
penalty_friction = 1e4
slip_tolerance = 1e-05
penetration_tolerance = 1e-03
[]
[]
[Constraints]
[x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
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 = 20
secondary_boundary = 10
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
[]
[t_x]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
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
[]
[t_y]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
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/contact/test/tests/3d-mortar-contact/frictional-mortar-3d-penalty.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[AuxVariables]
[penalty_normal_pressure]
order = FIRST
family = LAGRANGE
[]
[penalty_frictional_pressure_one]
order = FIRST
family = LAGRANGE
[]
[accumulated_slip_one]
order = FIRST
family = LAGRANGE
[]
[penalty_frictional_pressure_two]
order = FIRST
family = LAGRANGE
[]
[accumulated_slip_two]
order = FIRST
family = LAGRANGE
[]
[]
[AuxKernels]
[penalty_normal_pressure_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
[]
[penalty_frictional_pressure_one_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure_one
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_frictional_pressure_two_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure_two
user_object = friction_uo
contact_quantity = tangential_pressure_two
[]
[penalty_accumulated_slip_two_auxk]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_two
user_object = friction_uo
contact_quantity = accumulated_slip_two
[]
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
allow_renumbering = false
[]
[Variables]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
[]
[]
[Materials]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e5
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e5
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[]
# Other object should mix formulations
[UserObjects]
[friction_uo]
type = PenaltyFrictionUserObject
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
friction_coefficient = 0.4
secondary_variable = disp_x
penalty = 1e8
penalty_friction = 5e6
[]
[]
[Constraints]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = friction_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = friction_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = friction_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
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 = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[tangential_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[tangential_dir_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_x
component = x
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[tangential_dir_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_y
component = y
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[tangential_dir_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_z
component = z
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = .025
dt = .025
dtmin = .001
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
l_max_its = 15
nl_max_its = 30
nl_rel_tol = 1e-12
nl_abs_tol = 1e-13
line_search = 'basic'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[]
[VectorPostprocessors]
[]
(modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_plane_strain_small.i)
#
# This test checks elastic stress calculations with mechanical and thermal
# strain using small strain formulation. Young's modulus is 3600, and Poisson's ratio is 0.2.
# The axisymmetric, plane strain 1D mesh is pulled with 1e-6 strain. Thus,
# the strain is [1e-6, 0, 1e-6] (xx, yy, zz). This gives stress of
# [5e-3, 2e-3, 5e-3]. After a temperature increase of 100 with alpha of
# 1e-8, the stress becomes [-1e-3, -4e-3, -1e-3].
#
[GlobalParams]
displacements = disp_x
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = line.e
[]
[Variables]
[./disp_x]
[../]
[]
[AuxVariables]
[./temp]
initial_condition = 580.0
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '580 580 680'
[../]
[./disp_x]
type = PiecewiseLinear
x = '0 1'
y = '0 2e-6'
[../]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[./ps]
planar_formulation = PLANE_STRAIN
strain = SMALL
generate_output = 'strain_xx strain_zz stress_xx stress_yy stress_zz'
eigenstrain_names = eigenstrain
[../]
[../]
[../]
[]
[AuxKernels]
[./temp]
type = FunctionAux
variable = temp
function = temp
execute_on = 'timestep_begin'
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
boundary = 1
value = 0
variable = disp_x
[../]
[./disp_x]
type = FunctionDirichletBC
boundary = 2
function = disp_x
variable = disp_x
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 3600
poissons_ratio = 0.2
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-8
temperature = temp
stress_free_temperature = 580
eigenstrain_name = eigenstrain
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_max_its = 50
l_tol = 1e-6
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0
end_time = 2
num_steps = 2
[]
[Outputs]
exodus = true
console = true
[]
(modules/xfem/test/tests/moving_interface/verification/2D_xy_homog1mat.i)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #
# XFEM Moving Interface Verification Problem
# Dimensionality: 2D
# Coordinate System: xy
# Material Numbers/Types: homogeneous 1 material, 2 region
# Element Order: 1st
# Interface Characteristics: u independent, prescribed level set function
# Description:
# Transient 2D heat transfer problem in Cartesian coordinates designed with
# the Method of Manufactured Solutions. This problem was developed to verify
# XFEM performance on linear elements in the presence of a moving interface
# sweeping across the x-y coordinates of a system with homogeneous material
# properties. This problem can be exactly evaluated by FEM/Moose without the
# moving interface. Both the temperature and level set function are designed
# to be linear to attempt to minimize error between the Moose/exact solution
# and XFEM results.
# Results:
# The temperature at the bottom left boundary (x=0, y=0) exhibits the largest
# difference between the FEM/Moose solution and XFEM results. We present the
# XFEM results at this location with 10 digits of precision:
# Time Expected Temperature XFEM Calculated Temperature
# 0.2 440 440
# 0.4 480 479.9998791
# 0.6 520 519.9995307
# 0.8 560 559.9989724
# 1.0 600 599.9984541
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[XFEM]
qrule = moment_fitting
output_cut_plane = true
[]
[UserObjects]
[./level_set_cut_uo]
type = LevelSetCutUserObject
level_set_var = ls
heal_always = true
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./ls]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./heat_cond]
type = MatDiffusion
variable = u
diffusivity = diffusion_coefficient
[../]
[./vol_heat_src]
type = BodyForce
variable = u
function = src_func
[../]
[./mat_time_deriv]
type = TestMatTimeDerivative
variable = u
mat_prop_value = rhoCp
[../]
[]
[AuxKernels]
[./ls_function]
type = FunctionAux
variable = ls
function = ls_func
[../]
[]
[Constraints]
[./xfem_constraints]
type = XFEMSingleVariableConstraint
variable = u
geometric_cut_userobject = 'level_set_cut_uo'
use_penalty = true
alpha = 1e5
[../]
[]
[Functions]
[./src_func]
type = ParsedFunction
expression = '10*(-100*x-100*y+200)'
[../]
[./neumann_func]
type = ParsedFunction
expression = '1.5*100*t'
[../]
[./dirichlet_right_func]
type = ParsedFunction
expression = '(-100*y+100)*t+400'
[../]
[./dirichlet_top_func]
type = ParsedFunction
expression = '(-100*x+100)*t+400'
[../]
[./ls_func]
type = ParsedFunction
expression = '-0.5*(x+y) + 1.04 - 0.2*t'
[../]
[]
[Materials]
[./mat_time_deriv_prop]
type = GenericConstantMaterial
prop_names = 'rhoCp'
prop_values = 10
[../]
[./therm_cond_prop]
type = GenericConstantMaterial
prop_names = 'diffusion_coefficient'
prop_values = 1.5
[../]
[]
[BCs]
[./left_du]
type = FunctionNeumannBC
variable = u
boundary = 'left'
function = neumann_func
[../]
[./right_u]
type = FunctionDirichletBC
variable = u
boundary = 'right'
function = dirichlet_right_func
[../]
[./bottom_du]
type = FunctionNeumannBC
variable = u
boundary = 'bottom'
function = neumann_func
[../]
[./top_u]
type = FunctionDirichletBC
variable = u
boundary = 'top'
function = dirichlet_top_func
[../]
[]
[ICs]
[./u_ic]
type = ConstantIC
value = 400
variable = u
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_tol = 1.0e-6
nl_max_its = 15
nl_rel_tol = 1.0e-10
nl_abs_tol = 1.0e-9
start_time = 0.0
dt = 0.2
end_time = 1.0
max_xfem_update = 1
[]
[Outputs]
time_step_interval = 1
execute_on = 'initial timestep_end'
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(test/tests/postprocessors/interface_diffusive_flux/interface_diffusive_flux.i)
postprocessor_type = InterfaceDiffusiveFluxAverage
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 6
xmax = 3
ny = 9
ymax = 3
elem_type = QUAD4
[]
[subdomain_id]
input = gen
type = SubdomainBoundingBoxGenerator
bottom_left = '0 0 0'
top_right = '2 1 0'
block_id = 1
[]
[interface]
input = subdomain_id
type = SideSetsBetweenSubdomainsGenerator
primary_block = '0'
paired_block = '1'
new_boundary = 'interface'
[]
[]
[Functions]
[fn_exact]
type = ParsedFunction
expression = 'x*x+y*y'
[]
[]
[Variables]
[u]
block = 0
[]
[v]
block = 1
[]
[]
[Kernels]
[diff_u]
type = Diffusion
variable = u
[]
[body_u]
type = BodyForce
variable = u
function = 1
[]
[diff_v]
type = Diffusion
variable = v
[]
[body_v]
type = BodyForce
variable = v
function = -1
[]
[]
# Not a diffusion interface but can test the postprocessor anyway
[InterfaceKernels]
[reaction]
type = InterfaceReaction
kb = 1
kf = 2
variable = u
neighbor_var = v
boundary = 'interface'
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = fn_exact
[]
[]
[Postprocessors]
[diffusive_flux]
type = ${postprocessor_type}
variable = u
neighbor_variable = v
diffusivity = 1
execute_on = TIMESTEP_END
boundary = 'interface'
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
file_base = ${raw ${postprocessor_type} _fe}
exodus = true
[]
(tutorials/darcy_thermo_mech/step11_action/problems/step11.i)
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 200
ymax = 0.304 # Length of test chamber
xmax = 0.0257 # Test chamber radius
[]
coord_type = RZ
[]
[Variables]
[pressure]
[]
[temperature]
initial_condition = 300 # Start at room temperature
[]
[]
[DarcyThermoMech]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
# This block adds all of the proper Kernels, strain calculators, and Variables
# for SolidMechanics in the correct coordinate system (autodetected)
add_variables = true
strain = FINITE
eigenstrain_names = eigenstrain
use_automatic_differentiation = true
generate_output = 'vonmises_stress elastic_strain_xx elastic_strain_yy strain_xx strain_yy'
[]
[]
[BCs]
[inlet_temperature]
type = FunctionDirichletBC
variable = temperature
boundary = bottom
function = 'if(t<0,350+50*t,350)'
[]
[outlet_temperature]
type = HeatConductionOutflow
variable = temperature
boundary = top
[]
[inlet]
type = DirichletBC
variable = pressure
boundary = bottom
value = 4000 # (Pa) From Figure 2 from paper. First data point for 1mm spheres.
[]
[outlet]
type = DirichletBC
variable = pressure
boundary = top
value = 0 # (Pa) Gives the correct pressure drop from Figure 2 for 1mm spheres
[]
[hold_inlet]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0
[]
[hold_center]
type = DirichletBC
variable = disp_r
boundary = left
value = 0
[]
[hold_outside]
type = DirichletBC
variable = disp_r
boundary = right
value = 0
[]
[]
[Materials]
viscosity_file = data/water_viscosity.csv
density_file = data/water_density.csv
thermal_conductivity_file = data/water_thermal_conductivity.csv
specific_heat_file = data/water_specific_heat.csv
thermal_expansion_file = data/water_thermal_expansion.csv
[column]
type = PackedColumn
block = 0
temperature = temperature
radius = 1.15
fluid_viscosity_file = ${viscosity_file}
fluid_density_file = ${density_file}
fluid_thermal_conductivity_file = ${thermal_conductivity_file}
fluid_specific_heat_file = ${specific_heat_file}
fluid_thermal_expansion_file = ${thermal_expansion_file}
[]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 200e9 # (Pa) from wikipedia
poissons_ratio = .3 # from wikipedia
[]
[elastic_stress]
type = ADComputeFiniteStrainElasticStress
[]
[thermal_strain]
type = ADComputeThermalExpansionEigenstrain
stress_free_temperature = 300
eigenstrain_name = eigenstrain
temperature = temperature
thermal_expansion_coeff = 1e-5
[]
[]
[Postprocessors/average_temperature]
type = ElementAverageValue
variable = temperature
[]
[Problem]
type = FEProblem
[]
[Executioner]
type = Transient
end_time = 200
dt = 0.25
start_time = -1
solve_type = PJFNK
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = none
automatic_scaling = true
compute_scaling_once = false
steady_state_tolerance = 1e-7
steady_state_detection = true
[TimeStepper]
type = FunctionDT
function = 'if(t<0,0.1,0.25)'
[]
[]
[Outputs/out]
type = Exodus
elemental_as_nodal = true
[]
(modules/contact/test/tests/cohesive_zone_model/mortar_czm.i)
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 2
xmax = 1
ymax = 1
nx = 5
ny = 5
boundary_name_prefix = bottom
[]
[msh_id]
type = SubdomainIDGenerator
input = msh
subdomain_id = 1
[]
[msh_two]
type = GeneratedMeshGenerator
dim = 2
xmax = 1
ymin = 1
ymax = 2
nx = 5
ny = 5
boundary_name_prefix = top
boundary_id_offset = 10
[]
[msh_two_id]
type = SubdomainIDGenerator
input = msh_two
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'msh_id msh_two_id'
[]
[top_node]
type = ExtraNodesetGenerator
coord = '0 2 0'
input = combined
new_boundary = top_node
[]
[bottom_node]
type = ExtraNodesetGenerator
coord = '0 0 0'
input = top_node
new_boundary = bottom_node
[]
# Build subdomains
[secondary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10001
new_block_name = 'secondary_lower'
sidesets = 'bottom_top'
input = bottom_node
[]
[primary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10000
sidesets = 'top_bottom'
new_block_name = 'primary_lower'
input = secondary
[]
allow_renumbering = false
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
generate_output = 'stress_yy'
[all]
strain = FINITE
add_variables = true
use_automatic_differentiation = true
decomposition_method = TaylorExpansion
block = '1 2'
[]
[]
[]
[]
[BCs]
[fix_x]
type = DirichletBC
preset = true
value = 0.0
boundary = bottom_node
variable = disp_x
[]
[fix_top]
type = DirichletBC
preset = true
boundary = top_top
variable = disp_x
value = 0
[]
[top]
type = FunctionDirichletBC
boundary = top_top
variable = disp_y
function = 'if(t<=0.3,t,if(t<=0.6,0.3-(t-0.3),0.6-t))'
preset = true
[]
[bottom]
type = DirichletBC
boundary = bottom_bottom
variable = disp_y
value = 0
preset = true
[]
[]
[AuxVariables]
[]
[AuxKernels]
[]
[Materials]
[stress]
type = ADComputeFiniteStrainElasticStress
block = '1 2'
[]
[elasticity_tensor]
type = ADComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
block = '1 2'
[]
[normal_strength]
type = GenericFunctionMaterial
prop_names = 'N'
prop_values = 'if(x<0.5,1,100)*1e4'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
l_max_its = 2
l_tol = 1e-14
nl_max_its = 30
nl_rel_tol = 1e-11
nl_abs_tol = 1e-11
start_time = 0.0
dt = 0.01
end_time = 0.05
dtmin = 0.01
[]
[Outputs]
exodus = true
[]
[UserObjects]
[czm_uo]
type = BilinearMixedModeCohesiveZoneModel
primary_boundary = 'top_bottom'
secondary_boundary = 'bottom_top'
primary_subdomain = 10000
secondary_subdomain = 10001
disp_x = disp_x
disp_y = disp_y
friction_coefficient = 0.1 # with 2.0 works
secondary_variable = disp_x
penalty = 0e6
penalty_friction = 1e4
use_physical_gap = true
correct_edge_dropping = true
normal_strength = N
shear_strength = 1e3
viscosity = 1e-3
penalty_stiffness = 1e6
power_law_parameter = 2.2
GI_c = 1e3
GII_c = 1e2
displacements = 'disp_x disp_y'
[]
[]
[Constraints]
[x]
type = NormalMortarMechanicalContact
primary_boundary = 'top_bottom'
secondary_boundary = 'bottom_top'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = czm_uo
correct_edge_dropping = true
[]
[y]
type = NormalMortarMechanicalContact
primary_boundary = 'top_bottom'
secondary_boundary = 'bottom_top'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = czm_uo
correct_edge_dropping = true
[]
[c_x]
type = MortarGenericTraction
primary_boundary = 'top_bottom'
secondary_boundary = 'bottom_top'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
cohesive_zone_uo = czm_uo
correct_edge_dropping = true
[]
[c_y]
type = MortarGenericTraction
primary_boundary = 'top_bottom'
secondary_boundary = 'bottom_top'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
cohesive_zone_uo = czm_uo
correct_edge_dropping = true
[]
[]
(modules/solid_mechanics/test/tests/neml2/plasticity/perfect.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = true
[]
[]
[]
[]
[NEML2]
input = 'perfect_neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL POSTPROCESSOR POSTPROCESSOR MATERIAL'
moose_inputs = ' neml2_strain time time plastic_strain'
neml2_inputs = ' forces/E forces/t old_forces/t old_state/internal/Ep'
moose_output_types = 'MATERIAL MATERIAL'
moose_outputs = ' neml2_stress plastic_strain'
neml2_outputs = ' state/S state/internal/Ep'
moose_derivative_types = 'MATERIAL'
moose_derivatives = 'neml2_jacobian'
neml2_derivatives = 'state/S forces/E'
[]
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[convert_strain]
type = RankTwoTensorToSymmetricRankTwoTensor
from = 'mechanical_strain'
to = 'neml2_strain'
[]
[stress]
type = ComputeLagrangianObjectiveCustomSymmetricStress
custom_small_stress = 'neml2_stress'
custom_small_jacobian = 'neml2_jacobian'
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
preset = false
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 1e-3
dtmin = 1e-3
num_steps = 5
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al_test_nochange.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = hertz_cyl_finer.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 = AugmentedLagrangianContactFEProblem
extra_tag_vectors = 'ref'
maximum_lagrangian_update_iterations = 1000
[]
[AuxVariables]
[penalty_normal_pressure]
[]
[penalty_frictional_pressure]
[]
[accumulated_slip_one]
[]
[tangential_vel_one]
[]
[normal_gap]
[]
[normal_lm]
[]
[saved_x]
[]
[saved_y]
[]
[active]
[]
[dual_var]
use_dual = true
block = '10001'
[]
[]
[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'
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
save_in = 'saved_x saved_y'
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
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = friction_uo
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
variable = normal_gap
user_object = friction_uo
contact_quantity = normal_gap
boundary = 3
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_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
[]
[active_set_size]
type = NodalSum
variable = active
[]
[]
[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 = 1e8
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 = 'NEWTON'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = -pc_type
petsc_options_value = lu
line_search = 'none'
nl_abs_tol = 1e-12
nl_rel_tol = 1e-8
nl_max_its = 1300
l_tol = 1e-05
l_abs_tol = 1e-13
start_time = 0.0
end_time = 1.0 # 3.5
dt = 0.1
dtmin = 0.001
[Predictor]
type = SimplePredictor
scale = 1.0
[]
automatic_scaling = true
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[VectorPostprocessors]
[surface]
type = NodalValueSampler
use_displaced_mesh = false
variable = 'disp_x disp_y penalty_normal_pressure normal_gap'
boundary = '3'
sort_by = id
[]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
exodus = true
csv = false
[vectorpp_output]
type = CSV
create_final_symlink = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
[]
[UserObjects]
[friction_uo]
type = PenaltyWeightedGapUserObject
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
disp_x = disp_x
disp_y = disp_y
penalty = 1e7
penetration_tolerance = 1e-8
use_mortar_scaled_gap = true
aux_lm = dual_var
[]
[]
[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
[]
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/pull_push_h.i)
# A column of elements has its bottom pulled down, and then pushed up again.
# Hardening of the tensile strength means that the top element also
# experiences plastic deformation
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 2
xmin = -10
xmax = 10
ymin = -10
ymax = 10
zmin = -100
zmax = 0
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
[../]
[]
[BCs]
[./no_x2]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.0
[../]
[./no_x1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./no_y1]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./no_y2]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[../]
[./topz]
type = DirichletBC
variable = disp_z
boundary = front
value = 0
[../]
[./bottomz]
type = FunctionDirichletBC
variable = disp_z
boundary = back
function = 'if(t>1,-2.0+t,-t)'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strainp_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xx
index_i = 0
index_j = 0
[../]
[./strainp_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xy
index_i = 0
index_j = 1
[../]
[./strainp_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xz
index_i = 0
index_j = 2
[../]
[./strainp_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yy
index_i = 1
index_j = 1
[../]
[./strainp_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yz
index_i = 1
index_j = 2
[../]
[./strainp_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zz
index_i = 2
index_j = 2
[../]
[./straint_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xx
index_i = 0
index_j = 0
[../]
[./straint_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xy
index_i = 0
index_j = 1
[../]
[./straint_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xz
index_i = 0
index_j = 2
[../]
[./straint_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yy
index_i = 1
index_j = 1
[../]
[./straint_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yz
index_i = 1
index_j = 2
[../]
[./straint_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zz
index_i = 2
index_j = 2
[../]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[UserObjects]
[./coh_irrelevant]
type = SolidMechanicsHardeningCubic
value_0 = 2E6
value_residual = 1E6
internal_limit = 0.01
[../]
[./tanphi]
type = SolidMechanicsHardeningCubic
value_0 = 0.5
value_residual = 0.2
internal_limit = 0.01
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.166666666667
[../]
[./t_strength]
type = SolidMechanicsHardeningCubic
value_0 = 0
value_residual = 1E8
internal_limit = 0.1
[../]
[./c_strength]
type = SolidMechanicsHardeningCubic
value_0 = 1E8
value_residual = 0.0
internal_limit = 0.01
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '6.4E9 6.4E9' # young 16MPa, Poisson 0.25
[../]
[./strain]
type = ComputeIncrementalStrain
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh_irrelevant
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
max_NR_iterations = 1000
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-5
perfect_guess = false
min_step_size = 0.1
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
#petsc_options = '-snes_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[../]
[]
[Executioner]
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
line_search = bt
nl_abs_tol = 1E-2
nl_rel_tol = 1e-15
l_tol = 1E-10
l_max_its = 100
nl_max_its = 100
end_time = 3.0
dt = 0.1
type = Transient
[]
[Outputs]
file_base = pull_push_h
exodus = true
csv = true
[]
(modules/contact/test/tests/frictional/sliding_elastic_blocks_2d/sliding_elastic_blocks_2d.i)
[Mesh]
file = sliding_elastic_blocks_2d.e
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[./accum_slip]
[../]
[./tang_force_x]
[../]
[./tang_force_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
save_in = 'saved_x saved_y'
diag_save_in = 'diag_saved_x diag_saved_y'
[../]
[]
[AuxKernels]
[./inc_slip_x]
type = PenetrationAux
variable = inc_slip_x
quantity = incremental_slip_x
boundary = 3
paired_boundary = 2
[../]
[./inc_slip_y]
type = PenetrationAux
variable = inc_slip_y
quantity = incremental_slip_y
boundary = 3
paired_boundary = 2
[../]
[./accum_slip]
type = PenetrationAux
variable = accum_slip
execute_on = timestep_end
quantity = accumulated_slip
boundary = 3
paired_boundary = 2
[../]
[./tangential_force_x]
type = PenetrationAux
variable = tang_force_x
execute_on = timestep_end
quantity = tangential_force_x
boundary = 3
paired_boundary = 2
[../]
[./tangential_force_y]
type = PenetrationAux
variable = tang_force_y
execute_on = timestep_end
quantity = tangential_force_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
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[../]
[./ref_resid_x]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_x
[../]
[./ref_resid_y]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_y
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = -0.005
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e7
poissons_ratio = 0.3
[../]
[./right]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.01
end_time = 0.05
num_steps = 1000
nl_rel_tol = 1e-16
nl_abs_tol = 1e-09
dtmin = 0.01
l_tol = 1e-3
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
file_base = sliding_elastic_blocks_2d_out
print_linear_residuals = true
perf_graph = true
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
secondary = 3
primary = 2
model = coulomb
friction_coefficient = '0.25'
penalty = 1e6
[../]
[]
[Dampers]
[./contact_slip]
type = ContactSlipDamper
secondary = 3
primary = 2
[../]
[]
(modules/solid_mechanics/test/tests/finite_strain_elastic/finite_strain_fake_plastic.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = '0.01 * t'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
[../]
[]
[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
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = tdisp
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./stress]
# note there are no plastic_models so this is actually elasticity
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1E-5
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomeramg
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/incremental_slip/incremental_slip.i)
[Mesh]
file = incremental_slip.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
incremental = true
add_variables = true
[../]
[]
[Functions]
[./secondary_x]
type = PiecewiseLinear
x = '0 1 2 3 4 5 6 7 8 9'
y = '0 0 0.5 0 0 0 -0.25 0 0.5 0'
[../]
[./secondary_y]
type = PiecewiseLinear
x = '0 1 9'
y = '0 -0.15 -0.15'
[../]
[./secondary_z]
type = PiecewiseLinear
x = '0 1 2 3 4 5 6 7 8 9'
y = '0 0 -0.5 0 0 0 0.25 0 -0.5 0'
[../]
[./primary_x]
type = PiecewiseLinear
x = '0 1 2 3 4 5 6 7 8 9'
y = '0 0 0 0 0.5 0 0.25 0 0.5 0'
[../]
[./primary_y]
type = PiecewiseLinear
x = '0 9'
y = '0 0'
[../]
[./primary_z]
type = PiecewiseLinear
x = '0 1 2 3 4 5 6 7 8 9'
y = '0 0 0 0 0.5 0 -0.25 0 -0.5 0'
[../]
[]
[AuxVariables]
[./inc_slip_x]
order = FIRST
family = LAGRANGE
[../]
[./inc_slip_y]
order = FIRST
family = LAGRANGE
[../]
[./inc_slip_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./inc_slip_x]
type = PenetrationAux
variable = inc_slip_x
quantity = incremental_slip_x
boundary = 3
paired_boundary = 2
[../]
[./inc_slip_y]
type = PenetrationAux
variable = inc_slip_y
quantity = incremental_slip_y
boundary = 3
paired_boundary = 2
[../]
[./inc_slip_z]
type = PenetrationAux
variable = inc_slip_z
quantity = incremental_slip_z
boundary = 3
paired_boundary = 2
[../]
[]
[Contact]
[./dummy_name]
primary = 2
secondary = 3
penalty = 1e7
[../]
[]
[BCs]
[./secondary_x]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = 4
function = secondary_x
[../]
[./secondary_y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 4
function = secondary_y
[../]
[./secondary_z]
type = FunctionDirichletBC
variable = disp_z
preset = false
boundary = 4
function = secondary_z
[../]
[./primary_x]
type = FunctionDirichletBC
variable = disp_x
boundary = '1 2'
function = primary_x
[../]
[./primary_y]
type = FunctionDirichletBC
variable = disp_y
boundary = '1 2'
function = primary_y
[../]
[./primary_z]
type = FunctionDirichletBC
variable = disp_z
boundary = '1 2'
function = primary_z
[../]
[] # BCs
[Materials]
[./elasticity_tensor_1]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.0
[../]
[./stress_1]
type = ComputeFiniteStrainElasticStress
block = 1
[../]
[./elasticity_tensor_2]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.0
[../]
[./stress_2]
type = ComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-8
l_max_its = 100
nl_max_its = 10
dt = 1.0
num_steps = 9
[] # Executioner
[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/contact/test/tests/mortar_cartesian_lms/two_block_1st_order_constraint_lm_xy_friction_vcp.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
theta = 0
velocity = 0.1
refine = 3
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.35
xmax = -0.05
ymin = -1
ymax = 0
nx = 1
ny = 3
elem_type = QUAD4
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3'
new_boundary = '10 11 12 13'
[]
[left_block_sideset_names]
type = RenameBoundaryGenerator
input = left_block_sidesets
old_boundary = '10 11 12 13'
new_boundary = 'l_bottom l_right l_top l_left'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sideset_names
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.3
ymin = -1
ymax = 0
nx = 1
ny = 2
elem_type = QUAD4
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3'
new_boundary = '20 21 22 23'
[]
[right_block_sideset_names]
type = RenameBoundaryGenerator
input = right_block_sidesets
old_boundary = '20 21 22 23'
new_boundary = 'r_bottom r_right r_top r_left'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sideset_names
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[left_lower]
type = LowerDBlockFromSidesetGenerator
input = combined_mesh
sidesets = '11'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[right_lower]
type = LowerDBlockFromSidesetGenerator
input = left_lower
sidesets = '23'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[rotate_mesh]
type = TransformGenerator
input = right_lower
transform = ROTATE
vector_value = '0 0 ${theta}'
[]
uniform_refine = ${refine}
[]
[Variables]
[lm_x]
block = 'secondary_lower'
use_dual = true
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
[]
[]
[AuxVariables]
[normal_lm]
family = LAGRANGE
order = FIRST
[]
[tangent_lm]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[normal_lm]
type = MortarPressureComponentAux
variable = normal_lm
primary_boundary = '23'
secondary_boundary = '11'
lm_var_x = lm_x
lm_var_y = lm_y
component = 'NORMAL'
boundary = '11'
[]
[tangent_lm]
type = MortarPressureComponentAux
variable = tangent_lm
primary_boundary = '23'
secondary_boundary = '11'
lm_var_x = lm_x
lm_var_y = lm_y
component = 'tangent1'
boundary = '11'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = ParsedFunction
expression = '${velocity} * t * cos(${theta}/180*pi)'
[]
[vertical_movement]
type = ParsedFunction
expression = '${velocity} * t * sin(${theta}/180*pi)'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = horizontal_movement
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 21
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 21
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 13
function = vertical_movement
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e4
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e8
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeFrictionalForceCartesianLMMechanicalContact # ComputeCartesianLMFrictionMechanicalContact
# type = ComputeWeightedGapLMMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_x = lm_x
lm_y = lm_y
variable = lm_x # This can be anything really
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
correct_edge_dropping = true
mu = 1.0
c_t = 1.0e5
[]
[normal_x]
type = CartesianMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_y]
type = CartesianMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[]
[Preconditioning]
[vcp]
type = VCP
full = true
lm_variable = 'lm_x lm_y'
primary_variable = 'disp_x disp_y'
preconditioner = 'LU'
is_lm_coupling_diagonal = false
adaptive_condensation = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = ' 1e-8 NONZERO 1e-15'
line_search = none
dt = 0.1
dtmin = 0.1
end_time = 1.0
l_max_its = 100
nl_max_its = 20
nl_rel_tol = 1e-8
snesmf_reuse_base = false
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[avg_disp_x]
type = ElementAverageValue
variable = disp_x
block = '1 2'
[]
[avg_disp_y]
type = ElementAverageValue
variable = disp_y
block = '1 2'
[]
[max_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
[]
[max_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
[]
[min_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
value_type = min
[]
[min_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
value_type = min
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[]
[tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[max_norma_lm]
type = ElementExtremeValue
variable = normal_lm
[]
[min_norma_lm]
type = ElementExtremeValue
variable = normal_lm
value_type = min
[]
[]
[VectorPostprocessors]
[normal_lm]
type = NodalValueSampler
block = 'secondary_lower'
variable = normal_lm
sort_by = 'y'
[]
[tangent_lm]
type = NodalValueSampler
block = 'secondary_lower'
variable = tangent_lm
sort_by = 'y'
[]
[]
(test/tests/ics/from_exodus_solution/elem_part1.i)
# We run a simple problem (5 time steps and save off the solution)
# In part2, we load the solution and solve a steady problem. The test check, that the initial state in part 2 is the same as the last state from part1
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 20
ny = 20
[]
[Functions]
[exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[]
[forcing_fn]
type = ParsedFunction
expression = -4+(x*x+y*y)
[]
[]
[AuxVariables]
[e]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[ak]
type = FunctionAux
variable = e
function = exact_fn
[]
[]
[Variables]
active = 'u'
[u]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
active = 'ie diff ffn'
[ie]
type = TimeDerivative
variable = u
[]
[diff]
type = Diffusion
variable = u
[]
[ffn]
type = BodyForce
variable = u
function = forcing_fn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.2
start_time = 0
num_steps = 5
[]
[Outputs]
exodus = true
checkpoint = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform16.i)
# Using CappedMohrCoulomb with compressive failure only
# A single element is incrementally compressed in the z and x directions
# This causes the return direction to be along the hypersurface sigma_I = sigma_II
# and the resulting stresses are checked to lie on the expected yield surface
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-0.4*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-0.4*z*t'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 3
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 2.0'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.5
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 0.1
type = Transient
[]
[Outputs]
file_base = small_deform16
csv = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_aprismatic_capyramidal.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[AuxVariables]
[temperature]
[]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[fp_xx]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_3]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_4]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_5]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_6]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_0]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_3]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental= true
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[temperature]
type = ConstantAux
variable = temperature
value= 300
[]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_xx]
type = RankTwoAux
variable = fp_xx
rank_two_tensor = plastic_deformation_gradient
index_j = 0
index_i = 0
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[tau_3]
type = MaterialStdVectorAux
variable = resolved_shear_stress_3
property = applied_shear_stress
index = 3
execute_on = timestep_end
[]
[tau_4]
type = MaterialStdVectorAux
variable = resolved_shear_stress_4
property = applied_shear_stress
index = 4
execute_on = timestep_end
[]
[tau_5]
type = MaterialStdVectorAux
variable = resolved_shear_stress_5
property = applied_shear_stress
index = 5
execute_on = timestep_end
[]
[tau_6]
type = MaterialStdVectorAux
variable = resolved_shear_stress_6
property = applied_shear_stress
index = 6
execute_on = timestep_end
[]
[slip_resistance_0]
type = MaterialStdVectorAux
variable = slip_resistance_0
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[slip_resistance_3]
type = MaterialStdVectorAux
variable = slip_resistance_3
property = slip_resistance
index = 3
execute_on = timestep_end
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = disp_y
preset = true
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.001*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.622e5 9.18e4 6.88e4 1.622e5 6.88e4 1.805e5 4.67e4 4.67e4 4.67e4' #alpha Ti, Alankar et al. Acta Materialia 59 (2011) 7003-7009
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityHCPDislocationSlipBeyerleinUpdate
number_slip_systems = 15
slip_sys_file_name = hcp_aprismatic_capyramidal_slip_sys.txt
unit_cell_dimension = '2.934e-7 2.934e-7 4.657e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
temperature = temperature
initial_forest_dislocation_density = 15.0e5
initial_substructure_density = 1.0e3
slip_system_modes = 2
number_slip_systems_per_mode = '3 12'
lattice_friction_per_mode = '98 224' #Knezevic et al MSEA 654 (2013)
effective_shear_modulus_per_mode = '4.7e4 4.7e4' #Ti, in MPa, https://materialsproject.org/materials/mp-46/
burgers_vector_per_mode = '2.934e-7 6.586e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
slip_generation_coefficient_per_mode = '1.25e5 2.25e7' #from Beyerlein and Tome 2008 IJP
normalized_slip_activiation_energy_per_mode = '3.73e-3 3.2e-2' #from Beyerlein and Tome 2008 IJP
slip_energy_proportionality_factor_per_mode = '330 100' #from Beyerlein and Tome 2008 IJP
substructure_rate_coefficient_per_mode = '355 0.4' #from Capolungo et al MSEA (2009)
applied_strain_rate = 0.001
gamma_o = 1.0e-3
Hall_Petch_like_constant_per_mode = '0.2 0.2' #Estimated to match graph in Capolungo et al MSEA (2009), Figure 2
grain_size = 20.0e-3 #20 microns, Beyerlein and Tome IJP (2008)
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[fp_xx]
type = ElementAverageValue
variable = fp_xx
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[tau_3]
type = ElementAverageValue
variable = resolved_shear_stress_3
[]
[tau_4]
type = ElementAverageValue
variable = resolved_shear_stress_4
[]
[tau_5]
type = ElementAverageValue
variable = resolved_shear_stress_5
[]
[tau_6]
type = ElementAverageValue
variable = resolved_shear_stress_6
[]
[slip_resistance_0]
type = ElementAverageValue
variable = slip_resistance_0
[]
[slip_resistance_3]
type = ElementAverageValue
variable = slip_resistance_3
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.5
dtmin = 1.0e-2
dtmax = 10.0
end_time = 5
[]
[Outputs]
csv = true
[]
(modules/combined/test/tests/evolving_mass_density/uniform_expand_compress_test_tensors.i)
# Element mass tests
# This series of tests is designed to compute the mass of elements based on
# an evolving mass density calculation. The tests consist of expansion and compression
# of the elastic patch test model along each axis, uniform expansion and compression,
# and shear in each direction. The expansion and compression tests change the volume of
# the elements. The corresponding change in density should compensate for this so the
# mass remains constant. The shear tests should not result in a volume change, and this
# is checked too. The mass calculation is done with the post processor called Mass.
# The tests/file names are as follows:
# Expansion and compression along a single axis
# expand_compress_x_test_out.e
# expand_compress_y_test_out.e
# expand_compress_z_test_out.e
# Volumetric expansion and compression
# uniform_expand_compress_test.i
# Zero volume change shear along each axis
# shear_x_test_out.e
# shear_y_test_out.e
# shear_z_test_out.e
# The resulting mass calculation for these tests should always be = 1.
# This test is a duplicate of the uniform_expand_compress_test.i test for solid mechanics, and the
# output of this tensor mechanics test is compared to the original
# solid mechanics output. The duplication is necessary to test the
# migrated tensor mechanics version while maintaining tests for solid mechanics.
[Mesh]
file = elastic_patch.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./rampConstant2]
type = PiecewiseLinear
x = '0.00 1.00 2.0 3.00'
y = '0.00 0.25 0.0 -0.25'
scale_factor = 1
[../]
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./TensorMechanics]
[../]
[]
[BCs]
[./9_y]
type = DirichletBC
variable = disp_y
boundary = 9
value = 0
[../]
[./10_y]
type = DirichletBC
variable = disp_x
boundary = 10
value = 0
[../]
[./14_y]
type = DirichletBC
variable = disp_z
boundary = 14
value = 0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 11
function = rampConstant2
[../]
[./front]
type = FunctionDirichletBC
variable = disp_z
preset = false
boundary = 13
function = rampConstant2
[../]
[./side]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = 12
function = rampConstant2
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2 3 4 5 6 7'
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./small_strain]
type = ComputeSmallStrain
block = ' 1 2 3 4 5 6 7'
[../]
[./elastic_stress]
type = ComputeLinearElasticStress
block = '1 2 3 4 5 6 7'
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_abs_tol = 1e-10
l_max_its = 20
start_time = 0.0
dt = 1.0
num_steps = 3
end_time =3.0
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
file_base = uniform_expand_compress_test_out
[../]
[]
[Postprocessors]
[./Mass]
type = Mass
variable = disp_x
execute_on = 'initial timestep_end'
[../]
[]
(modules/contact/test/tests/nodal_area/nodal_area_Hex27.i)
[Mesh]
file = nodal_area_Hex27.e
[]
[GlobalParams]
order = SECOND
displacements = 'displ_x displ_y displ_z'
[]
[Functions]
[./disp]
type = PiecewiseLinear
x = '0 1'
y = '0 20e-6'
[../]
[]
[Variables]
[./displ_x]
[../]
[./displ_y]
[../]
[./displ_z]
[../]
[]
[AuxVariables]
[./react_x]
[../]
[./react_y]
[../]
[./react_z]
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
incremental = true
save_in = 'react_x react_y react_z'
add_variables = true
strain = FINITE
generate_output = 'stress_xx'
[../]
[]
[BCs]
[./move_right]
type = FunctionDirichletBC
boundary = '1'
variable = displ_x
function = disp
[../]
[./fixed_x]
type = DirichletBC
boundary = '3 4'
variable = displ_x
value = 0
[../]
[./fixed_y]
type = DirichletBC
boundary = 10
variable = displ_y
value = 0
[../]
[./fixed_z]
type = DirichletBC
boundary = 11
variable = displ_z
value = 0
[../]
[]
[Contact]
[./dummy_name]
primary = 3
secondary = 2
penalty = 1e8
tangential_tolerance = 1e-4
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
#petsc_options_iname = '-snes_type -snes_ls -snes_linesearch_type -ksp_gmres_restart -pc_type'
#petsc_options_value = 'ls basic basic 201 lu'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_abs_tol = 1e-7
nl_rel_tol = 1e-6
l_tol = 1e-4
l_max_its = 40
start_time = 0.0
dt = 1.0
end_time = 1.0
num_steps = 100
[./Quadrature]
order = THIRD
[../]
[]
[Postprocessors]
[./react_x]
type = NodalSum
variable = react_x
boundary = 1
[../]
[./total_area]
type = NodalSum
variable = nodal_area
boundary = 2
[../]
[]
[Outputs]
exodus = true
[]
(test/tests/controls/time_periods/bcs/bcs_enable_disable.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[./right2]
type = FunctionDirichletBC
variable = u
boundary = right
function = (y*(t-1))+1
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
[Controls/period0]
type = TimePeriod
enable_objects = 'BCs::right'
disable_objects = 'BCs::right2'
start_time = '0'
end_time = '0.5'
execute_on = 'initial timestep_begin'
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform12.i)
# Using CappedMohrCoulomb with compressive failure only
# checking for small deformation
# A single element is stretched equally in all directions.
# This causes the return direction to be along the sigma_I = sigma_II = sigma_III line
# compressive_strength is set to 1Pa, and smoothing_tol = 0.1Pa
# The smoothed yield function comes from two smoothing operations.
# The first is on sigma_I and sigma_II (sigma_I >= sigma_II >= sigma_III):
# yf = -sigma_I + ismoother(0) - compressive_strength
# = -sigma_I + (0.5 * smoothing_tol - smoothing_tol / Pi) - compressive_strength
# = -sigma_I + 0.018169 - 1
# The second has the argument of ismoother equal to -0.018169.
# ismoother(-0.018169) = 0.5 * (-0.018169 + 0.1) - 0.1 * cos (0.5 * Pi * -0.018169 / 0.1) / Pi
# = 0.010372
# So the final yield function is
# yf = -sigma_I + 0.018169 + 0.010372 - 1 = -sigma_I + 0.028541 - 1
# However, because of the asymmetry in smoothing (the yield function is obtained
# by first smoothing -sigma_I-cs and -sigma_II-cs, and then by smoothing this
# result with -sigma_III-cs) the result is sigma_I > sigma_II = sigma_III
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-1E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.1
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform12
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/axisymmetric_cylindrical/total/jacobian/dirichlet.i)
[GlobalParams]
displacements = 'disp_r disp_z'
large_kinematics = true
stabilize_strain = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[]
[]
[Problem]
coord_type = RZ
[]
[Variables]
[disp_r]
[]
[disp_z]
[]
[]
[Kernels]
[sdr]
type = TotalLagrangianStressDivergenceAxisymmetricCylindrical
variable = disp_r
component = 0
[]
[sdz]
type = TotalLagrangianStressDivergenceAxisymmetricCylindrical
variable = disp_z
component = 1
[]
[]
[BCs]
[bottom]
type = DirichletBC
preset = false
variable = disp_z
boundary = bottom
value = 0.0
[]
[top]
type = FunctionDirichletBC
preset = false
variable = disp_z
boundary = top
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrainAxisymmetricCylindrical
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dt = 0.1
num_steps = 5
[]
(modules/navier_stokes/test/tests/finite_element/pins/channel-flow/pm_reverse_flow.i)
# This test case tests the porous-medium flow when flow reversal happens
[GlobalParams]
gravity = '0 0 0'
order = FIRST
family = LAGRANGE
u = vel_x
v = vel_y
pressure = p
temperature = T
porosity = porosity
eos = eos
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 0.1
nx = 10
ny = 4
elem_type = QUAD4
[]
[FluidProperties]
[eos]
type = SimpleFluidProperties
density0 = 100 # kg/m^3
thermal_expansion = 0 # K^{-1}
cp = 100
viscosity = 0.1 # Pa-s, Re=rho*u*L/mu = 100*1*0.1/0.1 = 100
thermal_conductivity = 0.1
[]
[]
[Functions]
[v_in]
type = PiecewiseLinear
x = '0 5 10 1e5'
y = '1 0 -1 -1'
[]
[T_in]
type = PiecewiseLinear
x = '0 1e5'
y = '630 630'
[]
[]
[Variables]
# velocity
[vel_x]
initial_condition = 1
[]
[vel_y]
initial_condition = 0
[]
[p]
initial_condition = 1e5
[]
[T]
scaling = 1e-3
initial_condition = 630
[]
[]
[AuxVariables]
[rho]
initial_condition = 100
[]
[porosity]
initial_condition = 0.4
[]
[vol_heat]
initial_condition = 1e6
[]
[T_out_scalar]
family = SCALAR
order = FIRST
initial_condition = 630
[]
[]
[Materials]
[mat]
type = PINSFEMaterial
alpha = 1000
beta = 100
[]
[]
[Kernels]
[mass_time]
type = PINSFEFluidPressureTimeDerivative
variable = p
[]
[mass_space]
type = INSFEFluidMassKernel
variable = p
[]
[x_momentum_time]
type = PINSFEFluidVelocityTimeDerivative
variable = vel_x
[]
[x_momentum_space]
type = INSFEFluidMomentumKernel
variable = vel_x
component = 0
[]
[y_momentum_time]
type = PINSFEFluidVelocityTimeDerivative
variable = vel_y
[]
[y_momentum_space]
type = INSFEFluidMomentumKernel
variable = vel_y
component = 1
[]
[temperature_time]
type = PINSFEFluidTemperatureTimeDerivative
variable = T
[../]
[temperature_space]
type = INSFEFluidEnergyKernel
variable = T
power_density = vol_heat
[]
[]
[AuxKernels]
[rho_aux]
type = FluidDensityAux
variable = rho
p = p
T = T
fp = eos
[]
[]
[BCs]
# BCs for mass equation
# Inlet
[mass_inlet]
type = INSFEFluidMassBC
variable = p
boundary = 'left'
v_fn = v_in
[]
# Outlet
[./pressure_out]
type = DirichletBC
variable = p
boundary = 'right'
value = 1e5
[../]
# BCs for x-momentum equation
# Inlet
[vx_in]
type = FunctionDirichletBC
variable = vel_x
boundary = 'left'
function = v_in
[]
# Outlet (no BC is needed)
# BCs for y-momentum equation
# Both Inlet and Outlet, and Top and Bottom
[vy]
type = DirichletBC
variable = vel_y
boundary = 'left right bottom top'
value = 0
[]
# BCs for energy equation
[T_in]
type = INSFEFluidEnergyDirichletBC
variable = T
boundary = 'left'
out_norm = '-1 0 0'
T_fn = 630
[]
[T_out]
type = INSFEFluidEnergyDirichletBC
variable = T
boundary = 'right'
out_norm = '1 0 0'
T_scalar = T_out_scalar
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
solve_type = 'PJFNK'
[]
[]
[Postprocessors]
[p_in]
type = SideAverageValue
variable = p
boundary = left
[]
[p_out]
type = SideAverageValue
variable = p
boundary = right
[]
[T_in]
type = SideAverageValue
variable = T
boundary = left
[]
[T_out]
type = SideAverageValue
variable = T
boundary = right
[]
[]
[Executioner]
type = Transient
dt = 0.5
dtmin = 1.e-3
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 100'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-5
l_max_its = 100
start_time = 0.0
end_time = 10
num_steps = 20
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
time_step_interval = 1
execute_on = 'initial timestep_end'
[console]
type = Console
output_linear = false
[]
[out]
type = Exodus
use_displaced = false
hide = 'T_out_scalar'
[]
[]
(modules/heat_transfer/test/tests/verify_against_analytical/2d_steady_state.i)
# This test solves a 2D steady state heat equation
# The error is found by comparing to the analytical solution
# Note that the thermal conductivity, specific heat, and density in this problem
# Are set to 1, and need to be changed to the constants of the material being
# Analyzed
[Mesh]
type = GeneratedMesh
dim = 2
nx = 30
ny = 30
xmax = 2
ymax = 2
[]
[Variables]
[./T]
[../]
[]
[Kernels]
[./HeatDiff]
type = HeatConduction
variable = T
[../]
[]
[BCs]
[./zero]
type = DirichletBC
variable = T
boundary = 'left right bottom'
value = 0
[../]
[./top]
type = FunctionDirichletBC
variable = T
boundary = top
function = '10*sin(pi*x*0.5)'
[../]
[]
[Materials]
[./properties]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1 1 1'
[../]
[]
[Postprocessors]
[./nodal_error]
type = NodalL2Error
function = '10/(sinh(pi))*sin(pi*x*0.5)*sinh(pi*y*0.5)'
variable = T
[../]
[./elemental_error]
type = ElementL2Error
function = '10/(sinh(pi))*sin(pi*x*0.5)*sinh(pi*y*0.5)'
variable = T
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/central_difference/consistent/2D/2d_consistent_explicit.i)
# Test for the central difference time integrator for a 2D mesh
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 2
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 2.0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[]
[Kernels]
[./DynamicSolidMechanics]
displacements = 'disp_x disp_y'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
[../]
[]
[AuxKernels]
[./accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[../]
[./vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[../]
[./accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[../]
[./vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_y
[../]
[]
[BCs]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./x_bot]
type = FunctionDirichletBC
boundary = bottom
variable = disp_x
function = disp
preset = false
[../]
[]
[Functions]
[./disp]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0' # time
y = '0.0 1.0 0.0 -1.0 0.0' # displacement
[../]
[]
[Materials]
[./elasticity_tensor_block]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
block = 0
[../]
[./strain_block]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y'
implicit = false
[../]
[./stress_block]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = density
prop_values = 1e4
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 0.1
dt = 0.005
timestep_tolerance = 1e-6
[./TimeIntegrator]
type = CentralDifference
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./accel_2x]
type = PointValue
point = '1.0 2.0 0.0'
variable = accel_x
[../]
[./accel_2y]
type = PointValue
point = '1.0 2.0 0.0'
variable = accel_y
[../]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/finite_strain_jacobian/3d_bar.i)
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 2
ymin = 0
ymax = 2
zmin = 0
zmax = 10
nx = 10
ny = 2
nz = 2
elem_type = HEX8
[]
[corner]
type = ExtraNodesetGenerator
new_boundary = 101
coord = '0 0 0'
input = generated_mesh
[]
[side]
type = ExtraNodesetGenerator
new_boundary = 102
coord = '2 0 0'
input = corner
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
use_finite_deform_jacobian = true
volumetric_locking_correction = false
[../]
[]
[Materials]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
[../]
[]
[BCs]
[./fix_corner_x]
type = DirichletBC
variable = disp_x
boundary = 101
value = 0
[../]
[./fix_corner_y]
type = DirichletBC
variable = disp_y
boundary = 101
value = 0
[../]
[./fix_side_y]
type = DirichletBC
variable = disp_y
boundary = 102
value = 0
[../]
[./fix_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./move_z]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 't'
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_max_its = 10
l_tol = 1e-4
l_max_its = 50
dt = 0.2
dtmin = 0.2
num_steps = 2
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test2tt.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test2tt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.1
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.1
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[]
[Outputs]
file_base = pl_test2tt_out
exodus = true
[]
(python/peacock/tests/common/transient_with_date.i)
###########################################################
# This is a simple test with a time-dependent problem
# demonstrating the use of a "Transient" Executioner.
#
# @Requirement F1.10
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
# dudt = 3*t^2*(x^2 + y^2)
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 1
value = 1
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./dt]
type = TimestepSize
[../]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
# Preconditioned JFNK (default)
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
dt = 0.1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = with_date
exodus = true
[./with_date]
type = Exodus
file_base = with_date
append_date = true
append_date_format = '%Y-%m-%d'
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/use_substep_dt.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 4
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[ux]
[]
[uy]
[]
[uz]
[]
[]
[AuxVariables]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[rotout]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[gss]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[]
[]
[AuxKernels]
[stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = pk2
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[]
[slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_rate_gss
index = 0
execute_on = timestep_end
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[]
[pushy]
type = FunctionDirichletBC
variable = uy
boundary = top
function = '-0.1*t'
[]
[pullz]
type = FunctionDirichletBC
variable = uz
boundary = front
function = '0.1*t'
[]
[]
[UserObjects]
[slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[]
[slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[]
[state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[]
[state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[]
[]
[Materials]
[crysp]
type = FiniteStrainUObasedCP
block = 0
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[]
[strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[]
[elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[gss]
type = ElementAverageValue
variable = gss
[]
[slip_increment]
type = ElementAverageValue
variable = slip_increment
[]
[uy_avg_top]
type = SideAverageValue
variable = uy
boundary = top
[]
[uz_avg_front]
type = SideAverageValue
variable = uz
boundary = front
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'NEWTON'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1.0
num_steps = 5
dtmin = 0.001
nl_abs_step_tol = 1e-10
[]
[Outputs]
csv = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_by_parts_steady_stabilized_second_order.i)
# This input file tests several different things:
# .) The axisymmetric (RZ) form of the governing equations.
# .) An open boundary.
# .) Not integrating the pressure by parts, thereby requiring a pressure pin.
# .) Natural boundary condition at the outlet.
[GlobalParams]
integrate_p_by_parts = true
laplace = true
gravity = '0 0 0'
supg = true
pspg = true
order = SECOND
[]
[Mesh]
file = '2d_cone.msh'
[]
[Problem]
coord_type = RZ
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = Newton
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'bjacobi ilu 4'
nl_rel_tol = 1e-12
nl_max_its = 6
[]
[Outputs]
console = true
[./out]
type = Exodus
[../]
[]
[Variables]
[./vel_x]
# Velocity in radial (r) direction
[../]
[./vel_y]
# Velocity in axial (z) direction
[../]
[./p]
order = FIRST
[../]
[]
[BCs]
[./u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[../]
[./v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[../]
[./u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[../]
[./v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[../]
[]
[Kernels]
[./mass]
type = INSMassRZ
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 'volume'
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[../]
[]
[Postprocessors]
[./flow_in]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'bottom'
execute_on = 'timestep_end'
[../]
[./flow_out]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'top'
execute_on = 'timestep_end'
[../]
[]
(test/tests/time_steppers/timesequence_stepper/exodustimesequence.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[ICs]
[./u_var]
type = FunctionIC
variable = u
function = exact_fn
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
end_time = 4.0
[./TimeStepper]
type = ExodusTimeSequenceStepper
mesh = timesequence_no_start_time.e
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/action/action_L.i)
[Mesh]
type = FileMesh
file = 'L.exo'
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
add_variables = true
new_system = true
formulation = UPDATED
volumetric_locking_correction = true
generate_output = 'cauchy_stress_xx cauchy_stress_yy cauchy_stress_zz cauchy_stress_xy '
'cauchy_stress_xz cauchy_stress_yz strain_xx strain_yy strain_zz strain_xy '
'strain_xz strain_yz'
[]
[]
[]
[]
[Functions]
[pfn]
type = PiecewiseLinear
x = '0 1 2'
y = '0.00 0.3 0.5'
[]
[]
[BCs]
[left]
type = DirichletBC
preset = true
variable = disp_x
boundary = fix
value = 0.0
[]
[bottom]
type = DirichletBC
preset = true
variable = disp_y
boundary = fix
value = 0.0
[]
[back]
type = DirichletBC
preset = true
variable = disp_z
boundary = fix
value = 0.0
[]
[front]
type = FunctionDirichletBC
variable = disp_z
boundary = pull
function = pfn
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
petsc_options_iname = -pc_type
petsc_options_value = lu
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
end_time = 1.0
dtmin = 0.5
dt = 0.5
[]
[Outputs]
[out]
type = Exodus
file_base = 'blah'
[]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform21.i)
# Mohr-Coulomb only
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 6
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 1E-12
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./mc]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = ts
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
smoothing_tol = 1
yield_function_tol = 1.0E-9
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform21
csv = true
[]
(modules/porous_flow/test/tests/energy_conservation/heat03.i)
# The sample is a single unit element, with roller BCs on the sides
# and bottom. A constant displacement is applied to the top: disp_z = -0.01*t.
# There is no fluid flow or heat flow.
# Heat energy conservation is checked.
#
# Under these conditions (here L is the height of the sample: L=1 in this case):
# porepressure = porepressure(t=0) - (Fluid bulk modulus)*log(1 - 0.01*t)
# stress_xx = (bulk - 2*shear/3)*disp_z/L (remember this is effective stress)
# stress_zz = (bulk + 4*shear/3)*disp_z/L (remember this is effective stress)
# Also, the total heat energy must be conserved: this is
# fluid_mass * fluid_heat_cap * temperature + (1 - porosity) * rock_density * rock_heat_cap * temperature * volume
# Since fluid_mass is conserved, and volume = (1 - 0.01*t), this can be solved for temperature:
# temperature = initial_heat_energy / (fluid_mass * fluid_heat_cap + (1 - porosity) * rock_density * rock_heat_cap * (1 - 0.01*t))
#
# Parameters:
# Bulk modulus = 2
# Shear modulus = 1.5
# fluid bulk modulus = 0.5
# initial porepressure = 0.1
# initial temperature = 10
#
# Desired output:
# zdisp = -0.01*t
# p0 = 0.1 - 0.5*log(1-0.01*t)
# stress_xx = stress_yy = -0.01*t
# stress_zz = -0.04*t
# t0 = 11.5 / (0.159 + 0.99 * (1 - 0.01*t))
#
# Regarding the "log" - it comes from preserving fluid mass
#
# Note that the PorousFlowMassVolumetricExpansion and PorousFlowHeatVolumetricExpansion Kernels are used
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[pp]
initial_condition = 0.1
[]
[temp]
initial_condition = 10
[]
[]
[BCs]
[confinex]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left right'
[]
[confiney]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom top'
[]
[basefixed]
type = DirichletBC
variable = disp_z
value = 0
boundary = back
[]
[top_velocity]
type = FunctionDirichletBC
variable = disp_z
function = -0.01*t
boundary = front
[]
[]
[Kernels]
[grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[]
[grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[]
[grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[]
[poro_x]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.3
variable = disp_x
component = 0
[]
[poro_y]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.3
variable = disp_y
component = 1
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.3
component = 2
variable = disp_z
[]
[poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
variable = pp
fluid_component = 0
[]
[mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pp
[]
[temp]
type = PorousFlowEnergyTimeDerivative
variable = temp
[]
[poro_vol_exp_temp]
type = PorousFlowHeatVolumetricExpansion
variable = temp
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'temp pp disp_x disp_y disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 0.5
density0 = 1
viscosity = 1
thermal_expansion = 0
cv = 1.3
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
temperature = temp
[]
[elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '1 1.5'
# bulk modulus is lambda + 2*mu/3 = 1 + 2*1.5/3 = 2
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[eff_fluid_pressure]
type = PorousFlowEffectiveFluidPressure
[]
[porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[]
[rock_heat]
type = PorousFlowMatrixInternalEnergy
specific_heat_capacity = 2.2
density = 0.5
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = pp
capillary_pressure = pc
[]
[massfrac]
type = PorousFlowMassFraction
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '0.5 0 0 0 0.5 0 0 0 0.5'
[]
[]
[Postprocessors]
[p0]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '0 0 0'
variable = pp
[]
[t0]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '0 0 0'
variable = temp
[]
[zdisp]
type = PointValue
outputs = csv
point = '0 0 0.5'
use_displaced_mesh = false
variable = disp_z
[]
[stress_xx]
type = PointValue
outputs = csv
point = '0 0 0'
variable = stress_xx
[]
[stress_yy]
type = PointValue
outputs = csv
point = '0 0 0'
variable = stress_yy
[]
[stress_zz]
type = PointValue
outputs = csv
point = '0 0 0'
variable = stress_zz
[]
[fluid_mass]
type = PorousFlowFluidMass
fluid_component = 0
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[total_heat]
type = PorousFlowHeatEnergy
phase = 0
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[rock_heat]
type = PorousFlowHeatEnergy
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[fluid_heat]
type = PorousFlowHeatEnergy
include_porous_skeleton = false
phase = 0
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-14 1E-8 10000'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
dt = 2
end_time = 10
[]
[Outputs]
execute_on = 'initial timestep_end'
file_base = heat03
[csv]
type = CSV
[]
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rz_test.i)
#
# 2-D RZ Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks containing one element each. Each
# element is a unit cube. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far left boundary
# is ramped from 100 to 200 over one time unit, and then held fixed for an additional
# time unit. The temperature of the far right boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks, or cylinders in the case of RZ.:
#
# Flux = (T_left - T_right) * (gapK/(r*ln(r2/r1)))
#
# For gapK = 1 (default value)
#
# The integrated heat flux across the gap at time 2 is then:
#
# 2*pi*h*k*delta_T/(ln(r2/r1))
# 2*pi*1*1*100/(ln(2/1)) = 906.5 watts
#
# For comparison, see results from the flux post processors.
#
# As a second test, use the rectilinear (parallel plate) form of the gap heat transfer.
#
# Flux = (T_left - T_right) * (gapK/gapL)
#
# For gapK = 1 (default value)
#
# The integrated heat flux across the gap at time 2 is then:
#
# 2*pi*h*k*delta_T/(1)
# 2*pi*1*1*100/(1) = 628.3 watts
#
# For comparison, see results from the flux post processors.
#
[Problem]
coord_type = RZ
rz_coord_axis = Y # this is modified through CLI args to test Z-R as opposed to R-Z
[]
[Mesh]
active = 'file'
[file]
type = FileMeshGenerator
file = gap_heat_transfer_htonly_rz_test.e
[]
[rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '90 0 0'
input = file
[]
[]
[Functions]
[./ramp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
[../]
[./thermal_contact2]
type = GapHeatTransfer
variable = temp2
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
gap_geometry_type = PLATE
appended_property_name = 2
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[./temp2]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat2]
type = HeatConduction
variable = temp2
[../]
[]
[BCs]
[./temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = ramp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[./temp_far_left2]
type = FunctionDirichletBC
boundary = 1
variable = temp2
function = ramp
[../]
[./temp_far_right2]
type = DirichletBC
boundary = 4
variable = temp2
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[./conductance2]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond2
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1e6
[../]
[./density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[../]
[]
[Executioner]
type = Transient
# petsc_options = '-snes_mf_operator -ksp_monitor -snes_ksp_ew'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
# petsc_options_iname = '-snes_type -snes_ls -snes_linesearch_type -ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
# petsc_options_value = 'ls basic basic 201 hypre boomeramg 4'
# petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
# petsc_options_value = '201 hypre boomeramg 4'
nl_abs_tol = 1e-3
nl_rel_tol = 1e-8
l_tol = 1e-6
l_max_its = 100
start_time = 0.0
dt = 1e-1
dtmin = 1e-1
end_time = 2.0
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[./temp_left2]
type = SideAverageValue
boundary = 2
variable = temp2
execute_on = 'initial timestep_end'
[../]
[./temp_right2]
type = SideAverageValue
boundary = 3
variable = temp2
execute_on = 'initial timestep_end'
[../]
[./flux_left2]
type = SideDiffusiveFluxIntegral
variable = temp2
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right2]
type = SideDiffusiveFluxIntegral
variable = temp2
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/action/custom_output.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[ring]
type = GeneratedMeshGenerator
dim = 3
[]
[]
[BCs]
[fix_x1]
type = DirichletBC
boundary = left
variable = disp_x
value = 0
[]
[fix_x2]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = 0.1*sin(t)
[]
[fix_y]
type = DirichletBC
boundary = 'left right'
variable = disp_y
value = 0
[]
[fix_z]
type = DirichletBC
boundary = 'left right'
variable = disp_z
value = 0
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'vonmises_stress effective_alt_total_strain'
[]
[]
[Materials]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[elastic]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 0.3
shear_modulus = 100
[]
[alt_strain]
type = ComputeFiniteStrain
base_name = alt
[]
[]
[Executioner]
type = Transient
num_steps = 12
solve_type = PJFNK
[]
[Outputs]
exodus = true
print_linear_residuals = false
perf_graph = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform2.i)
# Plastic deformation, tensile failure
# With Lame lambda=0 and Lame mu=1, applying the following
# deformation to the zmax surface of a unit cube:
# disp_z = t
# should yield trial stress:
# stress_zz = 2*t
# Use tensile strength = 1, we should return to stress_zz = 1
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 0
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = t
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 30
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1111077
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 40
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-5
[../]
[]
[Executioner]
end_time = 2
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2
csv = true
[]
(modules/combined/test/tests/phase_field_fracture/crack2d_computeCrackedStress_finitestrain_plastic.i)
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 40
ny = 20
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./elastic_strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./plastic_strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./uncracked_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./All]
add_variables = true
strain = FINITE
planar_formulation = PLANE_STRAIN
additional_generate_output = 'stress_yy vonmises_stress'
strain_base_name = uncracked
[../]
[../]
[../]
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = E_el
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[./off_disp]
type = AllenCahnElasticEnergyOffDiag
variable = c
displacements = 'disp_x disp_y'
mob_name = L
[../]
[]
[AuxKernels]
[./strain_yy]
type = RankTwoAux
variable = strain_yy
rank_two_tensor = uncracked_mechanical_strain
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[../]
[./elastic_strain_yy]
type = RankTwoAux
variable = elastic_strain_yy
rank_two_tensor = uncracked_elastic_strain
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[../]
[./plastic_strain_yy]
type = RankTwoAux
variable = plastic_strain_yy
rank_two_tensor = uncracked_plastic_strain
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[../]
[./uncracked_stress_yy]
type = RankTwoAux
variable = uncracked_stress_yy
rank_two_tensor = uncracked_stress
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[../]
[]
[Functions]
[./hf]
type = PiecewiseLinear
x = '0 0.001 0.003 0.023'
y = '0.85 1.0 1.25 1.5'
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.05 5e-3'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
base_name = uncracked
[../]
[./isotropic_plasticity]
type = IsotropicPlasticityStressUpdate
yield_stress = 0.85
hardening_function = hf
base_name = uncracked
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'isotropic_plasticity'
base_name = uncracked
[../]
[./cracked_stress]
type = ComputeCrackedStress
c = c
F_name = E_el
use_current_history_variable = true
uncracked_base_name = uncracked
finite_strain_model = true
[../]
[]
[Postprocessors]
[./av_stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./av_strain_yy]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[./av_uncracked_stress_yy]
type = ElementAverageValue
variable = uncracked_stress_yy
[../]
[./max_c]
type = ElementExtremeValue
variable = c
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solving_package'
petsc_options_value = 'lu superlu_dist'
nl_rel_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 2.0e-5
num_steps = 2
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/neml2/viscoplasticity/radial_return.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = true
[]
[]
[]
[]
[NEML2]
input = 'radial_return_neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL POSTPROCESSOR POSTPROCESSOR MATERIAL MATERIAL'
moose_inputs = ' neml2_strain time time plastic_strain consistency'
neml2_inputs = ' forces/E forces/t old_forces/t old_state/internal/Ep old_state/internal/gamma'
moose_output_types = 'MATERIAL MATERIAL MATERIAL'
moose_outputs = ' neml2_stress plastic_strain consistency'
neml2_outputs = ' state/S state/internal/Ep state/internal/gamma'
moose_derivative_types = 'MATERIAL'
moose_derivatives = 'neml2_jacobian'
neml2_derivatives = 'state/S forces/E'
[]
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[convert_strain]
type = RankTwoTensorToSymmetricRankTwoTensor
from = 'mechanical_strain'
to = 'neml2_strain'
[]
[stress]
type = ComputeLagrangianObjectiveCustomSymmetricStress
custom_small_stress = 'neml2_stress'
custom_small_jacobian = 'neml2_jacobian'
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
preset = false
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 1e-3
dtmin = 1e-3
num_steps = 5
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/shell/static/inclined_straintest_local_stress.i)
# Static test for the inclined shell element.
# A single shell element is oriented at a 45 deg. angle with respect to the Y axis.
# One end of the shell is fixed and an axial deformation to the shell element is
# applied at the other end by resolving the deformation into Y and Z direction.
# The local stresses are computed and stored in aux variables.
# The local stress_22 should be zero (because of plane stress condition).
[Mesh]
type = FileMesh
file = shell_inclined.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[rot_x]
[]
[rot_y]
[]
[]
[AuxVariables]
[stress_00]
order = CONSTANT
family = MONOMIAL
[]
[stress_11]
order = CONSTANT
family = MONOMIAL
[]
[stress_22]
order = CONSTANT
family = MONOMIAL
[]
[stress_01]
order = CONSTANT
family = MONOMIAL
[]
[stress_02]
order = CONSTANT
family = MONOMIAL
[]
[stress_12]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_00]
type = RankTwoAux
variable = stress_00
rank_two_tensor = local_stress_t_points_0
index_i = 0
index_j = 0
execute_on = TIMESTEP_END
[]
[stress_11]
type = RankTwoAux
variable = stress_11
rank_two_tensor = local_stress_t_points_0
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[]
[stress_22]
type = RankTwoAux
variable = stress_22
rank_two_tensor = local_stress_t_points_0
index_i = 2
index_j = 2
execute_on = TIMESTEP_END
[]
[stress_01]
type = RankTwoAux
variable = stress_01
rank_two_tensor = local_stress_t_points_0
index_i = 0
index_j = 1
execute_on = TIMESTEP_END
[]
[stress_02]
type = RankTwoAux
variable = stress_02
rank_two_tensor = local_stress_t_points_0
index_i = 0
index_j = 2
execute_on = TIMESTEP_END
[]
[stress_12]
type = RankTwoAux
variable = stress_12
rank_two_tensor = local_stress_t_points_0
index_i = 1
index_j = 2
execute_on = TIMESTEP_END
[]
[]
[BCs]
[fixy1]
type = DirichletBC
variable = disp_y
boundary = '0'
value = 0.0
[]
[fixz1]
type = DirichletBC
variable = disp_z
boundary = '0'
value = 0.0
[]
[fixr1]
type = DirichletBC
variable = rot_x
boundary = '0'
value = 0.0
[]
[fixr2]
type = DirichletBC
variable = rot_y
boundary = '0'
value = 0.0
[]
[fixx1]
type = DirichletBC
variable = disp_x
boundary = '0'
value = 0.0
[]
[dispz]
type = FunctionDirichletBC
variable = disp_z
boundary = '2'
function = force_function
[]
[dispy]
type = FunctionDirichletBC
variable = disp_y
boundary = '2'
function = force_function
[]
[]
[Functions]
[force_function]
type = PiecewiseLinear
x = '0.0 1'
y = '0.0 0.33535534'
[]
[]
[Kernels]
[solid_disp_x]
type = ADStressDivergenceShell
block = '0'
component = 0
variable = disp_x
through_thickness_order = SECOND
[]
[solid_disp_y]
type = ADStressDivergenceShell
block = '0'
component = 1
variable = disp_y
through_thickness_order = SECOND
[]
[solid_disp_z]
type = ADStressDivergenceShell
block = '0'
component = 2
variable = disp_z
through_thickness_order = SECOND
[]
[solid_rot_x]
type = ADStressDivergenceShell
block = '0'
component = 3
variable = rot_x
through_thickness_order = SECOND
[]
[solid_rot_y]
type = ADStressDivergenceShell
block = '0'
component = 4
variable = rot_y
through_thickness_order = SECOND
[]
[]
[Materials]
[elasticity]
type = ADComputeIsotropicElasticityTensorShell
youngs_modulus = 5
poissons_ratio = 0.0
block = 0
through_thickness_order = SECOND
[]
[strain]
type = ADComputeIncrementalShellStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y'
thickness = 0.1
through_thickness_order = SECOND
[]
[stress]
type = ADComputeShellStress
block = 0
through_thickness_order = SECOND
[]
[]
[Postprocessors]
[stress_11_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_11
[]
[stress_12_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_12
[]
[stress_00_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_00
[]
[stress_01_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_01
[]
[stress_02_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_02
[]
[stress_22_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_22
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_tol = 1e-11
nl_max_its = 15
nl_rel_tol = 1e-11
nl_abs_tol = 1e-10
l_max_its = 20
dt = 1
dtmin = 0.01
timestep_tolerance = 2e-13
end_time = 1
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/mean_cap_TC/random02.i)
# apply many random large deformations, checking that the algorithm returns correctly to
# the yield surface each time.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 125
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./max_yield_fcn]
type = ElementExtremeValue
variable = yield_fcn
outputs = 'console'
[../]
[./should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console'
[../]
[]
[Functions]
[./should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'max_yield_fcn'
[../]
[]
[UserObjects]
[./tensile_strength]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./compressive_strength]
type = SolidMechanicsHardeningConstant
value = -1.5
[../]
[./cap]
type = SolidMechanicsPlasticMeanCapTC
tensile_strength = tensile_strength
compressive_strength = compressive_strength
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
use_custom_returnMap = true
use_custom_cto = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
max_NR_iterations = 2
ep_plastic_tolerance = 1E-6
plastic_models = cap
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random02
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/multi/four_surface24.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 2 and strength = 3.1
# SimpleTester3 with a = 2 and b = 1 and strength = 3.1
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 2.1E-6m in y direction and 3E-6 in z direction.
# trial stress_yy = 2.1 and stress_zz = 3.0
#
# This is similar to four_surface14.i, and a description is found there.
# The result should be stress_zz=1=stress_yy, with internal0=2
# and internal1=1.1
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2.1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '3.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./f3]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[./int3]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./f3]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 3
variable = f3
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[./int3]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 3
variable = int3
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./f3]
type = PointValue
point = '0 0 0'
variable = f3
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[./int3]
type = PointValue
point = '0 0 0'
variable = int3
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 2
strength = 3.1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple3]
type = SolidMechanicsPlasticSimpleTester
a = 2
b = 1
strength = 3.1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2 simple3'
deactivation_scheme = 'optimized_to_safe'
max_NR_iterations = 4
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1'
debug_jac_at_intnl = '1 1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = four_surface24
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/peridynamics/test/tests/simple_tests/2D_regularD_constH_BPD.i)
# Test for bond-based peridynamic formulation
# for regular grid from generated mesh with const bond constants
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 4
ny = 4
[../]
[./gpd]
type = MeshGeneratorPD
input = gmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1002
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1000
function = '-0.001*t'
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = BOND
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.33
[../]
[./force_density]
type = ComputeSmallStrainConstantHorizonMaterialBPD
[../]
[]
[Functions]
[./disp_x_anal]
type = PiecewiseLinear
axis = x
x = '0 1'
y = '0 -0.00033'
[../]
[./disp_y_anal]
type = PiecewiseLinear
axis = y
x = '0 1'
y = '-0.001 0'
[../]
[]
[Postprocessors]
[./anal_disp_L2]
type = NodalFunctionsL2NormPD
functions = 'disp_x_anal disp_y_anal'
[../]
[./disp_diff_L2]
type = NodalDisplacementDifferenceL2NormPD
analytic_functions = 'disp_x_anal disp_y_anal'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
end_time = 1
[]
[Outputs]
file_base = 2D_regularD_constH_BPD
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/centrosymmetric_spherical/total/jacobian/dirichlet.i)
[GlobalParams]
displacements = 'disp_r'
large_kinematics = true
stabilize_strain = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
nx = 5
[]
[]
[Problem]
coord_type = RSPHERICAL
[]
[Variables]
[disp_r]
[]
[]
[Kernels]
[sdr]
type = TotalLagrangianStressDivergenceCentrosymmetricSpherical
variable = disp_r
component = 0
[]
[]
[BCs]
[left]
type = DirichletBC
preset = false
variable = disp_r
boundary = left
value = 0.0
[]
[right]
type = FunctionDirichletBC
preset = false
variable = disp_r
boundary = right
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrainCentrosymmetricSpherical
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dt = 0.1
num_steps = 5
[]
(modules/navier_stokes/test/tests/finite_element/ins/mms/supg/supg_mms_test.i)
mu=1.5
rho=2.5
[GlobalParams]
gravity = '0 0 0'
supg = true
convective_term = true
integrate_p_by_parts = false
laplace = true
u = vel_x
v = vel_y
pressure = p
alpha = 1
order = SECOND
family = LAGRANGE
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
elem_type = QUAD9
nx = 4
ny = 4
[]
[./corner_node]
type = ExtraNodesetGenerator
new_boundary = 'pinned_node'
nodes = '0'
input = gen
[../]
[]
[Variables]
[./vel_x]
[../]
[./vel_y]
[../]
[./p]
order = FIRST
[../]
[]
[Kernels]
# mass
[./mass]
type = INSMass
variable = p
[../]
# x-momentum, space
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
component = 0
forcing_func = vel_x_source_func
[../]
# y-momentum, space
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
component = 1
forcing_func = vel_y_source_func
[../]
[./p_source]
type = BodyForce
function = p_source_func
variable = p
[../]
[]
[BCs]
[./vel_x]
type = FunctionDirichletBC
preset = false
boundary = 'left right top bottom'
function = vel_x_func
variable = vel_x
[../]
[./vel_y]
type = FunctionDirichletBC
preset = false
boundary = 'left right top bottom'
function = vel_y_func
variable = vel_y
[../]
[./p]
type = FunctionDirichletBC
preset = false
boundary = 'left right top bottom'
function = p_func
variable = p
[../]
[]
[Functions]
[./vel_x_source_func]
type = ParsedFunction
expression = '-${mu}*(-0.028*pi^2*x^2*sin(0.2*pi*x*y) - 0.028*pi^2*y^2*sin(0.2*pi*x*y) - 0.1*pi^2*sin(0.5*pi*x) - 0.4*pi^2*sin(pi*y)) + ${rho}*(0.14*pi*x*cos(0.2*pi*x*y) + 0.4*pi*cos(pi*y))*(0.6*sin(0.8*pi*x) + 0.3*sin(0.3*pi*y) + 0.2*sin(0.3*pi*x*y) + 0.3) + ${rho}*(0.14*pi*y*cos(0.2*pi*x*y) + 0.2*pi*cos(0.5*pi*x))*(0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5) + 0.1*pi*y*cos(0.2*pi*x*y) + 0.25*pi*cos(0.5*pi*x)'
[../]
[./vel_y_source_func]
type = ParsedFunction
expression = '-${mu}*(-0.018*pi^2*x^2*sin(0.3*pi*x*y) - 0.018*pi^2*y^2*sin(0.3*pi*x*y) - 0.384*pi^2*sin(0.8*pi*x) - 0.027*pi^2*sin(0.3*pi*y)) + ${rho}*(0.06*pi*x*cos(0.3*pi*x*y) + 0.09*pi*cos(0.3*pi*y))*(0.6*sin(0.8*pi*x) + 0.3*sin(0.3*pi*y) + 0.2*sin(0.3*pi*x*y) + 0.3) + ${rho}*(0.06*pi*y*cos(0.3*pi*x*y) + 0.48*pi*cos(0.8*pi*x))*(0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5) + 0.1*pi*x*cos(0.2*pi*x*y) + 0.3*pi*cos(0.3*pi*y)'
[../]
[./p_source_func]
type = ParsedFunction
expression = '-0.06*pi*x*cos(0.3*pi*x*y) - 0.14*pi*y*cos(0.2*pi*x*y) - 0.2*pi*cos(0.5*pi*x) - 0.09*pi*cos(0.3*pi*y)'
[../]
[./vel_x_func]
type = ParsedFunction
expression = '0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5'
[../]
[./vel_y_func]
type = ParsedFunction
expression = '0.6*sin(0.8*pi*x) + 0.3*sin(0.3*pi*y) + 0.2*sin(0.3*pi*x*y) + 0.3'
[../]
[./p_func]
type = ParsedFunction
expression = '0.5*sin(0.5*pi*x) + 1.0*sin(0.3*pi*y) + 0.5*sin(0.2*pi*x*y) + 0.5'
[../]
[./vxx_func]
type = ParsedFunction
expression = '0.14*pi*y*cos(0.2*pi*x*y) + 0.2*pi*cos(0.5*pi*x)'
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '${rho} ${mu}'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Steady
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-13
nl_max_its = 6
l_tol = 1e-6
l_max_its = 500
[]
[Outputs]
[./exodus]
type = Exodus
[../]
[./csv]
type = CSV
[../]
[]
[Postprocessors]
[./L2vel_x]
type = ElementL2Error
variable = vel_x
function = vel_x_func
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2vel_y]
variable = vel_y
function = vel_y_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2p]
variable = p
function = p_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2vxx]
variable = vxx
function = vxx_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[]
[AuxVariables]
[./vxx]
family = MONOMIAL
order = FIRST
[../]
[]
[AuxKernels]
[./vxx]
type = VariableGradientComponent
component = x
variable = vxx
gradient_variable = vel_x
[../]
[]
(tutorials/darcy_thermo_mech/step07_adaptivity/problems/step7b_fine.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 3
xmax = 0.304 # Length of test chamber
ymax = 0.0257 # Test chamber radius
[]
coord_type = RZ
rz_coord_axis = X
uniform_refine = 3
[]
[Variables]
[pressure]
[]
[temperature]
initial_condition = 300 # Start at room temperature
[]
[]
[Kernels]
[darcy_pressure]
type = DarcyPressure
variable = pressure
[]
[heat_conduction]
type = ADHeatConduction
variable = temperature
[]
[heat_conduction_time_derivative]
type = ADHeatConductionTimeDerivative
variable = temperature
[]
[heat_convection]
type = DarcyAdvection
variable = temperature
pressure = pressure
[]
[]
[BCs]
[inlet_temperature]
type = FunctionDirichletBC
variable = temperature
boundary = left
function = 'if(t<0,350+50*t,350)'
[]
[outlet_temperature]
type = HeatConductionOutflow
variable = temperature
boundary = right
[]
[inlet]
type = DirichletBC
variable = pressure
boundary = left
value = 4000 # (Pa) From Figure 2 from paper. First data point for 1mm spheres.
[]
[outlet]
type = DirichletBC
variable = pressure
boundary = right
value = 0 # (Pa) Gives the correct pressure drop from Figure 2 for 1mm spheres
[]
[]
[Materials/column]
type = PackedColumn
temperature = temperature
radius = 1
[]
[AuxVariables/velocity]
order = CONSTANT
family = MONOMIAL_VEC
[]
[AuxKernels/velocity]
type = DarcyVelocity
variable = velocity
execute_on = timestep_end
pressure = pressure
[]
[Problem]
type = FEProblem
[]
[Executioner]
type = Transient
end_time = 100
dt = 0.25
start_time = -1
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
steady_state_tolerance = 1e-5
steady_state_detection = true
[TimeStepper]
type = FunctionDT
function = 'if(t<0,0.1,0.25)'
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/cross_material/correctness/plastic_j2.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 1
nz = 1
[]
[]
[AuxVariables]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[strain_xz]
order = CONSTANT
family = MONOMIAL
[]
[strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[strain_xx]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[strain_yy]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[strain_zz]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[strain_xy]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[strain_xz]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[strain_yz]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[Functions]
[pullx]
type = ParsedFunction
expression = 't'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[lefty]
type = DirichletBC
preset = true
boundary = bottom
variable = disp_y
value = 0.0
[]
[leftz]
type = DirichletBC
preset = true
boundary = back
variable = disp_z
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = pullx
[]
[]
[UserObjects]
[./str]
type = SolidMechanicsHardeningPowerRule
value_0 = 100.0
epsilon0 = 0.1
exponent = 2.0
[../]
[./j2]
type = SolidMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianWrappedStress
[]
[compute_stress_base]
type = ComputeMultiPlasticityStress
plastic_models = j2
ep_plastic_tolerance = 1E-9
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[./strain]
type = ElementAverageValue
variable = strain_xx
[]
[./stress]
type = ElementAverageValue
variable = stress_xx
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 0.001
dtmin = 0.001
end_time = 0.05
[]
[Outputs]
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform9.i)
# Using CappedMohrCoulomb with tensile failure only
# A single unit element is stretched in a complicated way
# that the trial stress is
#
# 1.16226 -0.0116587 0.0587872
# -0.0116587 1.12695 0.0779428
# 0.0587872 0.0779428 0.710169
#
# This has eigenvalues
# la = {0.68849, 1.14101, 1.16987}
# and eigenvectors
#
# {-0.125484, -0.176871, 0.976202}
# {-0.0343704, -0.982614, -0.182451}
# {0.9915, -0.0564471, 0.117223}
#
# The tensile strength is 0.5 and Young=1 and Poisson=0.25.
# Using smoothing_tol=0.01, the return-map algorithm should
# return to, approximately, stress_I=stress_II=0.5. This
# is a reduction of 0.66, so stress_III is approximately
# 0.68849 - v * 0.66 * 2 = 0.68849 - 0.25 * 0.66 * 2 = 0.36.
#
# E_22 = E(1-v)/(1+v)/(1-2v) = 1.2, and E_02 = E_22 v/(1-v)
# gamma_shear = ((smax-smin)^trial - (smax-smin)) / (E_22 - E_02)
# = (1-2v) * (smax^trial - smax) / (E_22(1 - 2v)/(1-v))
# = (1 - v) * (smax^trial - smax) / E_22
# Using psi = 30deg, sin(psi) = 1/2
# the shear correction to the tensile internal parameter is
# gamma_shear (E_22 + E_20) sin(psi) = gamma_shear E_22 sin(psi) / (1 - v)
# = gamma_shear E_22 / (1 - v) / 2
# Then the tensile internal parameter is
# (1 - v) * (reduction_of_(max+min)_principal - gamma_shear * E_22 / (1-v) / 2) / E_22
# = (1-v)(1+2v)(smax^trial - smax)/E_22 - gamma_shear / 2
# = 0.41 (approximately)
#
# The final stress is
#
# {0.498, -0.003, 0.017},
# {-0.003, 0.495, 0.024},
# {0.017, 0.024, 0.367}
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = finite
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '3*x+2*y+z'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '3*x-4*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = 'x-2*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0.25
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.001
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform9
csv = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface09.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 2.0E-6m in y direction and 0.0E-6 in z direction.
# trial stress_yy = 2.0 and stress_zz = 0.0
#
# Then SimpleTester1 and SimpleTester2 should activate and the algorithm will return to
# the corner stress_yy=1.0, stress_zz=0.5
# However, this will mean that internal2<0, so SimpleTester2 will be deactivated
# and the algorithm will return to stress_yy=1
# internal1 should be 1.0, and internal2 should be 0
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2.0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface09
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/mean_cap/small_deform1.i)
# apply uniform stretch in x, y and z directions.
# With a = 1 and strength = 2, the algorithm should return to sigma_m = 2
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[]
[UserObjects]
[./strength]
type = SolidMechanicsHardeningConstant
value = 2
[../]
[./cap]
type = SolidMechanicsPlasticMeanCap
a = 1
strength = strength
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mean_cap]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = cap
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1
debug_stress_change = 1E-5
debug_pm_change = 1E-6
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform1
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/time_integrators/implicit-euler/ie.i)
###########################################################
# This is a simple test with a time-dependent problem
# demonstrating the use of the TimeIntegrator system.
#
# Testing a solution that is second order in space
# and first order in time
#
# @Requirement F1.30
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = ((x*x)+(y*y))-(4*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
# Test of the TimeIntegrator System
scheme = 'implicit-euler'
start_time = 0.0
num_steps = 5
dt = 0.25
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/weak_plane_shear/small_deform3.i)
# apply a number of "random" configurations and
# check that the algorithm returns to the yield surface
#
# must be careful here - we cannot put in arbitrary values of C_ijkl, otherwise the condition
# df/dsigma * C * flow_dirn < 0 for some stresses
# The important features that must be obeyed are:
# 0 = C_0222 = C_1222 (holds for transversely isotropic, for instance)
# C_0212 < C_0202 = C_1212 (holds for transversely isotropic)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
[]
[BCs]
[bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
# the following are "random" deformations
# each is O(1E-5) to keep deformations small
[topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = '(sin(0.1*t)+x)/1E5'
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = '(cos(t)+x*y)/1E5'
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 'sin(0.4321*t)*x*y*z/1E5'
[]
[]
[AuxVariables]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[yield_fcn_at_zero]
type = PointValue
point = '0 0 0'
variable = yield_fcn
outputs = 'console'
[]
[should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[]
[]
[Functions]
[should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'yield_fcn_at_zero'
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningConstant
value = 1E3
[]
[tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5773503
[]
[tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.08748866
[]
[wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
smoother = 100
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
# the following is transversely isotropic, i think.
fill_method = symmetric9
C_ijkl = '3E9 1E9 3E9 3E9 3E9 6E9 1E9 1E9 9E9'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wps
transverse_direction = '0 0 1'
max_NR_iterations = 100
ep_plastic_tolerance = 1E-3
debug_fspb = crash
[]
[]
[Executioner]
end_time = 1E4
dt = 1
type = Transient
[]
[Outputs]
csv = true
[]
(modules/contact/test/tests/fieldsplit/frictionless_mortar_FS.i)
offset = 0.021
vy = 0.15
vx = 0.04
refine = 1
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
[original_file_mesh]
type = FileMeshGenerator
file = long_short_blocks.e
[]
uniform_refine = ${refine}
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
use_automatic_differentiation = true
[]
[]
[Functions]
[horizontal_movement]
type = ParsedFunction
value = 'if(t<0.5,${vx}*t-${offset},${vx}-${offset})'
[]
[vertical_movement]
type = ParsedFunction
value = 'if(t<0.5,${offset},${vy}*(t-0.5)+${offset})'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 30
function = horizontal_movement
preset = false
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = '40'
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = '30'
function = vertical_movement
preset = false
[]
[]
[Materials]
[elasticity_tensor_left]
type = ADComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_left]
type = ADComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ADComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_right]
type = ADComputeFiniteStrainElasticStress
block = 2
[]
[]
[Contact]
[leftright]
secondary = 10
primary = 20
model = frictionless
formulation = mortar
c_normal = 1e6
[]
[]
[ICs]
[disp_y]
block = 1
variable = disp_y
value = ${offset}
type = ConstantIC
[]
[disp_x]
block = 1
variable = disp_x
value = -${offset}
type = ConstantIC
[]
[]
[Preconditioning]
[FSP]
type = FSP
topsplit = 'contact_interior'
[contact_interior]
splitting = 'interior contact'
splitting_type = schur
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_fieldsplit_schur_fact_type -mat_mffd_err'
petsc_options_value = '200 full 1e-5'
schur_pre = 'S'
[]
[interior]
vars = 'disp_x disp_y'
petsc_options_iname = '-ksp_type -pc_type -pc_hypre_type '
petsc_options_value = 'gmres hypre boomeramg'
[]
[contact]
vars = 'leftright_normal_lm'
[]
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
end_time = 1
abort_on_solve_fail = true
l_max_its = 200
nl_abs_tol = 1e-8
line_search = 'none'
nl_max_its = 20
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[lin]
type = NumLinearIterations
outputs = 'console'
[]
[cum]
type = CumulativeValuePostprocessor
postprocessor = 'lin'
outputs = 'console'
[]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/uni_axial1_small_strain.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
# back = zmin
# front = zmax
# bottom = ymin
# top = ymax
# left = xmin
# right = xmax
[./xmin_xzero]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = '0'
[../]
[./ymin_yzero]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = '0'
[../]
[./zmin_zzero]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = '0'
[../]
[./zmax_disp]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front'
function = '-1E-3*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./mc_int]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10E6
[../]
[./mc_phi]
type = SolidMechanicsHardeningExponential
value_0 = 0
value_residual = 0.6981317 # 40deg
rate = 10000
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 0
mc_edge_smoother = 25
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-10
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '5.77E10 3.85E10' # young = 100Gpa, poisson = 0.3
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-10
plastic_models = mc
max_NR_iterations = 1000
debug_fspb = crash
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
end_time = 0.5
dt = 0.05
solve_type = NEWTON
type = Transient
line_search = 'none'
nl_rel_tol = 1E-10
l_tol = 1E-3
l_max_its = 200
nl_max_its = 10
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[]
[Outputs]
file_base = uni_axial1_small_strain
exodus = true
[./csv]
type = CSV
[../]
[]
(modules/combined/test/tests/elastic_patch/ad_elastic_patch_rspherical.i)
#
# Patch test for 1D spherical elements
#
# The 1D mesh is pinned at x=0. The displacement at the outer node is set to
# 3e-3*X where X is the x-coordinate of that node. That gives a strain of
# 3e-3 for the x, y, and z directions.
#
# Young's modulus is 1e6, and Poisson's ratio is 0.25. This gives:
#
# Stress xx, yy, zz = E/(1+nu)/(1-2nu)*strain*((1-nu) + nu + nu) = 6000
#
[GlobalParams]
displacements = 'disp_x'
temperature = temp
[]
[Mesh]
file = elastic_patch_rspherical.e
coord_type = RSPHERICAL
[]
[Variables]
[disp_x]
[]
[temp]
initial_condition = 117.56
[]
[]
[Physics/SolidMechanics/QuasiStatic/All]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz'
[]
[Kernels]
[heat]
type = TimeDerivative
variable = temp
[]
[]
[BCs]
[ur]
type = FunctionDirichletBC
variable = disp_x
boundary = '1 2'
function = '3e-3*x'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
[]
[stress]
type = ComputeStrainIncrementBasedStress
[]
[]
[Materials]
[density]
type = ADDensity
density = 0.283
outputs = all
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
end_time = 1.0
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/poro_mechanics/selected_qp.i)
# A sample is unconstrained and its boundaries are
# also impermeable. Fluid is pumped into the sample via specifying
# the porepressure at all points, and the
# mean stress is monitored at quadpoints in the sample
# This is just to check that the selected_qp in RankTwoScalarAux is working
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -1
xmax = 1
ymin = -1
ymax = 1
zmin = -1
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
porepressure = porepressure
block = 0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./porepressure]
[../]
[]
[BCs]
[./pbdy]
type = FunctionDirichletBC
variable = porepressure
function = 'x*t'
boundary = 'left right'
[../]
[]
[Kernels]
[./grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[../]
[./grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[../]
[./grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[../]
[./poro_x]
type = PoroMechanicsCoupling
variable = disp_x
component = 0
[../]
[./poro_y]
type = PoroMechanicsCoupling
variable = disp_y
component = 1
[../]
[./poro_z]
type = PoroMechanicsCoupling
variable = disp_z
component = 2
[../]
[./poro_timederiv]
type = PoroFullSatTimeDerivative
variable = porepressure
[../]
[]
[AuxVariables]
[./mean_stress0]
order = CONSTANT
family = MONOMIAL
[../]
[./mean_stress1]
order = CONSTANT
family = MONOMIAL
[../]
[./mean_stress2]
order = CONSTANT
family = MONOMIAL
[../]
[./mean_stress3]
order = CONSTANT
family = MONOMIAL
[../]
[./mean_stress4]
order = CONSTANT
family = MONOMIAL
[../]
[./mean_stress5]
order = CONSTANT
family = MONOMIAL
[../]
[./mean_stress6]
order = CONSTANT
family = MONOMIAL
[../]
[./mean_stress7]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./mean_stress0]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = mean_stress0
scalar_type = Hydrostatic
selected_qp = 0
[../]
[./mean_stress1]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = mean_stress1
scalar_type = Hydrostatic
selected_qp = 1
[../]
[./mean_stress2]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = mean_stress2
scalar_type = Hydrostatic
selected_qp = 2
[../]
[./mean_stress3]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = mean_stress3
scalar_type = Hydrostatic
selected_qp = 3
[../]
[./mean_stress4]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = mean_stress4
scalar_type = Hydrostatic
selected_qp = 4
[../]
[./mean_stress5]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = mean_stress5
scalar_type = Hydrostatic
selected_qp = 5
[../]
[./mean_stress6]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = mean_stress6
scalar_type = Hydrostatic
selected_qp = 6
[../]
[./mean_stress7]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = mean_stress7
scalar_type = Hydrostatic
selected_qp = 7
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '0.0 1.0'
fill_method = symmetric_isotropic
[../]
[./strain]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./poro_material]
type = PoroFullSatMaterial
porosity0 = 0.1
biot_coefficient = 1.0
solid_bulk_compliance = 0.5
fluid_bulk_compliance = 0.3
constant_porosity = false
[../]
[]
[Postprocessors]
[./mean0]
type = PointValue
outputs = csv
point = '0 0 0'
variable = mean_stress0
[../]
[./mean1]
type = PointValue
outputs = csv
point = '0 0 0'
variable = mean_stress1
[../]
[./mean2]
type = PointValue
outputs = csv
point = '0 0 0'
variable = mean_stress2
[../]
[./mean3]
type = PointValue
outputs = csv
point = '0 0 0'
variable = mean_stress3
[../]
[./mean4]
type = PointValue
outputs = csv
point = '0 0 0'
variable = mean_stress4
[../]
[./mean5]
type = PointValue
outputs = csv
point = '0 0 0'
variable = mean_stress5
[../]
[./mean6]
type = PointValue
outputs = csv
point = '0 0 0'
variable = mean_stress6
[../]
[./mean7]
type = PointValue
outputs = csv
point = '0 0 0'
variable = mean_stress7
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu NONZERO 1E-14 1E-10 10000'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 1
dt = 1
[]
[Outputs]
execute_on = 'timestep_end'
exodus = false
file_base = selected_qp
[./csv]
type = CSV
[../]
[]
(test/tests/time_integrators/rk-2/1d-linear.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = -1
xmax = 1
nx = 20
elem_type = EDGE2
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = x
[../]
[./exact_fn]
type = ParsedFunction
expression = t*x
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = ic
[../]
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
implicit = true
[../]
[./diff]
type = Diffusion
variable = u
implicit = false
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
implicit = false
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
[./TimeIntegrator]
type = ExplicitMidpoint
[../]
solve_type = 'LINEAR'
start_time = 0.0
num_steps = 10
dt = 0.001
l_tol = 1e-15
[]
[Outputs]
exodus = true
perf_graph = true
[]
(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/crystal_plasticity/twinning/check_direction_twin_propagation.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
elem_type = HEX8
[]
[]
[AuxVariables]
[twin_volume_fraction_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_4]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_5]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_6]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_7]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_8]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_9]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_10]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_11]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_4]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_5]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_6]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_7]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_8]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_9]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_10]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_11]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
[]
[AuxKernels]
[twin_volume_fraction_0]
type = MaterialStdVectorAux
variable = twin_volume_fraction_0
property = twin_system_volume_fraction
index = 0
execute_on = timestep_end
[]
[twin_volume_fraction_1]
type = MaterialStdVectorAux
variable = twin_volume_fraction_1
property = twin_system_volume_fraction
index = 1
execute_on = timestep_end
[]
[twin_volume_fraction_2]
type = MaterialStdVectorAux
variable = twin_volume_fraction_2
property = twin_system_volume_fraction
index = 2
execute_on = timestep_end
[]
[twin_volume_fraction_3]
type = MaterialStdVectorAux
variable = twin_volume_fraction_3
property = twin_system_volume_fraction
index = 3
execute_on = timestep_end
[]
[twin_volume_fraction_4]
type = MaterialStdVectorAux
variable = twin_volume_fraction_4
property = twin_system_volume_fraction
index = 4
execute_on = timestep_end
[]
[twin_volume_fraction_5]
type = MaterialStdVectorAux
variable = twin_volume_fraction_5
property = twin_system_volume_fraction
index = 5
execute_on = timestep_end
[]
[twin_volume_fraction_6]
type = MaterialStdVectorAux
variable = twin_volume_fraction_6
property = twin_system_volume_fraction
index = 6
execute_on = timestep_end
[]
[twin_volume_fraction_7]
type = MaterialStdVectorAux
variable = twin_volume_fraction_7
property = twin_system_volume_fraction
index = 7
execute_on = timestep_end
[]
[twin_volume_fraction_8]
type = MaterialStdVectorAux
variable = twin_volume_fraction_8
property = twin_system_volume_fraction
index = 8
execute_on = timestep_end
[]
[twin_volume_fraction_9]
type = MaterialStdVectorAux
variable = twin_volume_fraction_9
property = twin_system_volume_fraction
index = 9
execute_on = timestep_end
[]
[twin_volume_fraction_10]
type = MaterialStdVectorAux
variable = twin_volume_fraction_10
property = twin_system_volume_fraction
index = 10
execute_on = timestep_end
[]
[twin_volume_fraction_11]
type = MaterialStdVectorAux
variable = twin_volume_fraction_11
property = twin_system_volume_fraction
index = 11
execute_on = timestep_end
[]
[twin_tau_0]
type = MaterialStdVectorAux
variable = twin_tau_0
property = applied_shear_stress
index = 0
execute_on = timestep_end
[]
[twin_tau_1]
type = MaterialStdVectorAux
variable = twin_tau_1
property = applied_shear_stress
index = 1
execute_on = timestep_end
[]
[twin_tau_2]
type = MaterialStdVectorAux
variable = twin_tau_2
property = applied_shear_stress
index = 2
execute_on = timestep_end
[]
[twin_tau_3]
type = MaterialStdVectorAux
variable = twin_tau_3
property = applied_shear_stress
index = 3
execute_on = timestep_end
[]
[twin_tau_4]
type = MaterialStdVectorAux
variable = twin_tau_4
property = applied_shear_stress
index = 4
execute_on = timestep_end
[]
[twin_tau_5]
type = MaterialStdVectorAux
variable = twin_tau_5
property = applied_shear_stress
index = 5
execute_on = timestep_end
[]
[twin_tau_6]
type = MaterialStdVectorAux
variable = twin_tau_6
property = applied_shear_stress
index = 6
execute_on = timestep_end
[]
[twin_tau_7]
type = MaterialStdVectorAux
variable = twin_tau_7
property = applied_shear_stress
index = 7
execute_on = timestep_end
[]
[twin_tau_8]
type = MaterialStdVectorAux
variable = twin_tau_8
property = applied_shear_stress
index = 8
execute_on = timestep_end
[]
[twin_tau_9]
type = MaterialStdVectorAux
variable = twin_tau_9
property = applied_shear_stress
index = 9
execute_on = timestep_end
[]
[twin_tau_10]
type = MaterialStdVectorAux
variable = twin_tau_10
property = applied_shear_stress
index = 10
execute_on = timestep_end
[]
[twin_tau_11]
type = MaterialStdVectorAux
variable = twin_tau_11
property = applied_shear_stress
index = 11
execute_on = timestep_end
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'bottom'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '-5.0e-4*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.08e5 6.034e4 6.034e4 1.08e5 6.03e4 1.08e5 2.86e4 2.86e4 2.86e4' #Tallon and Wolfenden. J. Phys. Chem. Solids (1979)
fill_method = symmetric9
euler_angle_1 = 54.74
euler_angle_2 = 45.0
euler_angle_3 = 270.0
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'twin_only_xtalpl'
tan_mod_type = exact
[]
[twin_only_xtalpl]
type = CrystalPlasticityTwinningKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = 'fcc_input_twinning_systems.txt'
initial_twin_lattice_friction = 2.0
[]
[]
[Postprocessors]
[twin_volume_fraction_0]
type = ElementAverageValue
variable = twin_volume_fraction_0
[]
[twin_volume_fraction_1]
type = ElementAverageValue
variable = twin_volume_fraction_1
[]
[twin_volume_fraction_2]
type = ElementAverageValue
variable = twin_volume_fraction_2
[]
[twin_volume_fraction_3]
type = ElementAverageValue
variable = twin_volume_fraction_3
[]
[twin_volume_fraction_4]
type = ElementAverageValue
variable = twin_volume_fraction_4
[]
[twin_volume_fraction_5]
type = ElementAverageValue
variable = twin_volume_fraction_5
[]
[twin_volume_fraction_6]
type = ElementAverageValue
variable = twin_volume_fraction_6
[]
[twin_volume_fraction_7]
type = ElementAverageValue
variable = twin_volume_fraction_7
[]
[twin_volume_fraction_8]
type = ElementAverageValue
variable = twin_volume_fraction_8
[]
[twin_volume_fraction_9]
type = ElementAverageValue
variable = twin_volume_fraction_9
[]
[twin_volume_fraction_10]
type = ElementAverageValue
variable = twin_volume_fraction_10
[]
[twin_volume_fraction_11]
type = ElementAverageValue
variable = twin_volume_fraction_11
[]
[twin_tau_0]
type = ElementAverageValue
variable = twin_tau_0
[]
[twin_tau_1]
type = ElementAverageValue
variable = twin_tau_1
[]
[twin_tau_2]
type = ElementAverageValue
variable = twin_tau_2
[]
[twin_tau_3]
type = ElementAverageValue
variable = twin_tau_3
[]
[twin_tau_4]
type = ElementAverageValue
variable = twin_tau_4
[]
[twin_tau_5]
type = ElementAverageValue
variable = twin_tau_5
[]
[twin_tau_6]
type = ElementAverageValue
variable = twin_tau_6
[]
[twin_tau_7]
type = ElementAverageValue
variable = twin_tau_7
[]
[twin_tau_8]
type = ElementAverageValue
variable = twin_tau_8
[]
[twin_tau_9]
type = ElementAverageValue
variable = twin_tau_9
[]
[twin_tau_10]
type = ElementAverageValue
variable = twin_tau_10
[]
[twin_tau_11]
type = ElementAverageValue
variable = twin_tau_11
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.025
dtmin = 0.0125
num_steps = 9
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface03.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 0.5E-6m in y direction and 2.0E-6 in z direction.
# trial stress_yy = 0.5 and stress_zz = 2.0
#
# Then SimpleTester0 and SimpleTester2 should activate and the algorithm will return to
# the corner stress_yy=0.5, stress_zz=1
# internal0 should be 1.0, and others zero
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.5E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '2.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface03
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/umat/elastic_hardening/linear_strain_hardening.i)
# Testing the UMAT Interface - creep linear strain hardening model using the finite strain formulation - visco-plastic material.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Functions]
[top_pull]
type = ParsedFunction
expression = t/100
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Materials]
[constant]
type = AbaqusUMATStress
# Young's modulus, Poisson's Ratio, Yield, Hardening
constant_properties = '1000 0.3 10 100'
plugin = ../../../plugins/linear_strain_hardening
num_state_vars = 3
use_one_based_indexing = true
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 30
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
[out]
type = Exodus
elemental_as_nodal = true
[]
[]
(test/tests/postprocessors/nodal_var_value/pps_output_test.i)
[Mesh]
file = square-2x2-nodeids.e
# This test can only be run with renumering disabled, so the
# NodalVariableValue postprocessor's node id is well-defined.
allow_renumbering = false
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[../]
[./v]
order = SECOND
family = LAGRANGE
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
expression = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
expression = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
expression = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '2'
value = 0
[../]
[]
[Postprocessors]
[./l2]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./node1]
type = NodalVariableValue
variable = u
nodeid = 15
outputs = exodus
[../]
[./node4]
type = NodalVariableValue
variable = v
nodeid = 10
outputs = console
[../]
[./avg_v]
type = AverageElementSize
outputs = none
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 1
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface16.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 3
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 3.0E-6m in y direction and 2.1E-6 in z direction.
# trial stress_yy = 3.0 and stress_zz = 2.1
#
# A complicated return will follow, with various contraints being
# deactivated, kuhn-tucker failing, line-searching, etc, but
# the result should be
# stress_yy=1=stress_zz, and internal0=1.1 internal1=2
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '3.0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '2.1E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 3
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 4
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1'
debug_jac_at_intnl = '1 1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface16
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/combined/test/tests/cavity_pressure/negative_volume.i)
#
# Cavity Pressure Test
#
# This test is designed to compute a negative number of moles
# to trigger an error check in the CavityPressureUserObject.
# The negative number of moles is achieved by supplying an
# open volume to the InternalVolume postprocessor, which
# calculates a negative volume.
[Problem]
coord_type = RZ
[]
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 2
[]
[Functions]
[temperature]
type = PiecewiseLinear
x = '0 1'
y = '1 2'
scale_factor = 100
[]
[]
[Variables]
[temperature]
initial_condition = 100
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[block]
strain = FINITE
add_variables = true
[]
[]
[Kernels]
[heat]
type = Diffusion
variable = temperature
use_displaced_mesh = true
[]
[]
[BCs]
[no_x]
type = DirichletBC
variable = disp_r
boundary = left
value = 0.0
[]
[no_y]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[]
[temperatureInterior]
type = FunctionDirichletBC
boundary = 2
function = temperature
variable = temperature
[]
[CavityPressure]
[pressure]
boundary = 'top bottom right'
initial_pressure = 10e5
R = 8.3143
output_initial_moles = initial_moles
temperature = aveTempInterior
volume = internalVolume
startup_time = 0.5
output = ppress
[]
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[stress1]
type = ComputeFiniteStrainElasticStress
[]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_abs_tol = 1e-10
l_max_its = 20
dt = 0.5
end_time = 1.0
use_pre_SMO_residual = true
[]
[Postprocessors]
[internalVolume]
type = InternalVolume
boundary = 'top bottom right'
execute_on = 'initial linear'
[]
[aveTempInterior]
type = AxisymmetricCenterlineAverageValue
boundary = left
variable = temperature
execute_on = 'initial linear'
[]
[]
[Outputs]
exodus = false
[]
(test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test3nstt.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test3tt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
# [./element_id]
# [../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.09
normal_smoothing_distance = 0.2
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.09
normal_smoothing_distance = 0.2
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
# [./penetrate17]
# type = PenetrationAux
# variable = element_id
# boundary = 11
# paired_boundary = 12
# quantity = element_id
# [../]
#
# [./penetrate18]
# type = PenetrationAux
# variable = element_id
# boundary = 12
# paired_boundary = 11
# quantity = element_id
# [../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[]
[Outputs]
file_base = pl_test3nstt_out
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/action/no_action_1D.i)
# Simple 1D plane strain test
[GlobalParams]
displacements = 'disp_x'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 1
nx = 10
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[]
[Functions]
[pull]
type = ParsedFunction
expression = '0.06 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = right
variable = disp_x
value = 0.0
[]
[pull]
type = FunctionDirichletBC
boundary = left
variable = disp_x
function = pull
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[stress_base]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
dtmin = 1.0
end_time = 5.0
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_representative_slip_systems.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[temperature]
initial_condition = 300
[]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_0]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_1]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_2]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_3]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_4]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental = true
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[tau_0]
type = MaterialStdVectorAux
variable = resolved_shear_stress_0
property = applied_shear_stress
index = 0
execute_on = timestep_end
[]
[tau_1]
type = MaterialStdVectorAux
variable = resolved_shear_stress_1
property = applied_shear_stress
index = 1
execute_on = timestep_end
[]
[tau_2]
type = MaterialStdVectorAux
variable = resolved_shear_stress_2
property = applied_shear_stress
index = 2
execute_on = timestep_end
[]
[tau_3]
type = MaterialStdVectorAux
variable = resolved_shear_stress_3
property = applied_shear_stress
index = 3
execute_on = timestep_end
[]
[tau_4]
type = MaterialStdVectorAux
variable = resolved_shear_stress_4
property = applied_shear_stress
index = 4
execute_on = timestep_end
[]
[]
[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
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.1*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.622e5 9.18e4 6.88e4 1.622e5 6.88e4 1.805e5 4.67e4 4.67e4 4.67e4' #alpha Ti, Alankar et al. Acta Materialia 59 (2011) 7003-7009
fill_method = symmetric9
euler_angle_1 = 45
euler_angle_2 = 60
euler_angle_3 = 30
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityHCPDislocationSlipBeyerleinUpdate
number_slip_systems = 5
slip_sys_file_name = select_input_slip_sys_hcp.txt
unit_cell_dimension = '2.934e-7 2.934e-7 4.657e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
temperature = temperature
initial_forest_dislocation_density = 15.0e5
initial_substructure_density = 1.0e3
slip_system_modes = 4
number_slip_systems_per_mode = '1 1 2 1'
lattice_friction_per_mode = '10 10 15 30'
effective_shear_modulus_per_mode = '47e3 47e3 47e3 47e3'
burgers_vector_per_mode = '2.934e-7 2.934e-7 2.934e-7 6.586e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
slip_generation_coefficient_per_mode = '2e7 1e5 2e7 2e7'
normalized_slip_activiation_energy_per_mode = '3e-2 4e-3 3e-2 3e-2'
slip_energy_proportionality_factor_per_mode = '100 330 100 100'
substructure_rate_coefficient_per_mode = '100 400 1 1'
applied_strain_rate = 0.001
gamma_o = 1.0e-3
strain_rate_sensitivity_exponent = 0.05
Hall_Petch_like_constant_per_mode = '10 10 10 10'
grain_size = 20.0e-3 #20 microns,
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[tau_0]
type = ElementAverageValue
variable = resolved_shear_stress_0
[]
[tau_1]
type = ElementAverageValue
variable = resolved_shear_stress_1
[]
[tau_2]
type = ElementAverageValue
variable = resolved_shear_stress_2
[]
[tau_3]
type = ElementAverageValue
variable = resolved_shear_stress_3
[]
[tau_4]
type = ElementAverageValue
variable = resolved_shear_stress_4
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.05
dtmin = 0.01
dtmax = 0.1
end_time = 0.4
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_rayleigh_hht_AD.i)
# Wave propogation in 1D using HHT time integration in the presence of Rayleigh damping
#
# The test is for an 1D bar element of length 4m fixed on one end
# with a sinusoidal pulse dirichlet boundary condition applied to the other end.
# alpha, beta and gamma are HHT time integration parameters
# eta and zeta are mass dependent and stiffness dependent Rayleigh damping
# coefficients, respectively.
# The equation of motion in terms of matrices is:
#
# M*accel + (eta*M+zeta*K)*((1+alpha)*vel-alpha*vel_old)
# +(1+alpha)*K*disp-alpha*K*disp_old = 0
#
# Here M is the mass matrix, K is the stiffness matrix
#
# The displacement at the first, second, third and fourth node at t = 0.1 are
# -7.787499960311491942e-02, 1.955566679096475483e-02 and -4.634888180231294501e-03, respectively.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 4
nz = 1
xmin = 0.0
xmax = 0.1
ymin = 0.0
ymax = 4.0
zmin = 0.0
zmax = 0.1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[]
[Kernels]
[./DynamicSolidMechanics]
displacements = 'disp_x disp_y disp_z'
hht_alpha = -0.3
stiffness_damping_coefficient = 0.1
use_automatic_differentiation = true
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.422
gamma = 0.8
eta=0.1
alpha = -0.3
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.422
gamma = 0.8
eta=0.1
alpha = -0.3
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.422
gamma = 0.8
eta = 0.1
alpha = -0.3
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.422
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.8
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.422
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.8
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.422
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.8
execute_on = timestep_end
[../]
[]
[BCs]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = top
value=0.0
[../]
[./top_x]
type = DirichletBC
variable = disp_x
boundary = top
value=0.0
[../]
[./top_z]
type = DirichletBC
variable = disp_z
boundary = top
value=0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = right
value=0.0
[../]
[./right_z]
type = DirichletBC
variable = disp_z
boundary = right
value=0.0
[../]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = left
value=0.0
[../]
[./left_z]
type = DirichletBC
variable = disp_z
boundary = left
value=0.0
[../]
[./front_x]
type = DirichletBC
variable = disp_x
boundary = front
value=0.0
[../]
[./front_z]
type = DirichletBC
variable = disp_z
boundary = front
value=0.0
[../]
[./back_x]
type = DirichletBC
variable = disp_x
boundary = back
value=0.0
[../]
[./back_z]
type = DirichletBC
variable = disp_z
boundary = back
value=0.0
[../]
[./bottom_x]
type = DirichletBC
variable = disp_x
boundary = bottom
value=0.0
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value=0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = bottom
function = displacement_bc
[../]
[]
[Materials]
[./Elasticity_tensor]
type = ADComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1 0'
[../]
[./strain]
type = ADComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ADComputeLinearElasticStress
block = 0
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = 'density'
prop_values = '1'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
start_time = 0
end_time = 6.0
l_tol = 1e-12
nl_rel_tol = 1e-12
dt = 0.1
[]
[Functions]
[./displacement_bc]
type = PiecewiseLinear
data_file = 'sine_wave.csv'
format = columns
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_1]
type = NodalVariableValue
nodeid = 1
variable = disp_y
[../]
[./disp_2]
type = NodalVariableValue
nodeid = 3
variable = disp_y
[../]
[./disp_3]
type = NodalVariableValue
nodeid = 10
variable = disp_y
[../]
[./disp_4]
type = NodalVariableValue
nodeid = 14
variable = disp_y
[../]
[]
[Outputs]
file_base = 'wave_rayleigh_hht_out'
exodus = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/cohesive_zone_model/ad_czm.i)
[Mesh]
[msh]
type = FileMeshGenerator
file = patch_mesh.e
[]
[split]
type = BreakMeshByBlockGenerator
input = msh
[]
[add_surfaces]
type = SideSetsFromNormalsGenerator
input = split
normals = '0 0 1
0 1 0
1 0 0
0 0 -1
0 -1 0
-1 0 0'
fixed_normal = true
new_boundary = 'z1 y1 x1 z0 y0 x0'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
add_variables = true
new_system = true
[]
[]
[CohesiveZone]
[interface]
boundary = 'interface'
strain = SMALL
use_automatic_differentiation = true
[]
[]
[]
[]
[Functions]
[stretch]
type = PiecewiseLinear
x = '0 0.05'
y = '0 0.1'
[]
[]
[Constraints]
[x1]
type = EqualValueBoundaryConstraint
variable = disp_x
secondary = 'x1' # boundary
penalty = 1e6
[]
[y1]
type = EqualValueBoundaryConstraint
variable = disp_y
secondary = 'y1' # boundary
penalty = 1e6
[]
[]
[BCs]
[fix_x]
type = DirichletBC
value = 0.0
boundary = 'x0'
variable = disp_x
[]
[fix_y]
type = DirichletBC
value = 0.0
boundary = 'y0'
variable = disp_y
[]
[fix_z]
type = DirichletBC
value = 0.0
boundary = 'z0'
variable = disp_z
[]
[back_z]
type = FunctionDirichletBC
boundary = 'z1'
variable = disp_z
use_displaced_mesh = true
function = stretch
preset = false
[]
[rotate_x]
type = DisplacementAboutAxis
boundary = 'x0 y0 z0 x1 y1 z1'
function = '90.'
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 1. 0.'
component = 0
variable = disp_x
angular_velocity = true
preset = false
[]
[rotate_y]
type = DisplacementAboutAxis
boundary = 'x0 y0 z0 x1 y1 z1'
function = '90.'
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 1. 0.'
component = 1
variable = disp_y
angular_velocity = true
preset = false
[]
[rotate_z]
type = DisplacementAboutAxis
boundary = 'x0 y0 z0 x1 y1 z1'
function = '90.'
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 1. 0.'
component = 2
variable = disp_z
angular_velocity = true
preset = false
[]
[]
[Controls]
[c1]
type = TimePeriod
enable_objects = 'BCs::fix_x BCs::fix_y BCs::fix_z BCs::back_z Constraints::x1 Constraints::y1'
disable_objects = 'BCs::rotate_x BCs::rotate_y BCs::rotate_z'
start_time = '0'
end_time = '0.05'
[]
[]
[Materials]
[stress]
type = ComputeLagrangianLinearElasticStress
[]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
[]
[czm_mat]
type = ADPureElasticTractionSeparation
normal_stiffness = 1e4
tangent_stiffness = 7e3
boundary = 'interface'
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
automatic_scaling = true
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-15
nl_abs_tol = 1e-15
start_time = 0.0
dt = 0.025
end_time = 0.075
[]
[Outputs]
exodus = true
print_linear_residuals = false
[]
(modules/solid_mechanics/test/tests/j2_plasticity/solid_mechanics_j2plasticity.i)
[Mesh]
displacements = 'x_disp y_disp z_disp'
[generated_mesh]
type = GeneratedMeshGenerator
elem_type = HEX8
dim = 3
nx = 1
ny = 1
nz = 1
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
zmin = 0.0
zmax = 1.0
[]
[cnode]
type = ExtraNodesetGenerator
coord = '0.0 0.0 0.0'
new_boundary = 6
input = generated_mesh
[]
[snode]
type = ExtraNodesetGenerator
coord = '1.0 0.0 0.0'
new_boundary = 7
input = cnode
[]
[]
[Variables]
[./x_disp]
order = FIRST
family = LAGRANGE
[../]
[./y_disp]
order = FIRST
family = LAGRANGE
[../]
[./z_disp]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'x_disp y_disp z_disp'
use_displaced_mesh = true
[../]
[]
[Materials]
[./fplastic]
type = FiniteStrainPlasticMaterial
block=0
yield_stress='0. 445. 0.05 610. 0.1 680. 0.38 810. 0.95 920. 2. 950.'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
C_ijkl = '2.827e5 1.21e5 1.21e5 2.827e5 1.21e5 2.827e5 0.808e5 0.808e5 0.808e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'x_disp y_disp z_disp'
[../]
[]
[Functions]
[./topfunc]
type = ParsedFunction
expression = 't'
[../]
[]
[BCs]
[./bottom3]
type = DirichletBC
variable = z_disp
boundary = 0
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = z_disp
boundary = 5
function = topfunc
[../]
[./corner1]
type = DirichletBC
variable = x_disp
boundary = 6
value = 0.0
[../]
[./corner2]
type = DirichletBC
variable = y_disp
boundary = 6
value = 0.0
[../]
[./corner3]
type = DirichletBC
variable = z_disp
boundary = 6
value = 0.0
[../]
[./side1]
type = DirichletBC
variable = y_disp
boundary = 7
value = 0.0
[../]
[./side2]
type = DirichletBC
variable = z_disp
boundary = 7
value = 0.0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./peeq]
order = CONSTANT
family = MONOMIAL
[../]
[./pe11]
order = CONSTANT
family = MONOMIAL
[../]
[./pe22]
order = CONSTANT
family = MONOMIAL
[../]
[./pe33]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./pe11]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = pe11
index_i = 0
index_j = 0
[../]
[./pe22]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = pe22
index_i = 1
index_j = 1
[../]
[./pe33]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = pe33
index_i = 2
index_j = 2
[../]
[./eqv_plastic_strain]
type = MaterialRealAux
property = eqv_plastic_strain
variable = peeq
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full=true
[../]
[]
[Executioner]
type = Transient
dt=0.1
dtmax=1
dtmin=0.1
end_time=1.0
nl_abs_tol = 1e-10
[]
[Outputs]
file_base = out
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/cross_material/correctness/plastic_j2.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 1
nz = 1
[]
[]
[AuxVariables]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[strain_xz]
order = CONSTANT
family = MONOMIAL
[]
[strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[strain_xx]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[strain_yy]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[strain_zz]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[strain_xy]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[strain_xz]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[strain_yz]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = false
[]
[sdy]
type = UpdatedLagrangianStressDivergence
variable = disp_y
component = 1
use_displaced_mesh = false
[]
[sdz]
type = UpdatedLagrangianStressDivergence
variable = disp_z
component = 2
use_displaced_mesh = false
[]
[]
[Functions]
[pullx]
type = ParsedFunction
expression = 't'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[lefty]
type = DirichletBC
preset = true
boundary = bottom
variable = disp_y
value = 0.0
[]
[leftz]
type = DirichletBC
preset = true
boundary = back
variable = disp_z
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = pullx
[]
[]
[UserObjects]
[./str]
type = SolidMechanicsHardeningPowerRule
value_0 = 100.0
epsilon0 = 0.1
exponent = 2.0
[../]
[./j2]
type = SolidMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianWrappedStress
[]
[compute_stress_base]
type = ComputeMultiPlasticityStress
plastic_models = j2
ep_plastic_tolerance = 1E-9
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[./strain]
type = ElementAverageValue
variable = strain_xx
[]
[./stress]
type = ElementAverageValue
variable = stress_xx
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 0.001
dtmin = 0.001
end_time = 0.05
[]
[Outputs]
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_convergence_issue_flag.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[center_node]
type = BoundingBoxNodeSetGenerator
input = cube
new_boundary = 'center_point'
top_right = '0.51 0.51 0'
bottom_left = '0.49 0.49 0'
[]
[back_edge_y]
type = BoundingBoxNodeSetGenerator
input = center_node
new_boundary = 'back_edge_y'
bottom_left = '0.9 0.5 0'
top_right = '1.1 0.5 0'
[]
[back_edge_x]
type = BoundingBoxNodeSetGenerator
input = back_edge_y
new_boundary = back_edge_x
bottom_left = '0.5 0.9 0'
top_right = '0.5 1.0 0'
[]
[]
[AuxVariables]
[temperature]
initial_condition = 300
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental = true
add_variables = true
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'center_point back_edge_y'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'center_point back_edge_x'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.001*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.622e5 9.18e4 6.88e4 1.622e5 6.88e4 1.805e5 4.67e4 4.67e4 4.67e4' #alpha Ti, Alankar et al. Acta Materialia 59 (2011) 7003-7009
fill_method = symmetric9
euler_angle_1 = 164.5
euler_angle_2 = 90.0
euler_angle_3 = 15.3
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
print_state_variable_convergence_error_messages = true
[]
[trial_xtalpl]
type = CrystalPlasticityHCPDislocationSlipBeyerleinUpdate
number_slip_systems = 15
slip_sys_file_name = hcp_aprismatic_capyramidal_slip_sys.txt
unit_cell_dimension = '2.934e-7 2.934e-7 4.657e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
temperature = temperature
initial_forest_dislocation_density = 15.0e5
initial_substructure_density = 1.0e3
slip_system_modes = 2
number_slip_systems_per_mode = '3 12'
lattice_friction_per_mode = '0.5 5'
effective_shear_modulus_per_mode = '4.7e4 4.7e4' #Ti, in MPa, https://materialsproject.org/materials/mp-46/
burgers_vector_per_mode = '2.934e-7 6.586e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
slip_generation_coefficient_per_mode = '1e5 2e7'
normalized_slip_activiation_energy_per_mode = '4e-3 3e-2'
slip_energy_proportionality_factor_per_mode = '330 100'
substructure_rate_coefficient_per_mode = '400 100'
applied_strain_rate = 0.001
gamma_o = 1.0e-3
Hall_Petch_like_constant_per_mode = '2e-3 2e-3' #minimize impact
grain_size = 20.0e-3 #20 microns
print_state_variable_convergence_error_messages = true
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
nl_max_its = 20
l_max_its = 50
dt = 0.3
dtmin = 1.0e-4
dtmax = 0.1
num_steps = 1
[]
(modules/contact/test/tests/bouncing-block-contact/variational-frictional-action.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
[]
[Mesh]
[file_mesh]
type = FileMeshGenerator
file = long-bottom-block-1elem-blocks-coarse.e
[]
[remove]
type = BlockDeletionGenerator
input = file_mesh
block = '3 4'
[]
patch_update_strategy = iteration
[]
# [Problem]
# type = DumpObjectsProblem
# dump_path = Contact/contact_action
# []
[Variables]
[disp_x]
block = '1 2'
scaling = 1e1
[]
[disp_y]
block = '1 2'
scaling = 1e1
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[]
[AuxVariables]
[procid]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[procid]
type = ProcessorIDAux
variable = procid
[]
[]
[Contact]
[contact_action]
model = coulomb
formulation = mortar
c_normal = 1.0e-2
c_tangential = 1.0e-1
friction_coefficient = 0.1
primary = 10
secondary = 20
normalize_c = true
normal_lm_scaling = 1e3
tangential_lm_scaling = 1e2
correct_edge_dropping = true
use_dual = false
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu NONZERO 1e-15'
l_max_its = 30
nl_max_its = 25
line_search = 'none'
nl_rel_tol = 1e-12
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
[exodus]
type = Exodus
hide = 'procid contact_pressure nodal_area penetration'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
(modules/solid_mechanics/test/tests/mean_cap_TC/random04.i)
# apply many random large deformations, checking that the algorithm returns correctly to
# the yield surface each time.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 125
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./max_yield_fcn]
type = ElementExtremeValue
variable = yield_fcn
outputs = 'console'
[../]
[./should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console'
[../]
[]
[Functions]
[./should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'max_yield_fcn'
[../]
[]
[UserObjects]
[./tensile_strength]
type = SolidMechanicsHardeningCubic
value_0 = 1
value_residual = 0.1
internal_limit = 0.1
[../]
[./compressive_strength]
type = SolidMechanicsHardeningCubic
value_0 = -1.5
value_residual = 0
internal_limit = 0.1
[../]
[./cap]
type = SolidMechanicsPlasticMeanCapTC
tensile_strength = tensile_strength
compressive_strength = compressive_strength
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
use_custom_returnMap = true
use_custom_cto = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
max_NR_iterations = 2
ep_plastic_tolerance = 1E-6
plastic_models = cap
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random04
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/outputs/sampled_output/over_sampling_second_file.i)
[Mesh]
type = FileMesh
# Read in and work with a second order mesh
file = wedge18_mesh.e
# If we have an oversample mesh file, we haven not yet implemented
# synchronization of its partitioning with the problem mesh, so we
# need to keep the problem mesh replicated.
parallel_type = replicated
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[./forcing_fn]
type = ParsedFunction
expression = -4+(x*x+y*y)
[../]
[]
[Variables]
active = 'u'
[./u]
[../]
[]
[Kernels]
active = 'ie diff ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1 2 4'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.2
start_time = 0
num_steps = 3
[]
[Outputs]
file_base = out_wedge
[./oversample]
type = Exodus
file_base = out_wedge_oversample
file = wedge6_mesh.e
[../]
[]
(modules/solid_mechanics/test/tests/mean_cap/random.i)
# apply many random large deformations, checking that the algorithm returns correctly to
# the yield surface each time. Two yield surfaces are used: one for compression and one for tension.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 125
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./max_yield_fcn]
type = ElementExtremeValue
variable = yield_fcn
outputs = 'console'
[../]
[./should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console'
[../]
[]
[Functions]
[./should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'max_yield_fcn'
[../]
[]
[UserObjects]
[./strength]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./cap1]
type = SolidMechanicsPlasticMeanCap
a = -1
strength = strength
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[./cap2]
type = SolidMechanicsPlasticMeanCap
a = 1
strength = strength
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
max_NR_iterations = 2
ep_plastic_tolerance = 1E-6
plastic_models = 'cap1 cap2'
debug_fspb = crash
deactivation_scheme = optimized
min_stepsize = 1
max_stepsize_for_dumb = 1
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/combined/test/tests/elastic_thermal_patch/elastic_thermal_patch_rz_smp.i)
#
# This problem is modified from the Abaqus verification manual:
# "1.5.4 Patch test for axisymmetric elements"
# The original stress solution is given as:
# xx = yy = zz = 2000
# xy = 400
#
# Here, E=1e6 and nu=0.25.
# However, with a +100 degree change in temperature and a coefficient
# of thermal expansion of 1e-6, the solution becomes:
# xx = yy = zz = 1800
# xy = 400
# since
# E*(1-nu)/(1+nu)/(1-2*nu)*(1+2*nu/(1-nu))*(1e-3-1e-4) = 1800
#
# Also,
#
# dSrr dSrz Srr-Stt
# ---- + ---- + ------- + br = 0
# dr dz r
#
# and
#
# dSrz Srz dSzz
# ---- + --- + ---- + bz = 0
# dr r dz
#
# where
# Srr = stress in rr
# Szz = stress in zz
# Stt = stress in theta-theta
# Srz = stress in rz
# br = body force in r direction
# bz = body force in z direction
#
# This test is meant to exercise the Jacobian. To that end, the body
# force has been turned off. This makes the results differ slightly
# from the original values, but requires a correct Jacobian for minimal
# iterations. Iteration plotting is turned on to ensure that the
# number of iterations needed does not increase.
[GlobalParams]
temperature = temp
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = elastic_thermal_patch_rz_test.e
[]
[Functions]
[./ur]
type = ParsedFunction
expression = '1e-3*x'
[../]
[./uz]
type = ParsedFunction
expression = '1e-3*(x+y)'
[../]
[./body]
type = ParsedFunction
expression = '-400/x'
[../]
[./temp]
type = ParsedFunction
expression = '117.56+100*t'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 117.56
[../]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
displacements = 'disp_x disp_y'
[All]
displacements = 'disp_x disp_y'
add_variables = true
strain = SMALL
incremental = true
eigenstrain_names = eigenstrain
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[../]
[../]
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./ur]
type = FunctionDirichletBC
variable = disp_x
boundary = 10
function = ur
[../]
[./uz]
type = FunctionDirichletBC
variable = disp_y
boundary = 10
function = uz
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = 10
function = temp
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
bulk_modulus = 666666.6666666667
poissons_ratio = 0.25
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-6
stress_free_temperature = 117.56
eigenstrain_name = eigenstrain
[../]
[./stress]
type = ComputeStrainIncrementBasedStress
[../]
[./heat]
type = HeatConductionMaterial
specific_heat = 0.116
thermal_conductivity = 4.85e-4
[../]
[./density]
type = Density
block = 1
density = 0.283
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_abs_tol = 1e-11
nl_rel_tol = 1e-12
l_max_its = 20
start_time = 0.0
dt = 1.0
num_steps = 1
end_time = 1.0
[]
[Outputs]
file_base = elastic_thermal_patch_rz_smp_out
[./exodus]
type = Exodus
execute_on = 'initial timestep_end nonlinear'
nonlinear_residual_dt_divisor = 100
[../]
[]
(modules/xfem/test/tests/high_order_elements/diffusion_2d.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 3
ny = 4
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = TRI6
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '0.35 1.0 0.35 0.2'
time_start_cut = 0.0
time_end_cut = 2.0
[../]
[]
[Variables]
[./u]
[../]
[]
[Functions]
[./u_left]
type = PiecewiseLinear
x = '0 2'
y = '0 0.1'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
# Define boundary conditions
[./left_u]
type = FunctionDirichletBC
variable = u
boundary = 3
function = u_left
[../]
[./right_u]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
line_search = 'none'
l_tol = 1e-3
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
end_time = 2.0
[]
[Outputs]
time_step_interval = 1
execute_on = timestep_end
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/tensile/small_deform2_update_version.i)
# Using TensileStressUpdate
# checking for small deformation
# A single element is stretched equally in all directions.
# This causes the return direction to be along the sigma_I = sigma_II = sigma_III line
# tensile_strength is set to 1Pa, and smoothing_tol = 0.1Pa
# The smoothed yield function comes from two smoothing operations.
# The first is on sigma_I and sigma_II (sigma_I >= sigma_II >= sigma_III):
# yf = sigma_I + ismoother(0) - tensile_strength
# = sigma_I + (0.5 * smoothing_tol - smoothing_tol / Pi) - tensile_strength
# = sigma_I + 0.018169 - 1
# The second has the argument of ismoother equal to -0.018169.
# ismoother(-0.018169) = 0.5 * (-0.018169 + 0.1) - 0.1 * cos (0.5 * Pi * -0.018169 / 0.1) / Pi
# = 0.010372
# So the final yield function is
# yf = sigma_I + 0.018169 + 0.010372 - 1 = sigma_I + 0.028541 - 1
# However, because of the asymmetry in smoothing (the yield function is obtained
# by first smoothing sigma_I-ts and sigma_II-ts, and then by smoothing this
# result with sigma_III-ts) the result is sigma_I = sigma_II > sigma_III
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./tensile]
type = TensileStressUpdate
tensile_strength = ts
smoothing_tol = 0.1
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2_update_version
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/combined/test/tests/reference_residual/reference_residual.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 4
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_z]
[../]
[./saved_t]
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
volumetric_locking_correction = true
incremental = true
save_in = 'saved_x saved_y saved_z'
eigenstrain_names = thermal_expansion
strain = FINITE
decomposition_method = EigenSolution
extra_vector_tags = 'ref'
temperature = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
extra_vector_tags = 'ref'
[../]
[]
[Functions]
[./pull]
type = PiecewiseLinear
x = '0 1 2'
y = '0 1 1'
scale_factor = 0.1
[../]
[]
[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_x]
type = DirichletBC
variable = disp_x
boundary = top
value = 0.0
[../]
[./top_y]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = pull
[../]
[./top_z]
type = DirichletBC
variable = disp_z
boundary = top
value = 0.0
[../]
[./bottom_temp]
type = DirichletBC
variable = temp
boundary = bottom
value = 10.0
[../]
[./top_temp]
type = DirichletBC
variable = temp
boundary = top
value = 20.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 0
youngs_modulus = 1.0
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 0
eigenstrain_name = thermal_expansion
temperature = temp
thermal_expansion_coeff = 1e-5
stress_free_temperature = 0.0
[../]
[./heat1]
type = HeatConductionMaterial
block = 0
specific_heat = 1.0
thermal_conductivity = 1e-3 #Tuned to give temperature reference resid close to that of solidmech
[../]
[./density]
type = Density
block = 0
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_rel_tol = 1e-10
l_tol = 1e-3
l_max_its = 100
dt = 1.0
end_time = 2.0
[]
[Postprocessors]
[./ref_resid_x]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_x
[../]
[./ref_resid_y]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_y
[../]
[./ref_resid_z]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_z
[../]
[./ref_resid_t]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_t
[../]
[./nonlinear_its]
type = NumNonlinearIterations
[]
[]
[Outputs]
exodus = true
[]
(test/tests/bcs/second_deriv/test_lap_bc.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmin = -1
xmax = 1
ymin = -1
ymax = 1
elem_type = QUAD9
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = force_fn
[../]
[]
[Functions]
[./left_bc_func]
type = ParsedFunction
expression = '1+y*y'
[../]
[./top_bc_func]
type = ParsedFunction
expression = '1+x*x'
[../]
[./bottom_bc_func]
type = ParsedFunction
expression = '1+x*x'
[../]
[./force_fn]
type = ParsedFunction
expression = -4
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
boundary = left
function = left_bc_func
[../]
[./bottom]
type = FunctionDirichletBC
variable = u
boundary = bottom
function = bottom_bc_func
[../]
[./top]
type = FunctionDirichletBC
variable = u
boundary = top
function = top_bc_func
[../]
[./right_test]
type = TestLapBC
variable = u
boundary = right
[../]
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
[]
[Outputs]
file_base = out
exodus = true
[]
(test/tests/postprocessors/avg_nodal_var_value/avg_nodal_var_value_ts_begin.i)
[Mesh]
file = square-2x2-nodeids.e
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[../]
[./v]
order = SECOND
family = LAGRANGE
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
expression = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
expression = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
expression = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '2'
value = 0
[../]
[]
[Postprocessors]
[./l2]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./node1]
type = AverageNodalVariableValue
variable = u
boundary = 10
execute_on = TIMESTEP_BEGIN
[../]
[./node4]
type = AverageNodalVariableValue
variable = v
boundary = 13
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_avg_nodal_var_value_ts_begin
exodus = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface11.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 3
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 0E-6m in y direction and 2E-6 in z direction.
# trial stress_yy = 0 and stress_zz = 2.0
#
# Then SimpleTester0 should activate and the algorithm will return to
# stress_zz=1
# internal0 should be 1.0
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '2.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 3
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface11
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test1q.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test1q.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_abs_tol = 1e-7
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test1q_out
exodus = true
[]
(modules/solid_mechanics/test/tests/tensile/small_deform5.i)
# checking for small deformation
# A single element is incrementally stretched in the in the z and x directions
# This causes the return direction to be along the hypersurface sigma_I = sigma_II,
# and the resulting stresses are checked to lie on the expected yield surface
#
# tensile_strength is set to 1Pa, tip_smoother = 0.5, edge_smoother = 25degrees
# Then A + B + C = 0.609965
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.25E-6*x*t*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.25E-6*z*t*t'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningCubic
value_0 = 1
[../]
[./mc]
type = SolidMechanicsPlasticTensile
tensile_strength = ts
yield_function_tolerance = 1E-6
tensile_tip_smoother = 0.5
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform5
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/random_planar.i)
# apply many random large deformations, checking that the algorithm returns correctly to
# the yield surface each time.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 100
ny = 1250
nz = 1
xmin = 0
xmax = 100
ymin = 0
ymax = 1250
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./yield_fcn_at_zero]
type = PointValue
point = '0 0 0'
variable = yield_fcn
outputs = 'console'
[../]
[./should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console'
[../]
[]
[Functions]
[./should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'yield_fcn_at_zero'
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningCubic
value_0 = 1000
value_residual = 100
internal_limit = 4
[../]
[./phi]
type = SolidMechanicsHardeningCubic
value_0 = 0.8
value_residual = 0.3
internal_limit = 2
[../]
[./psi]
type = SolidMechanicsHardeningConstant
value = 15
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = coh
friction_angle = phi
dilation_angle = psi
yield_function_tolerance = 1E-3
shift = 1E-10
internal_constraint_tolerance = 1E-6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-10
plastic_models = mc
min_stepsize = 1
max_stepsize_for_dumb = 1
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random_planar
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/combined/test/tests/elastic_patch/elastic_patch_rspherical.i)
#
# Patch test for 1D spherical elements
#
# The 1D mesh is pinned at x=0. The displacement at the outer node is set to
# 3e-3*X where X is the x-coordinate of that node. That gives a strain of
# 3e-3 for the x, y, and z directions.
#
# Young's modulus is 1e6, and Poisson's ratio is 0.25. This gives:
#
# Stress xx, yy, zz = E/(1+nu)/(1-2nu)*strain*((1-nu) + nu + nu) = 6000
#
[GlobalParams]
displacements = 'disp_x'
temperature = temp
[]
[Mesh]
file = elastic_patch_rspherical.e
coord_type = RSPHERICAL
[]
[Variables]
[temp]
initial_condition = 117.56
[]
[]
[Physics/SolidMechanics/QuasiStatic/All]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz'
[]
[Kernels]
[heat]
type = TimeDerivative
variable = temp
[]
[]
[BCs]
[ur]
type = FunctionDirichletBC
variable = disp_x
boundary = '1 2'
function = '3e-3*x'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
[]
[stress]
type = ComputeStrainIncrementBasedStress
[]
[density]
type = Density
density = 0.283
outputs = all
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
end_time = 1.0
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/combined_plasticity_temperature/ad_plasticity_temperature_dep_yield.i)
#
# This is a test of the piece-wise linear strain hardening model using the
# small strain formulation. This test exercises the temperature-dependent
# yield stress.
#
# Test procedure:
# 1. The element is pulled to and then beyond the yield stress for a given
# temperature.
# 2. The displacement is then constant while the temperature increases and
# the yield stress decreases. This results in a lower stress with more
# plastic strain.
# 3. The temperature decreases beyond its original value giving a higher
# yield stress. The displacement increases, causing increases stress to
# the new yield stress.
# 4. The temperature and yield stress are constant with increasing
# displacement giving a constant stress and more plastic strain.
#
# Plotting total_strain_yy on the x axis and stress_yy on the y axis shows
# the stress history in a clear way.
#
# s |
# t | *****
# r | *
# e | ***** *
# s | * * *
# s | * *
# |*
# +------------------
# total strain
#
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
incremental = true
add_variables = true
generate_output = 'stress_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
use_automatic_differentiation = true
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./top_pull]
type = PiecewiseLinear
x = '0 1 2 4 5 6'
y = '0 0.025 0.05 0.05 0.06 0.085'
[../]
[./yield]
type = PiecewiseLinear
x = '400 500 600'
y = '6e3 5e3 4e3'
[../]
[./temp]
type = PiecewiseLinear
x = '0 1 2 3 4'
y = '500 500 500 600 400'
[../]
[]
[Kernels]
[./heat]
type = ADHeatConduction
variable = temp
[../]
[]
[BCs]
[./y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[../]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
function = temp
boundary = left
[../]
[]
[Materials]
[./elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
block = 0
youngs_modulus = 2.0e5
poissons_ratio = 0.3
[../]
[./creep_plas]
type = ADComputeMultipleInelasticStress
block = 0
inelastic_models = 'plasticity'
max_iterations = 50
absolute_tolerance = 1e-05
[../]
[./plasticity]
type = ADIsotropicPlasticityStressUpdate
block = 0
hardening_constant = 0
yield_stress_function = yield
temperature = temp
[../]
[./heat_conduction]
type = ADHeatConductionMaterial
block = 0
specific_heat = 1
thermal_conductivity = 1
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 6
dt = 0.1
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/pdass_problems/ironing_penalty.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = iron.e
[]
[secondary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10001
new_block_name = 'secondary_lower'
sidesets = '10'
input = input_file
[]
[primary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10000
sidesets = '20'
new_block_name = 'primary_lower'
input = secondary
[]
patch_update_strategy = auto
patch_size = 20
allow_renumbering = false
[]
[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
[]
[real_weighted_gap]
order = FIRST
family = LAGRANGE
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[saved_x]
[]
[saved_y]
[]
[diag_saved_x]
[]
[diag_saved_y]
[]
[von_mises]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[disp_ramp_vert]
type = PiecewiseLinear
x = '0. 2. 8.'
y = '0. -1.0 -1.0'
[]
[disp_ramp_horz]
type = PiecewiseLinear
x = '0. 8.'
y = '0. 8.'
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
save_in = 'saved_x saved_y'
block = '1 2'
strain = FINITE
[]
[]
[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
[]
[real_weighted_gap_auxk]
type = PenaltyMortarUserObjectAux
variable = real_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'
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
block = '1 2'
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
block = '1 2'
[]
[von_mises_kernel]
#Calculates the von mises stress and assigns it to von_mises
type = RankTwoScalarAux
variable = von_mises
rank_two_tensor = stress
execute_on = timestep_end
scalar_type = VonMisesStress
block = '1 2'
[]
[]
[VectorPostprocessors]
[penalty_normal_pressure]
type = NodalValueSampler
variable = penalty_normal_pressure
boundary = 10
sort_by = id
[]
[]
[BCs]
[bot_x_disp]
type = DirichletBC
variable = disp_x
boundary = '40'
value = 0.0
preset = false
[]
[bot_y_disp]
type = DirichletBC
variable = disp_y
boundary = '40'
value = 0.0
preset = false
[]
[top_y_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = '30'
function = disp_ramp_vert
preset = false
[]
[top_x_disp]
type = FunctionDirichletBC
variable = disp_x
boundary = '30'
function = disp_ramp_horz
preset = false
[]
[]
[Materials]
[stuff1_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 6896
poissons_ratio = 0.32
[]
[stuff1_strain]
type = ComputeFiniteStrain
block = '2'
[]
[stuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[stuff2_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 689.6
poissons_ratio = 0.32
[]
[stuff2_strain]
type = ComputeFiniteStrain
block = '1'
[]
[stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-7
nl_rel_tol = 1e-7
l_tol = 1e-6
l_max_its = 50
nl_max_its = 30
start_time = 0.0
end_time = 6.5
dt = 0.0125
dtmin = 1e-5
[Predictor]
type = SimplePredictor
scale = 1.0
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
start_time = 0.0
execute_vector_postprocessors_on = FINAL
[]
[console]
type = Console
max_rows = 5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[UserObjects]
[friction_uo]
type = PenaltyFrictionUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 10000
secondary_subdomain = 10001
disp_x = disp_x
disp_y = disp_y
friction_coefficient = 0.1 # with 2.0 works
secondary_variable = disp_x
penalty = 1e5
penalty_friction = 1e4
use_physical_gap = true
[]
[]
[Constraints]
[x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
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 = 20
secondary_boundary = 10
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
[]
[t_x]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
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
[]
[t_y]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
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
[]
[]
(test/tests/postprocessors/pps_interval/pps_bad_interval3.i)
[Mesh]
file = square-2x2-nodeids.e
# This test can only be run with renumering disabled, so the
# NodalVariableValue postprocessor's node id is well-defined.
allow_renumbering = false
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[../]
[./v]
order = SECOND
family = LAGRANGE
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
expression = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
expression = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
expression = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '2'
value = 0
[../]
[]
[Postprocessors]
active = 'l2 node1 node4'
[./l2]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./node1]
type = NodalVariableValue
variable = u
nodeid = 15
[../]
[./node4]
type = NodalVariableValue
variable = v
nodeid = 10
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = ignore_bad
time_step_interval = 2
exodus = true
[]
(modules/solid_mechanics/test/tests/1D_axisymmetric/axisymmetric_gps_small.i)
#
# This test checks the generalized plane strain using small strain formulation.
# The model consists of two sets of line elements. One undergoes a temperature rise of 100 with
# the other seeing a temperature rise of 300. Young's modulus is 3600, and
# Poisson's ratio is 0.2. The thermal expansion coefficient is 1e-8. All
# nodes are constrained against movement.
#
# For plane strain case, i.e., without constraining the strain_yy to be uniform,
# the stress solution would be [-6e-3, -6e-3, -6e-3] and [-18e-3, -18e-3, -18e-3] (xx, yy, zz).
# The generalized plane strain kernels work to balance the force in y direction.
#
# With out of plane strain of 3e-6, the stress solution becomes
# [-3e-3, 6e-3, -3e-3] and [-15e-3, -6e-3, -15e-3] (xx, yy, zz). This gives
# a domain integral of out-of-plane stress to be zero.
#
[GlobalParams]
displacements = disp_x
scalar_out_of_plane_strain = scalar_strain_yy
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = lines.e
[]
[Variables]
[disp_x]
[]
[temp]
initial_condition = 580.0
[]
[scalar_strain_yy]
order = FIRST
family = SCALAR
[]
[]
[Functions]
[temp100]
type = PiecewiseLinear
x = '0 1'
y = '580 680'
[]
[temp300]
type = PiecewiseLinear
x = '0 1'
y = '580 880'
[]
[]
[Kernels]
[heat]
type = Diffusion
variable = temp
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[gps]
planar_formulation = GENERALIZED_PLANE_STRAIN
scalar_out_of_plane_strain = scalar_strain_yy
strain = SMALL
generate_output = 'strain_xx strain_yy strain_zz stress_xx stress_yy stress_zz'
eigenstrain_names = eigenstrain
temperature = temp
[]
[]
[BCs]
[no_x]
type = DirichletBC
boundary = 1000
value = 0
variable = disp_x
[]
[temp100]
type = FunctionDirichletBC
variable = temp
function = temp100
boundary = 2
[]
[temp300]
type = FunctionDirichletBC
variable = temp
function = temp300
boundary = 3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 3600
poissons_ratio = 0.2
[]
[thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-8
temperature = temp
stress_free_temperature = 580
eigenstrain_name = eigenstrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_max_its = 50
l_tol = 1e-08
nl_max_its = 15
nl_abs_tol = 1e-10
start_time = 0
end_time = 1
num_steps = 1
[]
[Outputs]
exodus = true
console = true
[]
(modules/combined/test/tests/j2_plasticity_vs_LSH/j2_hard1_mod_optimised.i)
# Test designed to compare results and active time between SH/LinearStrainHardening
# material vs TM j2 plastic user object. As number of elements increases, TM
# active time increases at a much higher rate than SM. Testing at 4x4x4
# (64 elements).
#
# plot vm_stress vs intnl to see constant hardening
#
# Original test located at:
# solid_mechanics/tests/j2_plasticity/hard1.i
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 4
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[disp_z]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[TensorMechanics]
displacements = 'disp_x disp_y disp_z'
[]
[]
[AuxVariables]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[intnl]
order = CONSTANT
family = MONOMIAL
[]
[vm_stress]
order = CONSTANT
family = MONOMIAL
[]
[eq_pl_strain]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[]
[intnl]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = intnl
[]
[eq_pl_strain]
type = RankTwoScalarAux
rank_two_tensor = plastic_strain
scalar_type = EffectiveStrain
variable = eq_pl_strain
[]
[vm_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
scalar_type = VonMisesStress
variable = vm_stress
[]
[]
[BCs]
[left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
[z]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 't/60'
[]
[]
[UserObjects]
[str]
type = TensorMechanicsHardeningConstant
value = 2.4e2
[]
[j2]
type = TensorMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
#with E = 2.1e5 and nu = 0.3
#Hooke's law: E-nu to Lambda-G
C_ijkl = '121154 80769.2'
[]
[strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[]
[mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = j2
perform_finite_strain_rotations = false
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = NEWTON
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
#line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
l_tol = 1e-4
start_time = 0.0
end_time = 0.5
dt = 0.5
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[intnl]
type = ElementAverageValue
variable = intnl
[]
[eq_pl_strain]
type = PointValue
point = '0 0 0'
variable = eq_pl_strain
[]
[vm_stress]
type = PointValue
point = '0 0 0'
variable = vm_stress
[]
[]
[Outputs]
csv = true
print_linear_residuals = false
perf_graph = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/1D.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
coord_type = RZ
[fred]
type = GeneratedMeshGenerator
dim = 1
nx = 25
xmin = 0
xmax = 1
boundary_name_prefix = left
elem_type = edge3
[]
[wilma]
type = GeneratedMeshGenerator
dim = 1
nx = 25
xmin = 2
xmax = 3
boundary_id_offset = 10
boundary_name_prefix = right
elem_type = edge3
[]
[combine]
type = CombinerGenerator
inputs = 'fred wilma'
[]
[]
[Functions]
[temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[]
[]
[Variables]
[temp]
initial_condition = 100
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[BCs]
[temp_far_left]
type = FunctionDirichletBC
boundary = left_left
variable = temp
function = temp
[]
[temp_far_right]
type = DirichletBC
boundary = right_right
variable = temp
value = 100
[]
[]
[ThermalContact]
[thermal_contact]
type = GapHeatTransfer
variable = temp
primary = right_left
secondary = left_right
emissivity_primary = 0
emissivity_secondary = 0
[]
[]
[Materials]
[heat]
type = HeatConductionMaterial
specific_heat = 1.0
thermal_conductivity = 1.0e6
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_abs_tol = 1e-3
nl_rel_tol = 1e-12
l_tol = 1e-8
l_max_its = 100
start_time = 0.0
dt = 2e-1
end_time = 2.0
[]
[Postprocessors]
[temp_left]
type = SideAverageValue
boundary = left_right
variable = temp
execute_on = 'initial timestep_end'
[]
[temp_right]
type = SideAverageValue
boundary = right_left
variable = temp
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
exodus = true
[]
(modules/peridynamics/test/tests/simple_tests/2D_small_strain_H1NOSPD.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 8
ny = 8
[../]
[./gpd]
type = MeshGeneratorPD
input = gmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1003
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 1001
function = '0.001*t'
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = NONORDINARY_STATE
stabilization = BOND_HORIZON_I
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e8
poissons_ratio = 0.3
[../]
[./strain]
type = ComputePlaneSmallStrainNOSPD
stabilization = BOND_HORIZON_I
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
end_time = 1
[./Quadrature]
type = GAUSS_LOBATTO
order = FIRST
[../]
[]
[Outputs]
file_base = 2D_small_strain_H1NOSPD
exodus = true
[]
(modules/solid_mechanics/test/tests/drucker_prager/small_deform3_inner_tip.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-1.7E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticDruckerPragerHyperbolic
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
smoother = 8
mc_interpolation_scheme = inner_tip
yield_function_tolerance = 1E-7
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-13
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3_inner_tip
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/uni_axial3.i)
[Mesh]
type = FileMesh
file = quarter_hole.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./zmin_zzero]
type = DirichletBC
variable = disp_z
boundary = 'zmin'
value = '0'
[../]
[./xmin_xzero]
type = DirichletBC
variable = disp_x
boundary = 'xmin'
value = '0'
[../]
[./ymin_yzero]
type = DirichletBC
variable = disp_y
boundary = 'ymin'
value = '0'
[../]
[./ymax_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'ymax'
function = '-1E-4*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0.005 0.02 0.002'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10E6
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 40
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 40
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 0.01E6
mc_edge_smoother = 29
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 1
fill_method = symmetric_isotropic
C_ijkl = '0 5E9' # young = 10Gpa, poisson = 0.0
[../]
[./strain]
type = ComputeIncrementalStrain
block = 1
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 1
ep_plastic_tolerance = 1E-11
plastic_models = mc
max_NR_iterations = 1000
debug_fspb = crash
[../]
[]
# Preconditioning and Executioner options kindly provided by Andrea
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
end_time = 1.05
dt = 0.1
solve_type = NEWTON
type = Transient
nl_abs_tol = 1E-10
nl_rel_tol = 1E-12
l_tol = 1E-2
l_max_its = 50
nl_max_its = 400
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[]
[Outputs]
file_base = uni_axial3
exodus = true
[./csv]
type = CSV
[../]
[]
(test/tests/restart/restart_add_variable/transient_with_stateful.i)
# We run a simple problem (5 time steps and save off the solution)
# In part2, we load the solution and solve a steady problem. The test check, that the initial state in part 2 is the same as the last state from part1
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[./forcing_fn]
type = ParsedFunction
expression = -4+(x*x+y*y)
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./diffusivity]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./out_diffusivity]
type = MaterialRealAux
variable = diffusivity
property = diffusivity
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = MatDiffusionTest
variable = u
prop_name = diffusivity
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Materials]
[./mat]
type = StatefulMaterial
block = 0
initial_diffusivity = 0.5
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.2
start_time = 0
num_steps = 5
[]
[Outputs]
checkpoint = true
[./out]
type = Exodus
elemental_as_nodal = true
execute_elemental_on = none
[../]
[]
(modules/contact/test/tests/frictional/single_point_2d/single_point_2d.i)
[Mesh]
file = single_point_2d.e
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./horizontal_movement]
type = ParsedFunction
expression = t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
save_in = 'saved_x saved_y'
diag_save_in = 'diag_saved_x diag_saved_y'
[../]
[]
[AuxKernels]
[./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
[../]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./botx2]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0.0
[../]
[./boty2]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = horizontal_movement
[../]
[./topy]
type = DirichletBC
variable = disp_y
boundary = 4
value = -0.005
[../]
[]
[Materials]
[./bottom]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e9
poissons_ratio = 0.3
[../]
[./top]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[../]
[./ref_resid_x]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_x
[../]
[./ref_resid_y]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_y
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
petsc_options = '-mat_superlu_dist_iterrefine -mat_superlu_dist_replacetinypivot'
line_search = 'none'
l_max_its = 100
nl_max_its = 200
dt = 0.001
end_time = 0.01
num_steps = 1000
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
dtmin = 0.001
l_tol = 1e-3
[]
[Outputs]
exodus = true
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
primary = 2
secondary = 3
model = coulomb
friction_coefficient = '0.25'
[../]
[]
[Dampers]
[./contact_slip]
type = ContactSlipDamper
primary = '2'
secondary = '3'
[../]
[]
(modules/solid_mechanics/test/tests/multi/two_surface03.i)
# Plasticit models:
# SimpleTester with a = 0 and b = 1 and strength = 1
# SimpleTester with a = 1 and b = 1 and strength = 2
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 3.0E-6m in z directions and 0.5E-6 in y direction.
# trial stress_zz = 3.0 and stress_yy = 0.5
#
# Then both SimpleTesters should activate initially and return to the "corner" point
# (stress_zz = 1 = stress_yy), but then the plastic multiplier for SimpleTester2 will
# be negative, and so it will be deactivated, and the algorithm will return to
# stress_zz = 1, stress_yy = 0.5
# internal0 should be 2, and internal1 should be 0
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.5E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '3E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[]
[UserObjects]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 2
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = two_surface03
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/multi/three_surface05.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 1E-6m in y direction and 1.1E-6 in z direction.
# trial stress_yy = 1 and stress_zz = 1.1
#
# Then SimpleTester0 and SimpleTester2 should activate and the algorithm will return to
# the corner stress_yy=0.5, stress_zz=1
# However, this will mean internal0 < 0, so SimpleTester0 will be deactivated and
# then the algorithm will return to
# stress_yy=0.7, stress_zz=0.8
# internal0 should be 0.0, and internal2 should be 0.3
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1.0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.1E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface05
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/kernels/simple_transient_diffusion/ill_conditioned_simple_diffusion.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 2
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = MatDiffusion
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
preset = false
boundary = left
value = 0
[../]
[./right]
type = FunctionDirichletBC
variable = u
preset = false
boundary = right
function = constant
[../]
[]
[Functions]
[constant]
type = ParsedFunction
expression = '1'
[]
[ramp]
type = ParsedFunction
expression = 't'
[]
[]
[Materials]
active = 'constant'
[constant]
type = GenericConstantMaterial
prop_names = 'D'
prop_values = '1e20'
[]
[function]
type = GenericFunctionMaterial
prop_names = 'D'
prop_values = '10^(t-1)'
[]
[]
[Executioner]
type = Transient
num_steps = 1
dt = 2
dtmin = 2
solve_type = NEWTON
petsc_options = '-pc_svd_monitor -ksp_view_pmat -snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -snes_stol'
petsc_options_value = 'svd 0'
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/truss/truss_3d.i)
[Mesh]
type = FileMesh
file = truss_3d.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./e_over_l]
order = CONSTANT
family = MONOMIAL
[../]
[./area]
order = CONSTANT
family = MONOMIAL
# initial_condition = 1.0
[../]
[./react_x]
order = FIRST
family = LAGRANGE
[../]
[./react_y]
order = FIRST
family = LAGRANGE
[../]
[./react_z]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./x2]
type = PiecewiseLinear
x = '0 1 2 3'
y = '0 .5 1 1'
[../]
[./y2]
type = PiecewiseLinear
x = '0 1 2 3'
y = '0 0 .5 1'
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0.0
[../]
[./fixx2]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = 2
function = x2
[../]
[./fixx3]
type = DirichletBC
variable = disp_x
preset = false
boundary = 3
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./fixy2]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = y2
[../]
[./fixy3]
type = DirichletBC
variable = disp_y
preset = false
boundary = 3
value = 0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./fixz2]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[./fixz3]
type = DirichletBC
variable = disp_z
preset = false
boundary = 3
value = 0
[../]
[]
[AuxKernels]
[./axial_stress]
type = MaterialRealAux
block = '1 2'
property = axial_stress
variable = axial_stress
[../]
[./e_over_l]
type = MaterialRealAux
block = '1 2'
property = e_over_l
variable = e_over_l
[../]
[./area]
type = ConstantAux
block = '1 2'
variable = area
value = 1.0
execute_on = 'initial timestep_begin'
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'jacobi 101'
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
dt = 1
num_steps = 3
end_time = 3
[]
[Kernels]
[./solid_x]
type = StressDivergenceTensorsTruss
block = '1 2'
displacements = 'disp_x disp_y disp_z'
component = 0
variable = disp_x
area = area
save_in = react_x
[../]
[./solid_y]
type = StressDivergenceTensorsTruss
block = '1 2'
displacements = 'disp_x disp_y disp_z'
component = 1
variable = disp_y
area = area
save_in = react_y
[../]
[./solid_z]
type = StressDivergenceTensorsTruss
block = '1 2'
displacements = 'disp_x disp_y disp_z'
component = 2
variable = disp_z
area = area
save_in = react_z
[../]
[]
[Materials]
[./linelast]
type = LinearElasticTruss
block = '1 2'
youngs_modulus = 1e6
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl3D.i)
#
# 3D Cylindrical Gap Heat Transfer Test.
#
# This test exercises 3D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid cylinder of radius = 1 unit, and outer
# hollow cylinder with an inner radius of 2. In other words, the gap between
# them is 1 radial unit in length.
#
# The conductivity of both cylinders is set very large to achieve a uniform
# temperature in each cylinder. The temperature of the center node of the
# inner cylinder is ramped from 100 to 200 over one time unit. The temperature
# of the outside of the outer, hollow cylinder is held fixed at 100.
#
# A simple analytical solution is possible for the integrated heat flux
# between the inner and outer cylinders:
#
# Integrated Flux = (T_left - T_right) * (gapK/(r*ln(r2/r1))) * Area
#
# For gapK = 1 (default value)
#
# The area is taken as the area of the secondary (inner) surface:
#
# Area = 2 * pi * h * r, where h is the height of the cylinder.
#
# The integrated heat flux across the gap at time 1 is then:
#
# 2*pi*h*k*delta_T/(ln(r2/r1))
# 2*pi*1*1*100/(ln(2/1)) = 906.5 watts
#
# For comparison, see results from the integrated flux post processors.
# This simulation makes use of symmetry, so only 1/4 of the cylinders is meshed
# As such, the integrated flux from the post processors is 1/4 of the total,
# or 226.6 watts.
# The value coming from the post processor is slightly less than this
# but converges as mesh refinement increases.
#
# Simulating contact is challenging. Regression tests that exercise
# contact features can be difficult to solve consistently across multiple
# platforms. While designing these tests, we felt it worth while to note
# some aspects of these tests. The following applies to:
# sphere3D.i, sphere2DRZ.i, cyl2D.i, and cyl3D.i.
# 1. We decided that to perform consistently across multiple platforms we
# would use very small convergence tolerance. In this test we chose an
# nl_rel_tol of 1e-12.
# 2. Due to such a high value for thermal conductivity (used here so that the
# domains come to a uniform temperature) the integrated flux at time = 0
# was relatively large (the value coming from SideIntegralFlux =
# -_diffusion_coef[_qp]*_grad_u[_qp]*_normals[_qp] where the diffusion coefficient
# here is thermal conductivity).
# Even though _grad_u[_qp] is small, in this case the diffusion coefficient
# is large. The result is a number that isn't exactly zero and tends to
# fail exodiff. For this reason the parameter execute_on = initial should not
# be used. That parameter is left to default settings in these regression tests.
#
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = cyl3D.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
gap_conductivity = 1
quadrature = true
gap_geometry_type = CYLINDER
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 1 0'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 5
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[./Console]
type = Console
[../]
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform10.i)
# apply a shear deformation and tensile stretch to observe all hardening.
# Here p_trial=12, q_trial=2*Sqrt(20)
# MOOSE yields:
# q_returned = 1.696
# p_returned = 0.100
# intnl_shear = 1.81
# intnl_tens = 0.886
# These give, at the returned point
# cohesion = 1.84
# tanphi = 0.513
# tanpsi = 0.058
# tensile = 0.412
# This means that
# f_shear = -0.0895
# f_tensile = -0.312
# Note that these are within smoothing_tol (=1) of each other
# Hence, smoothing must be used:
# ismoother = 0.0895
# (which gives the yield function value = 0)
# smoother = 0.328
# This latter gives dg/dq = 0.671, dg/dp = 0.368
# for the flow directions. Finally ga = 2.70, and
# the returned point satisfies the normality conditions.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 't'
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = '2*t'
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 't'
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningExponential
value_0 = 1
value_residual = 2
rate = 1
[../]
[./tanphi]
type = SolidMechanicsHardeningExponential
value_0 = 1.0
value_residual = 0.5
rate = 2
[../]
[./tanpsi]
type = SolidMechanicsHardeningExponential
value_0 = 0.1
value_residual = 0.05
rate = 1
[../]
[./t_strength]
type = SolidMechanicsHardeningExponential
value_0 = 1
value_residual = 0
rate = 1
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 1E8
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '4 4'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
max_NR_iterations = 20
tip_smoother = 0
smoothing_tol = 1
yield_function_tol = 1E-3
perfect_guess = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform10
[./csv]
type = CSV
[../]
[]
(test/tests/postprocessors/nodal_extreme_value/nodal_max_value_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 20
ny = 20
[]
[Functions]
[exact_fn]
type = ParsedFunction
expression = (sin(pi*t))
[]
[forcing_fn]
type = ParsedFunction
expression = sin(pi*t)
[]
[]
[Variables]
active = 'u'
[u]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
active = 'diff' #ffn'
[ie]
type = TimeDerivative
variable = u
[]
[diff]
type = Diffusion
variable = u
[]
[ffn]
type = BodyForce
variable = u
function = forcing_fn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
num_steps = 20
[]
[Postprocessors]
[max_nodal_val]
type = NodalExtremeValue
variable = u
[]
[]
[Outputs]
file_base = out_nodal_max
exodus = true
[]
(modules/solid_mechanics/test/tests/multiple_two_parameter_plasticity/dp_and_wp.i)
# Use ComputeMultipleInelasticStress with two inelastic models: CappedDruckerPrager and CappedWeakPlane.
# The relative_tolerance and absolute_tolerance parameters are set small so that many
# Picard iterations need to be performed.
#
# The CappedDruckerPrager has tensile strength 3E2 and large cohesion,
# and the return-map sets stress = trial_stress - diag(d, d, d), for
# some d to be determined
# The CappedWeakPlane has tensile strength zero and large cohesion,
# and the return-map sets stress = diag(t - v*w/(1-v), t - v*w/(1-v), t - w)
# where t is trial stress, v is Poisson's ratio, and w is to be determined
#
# d and w are determined by demanding that the final stress shouldn't depend
# on the order of return-mapping (DP first then WP, or WP first then DP).
#
# Let the initial_stress = diag(I, I, I).
# The returned stress is diag(I - d - v*w/(1-v), I - d - v*w/(1-v), I - d - w). This
# must obey Tr(stress) <= dp_tensile_strength, and I-d-w <= wp_tensile_strength.
#
# For I = 1E3, and v = 0.2, the solution is d = 800 and w = 200, with
# stress = diag(150, 150, 0)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
eigenstrain_names = ini_stress
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = 0
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = 0
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = 0
[../]
[]
[AuxVariables]
[./yield_fcn_dp]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn_wp]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_dp_auxk]
type = MaterialStdVectorAux
index = 1 # this is the tensile yield function - it should be zero
property = cdp_plastic_yield_function
variable = yield_fcn_dp
[../]
[./yield_fcn_wp_auxk]
type = MaterialStdVectorAux
index = 1 # this is the tensile yield function - it should be zero
property = cwp_plastic_yield_function
variable = yield_fcn_wp
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f_dp]
type = PointValue
point = '0 0 0'
variable = yield_fcn_dp
[../]
[./f_wp]
type = PointValue
point = '0 0 0'
variable = yield_fcn_wp
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 300
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E4
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 1E4
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
internal_constraint_tolerance = 1 # irrelevant here
yield_function_tolerance = 1 # irrelevant here
[../]
[./wp_coh]
type = SolidMechanicsHardeningConstant
value = 1E4
[../]
[./wp_tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./wp_tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1111077
[../]
[./wp_t_strength]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./wp_c_strength]
type = SolidMechanicsHardeningConstant
value = 1E4
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.2
youngs_modulus = 1E7
[../]
[./ini_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '1E3 0 0 0 1E3 0 0 0 1E3'
eigenstrain_name = ini_stress
[../]
[./admissible]
type = ComputeMultipleInelasticStress
relative_tolerance = 1E-8
inelastic_models = 'cdp cwp'
perform_finite_strain_rotations = false
[../]
[./cdp]
type = CappedDruckerPragerStressUpdate
base_name = cdp
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-5
tip_smoother = 1E3
smoothing_tol = 1E3
[../]
[./cwp]
type = CappedWeakPlaneStressUpdate
base_name = cwp
cohesion = wp_coh
tan_friction_angle = wp_tanphi
tan_dilation_angle = wp_tanpsi
tensile_strength = wp_t_strength
compressive_strength = wp_c_strength
tip_smoother = 1E3
smoothing_tol = 1E3
yield_function_tol = 1E-5
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = dp_and_wp
csv = true
[]
(test/tests/postprocessors/nodal_var_value/nodal_aux_var_value.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
elem_type = QUAD4
# This test can only be run with renumering disabled, so the
# NodalVariableValue postprocessor's node id is well-defined.
allow_renumbering = false
[]
[Variables]
active = 'v'
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
active = 'v1'
[./v1]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
active = 'left_bc'
[./left_bc]
type = ParsedFunction
expression = t
[../]
[]
[Kernels]
active = 'time_v diff_v'
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[AuxKernels]
active = 'ak1'
[./ak1]
type = CoupledAux
variable = v1
coupled = v
value = 1
operator = '+'
[../]
[]
[BCs]
active = 'left_v right_v'
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '1'
value = 1
[../]
[]
[Postprocessors]
active = 'node4v node4v1'
[./node4v]
type = NodalVariableValue
variable = v
nodeid = 3
[../]
[./node4v1]
type = NodalVariableValue
variable = v1
nodeid = 3
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_nodal_aux_var_value
exodus = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/cg-dg-hybrid/mms/lid-driven-skewed/hybrid-skewed-vortex.i)
rho=1
mu=1
[Mesh]
[gen_mesh]
type = FileMeshGenerator
file = skewed.msh
[]
[corner_node]
type = ExtraNodesetGenerator
new_boundary = 'pinned_node'
nodes = '0'
input = gen_mesh
[]
[]
[Variables]
[u]
family = MONOMIAL
order = SECOND
[]
[v]
family = MONOMIAL
order = SECOND
[]
[pressure][]
[]
[Kernels]
[momentum_x_convection]
type = ADConservativeAdvection
variable = u
velocity = 'velocity'
[]
[momentum_x_diffusion]
type = Diffusion
variable = u
[]
[momentum_x_pressure]
type = PressureGradient
integrate_p_by_parts = false
variable = u
pressure = pressure
component = 0
[]
[u_forcing]
type = BodyForce
variable = u
function = forcing_u
[]
[momentum_y_convection]
type = ADConservativeAdvection
variable = v
velocity = 'velocity'
[]
[momentum_y_diffusion]
type = Diffusion
variable = v
[]
[momentum_y_pressure]
type = PressureGradient
integrate_p_by_parts = false
variable = v
pressure = pressure
component = 1
[]
[v_forcing]
type = BodyForce
variable = v
function = forcing_v
[]
[mass]
type = ADConservativeAdvection
variable = pressure
velocity = velocity
advected_quantity = -1
[]
[]
[DGKernels]
[momentum_x_convection]
type = ADDGAdvection
variable = u
velocity = 'velocity'
[]
[momentum_x_diffusion]
type = DGDiffusion
variable = u
sigma = 6
epsilon = -1
[]
[momentum_y_convection]
type = ADDGAdvection
variable = v
velocity = 'velocity'
[]
[momentum_y_diffusion]
type = DGDiffusion
variable = v
sigma = 6
epsilon = -1
[]
[]
[BCs]
[u_walls]
type = DGFunctionDiffusionDirichletBC
boundary = 'left bottom right top'
variable = u
sigma = 6
epsilon = -1
function = exact_u
[]
[v_walls]
type = DGFunctionDiffusionDirichletBC
boundary = 'left bottom right top'
variable = v
sigma = 6
epsilon = -1
function = exact_v
[]
[pressure_pin]
type = FunctionDirichletBC
variable = pressure
boundary = 'pinned_node'
function = 'exact_p'
[]
[]
[Materials]
[rho]
type = ADGenericConstantMaterial
prop_names = 'rho'
prop_values = '${rho}'
[]
[vel]
type = ADVectorFromComponentVariablesMaterial
vector_prop_name = 'velocity'
u = u
v = v
[]
[rhou]
type = ADParsedMaterial
property_name = 'rhou'
coupled_variables = 'u'
material_property_names = 'rho'
expression = 'rho*u'
[]
[rhov]
type = ADParsedMaterial
property_name = 'rhov'
coupled_variables = 'v'
material_property_names = 'rho'
expression = 'rho*v'
[]
[]
[Functions]
[exact_u]
type = ParsedFunction
expression = 'x^2*(1-x)^2*(2*y-6*y^2+4*y^3)'
[]
[exact_v]
type = ParsedFunction
expression = '-y^2*(1-y)^2*(2*x-6*x^2+4*x^3)'
[]
[exact_p]
type = ParsedFunction
expression = 'x*(1-x)-2/12'
[]
[forcing_u]
type = ParsedFunction
expression = '-4*mu/rho*(-1+2*y)*(y^2-6*x*y^2+6*x^2*y^2-y+6*x*y-6*x^2*y+3*x^2-6*x^3+3*x^4)+1-2*x+4*x^3'
'*y^2*(2*y^2-2*y+1)*(y-1)^2*(-1+2*x)*(x-1)^3'
symbol_names = 'mu rho'
symbol_values = '${mu} ${rho}'
[]
[forcing_v]
type = ParsedFunction
expression = '4*mu/rho*(-1+2*x)*(x^2-6*y*x^2+6*x^2*y^2-x+6*x*y-6*x*y^2+3*y^2-6*y^3+3*y^4)+4*y^3*x^2*(2'
'*x^2-2*x+1)*(x-1)^2*(-1+2*y)*(y-1)^3'
symbol_names = 'mu rho'
symbol_values = '${mu} ${rho}'
[]
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu NONZERO mumps'
nl_rel_tol = 1e-12
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[h]
type = AverageElementSize
outputs = 'console csv'
execute_on = 'timestep_end'
[]
[L2u]
type = ElementL2Error
variable = u
function = exact_u
outputs = 'console csv'
execute_on = 'timestep_end'
[]
[L2v]
variable = v
function = exact_v
type = ElementL2Error
outputs = 'console csv'
execute_on = 'timestep_end'
[]
[L2p]
variable = pressure
function = exact_p
type = ElementL2Error
outputs = 'console csv'
execute_on = 'timestep_end'
[]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform2.i)
# Using CappedMohrCoulomb with tensile failure only
# checking for small deformation
# A single element is stretched equally in all directions.
# This causes the return direction to be along the sigma_I = sigma_II = sigma_III line
# tensile_strength is set to 1Pa, and smoothing_tol = 0.1Pa
# The smoothed yield function comes from two smoothing operations.
# The first is on sigma_I and sigma_II (sigma_I >= sigma_II >= sigma_III):
# yf = sigma_I + ismoother(0) - tensile_strength
# = sigma_I + (0.5 * smoothing_tol - smoothing_tol / Pi) - tensile_strength
# = sigma_I + 0.018169 - 1
# The second has the argument of ismoother equal to -0.018169.
# ismoother(-0.018169) = 0.5 * (-0.018169 + 0.1) - 0.1 * cos (0.5 * Pi * -0.018169 / 0.1) / Pi
# = 0.010372
# So the final yield function is
# yf = sigma_I + 0.018169 + 0.010372 - 1 = sigma_I + 0.028541 - 1
# However, because of the asymmetry in smoothing (the yield function is obtained
# by first smoothing sigma_I-ts and sigma_II-ts, and then by smoothing this
# result with sigma_III-ts) the result is sigma_I = sigma_II > sigma_III
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = finite
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = ts
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.1
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2
csv = true
[]
(test/tests/mesh/mesh_generation/annulus.i)
# Generates an Annular Mesh
# Radius of inside circle=1
# Radius of outside circle=5
# Solves the diffusion equation with
# u=0 on inside
# u=log(5) on outside
[Mesh]
type = AnnularMesh
nr = 10
nt = 12
rmin = 1
rmax = 5
growth_r = 1.3
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./inner]
type = DirichletBC
variable = u
value = 0.0
boundary = rmin
[../]
[./outer]
type = FunctionDirichletBC
variable = u
function = log(5)
boundary = rmax
[../]
[]
[Executioner]
type = Steady
solve_type = PJFNK
[]
[Outputs]
exodus = true
[]
(test/tests/utils/spline_interpolation/spline_interpolation.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 4
xmin = -1
xmax = 3
elem_type = EDGE2
[]
[Functions]
[./spline_fn]
type = SplineFunction
x = '-1 0 3'
y = '0.5 0 3'
[../]
[]
[Variables]
[./u]
order = THIRD
family = HERMITE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ufn]
type = SplineFFn
variable = u
function = spline_fn
[../]
[]
[BCs]
[./sides]
type = FunctionDirichletBC
variable = u
boundary = '0 1'
function = spline_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = spline_fn
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence/2D/dirichlet.i)
# Simple 2D plane strain test
[GlobalParams]
displacements = 'disp_x disp_y'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 2
nx = 4
ny = 4
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[sdy]
type = UpdatedLagrangianStressDivergence
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[]
[Functions]
[pullx]
type = ParsedFunction
expression = '0.5 * t'
[]
[pully]
type = ParsedFunction
expression = '-0.3 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[lefty]
type = DirichletBC
preset = true
boundary = left
variable = disp_y
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = pullx
preset = true
[]
[pull_y]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pully
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
start_time = 0.0
dt = 0.2
dtmin = 0.2
end_time = 1.0
[]
[Postprocessors]
[nonlin]
type = NumNonlinearIterations
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/contact/test/tests/3d-mortar-contact/frictionless-mortar-3d.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
second_order = false
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[disp_z]
block = '1 2'
[]
[mortar_normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[ICs]
[disp_z]
block = 1
variable = disp_z
value = '${fparse offset}'
type = ConstantIC
[]
[disp_x]
block = 1
variable = disp_x
value = 0
type = ConstantIC
[]
[disp_y]
block = 1
variable = disp_y
value = 0
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[disp_z]
type = MatDiffusion
variable = disp_z
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
[]
[]
[Constraints]
[normal_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = 1
dt = .5
dtmin = .01
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor'
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'
l_max_its = 100
nl_max_its = 30
# nl_rel_tol = 1e-6
nl_abs_tol = 1e-12
line_search = 'none'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_normal_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[]
(modules/porous_flow/test/tests/hysteresis/hys_pc_1.i)
# Capillary-pressure calculation. First-order wetting curve
# When comparing the results with a by-hand computation, remember the MOOSE results are averaged over an element
# Also, when using info_required=sat, remember that: (1) the hysteretic capillary pressure is not invertible if no high extension is used; (2) if saturation exceeds the turning point (eg sat <= 0.1) then the drying curve will be used
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmin = 0
xmax = 1
nx = 100
[]
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
number_fluid_phases = 1
number_fluid_components = 1
porous_flow_vars = ''
[]
[]
[Variables]
[sat]
[]
[]
[ICs]
[sat]
type = FunctionIC
variable = sat
function = 'x'
[]
[]
[BCs]
[sat]
type = FunctionDirichletBC
variable = sat
function = 'x'
boundary = 'left right'
[]
[]
[Kernels]
[dummy]
type = Diffusion
variable = sat
[]
[]
[Materials]
[hys_order]
type = PorousFlowHysteresisOrder
initial_order = 1
previous_turning_points = 0.1
[]
[pc_calculator]
type = PorousFlowHystereticInfo
alpha_d = 10.0
alpha_w = 7.0
n_d = 1.5
n_w = 1.9
S_l_min = 0.1
S_lr = 0.2
S_gr_max = 0.3
Pc_max = 12.0
high_ratio = 0.9
low_extension_type = none
high_extension_type = none
sat_var = sat
[]
[]
[AuxVariables]
[hys_order]
family = MONOMIAL
order = CONSTANT
[]
[pc]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[hys_order]
type = PorousFlowPropertyAux
variable = hys_order
property = hysteresis_order
[]
[pc]
type = PorousFlowPropertyAux
variable = pc
property = hysteretic_info
[]
[]
[VectorPostprocessors]
[pc]
type = LineValueSampler
warn_discontinuous_face_values = false
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 10
sort_by = x
variable = 'sat pc'
[]
[]
[Executioner]
type = Transient
solve_type = Linear
dt = 1
end_time = 1
[]
[Outputs]
csv = true
[]
(test/tests/kernels/vector_fe/electromagnetic_coulomb_gauge.i)
# This is an MMS problem that demonstrates solution of Maxwell's equations in the
# Coulomb gauge potential form. The equations solved are:
# -\nabla^2 V = f_{V,mms}
# -\nabla^2 A - \omega^2 A + \nabla \frac{\partial V}{\partial t} = f_{A,mms}
# This tests the value and gradient of a VectorMooseVariable as well as the time
# derivative of the gradient of a standard MooseVariable
#
# This input file is subject to two tests:
# 1) An exodiff test of the physics
# 2) A Jacobian test to verify accuracy of hand-coded Jacobian routines
[Mesh]
type = GeneratedMesh
dim = 2
nx = 15
ny = 15
xmin = -1
ymin = -1
[]
[Variables]
[./V]
[../]
[./A]
family = LAGRANGE_VEC
order = FIRST
scaling = 1e-10
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = V
coef = 5
[../]
[./V_frc]
type = BodyForce
function = 'V_forcing_function'
variable = V
[../]
[./A_diff]
type = VectorCoefDiffusion
variable = A
coef = 5
[../]
[./A_coeff_reaction]
type = VectorCoeffReaction
variable = A
coefficient = -.09
[../]
[./A_coupled_grad_td]
type = VectorCoupledGradientTimeDerivative
variable = A
v = V
[../]
[./A_frc]
type = VectorBodyForce
variable = A
function_x = 'Ax_forcing_function'
function_y = 'Ay_forcing_function'
function_z = '0'
[../]
[]
[BCs]
[./bnd_V]
type = FunctionDirichletBC
variable = V
boundary = 'left right top bottom'
function = 'V_exact_sln'
[../]
[./bnd_A]
type = VectorPenaltyDirichletBC
variable = A
x_exact_sln = 'Ax_exact_sln'
y_exact_sln = 'Ay_exact_sln'
z_exact_sln = '0'
penalty = 1e10
boundary = 'left right top bottom'
[../]
[]
[Functions]
[./V_exact_sln]
type = ParsedFunction
expression = 'cos(0.3*t)*cos(1.1*x)*cos(1.2*y)'
[../]
[./Ax_exact_sln]
type = ParsedFunction
expression = 'cos(0.3*t)*cos(0.4*x)*cos(0.5*y)'
[../]
[./Ay_exact_sln]
type = ParsedFunction
expression = 'cos(0.3*t)*cos(0.6*x)*cos(0.7*y)'
[../]
[./V_forcing_function]
type = ParsedFunction
expression = '0.33*sin(0.3*t)*sin(1.1*x)*cos(1.2*y) + 13.25*cos(0.3*t)*cos(1.1*x)*cos(1.2*y)'
[../]
[./Ax_forcing_function]
type = ParsedFunction
expression = '0.33*sin(0.3*t)*sin(1.1*x)*cos(1.2*y) + 1.96*cos(0.3*t)*cos(0.4*x)*cos(0.5*y)'
[../]
[./Ay_forcing_function]
type = ParsedFunction
expression = '0.36*sin(0.3*t)*sin(1.2*y)*cos(1.1*x) + 4.16*cos(0.3*t)*cos(0.6*x)*cos(0.7*y)'
[../]
[]
[Preconditioning]
[./pre]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
num_steps = 10
end_time = 3
l_max_its = 100
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'asm 100'
petsc_options = '-ksp_converged_reason -ksp_monitor_true_residual -ksp_monitor_singular_value -snes_linesearch_monitor'
line_search = 'bt'
[]
[Outputs]
exodus = true
print_linear_residuals = false
[]
[Debug]
show_var_residual_norms = true
[]
(modules/combined/test/tests/internal_volume/hex20.i)
#
# Internal Volume Test
#
# This test is designed to compute the internal volume of a space considering
# an embedded volume inside.
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total volume
# is 7.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = meshes/hex20.e
[]
[Functions]
[./step]
type = PiecewiseLinear
x = '0. 1. 2. 3.'
y = '0. 0. 1e-2 0.'
scale_factor = 0.5
[../]
[]
[Variables]
[./disp_x]
order = SECOND
family = LAGRANGE
[../]
[./disp_y]
order = SECOND
family = LAGRANGE
[../]
[./disp_z]
order = SECOND
family = LAGRANGE
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
incremental = true
strain = FINITE
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 100
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 100
value = 0.0
[../]
[./prescribed_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 100
function = step
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
start_time = 0.0
dt = 1.0
end_time = 3.0
[./Quadrature]
order = THIRD
[../]
[]
[Postprocessors]
[./internalVolume]
type = InternalVolume
boundary = 100
execute_on = 'initial timestep_end'
[../]
[./dispZ]
type = ElementAverageValue
block = '1 2'
variable = disp_z
[../]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface22.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 1.7E-6m in y direction and 1.1E-6 in z direction.
# trial stress_yy = 1.7 and stress_zz = 1.1
#
# Then all yield functions will activate
# However, there is linear dependence. SimpleTester0 will be rutned off.
# The algorithm will return to
# stress_yy=1.0 and stress_zz=0.5
# internal1=0.1, internal2=0.6
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1.7E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.1E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface22
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/porous_flow/test/tests/energy_conservation/heat04_rz.i)
# The sample is a single unit element in RZ coordinates
# A constant velocity is applied to the outer boundary is free to move as a source injects heat and fluid into the system
# There is no fluid flow or heat flow.
# Heat energy conservation is checked.
# Mass conservation is checked
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmin = 1
xmax = 2
ymin = -0.5
ymax = 0.5
coord_type = RZ
[]
[GlobalParams]
displacements = 'disp_r disp_z'
PorousFlowDictator = dictator
block = 0
biot_coefficient = 0.3
[]
[Variables]
[disp_r]
[]
[disp_z]
[]
[pp]
initial_condition = 0.1
[]
[temp]
initial_condition = 10
[]
[]
[BCs]
[plane_strain]
type = DirichletBC
variable = disp_z
value = 0
boundary = 'bottom top'
[]
[rmin_fixed]
type = DirichletBC
variable = disp_r
value = 0
boundary = left
[]
[contract]
type = FunctionDirichletBC
variable = disp_r
function = -0.01*t
boundary = right
[]
[]
[PorousFlowFullySaturated]
coupling_type = ThermoHydroMechanical
porepressure = pp
temperature = temp
fp = simple_fluid
[]
[DiracKernels]
[heat_source]
type = PorousFlowPointSourceFromPostprocessor
point = '1.5 0 0'
variable = temp
mass_flux = 10
[]
[fluid_source]
type = PorousFlowPointSourceFromPostprocessor
point = '1.5 0 0'
variable = pp
mass_flux = 1
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 0.5
density0 = 1
viscosity = 1
thermal_expansion = 0
cv = 1.3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '1 1.5'
# bulk modulus is lambda + 2*mu/3 = 1 + 2*1.5/3 = 2
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeAxisymmetricRZSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[]
[rock_heat]
type = PorousFlowMatrixInternalEnergy
specific_heat_capacity = 2.2
density = 0.5
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '0.5 0 0 0 0.5 0 0 0 0.5'
[]
[thermal_cond]
type = PorousFlowThermalConductivityIdeal
dry_thermal_conductivity = '1 0 0 0 1 0 0 0 1'
[]
[]
[Postprocessors]
[p0]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '1 0 0'
variable = pp
[]
[t0]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '1 0 0'
variable = temp
[]
[rdisp]
type = PointValue
outputs = 'csv console'
point = '2 0 0'
use_displaced_mesh = false
variable = disp_r
[]
[fluid_mass]
type = PorousFlowFluidMass
fluid_component = 0
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[total_heat]
type = PorousFlowHeatEnergy
phase = 0
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[rock_heat]
type = PorousFlowHeatEnergy
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[fluid_heat]
type = PorousFlowHeatEnergy
include_porous_skeleton = false
phase = 0
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = Newton
dt = 2
end_time = 10
[]
[Outputs]
execute_on = 'initial timestep_end'
[csv]
type = CSV
[]
[]
(modules/contact/test/tests/non-singular-frictional-mortar/frictional-mortar.i)
offset = 0.0202
vy = 0.15
vx = 0.040
refine = 1
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
[./original_file_mesh]
type = FileMeshGenerator
file = long_short_blocks.e
[../]
uniform_refine = ${refine}
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
scaling = 1e-6
[../]
[]
[Functions]
[./horizontal_movement]
type = ParsedFunction
expression = 'if(t<1.0,${vx}*t-${offset},${vx}-${offset})'
[../]
[./vertical_movement]
type = ParsedFunction
expression = 'if(t<1.0,${offset},${vy}*(t-1.0)+${offset})'
[../]
[]
[BCs]
[./push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 30
function = horizontal_movement
[../]
[./fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[../]
[./fix_right_y]
type = DirichletBC
variable = disp_y
boundary = '40'
value = 0.0
[../]
[./push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = '30'
function = vertical_movement
[../]
[]
[Materials]
[./elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[./stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[../]
[./elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[./stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Contact]
[leftright]
secondary = 10
primary = 20
model = coulomb
formulation = mortar
friction_coefficient = 0.2
c_tangential = 1e3
normal_lm_scaling = 1e-3
tangential_lm_scaling = 1e-3
[../]
[]
[ICs]
[./disp_y]
block = 1
variable = disp_y
value = ${offset}
type = ConstantIC
[../]
[./disp_x]
block = 1
variable = disp_x
value = -${offset}
type = ConstantIC
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor -snes_ksp_ew -pc_svd_monitor'
petsc_options_iname = '-pc_type -mat_mffd_err'
petsc_options_value = 'svd 1e-5'
dt = 0.1
dtmin = 0.1
num_steps = 7
end_time = 4
line_search = none
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
[./exodus]
type = Exodus
[../]
[]
(modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_edge_template.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 5
xmin = 0.0
xmax = 0.1
elem_type = EDGE2
[]
[Variables]
[./temp]
initial_condition = 0.0
[../]
[]
[BCs]
[./FixedTempLeft]
type = DirichletBC
variable = temp
boundary = left
value = 0.0
[../]
[./FunctionTempRight]
type = FunctionDirichletBC
variable = temp
boundary = right
function = '100.0 * sin(pi*t/40)'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./HeatTdot]
type = HeatConductionTimeDerivative
variable = temp
[../]
[]
[Materials]
[./density]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '35.0 440.5 7200.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-5
nl_max_its = 50
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
dt = 1
end_time = 32.0
[]
[Postprocessors]
[./target_temp]
type = NodalVariableValue
variable = temp
nodeid = 4
[../]
[]
[Outputs]
csv = true
[]
(modules/porous_flow/test/tests/poro_elasticity/mandel_basicthm.i)
# using a BasicTHM Action
#
# Mandel's problem of consolodation of a drained medium
# Using the FullySaturatedDarcyBase and FullySaturatedFullySaturatedMassTimeDerivative kernels
# with multiply_by_density = false, so that this problem becomes linear
#
# A sample is in plane strain.
# -a <= x <= a
# -b <= y <= b
# It is squashed with constant force by impermeable, frictionless plattens on its top and bottom surfaces (at y=+/-b)
# Fluid is allowed to leak out from its sides (at x=+/-a)
# The porepressure within the sample is monitored.
#
# As is common in the literature, this is simulated by
# considering the quarter-sample, 0<=x<=a and 0<=y<=b, with
# impermeable, roller BCs at x=0 and y=0 and y=b.
# Porepressure is fixed at zero on x=a.
# Porepressure and displacement are initialised to zero.
# Then the top (y=b) is moved downwards with prescribed velocity,
# so that the total force that is inducing this downwards velocity
# is fixed. The velocity is worked out by solving Mandel's problem
# analytically, and the total force is monitored in the simulation
# to check that it indeed remains constant.
#
# Here are the problem's parameters, and their values:
# Soil width. a = 1
# Soil height. b = 0.1
# Soil's Lame lambda. la = 0.5
# Soil's Lame mu, which is also the Soil's shear modulus. mu = G = 0.75
# Soil bulk modulus. K = la + 2*mu/3 = 1
# Drained Poisson ratio. nu = (3K - 2G)/(6K + 2G) = 0.2
# Soil bulk compliance. 1/K = 1
# Fluid bulk modulus. Kf = 8
# Fluid bulk compliance. 1/Kf = 0.125
# Soil initial porosity. phi0 = 0.1
# Biot coefficient. alpha = 0.6
# Biot modulus. M = 1/(phi0/Kf + (alpha - phi0)(1 - alpha)/K) = 4.705882
# Undrained bulk modulus. Ku = K + alpha^2*M = 2.694118
# Undrained Poisson ratio. nuu = (3Ku - 2G)/(6Ku + 2G) = 0.372627
# Skempton coefficient. B = alpha*M/Ku = 1.048035
# Fluid mobility (soil permeability/fluid viscosity). k = 1.5
# Consolidation coefficient. c = 2*k*B^2*G*(1-nu)*(1+nuu)^2/9/(1-nuu)/(nuu-nu) = 3.821656
# Normal stress on top. F = 1
#
# The solution for porepressure and displacements is given in
# AHD Cheng and E Detournay "A direct boundary element method for plane strain poroelasticity" International Journal of Numerical and Analytical Methods in Geomechanics 12 (1988) 551-572.
# The solution involves complicated infinite series, so I shall not write it here
[Mesh]
type = GeneratedMesh
dim = 3
nx = 10
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 0.1
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[porepressure]
[]
[]
[BCs]
[roller_xmin]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left'
[]
[roller_ymin]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom'
[]
[plane_strain]
type = DirichletBC
variable = disp_z
value = 0
boundary = 'back front'
[]
[xmax_drained]
type = DirichletBC
variable = porepressure
value = 0
boundary = right
[]
[top_velocity]
type = FunctionDirichletBC
variable = disp_y
function = top_velocity
boundary = top
[]
[]
[Functions]
[top_velocity]
type = PiecewiseLinear
x = '0 0.002 0.006 0.014 0.03 0.046 0.062 0.078 0.094 0.11 0.126 0.142 0.158 0.174 0.19 0.206 0.222 0.238 0.254 0.27 0.286 0.302 0.318 0.334 0.35 0.366 0.382 0.398 0.414 0.43 0.446 0.462 0.478 0.494 0.51 0.526 0.542 0.558 0.574 0.59 0.606 0.622 0.638 0.654 0.67 0.686 0.702'
y = '-0.041824842 -0.042730269 -0.043412712 -0.04428867 -0.045509181 -0.04645965 -0.047268246 -0.047974749 -0.048597109 -0.0491467 -0.049632388 -0.050061697 -0.050441198 -0.050776675 -0.051073238 -0.0513354 -0.051567152 -0.051772022 -0.051953128 -0.052113227 -0.052254754 -0.052379865 -0.052490464 -0.052588233 -0.052674662 -0.052751065 -0.052818606 -0.052878312 -0.052931093 -0.052977751 -0.053018997 -0.053055459 -0.053087691 -0.053116185 -0.053141373 -0.05316364 -0.053183324 -0.053200724 -0.053216106 -0.053229704 -0.053241725 -0.053252351 -0.053261745 -0.053270049 -0.053277389 -0.053283879 -0.053289615'
[]
[]
[AuxVariables]
[tot_force]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[tot_force]
type = ParsedAux
coupled_variables = 'stress_yy porepressure'
execute_on = timestep_end
variable = tot_force
expression = '-stress_yy+0.6*porepressure'
[]
[]
[FluidProperties]
[the_simple_fluid]
type = SimpleFluidProperties
thermal_expansion = 0.0
bulk_modulus = 8.0
viscosity = 1.0
density0 = 1.0
[]
[]
[PorousFlowBasicTHM]
coupling_type = HydroMechanical
displacements = 'disp_x disp_y disp_z'
multiply_by_density = false
porepressure = porepressure
biot_coefficient = 0.6
gravity = '0 0 0'
fp = the_simple_fluid
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '0.5 0.75'
# bulk modulus is lambda + 2*mu/3 = 0.5 + 2*0.75/3 = 1
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[porosity]
type = PorousFlowPorosityConst # only the initial value of this is ever used
porosity = 0.1
[]
[biot_modulus]
type = PorousFlowConstantBiotModulus
biot_coefficient = 0.6
solid_bulk_compliance = 1
fluid_bulk_modulus = 8
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '1.5 0 0 0 1.5 0 0 0 1.5'
[]
[]
[Postprocessors]
[p0]
type = PointValue
outputs = csv
point = '0.0 0 0'
variable = porepressure
[]
[p1]
type = PointValue
outputs = csv
point = '0.1 0 0'
variable = porepressure
[]
[p2]
type = PointValue
outputs = csv
point = '0.2 0 0'
variable = porepressure
[]
[p3]
type = PointValue
outputs = csv
point = '0.3 0 0'
variable = porepressure
[]
[p4]
type = PointValue
outputs = csv
point = '0.4 0 0'
variable = porepressure
[]
[p5]
type = PointValue
outputs = csv
point = '0.5 0 0'
variable = porepressure
[]
[p6]
type = PointValue
outputs = csv
point = '0.6 0 0'
variable = porepressure
[]
[p7]
type = PointValue
outputs = csv
point = '0.7 0 0'
variable = porepressure
[]
[p8]
type = PointValue
outputs = csv
point = '0.8 0 0'
variable = porepressure
[]
[p9]
type = PointValue
outputs = csv
point = '0.9 0 0'
variable = porepressure
[]
[p99]
type = PointValue
outputs = csv
point = '1 0 0'
variable = porepressure
[]
[xdisp]
type = PointValue
outputs = csv
point = '1 0.1 0'
variable = disp_x
[]
[ydisp]
type = PointValue
outputs = csv
point = '1 0.1 0'
variable = disp_y
[]
[total_downwards_force]
type = ElementAverageValue
outputs = csv
variable = tot_force
[]
[dt]
type = FunctionValuePostprocessor
outputs = console
function = if(0.15*t<0.01,0.15*t,0.01)
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu 1E-14 1E-10 10000'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 0.7
[TimeStepper]
type = PostprocessorDT
postprocessor = dt
dt = 0.001
[]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = mandel_basicthm
[csv]
time_step_interval = 3
type = CSV
[]
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test3nns.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test3.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_method = nodal_normal_based
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-10
l_max_its = 10
start_time = 0.0
dt = 0.0125
end_time = 1.0
[]
[Outputs]
file_base = pl_test3nns_out
exodus = true
[]
[NodalNormals]
boundary = 11
corner_boundary = 20
[]
(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/solid_mechanics/test/tests/j2_plasticity/small_deform1.i)
# UserObject J2 test
# apply uniform stretch in x, y and z directions.
# no plasticity should be observed
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[]
[UserObjects]
[./str]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./j2]
type = SolidMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = j2
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform1
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/umat/multiple_blocks/multiple_blocks_two_materials.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh_1]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[block_1]
type = SubdomainIDGenerator
input = mesh_1
subdomain_id = 1
[]
[mesh_2]
type = GeneratedMeshGenerator
dim = 3
xmin = -2.0
xmax = -1.0
ymin = -2.0
ymax = -1.0
zmin = -2.0
zmax = -1.
boundary_name_prefix = 'second'
[]
[block_2]
type = SubdomainIDGenerator
input = mesh_2
subdomain_id = 2
[]
[combined]
type = CombinerGenerator
inputs = 'block_1 block_2'
[]
[]
[Functions]
[top_pull]
type = ParsedFunction
value = t/100
[]
# Forced evolution of temperature
[temperature_load]
type = ParsedFunction
value = '273'
[]
# Factor to multiply the elasticity tensor in MOOSE
[elasticity_prefactor]
type = ParsedFunction
value = '1'
[]
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temperature_function]
type = FunctionAux
variable = temperature
function = temperature_load
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Materials]
[umat_1]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_temperature'
num_state_vars = 0
temperature = temperature
use_one_based_indexing = true
block = '1'
[]
# Linear strain hardening
[umat_2]
type = AbaqusUMATStress
# Young's modulus, Poisson's Ratio, Yield, Hardening
constant_properties = '1000 0.3 100 100'
plugin = '../../../plugins/linear_strain_hardening'
num_state_vars = 3
use_one_based_indexing = true
block = '2'
[]
[elastic]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000
poissons_ratio = 0.3
elasticity_tensor_prefactor = 'elasticity_prefactor'
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 30
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(modules/xfem/test/tests/moving_interface/moving_bimaterial.i)
# This test is for two layer materials with different youngs modulus
# The global stress is determined by switching the stress based on level set values
# The material interface is marked by a level set function
# The two layer materials are glued together
# This case is also meant to test for a bug in moving interfaces on displaced meshes
# It should fail during the healing step of the 2nd timestep if the bug is present.
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./level_set_cut_uo]
type = LevelSetCutUserObject
level_set_var = ls
heal_always = true
[../]
[]
[Mesh]
displacements = 'disp_x disp_y'
[generated_mesh]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
xmin = 0.0
xmax = 5.
ymin = 0.0
ymax = 5.
elem_type = QUAD4
[]
[./left_bottom]
type = ExtraNodesetGenerator
new_boundary = 'left_bottom'
coord = '0.0 0.0'
input = generated_mesh
[../]
[./left_top]
type = ExtraNodesetGenerator
new_boundary = 'left_top'
coord = '0.0 5.'
input = left_bottom
[../]
[]
[AuxVariables]
[./ls]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./ls_function]
type = FunctionAux
variable = ls
function = ls_func
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Functions]
[./ls_func]
type = ParsedFunction
expression = 'y-3.153 + t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./a_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./a_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./a_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./b_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./b_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./b_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y'
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./a_strain_xx]
type = RankTwoAux
rank_two_tensor = A_total_strain
index_i = 0
index_j = 0
variable = a_strain_xx
[../]
[./a_strain_yy]
type = RankTwoAux
rank_two_tensor = A_total_strain
index_i = 1
index_j = 1
variable = a_strain_yy
[../]
[./a_strain_xy]
type = RankTwoAux
rank_two_tensor = A_total_strain
index_i = 0
index_j = 1
variable = a_strain_xy
[../]
[./b_strain_xx]
type = RankTwoAux
rank_two_tensor = B_total_strain
index_i = 0
index_j = 0
variable = b_strain_xx
[../]
[./b_strain_yy]
type = RankTwoAux
rank_two_tensor = B_total_strain
index_i = 1
index_j = 1
variable = b_strain_yy
[../]
[./b_strain_xy]
type = RankTwoAux
rank_two_tensor = B_total_strain
index_i = 0
index_j = 1
variable = b_strain_xy
[../]
[]
[Constraints]
[./dispx_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_x
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[../]
[./dispy_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_y
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[../]
[./bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
boundary = top
variable = disp_x
function = 0.03*t
[../]
[./topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = '0.03*t'
[../]
[]
[Materials]
[./elasticity_tensor_A]
type = ComputeIsotropicElasticityTensor
base_name = A
youngs_modulus = 1e9
poissons_ratio = 0.3
[../]
[./strain_A]
type = ComputeSmallStrain
base_name = A
displacements = 'disp_x disp_y'
[../]
[./stress_A]
type = ComputeLinearElasticStress
base_name = A
[../]
[./elasticity_tensor_B]
type = ComputeIsotropicElasticityTensor
base_name = B
youngs_modulus = 1e7
poissons_ratio = 0.3
[../]
[./strain_B]
type = ComputeSmallStrain
base_name = B
displacements = 'disp_x disp_y'
[../]
[./stress_B]
type = ComputeLinearElasticStress
base_name = B
[../]
[./combined_stress]
type = LevelSetBiMaterialRankTwo
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = stress
[../]
[./combined_dstressdstrain]
type = LevelSetBiMaterialRankFour
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = Jacobian_mult
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'bt'
# controls for linear iterations
l_max_its = 20
l_tol = 1e-3
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-12
nl_abs_tol = 1e-12
# time control
start_time = 0.0
dt = 0.15
num_steps = 3
max_xfem_update = 1
[]
[Outputs]
exodus = true
execute_on = timestep_end
[./console]
type = Console
output_linear = true
[../]
[]
(modules/xfem/test/tests/high_order_elements/diffusion_3d.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 3
ny = 5
nz = 2
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
zmin = 0.0
zmax = 0.2
elem_type = TET10
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./square_planar_cut_uo]
type = RectangleCutUserObject
cut_data = ' 0.35 1.01 -0.001
0.35 0.49 -0.001
0.35 0.49 0.201
0.35 1.01 0.201'
[../]
[]
[Variables]
[./u]
[../]
[]
[Functions]
[./u_left]
type = PiecewiseLinear
x = '0 2'
y = '0 0.1'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
# Define boundary conditions
[./left_u]
type = FunctionDirichletBC
variable = u
boundary = left
function = u_left
[../]
[./right_u]
type = DirichletBC
variable = u
boundary = right
value = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
line_search = 'none'
l_tol = 1e-3
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
end_time = 1.0
[]
[Outputs]
time_step_interval = 1
execute_on = timestep_end
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(test/tests/outputs/variables/show_hide.i)
# Solving for 2 variables, putting one into hide list and the other one into show list
# We should only see the variable that is in show list in the output.
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 2
ny = 2
elem_type = QUAD4
[]
[Functions]
[./bc_fn]
type = ParsedFunction
expression = x
[../]
[]
[Variables]
[./u]
[../]
[./v]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./lr_u]
type = FunctionDirichletBC
variable = u
boundary = '1 3'
function = bc_fn
[../]
[./lr_v]
type = FunctionDirichletBC
variable = v
boundary = '1 3'
function = bc_fn
[../]
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
[]
[Outputs]
console = true
[./out]
type = Exodus
show = 'u'
hide = 'v'
[../]
[]
(test/tests/functions/parsed/mms_transient_coupled.i)
###########################################################
# This is a simple test of the Function System. This
# test uses forcing terms produced from analytical
# functions of space and time to verify a solution
# using MMS.
#
# @Requirement F6.20
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0.0
xmax = 1.0
nx = 10
ymin = 0.0
ymax = 1.0
ny = 10
uniform_refine = 2
elem_type = QUAD4
[]
[Variables]
[./u]
[../]
[./v]
[../]
[]
[Functions]
[./v_left_bc]
# Left-side boundary condition for v equation, v(0,y,t) = u(0.5,y,t). This is accomplished using a PointValue postprocessor, which is what this input file was designed to test.
type = ParsedFunction
expression = a
symbol_values = u_midpoint
symbol_names = a
[../]
[./u_mms_func]
# MMS Forcing function for the u equation.
type = ParsedFunction
expression = ' 20*exp(20*t)*x*x*x-6*exp(20*t)*x-(2-0.125*exp(20*t))*sin(5/2*x*pi)-0.125*exp(20*t)-1
'
[../]
[./v_mms_func]
# MMS forcing function for the v equation.
type = ParsedFunction
expression = -2.5*exp(20*t)*sin(5/2*x*pi)+2.5*exp(20*t)+25/4*(2-0.125*exp(20*t))*sin(5/2*x*pi)*pi*pi
[../]
[./u_right_bc]
type = ParsedFunction
expression = 3*exp(20*t) # \nabla{u}|_{x=1} = 3\exp(20*t)
[../]
[./u_exact]
# Exact solution for the MMS function for the u variable.
type = ParsedFunction
expression = exp(20*t)*pow(x,3)+1
[../]
[./v_exact]
# Exact MMS solution for v.
type = ParsedFunction
expression = (2-0.125*exp(20*t))*sin(5/2*pi*x)+0.125*exp(20*t)+1
[../]
[]
[Kernels]
# Strong Form:
# \frac{\partial u}{\partial t} - \nabla \cdot 0.5 \nabla u - v = 0
# \frac{\partial u}{\partial t} - \nabla \cdot \nabla v = 0
#
# BCs:
# u(0,y,t) = 1
# \nabla u |_{x=1} = 3\exp(20*t)
# v(0,y,t) = u(0.5,y,t)
# v(1,y,t) = 3
# \nabla u |_{y=0,1} = 0
# \nabla v |_{y=0,1} = 0
#
[./u_time]
type = TimeDerivative
variable = u
[../]
[./u_diff]
type = Diffusion
variable = u
[../]
[./u_source]
type = CoupledForce
variable = u
v = v
[../]
[./v_diff]
type = Diffusion
variable = v
[../]
[./u_mms]
type = BodyForce
variable = u
function = u_mms_func
[../]
[./v_mms]
type = BodyForce
variable = v
function = v_mms_func
[../]
[./v_time]
type = TimeDerivative
variable = v
[../]
[]
[BCs]
[./u_left]
type = DirichletBC
variable = u
boundary = left # x=0
value = 1 # u(0,y,t)=1
[../]
[./u_right]
type = FunctionNeumannBC
variable = u
boundary = right # x=1
function = u_right_bc # \nabla{u}|_{x=1}=3\exp(20t)
[../]
[./v_left]
type = FunctionDirichletBC
variable = v
boundary = left # x=0
function = v_left_bc # v(0,y,t) = u(0.5,y,t)
[../]
[./v_right]
type = DirichletBC
variable = v
boundary = right # x=1
value = 3 # v(1,y,t) = 3
[../]
[]
[Postprocessors]
[./u_midpoint]
type = PointValue
variable = u
point = '0.5 0.5 0'
execute_on = 'initial timestep_end'
[../]
[./u_midpoint_exact]
type = FunctionValuePostprocessor
function = u_exact
point = '0.5 0.5 0.0'
execute_on = 'initial timestep_end'
[../]
[./u_error]
type = ElementL2Error
variable = u
function = u_exact
execute_on = 'initial timestep_end'
[../]
[./v_error]
type = ElementL2Error
variable = v
function = v_exact
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
dt = 0.01
solve_type = NEWTON
end_time = 0.1
scheme = crank-nicolson
[]
[Outputs]
exodus = true
[]
[ICs]
[./u_initial]
# Use the MMS exact solution to compute the initial conditions.
function = u_exact
variable = u
type = FunctionIC
[../]
[./v_exact]
# Use the MMS exact solution to compute the initial condition.
function = v_exact
variable = v
type = FunctionIC
[../]
[]
(modules/solid_mechanics/test/tests/finite_strain_elastic/finite_strain_elastic_new_test.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = '0.01 * t'
[../]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[./all]
strain = FINITE
add_variables = true
[../]
[../]
[../]
[]
[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
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = tdisp
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomeramg
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(test/tests/functions/function_file_format/function_file_format_test.i)
# This tests the capability of the code to read input files in csv or space separated format.
# There are four variables and four functions of the same name; a,b,c, and d. The diffusion equation is "solved"
# for each of these variables with a boundary condition of type FunctionDirchletBC applied to a boundary
# (i.e. node set) that includes every node in the element, so the solution is the boundary condition defined by the function.
# Each boundary condition uses a function of type PiecewiseLinear that gets its value from a file,
# which could be in comma separated or space separated format. The input file can also contain comments.
#
# The files could have the form
# 0,1,2,3 # time
# 0,4,5,6 # bc value
# for format = row
# or
# 0,0
# 1,4
# 2,5
# 3,6
# for format = column
# Values in files could be separated by white space. See the .csv and .dat files for format examples.
#
# The value of the variables should correspond to the function.
# At time = 0, the variable = 0, at time = 1, variable = 4 and so on.
[Mesh]
file = cube.e
# This problem only has 1 element, so using DistributedMesh in parallel
# isn't really an option, and we don't care that much about DistributedMesh
# in serial.
parallel_type = replicated
[]
[Variables]
[a]
[]
[b]
[]
[c]
[]
[d]
[]
[e]
[]
[f]
[]
[]
[Functions]
[a]
type = PiecewiseLinear
data_file = rows.csv
format = rows
[]
[b]
type = PiecewiseLinear
data_file = columns.csv
format = columns
[]
[c]
type = PiecewiseLinear
data_file = rows_space.dat
format = rows
[]
[d]
type = PiecewiseLinear
data_file = columns_space.dat
format = columns
[]
[e_func]
type = PiecewiseLinear
data_file = rows_more_data.csv
format = rows
xy_in_file_only = false
[]
[f]
type = PiecewiseLinear
data_file = columns_more_data.csv
format = columns
xy_in_file_only = false
[]
[]
[Kernels]
[diffa]
type = Diffusion
variable = a
[]
[diffb]
type = Diffusion
variable = b
[]
[diffc]
type = Diffusion
variable = c
[]
[diffd]
type = Diffusion
variable = d
[]
[diffe]
type = Diffusion
variable = e
[]
[difff]
type = Diffusion
variable = f
[]
[]
[BCs]
[a]
type = FunctionDirichletBC
variable = a
boundary = '1'
function = a
[]
[b]
type = FunctionDirichletBC
variable = b
boundary = '1'
function = b
[]
[c]
type = FunctionDirichletBC
variable = c
boundary = '1'
function = c
[]
[d]
type = FunctionDirichletBC
variable = d
boundary = '1'
function = d
[]
[e]
type = FunctionDirichletBC
variable = e
boundary = '1'
function = e_func
[]
[f]
type = FunctionDirichletBC
variable = f
boundary = '1'
function = f
[]
[]
[Executioner]
type = Transient
dt = 0.5
end_time = 3
nl_rel_tol = 1e-12
[]
[Outputs]
file_base = out
exodus = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/rz-x-axial-coord/hand-coded-jac-pipe-flow-natural-bc.i)
mu=1
rho=1
pipe_length=10 # m
pipe_radius=1 # m
u_inlet=1
[GlobalParams]
integrate_p_by_parts = true
supg = true
pspg = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = ${pipe_length}
ymin = 0
ymax = ${pipe_radius}
nx = 50
ny = 5
[]
coord_type = 'RZ'
rz_coord_axis = x
[]
[Variables]
[velocity_x]
family = LAGRANGE
[]
[velocity_y]
family = LAGRANGE
[]
[p][]
[]
[Kernels]
[mass]
type = INSMassRZ
variable = p
u = velocity_x
v = velocity_y
pressure = p
[]
[x_momentum]
type = INSMomentumLaplaceFormRZ
variable = velocity_x
u = velocity_x
v = velocity_y
pressure = p
component = 0
[]
[y_momentum]
type = INSMomentumLaplaceFormRZ
variable = velocity_y
u = velocity_x
v = velocity_y
pressure = p
component = 1
[]
[]
[Functions]
[vel_x_inlet]
type = ParsedFunction
expression = '${u_inlet} * (${pipe_radius}^2 - y^2)'
[]
[]
[BCs]
[inlet_x]
type = FunctionDirichletBC
variable = velocity_x
boundary = 'left'
function = vel_x_inlet
[]
[zero_y]
type = FunctionDirichletBC
variable = velocity_y
boundary = 'left top bottom'
function = 0
[]
[zero_x]
type = FunctionDirichletBC
variable = velocity_x
boundary = 'top'
function = 0
[]
[]
[Materials]
[const]
type = GenericConstantMaterial
prop_names = 'rho mu'
prop_values = '${rho} ${mu}'
[]
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-12
line_search = 'none'
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/cavity_pressure/3d.i)
#
# Cavity Pressure Test
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts n, T, and V in the following way:
# n => n0 + alpha * t
# T => T0 + beta * t
# V => V0 + gamma * t
# with
# alpha = n0
# beta = T0 / 2
# gamma = - (0.003322259...) * V0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# The parameters combined at t = 1 gives p = 301.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
file = 3d.e
[]
[Functions]
[displ_positive]
type = PiecewiseLinear
x = '0 1'
y = '0 0.0029069767441859684'
[]
[displ_negative]
type = PiecewiseLinear
x = '0 1'
y = '0 -0.0029069767441859684'
[]
[temp1]
type = PiecewiseLinear
x = '0 1'
y = '1 1.5'
scale_factor = 240.54443866068704
[]
[material_input_function]
type = PiecewiseLinear
x = '0 1'
y = '0 0.35'
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[temp]
initial_condition = 240.54443866068704
[]
[material_input]
[]
[]
[AuxVariables]
[pressure_residual_x]
[]
[pressure_residual_y]
[]
[pressure_residual_z]
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zx]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
[]
[heat]
type = Diffusion
variable = temp
use_displaced_mesh = true
[]
[material_input_dummy]
type = Diffusion
variable = material_input
use_displaced_mesh = true
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[]
[stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[]
[]
[BCs]
[no_x_exterior]
type = DirichletBC
variable = disp_x
boundary = '7 8'
value = 0.0
[]
[no_y_exterior]
type = DirichletBC
variable = disp_y
boundary = '9 10'
value = 0.0
[]
[no_z_exterior]
type = DirichletBC
variable = disp_z
boundary = '11 12'
value = 0.0
[]
[prescribed_left]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = displ_positive
[]
[prescribed_right]
type = FunctionDirichletBC
variable = disp_x
boundary = 14
function = displ_negative
[]
[no_y]
type = DirichletBC
variable = disp_y
boundary = '15 16'
value = 0.0
[]
[no_z]
type = DirichletBC
variable = disp_z
boundary = '17 18'
value = 0.0
[]
[no_x_interior]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[]
[no_y_interior]
type = DirichletBC
variable = disp_y
boundary = '3 4'
value = 0.0
[]
[no_z_interior]
type = DirichletBC
variable = disp_z
boundary = '5 6'
value = 0.0
[]
[temperatureInterior]
type = FunctionDirichletBC
boundary = 100
function = temp1
variable = temp
[]
[MaterialInput]
type = FunctionDirichletBC
boundary = '100 13 14 15 16'
function = material_input_function
variable = material_input
[]
[CavityPressure]
[1]
boundary = 100
initial_pressure = 100
material_input = materialInput
R = 8.314472
temperature = aveTempInterior
volume = internalVolume
startup_time = 0.5
output = ppress
save_in = 'pressure_residual_x pressure_residual_y pressure_residual_z'
[]
[]
[]
[Materials]
[elast_tensor1]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e1
poissons_ratio = 0
block = 1
[]
[strain1]
type = ComputeFiniteStrain
block = 1
[]
[stress1]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elast_tensor2]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0
block = 2
[]
[strain2]
type = ComputeFiniteStrain
block = 2
[]
[stress2]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_rel_tol = 1e-12
l_tol = 1e-12
l_max_its = 20
dt = 0.5
end_time = 1.0
use_pre_SMO_residual = true
[]
[Postprocessors]
[internalVolume]
type = InternalVolume
boundary = 100
execute_on = 'initial linear'
[]
[aveTempInterior]
type = SideAverageValue
boundary = 100
variable = temp
execute_on = 'initial linear'
[]
[materialInput]
type = SideAverageValue
boundary = '7 8 9 10 11 12'
variable = material_input
execute_on = linear
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/drucker_prager/small_deform2_inner_edge.i)
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1.5E-6*x+2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./mc]
type = SolidMechanicsPlasticDruckerPragerHyperbolic
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
smoother = 4
mc_interpolation_scheme = inner_edge
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2_inner_edge
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/rotation_matrix_update_euler_angle_111_orientation.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[euler_angle_1]
order = CONSTANT
family = MONOMIAL
[]
[euler_angle_2]
order = CONSTANT
family = MONOMIAL
[]
[euler_angle_3]
order = CONSTANT
family = MONOMIAL
[]
[pk2_zz]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental = true
add_variables = true
[]
[AuxKernels]
[euler_angle_1]
type = MaterialRealVectorValueAux
variable = euler_angle_1
property = updated_Euler_angle
component = 0
execute_on = timestep_end
[]
[euler_angle_2]
type = MaterialRealVectorValueAux
variable = euler_angle_2
property = updated_Euler_angle
component = 1
execute_on = timestep_end
[]
[euler_angle_3]
type = MaterialRealVectorValueAux
variable = euler_angle_3
property = updated_Euler_angle
component = 2
execute_on = timestep_end
[]
[pk2_zz]
type = RankTwoAux
variable = pk2_zz
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[]
[BCs]
[Periodic]
[all]
variable = 'disp_x'
auto_direction = 'z'
[]
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front'
function = '0.005*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
rotation_matrix = '0.707106781 0.40824829 0.57735027
-0.707106781 0.40824829 0.57735027
0. -0.81649658 0.57735027'
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
maximum_substep_iteration = 4
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[updated_euler_angle]
type = ComputeUpdatedEulerAngle
radian_to_degree = true
[]
[]
[Postprocessors]
[euler_angle_1]
type = ElementAverageValue
variable = euler_angle_1
[]
[euler_angle_2]
type = ElementAverageValue
variable = euler_angle_2
[]
[euler_angle_3]
type = ElementAverageValue
variable = euler_angle_3
[]
[pk2_zz]
type = ElementAverageValue
variable = pk2_zz
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu '
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.1
dtmin = 0.01
end_time = 5
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/contact/test/tests/sliding_block/sliding/frictional_02_penalty.i)
# This is a benchmark test that checks constraint based frictional
# contact using the penalty method. In this test a constant
# displacement is applied in the horizontal direction to simulate
# a small block come sliding down a larger block.
#
# A friction coefficient of 0.2 is used. The gold file is run on one processor
# and the benchmark case is run on a minimum of 4 processors to ensure no
# parallel variability in the contact pressure and penetration results.
#
[Mesh]
file = sliding_elastic_blocks_2d.e
patch_size = 80
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[penetration]
[]
[inc_slip_x]
[]
[inc_slip_y]
[]
[accum_slip_x]
[]
[accum_slip_y]
[]
[]
[Functions]
[vertical_movement]
type = ParsedFunction
expression = -t
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
[]
[]
[AuxKernels]
[zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[]
[zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[]
[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
[]
[]
[Postprocessors]
[nonlinear_its]
type = NumNonlinearIterations
execute_on = timestep_end
[]
[penetration]
type = NodalVariableValue
variable = penetration
nodeid = 222
[]
[contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 222
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[right_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = -0.02
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[]
[]
[Materials]
[left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.1
end_time = 15
num_steps = 1000
l_tol = 1e-6
nl_rel_tol = 1e-10
nl_abs_tol = 1e-6
dtmin = 0.01
[Predictor]
type = SimplePredictor
scale = 1.0
[]
[]
[Outputs]
time_step_interval = 10
[out]
type = Exodus
elemental_as_nodal = true
[]
[console]
type = Console
max_rows = 5
[]
[]
[Contact]
[leftright]
secondary = 3
primary = 2
model = coulomb
penalty = 4e+6
friction_coefficient = 0.2
formulation = penalty
normal_smoothing_distance = 0.1
[]
[]
(modules/solid_mechanics/test/tests/orthotropic_plasticity/orthotropic.i)
# UserObject Orthotropic test, with constant hardening.
# Linear strain is applied in the x and y direction.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.5
zmax = .5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_xz'
[../]
[]
[BCs]
[./xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = 'right'
function = '0.005*t'
[../]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = '0.005*t'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
#boundary = 'bottom top'
boundary = 'bottom'
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./zfix]
type = DirichletBC
variable = disp_z
#boundary = 'front back'
boundary = 'back'
value = 0
[../]
[]
[AuxVariables]
[./plastic_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[./sdev]
order = CONSTANT
family = MONOMIAL
[../]
[./sdet]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./plastic_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_xx
index_i = 0
index_j = 0
[../]
[./plastic_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_xy
index_i = 0
index_j = 1
[../]
[./plastic_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_xz
index_i = 0
index_j = 2
[../]
[./plastic_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_yy
index_i = 1
index_j = 1
[../]
[./plastic_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_yz
index_i = 1
index_j = 2
[../]
[./plastic_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = intnl
[../]
[./sdev]
type = RankTwoScalarAux
variable = sdev
rank_two_tensor = stress
scalar_type = VonMisesStress
[../]
[]
[Postprocessors]
[./sdev]
type = PointValue
point = '0 0 0'
variable = sdev
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./p_xx]
type = PointValue
point = '0 0 0'
variable = plastic_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./p_xy]
type = PointValue
point = '0 0 0'
variable = plastic_xy
[../]
[./p_xz]
type = PointValue
point = '0 0 0'
variable = plastic_xz
[../]
[./p_yz]
type = PointValue
point = '0 0 0'
variable = plastic_yz
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./p_yy]
type = PointValue
point = '0 0 0'
variable = plastic_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./p_zz]
type = PointValue
point = '0 0 0'
variable = plastic_zz
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./str]
type = SolidMechanicsHardeningConstant
value = 300
[../]
[./Orthotropic]
type = SolidMechanicsPlasticOrthotropic
b = -0.2
c1 = '1 1 1 1 1 1'
c2 = '1 1 1 1 1 1'
associative = true
yield_strength = str
yield_function_tolerance = 1e-5
internal_constraint_tolerance = 1e-9
use_custom_returnMap = false
use_custom_cto = false
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '121e3 80e3'
[../]
[./mc]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1e-9
plastic_models = Orthotropic
debug_fspb = crash
tangent_operator = elastic
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
num_steps = 3
dt = .5
type = Transient
nl_rel_tol = 1e-6
nl_max_its = 10
l_tol = 1e-4
l_max_its = 50
solve_type = PJFNK
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Outputs]
perf_graph = false
csv = true
[]
(tutorials/tutorial03_verification/app/test/tests/step04_mms/2d_mms_temporal.i)
[ICs]
active = 'mms'
[mms]
type = FunctionIC
variable = T
function = mms_exact
[]
[]
[BCs]
active = 'mms'
[mms]
type = FunctionDirichletBC
variable = T
boundary = 'left right top bottom'
function = mms_exact
[]
[]
[Kernels]
[mms]
type = HeatSource
variable = T
function = mms_force
[]
[]
[Functions]
[mms_force]
type = ParsedFunction
expression = '-3.08641975308642e-5*x*y*cp*rho*exp(-3.08641975308642e-5*t) - shortwave*exp(y*kappa)*sin((1/2)*x*pi)*sin((1/3600)*pi*t/hours)'
symbol_names = 'rho cp k kappa shortwave hours'
symbol_values = '150 2000 0.01 40 650 9'
[]
[mms_exact]
type = ParsedFunction
expression = 'x*y*exp(-3.08641975308642e-5*t)'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[error]
type = ElementL2Error
variable = T
function = mms_exact
[]
[delta_t]
type = TimestepSize
[]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/except4.i)
# checking for exception error messages on the edge smoothing
# here edge_smoother=5deg, which means the friction_angle must be <= 35.747
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningExponential
value_0 = 0.52359878 # 30deg
value_residual = 0.62831853 # 36deg
rate = 3000.0
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 1
mc_edge_smoother = 5
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1
debug_stress_change = 1E-5
debug_pm_change = 1E-6
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = except4
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform2_outer_tip.i)
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1.5E-6*x+2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
mc_interpolation_scheme = outer_tip
internal_constraint_tolerance = 1 # irrelevant here
yield_function_tolerance = 1 # irrelevant here
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = cdp
perform_finite_strain_rotations = false
[../]
[./cdp]
type = CappedDruckerPragerStressUpdate
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-8
tip_smoother = 4
smoothing_tol = 1E-5
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2_outer_tip
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/heat_transfer/test/tests/NAFEMS/transient/T3/nafems_t3_quad_template.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 1
xmin = 0.0
xmax = 0.1
ymin = 0.0
ymax = 0.01
elem_type = QUAD4
[]
[Variables]
[./temp]
initial_condition = 0.0
[../]
[]
[BCs]
[./FixedTempLeft]
type = DirichletBC
variable = temp
boundary = left
value = 0.0
[../]
[./FunctionTempRight]
type = FunctionDirichletBC
variable = temp
boundary = right
function = '100.0 * sin(pi*t/40)'
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./HeatTdot]
type = HeatConductionTimeDerivative
variable = temp
[../]
[]
[Materials]
[./density]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '35.0 440.5 7200.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-5
nl_max_its = 50
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
dt = 1
end_time = 32.0
[]
[Postprocessors]
[./target_temp]
type = NodalVariableValue
variable = temp
nodeid = 9
[../]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/stress_recovery/patch/patch.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
elem_type = QUAD9
uniform_refine = 0
[]
[Variables]
[disp_x]
order = SECOND
family = LAGRANGE
[]
[disp_y]
order = SECOND
family = LAGRANGE
[]
[]
[AuxVariables]
[stress_xx]
order = FIRST
family = MONOMIAL
[]
[stress_yy]
order = FIRST
family = MONOMIAL
[]
[stress_xx_recovered]
order = SECOND
family = LAGRANGE
[]
[stress_yy_recovered]
order = SECOND
family = LAGRANGE
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[]
[stress_xx_recovered]
type = NodalPatchRecoveryAux
variable = stress_xx_recovered
nodal_patch_recovery_uo = stress_xx_patch
execute_on = 'TIMESTEP_END'
[]
[stress_yy_recovered]
type = NodalPatchRecoveryAux
variable = stress_yy_recovered
nodal_patch_recovery_uo = stress_yy_patch
execute_on = 'TIMESTEP_END'
[]
[]
[Kernels]
[solid_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[]
[solid_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[]
[]
[Materials]
[strain]
type = ComputeSmallStrain
[]
[Cijkl]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 2.1e+5
[]
[stress]
type = ComputeLinearElasticStress
[]
[]
[BCs]
[top_xdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = 0
[]
[top_ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = t
[]
[bottom_xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = 'bottom'
function = 0
[]
[bottom_ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'bottom'
function = 0
[]
[]
[UserObjects]
[stress_xx_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = SECOND
property = 'stress'
component = '0 0'
execute_on = 'TIMESTEP_END'
[]
[stress_yy_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = SECOND
property = 'stress'
component = '1 1'
execute_on = 'TIMESTEP_END'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
ksp_norm = default
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-ksp_type -pc_type'
petsc_options_value = 'preonly lu'
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
l_max_its = 100
nl_max_its = 30
dt = 0.01
dtmin = 1e-11
start_time = 0
end_time = 0.05
[]
[Outputs]
time_step_interval = 1
exodus = true
print_linear_residuals = false
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/cp_slip_rate_integ/crysp.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
[../]
[]
[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
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCPSlipRateRes
gtol = 1e-2
rtol = 1e-8
abs_tol = 1e-15
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
slip_incr_tol = 1
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
dt = 0.2
dtmin = 0.05
dtmax = 10.0
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
end_time = 1
[]
[Outputs]
file_base = out
exodus = true
print_linear_residuals = true
perf_graph = true
[]
(modules/contact/test/tests/mortar_cartesian_lms/frictionless-mortar-3d.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
second_order = false
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[disp_z]
block = '1 2'
[]
[lm_x]
block = 'secondary_lower'
use_dual = true
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
[]
[lm_z]
block = 'secondary_lower'
use_dual = true
[]
[]
[ICs]
[disp_z]
block = 1
variable = disp_z
value = '${fparse offset}'
type = ConstantIC
[]
[disp_x]
block = 1
variable = disp_x
value = 0
type = ConstantIC
[]
[disp_y]
block = 1
variable = disp_y
value = 0
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[disp_z]
type = MatDiffusion
variable = disp_z
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeWeightedGapCartesianLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_x = lm_x
lm_y = lm_y
lm_z = lm_z
variable = lm_x # This can be anything really
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
correct_edge_dropping = true
c = 1e+02
[]
[normal_x]
type = CartesianMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_y]
type = CartesianMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_z]
type = CartesianMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_z
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Preconditioning]
[vcp]
type = VCP
full = true
lm_variable = 'lm_x lm_y lm_z'
primary_variable = 'disp_x disp_y disp_z'
preconditioner = 'LU'
is_lm_coupling_diagonal = true
adaptive_condensation = true
[]
[]
[Executioner]
type = Transient
end_time = 1
dt = .5
dtmin = .01
solve_type = 'NEWTON'
petsc_options_iname = '-mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = '1e-5 NONZERO 1e-10'
l_max_its = 100
nl_max_its = 30
# nl_rel_tol = 1e-6
nl_abs_tol = 1e-12
line_search = 'none'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = lm_z
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = secondary_lower
variable = lm_z
sort_by = 'id'
execute_on = NONLINEAR
[]
[]
(modules/solid_mechanics/test/tests/umat/multiple_blocks/rve_multimaterial.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
[mesh_1]
type = FileMeshGenerator
file = rve.e
[]
[]
[Functions]
[top_shear]
type = ParsedFunction
expression = t/0.05
[]
[]
[BCs]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = '1000'
value = 0
[]
[fix_y]
type = DirichletBC
variable = disp_y
boundary = '1000'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = '1000'
value = 0
[]
[slip_x]
type = FunctionDirichletBC
variable = disp_y
boundary = '4000'
function = top_shear
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
incremental = true
[]
[]
[Materials]
[umat_1]
type = AbaqusUMATStress
# Young's modulus, Poisson's Ratio, Yield, Hardening
constant_properties = '1000 0.3'
plugin = ../../../plugins/elastic_incremental
num_state_vars = 3
use_one_based_indexing = true
block = '1'
[]
[umat_2]
type = AbaqusUMATStress
# Young's modulus, Poisson's Ratio
constant_properties = '1e8 0.3'
plugin = ../../../plugins/elastic_incremental
num_state_vars = 3
use_one_based_indexing = true
block = '2'
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[elastic_1]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000
poissons_ratio = 0.3
block = '1'
[]
[elastic_2]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e8
poissons_ratio = 0.3
block = '2'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = none
nl_abs_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 2
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/elastic_patch/elastic_patch_quadratic.i)
# Patch Test for second order hex elements (HEX20)
#
# From Abaqus, Verification Manual, 1.5.2
#
# This test is designed to compute constant xx, yy, zz, xy, yz, and zx
# stress on a set of irregular hexes. The mesh is composed of one
# block with seven elements. The elements form a unit cube with one
# internal element. There is a nodeset for each exterior node.
# The cube is displaced on all exterior nodes using the functions,
#
# ux = 1e-4 * (2x + y + z) / 2
# uy = 1e-4 * (x + 2y + z) / 2
# ux = 1e-4 * (x + y + 2z) / 2
#
# giving uniform strains of
#
# exx = eyy = ezz = 2*exy = 2*eyz = 2*exz = 1e-4
#
#
# Hooke's Law provides an analytical solution for the uniform stress state.
# For example,
#
# stress xx = lambda(exx + eyy + ezz) + 2 * G * exx
# stress xy = 2 * G * exy
#
# where:
#
# lambda = (2 * G * nu) / (1 - 2 * nu)
# G = 0.5 * E / (1 + nu)
#
# For the test below, E = 1e6 and nu = 0.25, giving lambda = G = 4e5
#
# Thus
#
# stress xx = 4e5 * (3e-4) + 2 * 4e5 * 1e-4 = 200
# stress xy = 2 * 4e5 * 1e-4 / 2 = 40
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = elastic_patch_quadratic.e
[] # Mesh
[Functions]
[./xDispFunc]
type = ParsedFunction
expression = 5e-5*(2*x+y+z)
[../]
[./yDispFunc]
type = ParsedFunction
expression = 5e-5*(x+2*y+z)
[../]
[./zDispFunc]
type = ParsedFunction
expression = 5e-5*(x+y+2*z)
[../]
[] # Functions
[Variables]
[./disp_x]
order = SECOND
family = LAGRANGE
[../]
[./disp_y]
order = SECOND
family = LAGRANGE
[../]
[./disp_z]
order = SECOND
family = LAGRANGE
[../]
[] # Variables
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_energy]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic]
order = CONSTANT
family = MONOMIAL
[../]
[./firstinv]
order = CONSTANT
family = MONOMIAL
[../]
[./secondinv]
order = CONSTANT
family = MONOMIAL
[../]
[./thirdinv]
order = CONSTANT
family = MONOMIAL
[../]
[] # AuxVariables
[Kernels]
[SolidMechanics]
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[../]
[./elastic_energy]
type = ElasticEnergyAux
variable = elastic_energy
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
scalar_type = VonMisesStress
variable = vonmises
[../]
[./hydrostatic]
type = RankTwoScalarAux
rank_two_tensor = stress
scalar_type = Hydrostatic
variable = hydrostatic
[../]
[./fi]
type = RankTwoScalarAux
rank_two_tensor = stress
scalar_type = FirstInvariant
variable = firstinv
[../]
[./si]
type = RankTwoScalarAux
rank_two_tensor = stress
scalar_type = SecondInvariant
variable = secondinv
[../]
[./ti]
type = RankTwoScalarAux
rank_two_tensor = stress
scalar_type = ThirdInvariant
variable = thirdinv
[../]
[] # AuxKernels
[BCs]
[./all_nodes_x]
type = FunctionDirichletBC
variable = disp_x
boundary = '1 2 3 4 6 7 8 9 10 12 15 17 18 19 20 21 23 24 25 26'
function = xDispFunc
[../]
[./all_nodes_y]
type = FunctionDirichletBC
variable = disp_y
boundary = '1 2 3 4 6 7 8 9 10 12 15 17 18 19 20 21 23 24 25 26'
function = yDispFunc
[../]
[./all_nodes_z]
type = FunctionDirichletBC
variable = disp_z
boundary = '1 2 3 4 6 7 8 9 10 12 15 17 18 19 20 21 23 24 25 26'
function = zDispFunc
[../]
[] # BCs
[Materials]
[./elast_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
[../]
[./strain]
type = ComputeSmallStrain
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[] # Materials
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_rel_tol = 1e-6
l_max_its = 20
start_time = 0.0
dt = 1.0
num_steps = 1
end_time = 1.0
[] # Executioner
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[] # Outputs
(modules/solid_mechanics/test/tests/uel/tensile_umat_moose_umat.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[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
[]
[state_var_one]
family = MONOMIAL
order = FIRST
[]
[state_var_two]
family = MONOMIAL
order = FIRST
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
generate_output = 'vonmises_stress'
strain = FINITE
[]
[]
[Functions]
[function_pull]
type = PiecewiseLinear
x = '0 100'
y = '0 0.1'
[]
[]
[AuxKernels]
[state_ker_one]
type = MaterialStdVectorAux
variable = state_var_one
property = 'state_var'
index = 0
execute_on = timestep_end
[]
[state_ker_two]
type = MaterialStdVectorAux
variable = state_var_two
property = 'state_var'
index = 1
execute_on = timestep_end
[]
[]
[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
[]
[]
# Something wrong in the input?
[Materials]
[umat]
type = AbaqusUMATStress
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
plugin = '../../../../tensor_mechanics/test/plugins/umat_hc40'
num_state_vars = 177 # 141 + 6*6
temperature = temperature
use_one_based_indexing = true
[]
[]
[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/solid_mechanics/test/tests/capped_mohr_coulomb/random2.i)
# Using CappedMohrCoulomb with compressive failure only
# Plasticity models:
# Compressive strength = 1 MPa
#
# Lame lambda = 1GPa. Lame mu = 1.3GPa
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1234
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 1234
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./tot_iters]
type = ElementIntegralMaterialProperty
mat_prop = plastic_NR_iterations
outputs = console
[../]
[./raw_f0]
type = ElementExtremeValue
variable = f0
outputs = console
[../]
[./raw_f1]
type = ElementExtremeValue
variable = f1
outputs = console
[../]
[./raw_f2]
type = ElementExtremeValue
variable = f2
outputs = console
[../]
[./iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./f0]
type = FunctionValuePostprocessor
function = should_be_zero0_fcn
[../]
[./f1]
type = FunctionValuePostprocessor
function = should_be_zero1_fcn
[../]
[./f2]
type = FunctionValuePostprocessor
function = should_be_zero2_fcn
[../]
[]
[Functions]
[./should_be_zero0_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f0'
[../]
[./should_be_zero1_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f1'
[../]
[./should_be_zero2_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f2'
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E12
[../]
[./cs]
type = SolidMechanicsHardeningCubic
value_0 = 1E6
value_residual = 0
internal_limit = 1
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E12
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '1E9 1.3E9'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 1E5
max_NR_iterations = 100
yield_function_tol = 1.0E-1
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random2
csv = true
[]
(modules/contact/test/tests/mortar_tm/2d/frictionless_first/finite_rr.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD4
order = FIRST
name = 'finite_rr'
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.3
xmax = 0.3
ymin = -10
ymax = 10
nx = 2
ny = 67
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.31
xmax = 0.91
ymin = 7.7
ymax = 8.5
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[action]
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'plank block'
extra_vector_tags = 'ref'
[]
[]
[Contact]
[frictionless]
primary = plank_right
secondary = block_left
formulation = mortar
c_normal = 1e0
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = block_right
function = '-0.04*sin(4*(t+1.5))+0.02'
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = block_right
function = '-t'
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'plank block'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 13.5
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'contact'
nl_abs_tol = 1e-7
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[]
[Outputs]
file_base = ${name}
[comp]
type = CSV
show = 'contact'
[]
[out]
type = CSV
file_base = '${name}_out'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/solid_mechanics/test/tests/tensile/planar1.i)
# checking for small deformation
# A single element is stretched by 1E-6m in z direction, and by small amounts in x and y directions
# stress_zz = Youngs Modulus*Strain = 2E6*1E-6 = 2 Pa
# tensile_strength is set to 1Pa
# Then the final stress should return to the yeild surface and the maximum principal stress value should be 1pa, and value of plastic strain should be 0.5E-6
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.2E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.0E-6*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./hard]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./tens]
type = SolidMechanicsPlasticTensileMulti
tensile_strength = hard
shift = 1E-6
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
plastic_models = tens
debug_fspb = crash
debug_jac_at_stress = '1 2 3 2 -4 -5 3 -5 10'
debug_jac_at_pm = '0.1 0.2 0.3'
debug_jac_at_intnl = 1E-6
debug_stress_change = 1E-6
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = planar1
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/multiapps/restart/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 1
nx = 10
[]
[Functions]
[./u_fn]
type = ParsedFunction
expression = t*x
[../]
[./ffn]
type = ParsedFunction
expression = x
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./td]
type = TimeDerivative
variable = u
[../]
[./fn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = right
function = u_fn
[../]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/poro_mechanics/mandel.i)
# Mandel's problem of consolodation of a drained medium
#
# A sample is in plane strain.
# -a <= x <= a
# -b <= y <= b
# It is squashed with constant force by impermeable, frictionless plattens on its top and bottom surfaces (at y=+/-b)
# Fluid is allowed to leak out from its sides (at x=+/-a)
# The porepressure within the sample is monitored.
#
# As is common in the literature, this is simulated by
# considering the quarter-sample, 0<=x<=a and 0<=y<=b, with
# impermeable, roller BCs at x=0 and y=0 and y=b.
# Porepressure is fixed at zero on x=a.
# Porepressure and displacement are initialised to zero.
# Then the top (y=b) is moved downwards with prescribed velocity,
# so that the total force that is inducing this downwards velocity
# is fixed. The velocity is worked out by solving Mandel's problem
# analytically, and the total force is monitored in the simulation
# to check that it indeed remains constant.
#
# Here are the problem's parameters, and their values:
# Soil width. a = 1
# Soil height. b = 0.1
# Soil's Lame lambda. la = 0.5
# Soil's Lame mu, which is also the Soil's shear modulus. mu = G = 0.75
# Soil bulk modulus. K = la + 2*mu/3 = 1
# Drained Poisson ratio. nu = (3K - 2G)/(6K + 2G) = 0.2
# Soil bulk compliance. 1/K = 1
# Fluid bulk modulus. Kf = 8
# Fluid bulk compliance. 1/Kf = 0.125
# Soil initial porosity. phi0 = 0.1
# Biot coefficient. alpha = 0.6
# Biot modulus. M = 1/(phi0/Kf + (alpha - phi0)(1 - alpha)/K) = 4.705882
# Undrained bulk modulus. Ku = K + alpha^2*M = 2.694118
# Undrained Poisson ratio. nuu = (3Ku - 2G)/(6Ku + 2G) = 0.372627
# Skempton coefficient. B = alpha*M/Ku = 1.048035
# Fluid mobility (soil permeability/fluid viscosity). k = 1.5
# Consolidation coefficient. c = 2*k*B^2*G*(1-nu)*(1+nuu)^2/9/(1-nuu)/(nuu-nu) = 3.821656
# Normal stress on top. F = 1
#
# The solution for porepressure and displacements is given in
# AHD Cheng and E Detournay "A direct boundary element method for plane strain poroelasticity" International Journal of Numerical and Analytical Methods in Geomechanics 12 (1988) 551-572.
# The solution involves complicated infinite series, so I shall not write it here
[Mesh]
type = GeneratedMesh
dim = 3
nx = 10
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 0.1
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
porepressure = porepressure
block = 0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./porepressure]
[../]
[]
[BCs]
[./roller_xmin]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left'
[../]
[./roller_ymin]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom'
[../]
[./plane_strain]
type = DirichletBC
variable = disp_z
value = 0
boundary = 'back front'
[../]
[./xmax_drained]
type = DirichletBC
variable = porepressure
value = 0
boundary = right
[../]
[./top_velocity]
type = FunctionDirichletBC
variable = disp_y
function = top_velocity
boundary = top
[../]
[]
[Functions]
[./top_velocity]
type = PiecewiseLinear
x = '0 0.002 0.006 0.014 0.03 0.046 0.062 0.078 0.094 0.11 0.126 0.142 0.158 0.174 0.19 0.206 0.222 0.238 0.254 0.27 0.286 0.302 0.318 0.334 0.35 0.366 0.382 0.398 0.414 0.43 0.446 0.462 0.478 0.494 0.51 0.526 0.542 0.558 0.574 0.59 0.606 0.622 0.638 0.654 0.67 0.686 0.702'
y = '-0.041824842 -0.042730269 -0.043412712 -0.04428867 -0.045509181 -0.04645965 -0.047268246 -0.047974749 -0.048597109 -0.0491467 -0.049632388 -0.050061697 -0.050441198 -0.050776675 -0.051073238 -0.0513354 -0.051567152 -0.051772022 -0.051953128 -0.052113227 -0.052254754 -0.052379865 -0.052490464 -0.052588233 -0.052674662 -0.052751065 -0.052818606 -0.052878312 -0.052931093 -0.052977751 -0.053018997 -0.053055459 -0.053087691 -0.053116185 -0.053141373 -0.05316364 -0.053183324 -0.053200724 -0.053216106 -0.053229704 -0.053241725 -0.053252351 -0.053261745 -0.053270049 -0.053277389 -0.053283879 -0.053289615'
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_force]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./tot_force]
type = ParsedAux
coupled_variables = 'stress_yy porepressure'
execute_on = timestep_end
variable = tot_force
expression = '-stress_yy+0.6*porepressure'
[../]
[]
[Kernels]
[./grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[../]
[./grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[../]
[./grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[../]
[./poro_x]
type = PoroMechanicsCoupling
variable = disp_x
component = 0
[../]
[./poro_y]
type = PoroMechanicsCoupling
variable = disp_y
component = 1
[../]
[./poro_z]
type = PoroMechanicsCoupling
variable = disp_z
component = 2
[../]
[./poro_timederiv]
type = PoroFullSatTimeDerivative
variable = porepressure
[../]
[./darcy_flow]
type = CoefDiffusion
variable = porepressure
coef = 1.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '0.5 0.75'
# bulk modulus is lambda + 2*mu/3 = 0.5 + 2*0.75/3 = 1
fill_method = symmetric_isotropic
[../]
[./strain]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./poro_material]
type = PoroFullSatMaterial
porosity0 = 0.1
biot_coefficient = 0.6
solid_bulk_compliance = 1
fluid_bulk_compliance = 0.125
constant_porosity = true
[../]
[]
[Postprocessors]
[./p0]
type = PointValue
outputs = csv
point = '0.0 0 0'
variable = porepressure
[../]
[./p1]
type = PointValue
outputs = csv
point = '0.1 0 0'
variable = porepressure
[../]
[./p2]
type = PointValue
outputs = csv
point = '0.2 0 0'
variable = porepressure
[../]
[./p3]
type = PointValue
outputs = csv
point = '0.3 0 0'
variable = porepressure
[../]
[./p4]
type = PointValue
outputs = csv
point = '0.4 0 0'
variable = porepressure
[../]
[./p5]
type = PointValue
outputs = csv
point = '0.5 0 0'
variable = porepressure
[../]
[./p6]
type = PointValue
outputs = csv
point = '0.6 0 0'
variable = porepressure
[../]
[./p7]
type = PointValue
outputs = csv
point = '0.7 0 0'
variable = porepressure
[../]
[./p8]
type = PointValue
outputs = csv
point = '0.8 0 0'
variable = porepressure
[../]
[./p9]
type = PointValue
outputs = csv
point = '0.9 0 0'
variable = porepressure
[../]
[./p99]
type = PointValue
outputs = csv
point = '1 0 0'
variable = porepressure
[../]
[./xdisp]
type = PointValue
outputs = csv
point = '1 0.1 0'
variable = disp_x
[../]
[./ydisp]
type = PointValue
outputs = csv
point = '1 0.1 0'
variable = disp_y
[../]
[./total_downwards_force]
type = ElementAverageValue
outputs = csv
variable = tot_force
[../]
[./dt]
type = FunctionValuePostprocessor
outputs = console
function = if(0.15*t<0.01,0.15*t,0.01)
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-14 1E-10 10000'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 0.7
[./TimeStepper]
type = PostprocessorDT
postprocessor = dt
dt = 0.001
[../]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = mandel
[./csv]
time_step_interval = 3
type = CSV
[../]
[]
(test/tests/auxkernels/error_function_aux/error_function_aux.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 20
ny = 20
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./element_l2_error]
# Aux field variable representing the L2 error on each element
order = CONSTANT
family = MONOMIAL
[../]
[./element_h1_error]
# Aux field variable representing the H1 error on each element
order = CONSTANT
family = MONOMIAL
[../]
[./element_l2_norm]
# Aux field variable representing the L^2 norm of the solution variable
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = sin(2*pi*x)*sin(2*pi*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 8*pi^2*sin(2*pi*x)*sin(2*pi*y)
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[AuxKernels]
[./l2_norm_aux]
type = ElementLpNormAux
variable = element_l2_norm
coupled_variable = u
[../]
[./l2_error_aux]
type = ElementL2ErrorFunctionAux
variable = element_l2_error
# A function representing the exact solution for the solution
function = exact_fn
# The nonlinear variable representing the FEM solution
coupled_variable = u
[../]
[./h1_error_aux]
type = ElementH1ErrorFunctionAux
variable = element_h1_error
# A function representing the exact solution for the solution
function = exact_fn
# The nonlinear variable representing the FEM solution
coupled_variable = u
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'bottom left right top'
function = exact_fn
[../]
[]
[Postprocessors]
[./L2_error]
# The L2 norm of the error over the entire mesh. Note: this is
# *not* equal to the sum over all the elements of the L2-error
# norms.
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(test/tests/bcs/nodal_normals/circle_tris.i)
[Mesh]
file = circle-tris.e
[]
[Functions]
[all_bc_fn]
type = ParsedFunction
expression = x*x+y*y
[]
[f_fn]
type = ParsedFunction
expression = -4
[]
[analytical_normal_x]
type = ParsedFunction
expression = x
[]
[analytical_normal_y]
type = ParsedFunction
expression = y
[]
[]
[NodalNormals]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[ffn]
type = BodyForce
variable = u
function = f_fn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = 'all_bc_fn'
[]
[]
[Postprocessors]
[nx_pps]
type = NodalL2Error
variable = nodal_normal_x
boundary = '1'
function = analytical_normal_x
[]
[ny_pps]
type = NodalL2Error
variable = nodal_normal_y
boundary = '1'
function = analytical_normal_y
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1e-13
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_user_object.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 2
ny = 2
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[]
[GlobalParams]
volumetric_locking_correction=true
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = element
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = lage
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_j = 1
index_i = 1
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.01
dtmax = 10.0
dtmin = 0.01
num_steps = 10
[]
[Outputs]
file_base = crysp_user_object_out
exodus = true
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
(test/tests/executioners/executioner/steady.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 5
ny = 5
elem_type = QUAD9
[]
[Variables]
active = 'u'
[./u]
order = SECOND
family = LAGRANGE
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = -4
[../]
[./exact_fn]
type = ParsedFunction
expression = ((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ffn'
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_steady
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/weak_plane_shear/small_deform_harden3.i)
# apply repeated stretches to observe cohesion hardening
[GlobalParams]
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = 'stress_xz stress_zx stress_yz stress_zz'
[]
[BCs]
[bottomx]
type = DirichletBC
variable = x_disp
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = y_disp
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = z_disp
boundary = back
value = 0.0
[]
[topx]
type = FunctionDirichletBC
variable = x_disp
boundary = front
function = '0'
[]
[topy]
type = FunctionDirichletBC
variable = y_disp
boundary = front
function = '0'
[]
[topz]
type = FunctionDirichletBC
variable = z_disp
boundary = front
function = '2*t'
[]
[]
[AuxVariables]
[wps_internal]
order = CONSTANT
family = MONOMIAL
[]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[wps_internal_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = wps_internal
[]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[]
[s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[int]
type = PointValue
point = '0 0 0'
variable = wps_internal
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningExponential
value_0 = 1E3
value_residual = 2E3
rate = 0
[]
[tanphi]
type = SolidMechanicsHardeningExponential
value_0 = 1
value_residual = 0.577350269
rate = 4E4
[]
[tanpsi]
type = SolidMechanicsHardeningExponential
value_0 = 0.01745506
value_residual = 0.01745506
rate = 1E8
[]
[wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
smoother = 500
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '1E9 0.5E9'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wps
transverse_direction = '0 0 1'
ep_plastic_tolerance = 1E-3
debug_fspb = crash
[]
[]
[Executioner]
end_time = 1E-6
dt = 1E-7
type = Transient
[]
[Outputs]
csv = true
[]
(modules/contact/test/tests/catch_release/catch_release.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = catch_release.e
[]
[Functions]
[./up]
type = PiecewiseLinear
x = '0 1 2.00 3 4'
y = '0 1 1.01 1 0'
scale_factor = 0.5
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
[]
[]
[Contact]
[./dummy_name]
primary = 2
secondary = 3
penalty = 1e6
model = frictionless
[../]
[]
[BCs]
[./lateral]
type = DirichletBC
variable = disp_x
boundary = '1 4'
value = 0.0
[../]
[./bottom_up]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 1
function = up
[../]
[./out]
type = DirichletBC
variable = disp_z
boundary = '1 4'
value = 0.0
[../]
[./top]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[]
[Materials]
[./stiffStuff]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stiffStuffStress]
type = ComputeFiniteStrainElasticStress
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
#petsc_options_iname = '-pc_type -snes_type -snes_ls -snes_linesearch_type -ksp_gmres_restart'
#petsc_options_value = 'ilu ls basic basic 101'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 101'
line_search = 'none'
nl_abs_tol = 1e-8
nl_rel_tol = 1e-4
l_tol = 1e-4
l_max_its = 100
nl_max_its = 20
dt = 1.0
end_time = 4.0
[]
[Outputs]
exodus = true
[]
(modules/stochastic_tools/test/tests/controls/libtorch_drl_control/libtorch_drl_control.i)
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmin = 0.0
xmax = 7.0
nx = 20
[]
[]
[Variables]
[temp]
initial_condition = 300
[]
[]
[Kernels]
[time]
type = CoefTimeDerivative
variable = temp
Coefficient = '${fparse 1.00630182*1.225}'
[]
[heat_conduc]
type = MatDiffusion
variable = temp
diffusivity = 'k'
[]
[]
[BCs]
[left_flux]
type = NeumannBC
value = 0.0
boundary = 'left'
variable = temp
[]
[dirichlet]
type = FunctionDirichletBC
function = temp_env
variable = temp
boundary = 'right'
[]
[]
[Functions]
[temp_env]
type = ParsedFunction
value = '15.0*sin(t/86400.0 *pi) + 273.0'
[]
[]
[Materials]
[constant]
type = GenericConstantMaterial
prop_names = 'k'
prop_values = 26.53832364
[]
[]
[Postprocessors]
[center_temp]
type = PointValue
variable = temp
point = '3.5 0.0 0.0'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[center_temp_tend]
type = PointValue
variable = temp
point = '3.5 0.0 0.0'
execute_on = 'INITIAL TIMESTEP_END'
[]
[env_temp]
type = FunctionValuePostprocessor
function = temp_env
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[left_flux]
type = LibtorchControlValuePostprocessor
control_name = src_control
execute_on = 'INITIAL TIMESTEP_END'
[]
[log_prob_left_flux]
type = LibtorchDRLLogProbabilityPostprocessor
control_name = src_control
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Controls]
inactive = src_control_empty
[src_control]
seed = 11
type = LibtorchDRLControl
parameters = "BCs/left_flux/value"
responses = 'center_temp env_temp'
input_timesteps = 2
response_scaling_factors = '0.03 0.03'
response_shift_factors = '270 270'
action_standard_deviations = '0.1'
action_scaling_factors = 200
filename = 'mynet_control.net'
torch_script_format = false
num_neurons_per_layer = '16 6'
activation_function = 'relu'
execute_on = 'TIMESTEP_BEGIN'
[]
[src_control_empty]
type = LibtorchDRLControl
parameters = "BCs/left_flux/value"
responses = 'center_temp env_temp'
input_timesteps = 2
response_scaling_factors = '0.03 0.03'
response_shift_factors = '270 270'
action_standard_deviations = '0.1'
action_scaling_factors = 100
execute_on = 'TIMESTEP_BEGIN'
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_rel_tol = 1e-8
start_time = 0.0
end_time = 18000
dt = 1800.0
[]
[Outputs]
csv = true
[]
(modules/contact/test/tests/mechanical_constraint/frictionless_kinematic.i)
[Mesh]
file = blocks_2d.e
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[../]
[]
[AuxKernels]
[./zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./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
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = 4
#Initial gap is 0.01
value = -0.02
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e7
poissons_ratio = 0.3
[../]
[./right]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.01
end_time = 0.10
num_steps = 1000
l_tol = 1e-6
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dtmin = 0.01
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
primary = 2
secondary = 3
model = frictionless
penalty = 1e+6
[../]
[]
(test/tests/multiapps/restart_subapp_ic/sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 1
nx = 10
[]
[Functions]
[u_fn]
type = ParsedFunction
expression = t*x
[]
[ffn]
type = ParsedFunction
expression = x
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[td]
type = TimeDerivative
variable = u
[]
[fn]
type = BodyForce
variable = u
function = ffn
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = FunctionDirichletBC
variable = u
boundary = right
function = u_fn
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/phase_field_fracture/crack2d_computeCrackedStress_smallstrain.i)
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 40
ny = 20
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./All]
add_variables = true
strain = SMALL
planar_formulation = PLANE_STRAIN
additional_generate_output = 'stress_yy'
strain_base_name = uncracked
[../]
[../]
[../]
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = E_el
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[./off_disp]
type = AllenCahnElasticEnergyOffDiag
variable = c
displacements = 'disp_x disp_y'
mob_name = L
[../]
[]
[AuxKernels]
[./strain_yy]
type = RankTwoAux
variable = strain_yy
rank_two_tensor = uncracked_mechanical_strain
index_i = 1
index_j = 1
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.05 1e-6'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '127.0 70.8 70.8 127.0 70.8 127.0 73.55 73.55 73.55'
fill_method = symmetric9
base_name = uncracked
euler_angle_1 = 30
euler_angle_2 = 0
euler_angle_3 = 0
[../]
[./elastic]
type = ComputeLinearElasticStress
base_name = uncracked
[../]
[./cracked_stress]
type = ComputeCrackedStress
c = c
kdamage = 1e-6
F_name = E_el
use_current_history_variable = true
uncracked_base_name = uncracked
[../]
[]
[Postprocessors]
[./av_stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./av_strain_yy]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solving_package'
petsc_options_value = 'lu superlu_dist'
nl_rel_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 5e-5
num_steps = 2
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/sliding_block/sliding/frictional_02_aug.i)
# This is a benchmark test that checks constraint based frictional
# contact using the augmented lagrangian method. In this test a constant
# displacement is applied in the horizontal direction to simulate
# a small block come sliding down a larger block.
#
# A friction coefficient of 0.2 is used. The gold file is run on one processor
# and the benchmark case is run on a minimum of 4 processors to ensure no
# parallel variability in the contact pressure and penetration results.
#
[Mesh]
file = sliding_elastic_blocks_2d.e
patch_size = 80
[]
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[AuxVariables]
[./contact_traction]
[../]
[./penetration]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./tang_force_x]
[../]
[./tang_force_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./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
[../]
[]
[Postprocessors]
[./nonlinear_its]
type = NumNonlinearIterations
execute_on = timestep_end
[../]
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 222
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 222
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = -0.02
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 20
nl_max_its = 200
dt = 0.1
end_time = 15
num_steps = 200
l_tol = 1e-6
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
dtmin = 0.01
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
time_step_interval = 10
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Problem]
type = AugmentedLagrangianContactProblem
solution_variables = 'disp_x disp_y'
extra_tag_vectors = 'ref'
reference_vector = 'ref'
maximum_lagrangian_update_iterations = 100
[]
[Contact]
[./leftright]
secondary = 3
primary = 2
model = coulomb
penalty = 1e+7
friction_coefficient = 0.2
formulation = augmented_lagrange
normalize_penalty = true
al_penetration_tolerance = 1e-6
al_incremental_slip_tolerance = 1.0e-2
al_frictional_force_tolerance = 1e-3
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/test.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[./pk2]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[./slip_increment]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[./pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = pk2
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_rate_gss
index = 0
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[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
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.01*t'
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./pk2]
type = ElementAverageValue
variable = pk2
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[./slip_increment]
type = ElementAverageValue
variable = slip_increment
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
dtmin = 0.05
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/notched_plastic_block/biaxial_planar.i)
# Uses non-smoothed Mohr-Coulomb (via ComputeMultiPlasticityStress and SolidMechanicsPlasticMohrCoulombMulti) to simulate the following problem.
# A cubical block is notched around its equator.
# All of its outer surfaces have roller BCs, but the notched region is free to move as needed
# The block is initialised with a high hydrostatic tensile stress
# Without the notch, the BCs do not allow contraction of the block, and this stress configuration is admissible
# With the notch, however, the interior parts of the block are free to move in order to relieve stress, and this causes plastic failure
# The top surface is then pulled upwards (the bottom is fixed because of the roller BCs)
# This causes more failure
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 9
ny = 9
nz = 9
xmin = 0
xmax = 0.1
ymin = 0
ymax = 0.1
zmin = 0
zmax = 0.1
[]
[block_to_remove_xmin]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 -0.01 0.045'
top_right = '0.01 0.11 0.055'
location = INSIDE
block_id = 1
input = generated_mesh
[]
[block_to_remove_xmax]
type = SubdomainBoundingBoxGenerator
bottom_left = '0.09 -0.01 0.045'
top_right = '0.11 0.11 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_xmin
[]
[block_to_remove_ymin]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 -0.01 0.045'
top_right = '0.11 0.01 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_xmax
[]
[block_to_remove_ymax]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 0.09 0.045'
top_right = '0.11 0.11 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_ymin
[]
[remove_block]
type = BlockDeletionGenerator
block = 1
input = block_to_remove_ymax
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_zz'
eigenstrain_names = ini_stress
[]
[]
[Postprocessors]
[uz]
type = PointValue
point = '0 0 0.1'
use_displaced_mesh = false
variable = disp_z
[]
[s_zz]
type = ElementAverageValue
use_displaced_mesh = false
variable = stress_zz
[]
[num_res]
type = NumResidualEvaluations
[]
[nr_its]
type = ElementAverageValue
variable = num_iters
[]
[max_nr_its]
type = ElementExtremeValue
variable = num_iters
[]
[runtime]
type = PerfGraphData
data_type = TOTAL
section_name = 'Root'
[]
[]
[BCs]
# back=zmin, front=zmax, bottom=ymin, top=ymax, left=xmin, right=xmax
[xmin_xzero]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[xmax_xzero]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.0
[]
[ymin_yzero]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[ymax_yzero]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[]
[zmin_zzero]
type = DirichletBC
variable = disp_z
boundary = back
value = '0'
[]
[zmax_disp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '1E-6*max(t,0)'
[]
[]
[AuxVariables]
[mc_int]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain]
order = CONSTANT
family = MONOMIAL
[]
[num_iters]
order = CONSTANT
family = MONOMIAL
[]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[]
[plastic_strain_aux]
type = MaterialRankTwoTensorAux
i = 2
j = 2
property = plastic_strain
variable = plastic_strain
[]
[num_iters_auxk] # cannot use plastic_NR_iterations directly as this is zero, since no NR iterations are actually used, since we use a custom algorithm to do the return
type = ParsedAux
coupled_variables = plastic_strain
expression = 'if(plastic_strain>0,1,0)'
variable = num_iters
[]
[yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[]
[]
[UserObjects]
[mc_coh]
type = SolidMechanicsHardeningConstant
value = 5E6
[]
[mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[]
[mc_psi]
type = SolidMechanicsHardeningConstant
value = 10
convert_to_radians = true
[]
[mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 16E9
poissons_ratio = 0.25
[]
[mc]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1E-11
plastic_models = mc
max_NR_iterations = 1000
debug_fspb = crash
[]
[strain_from_initial_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '6E6 0 0 0 6E6 0 0 0 6E6'
eigenstrain_name = ini_stress
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
[]
[]
[Executioner]
start_time = -1
end_time = 10
dt = 1
dtmin = 1
solve_type = NEWTON
type = Transient
l_tol = 1E-2
nl_abs_tol = 1E-5
nl_rel_tol = 1E-7
l_max_its = 200
nl_max_its = 400
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[]
[Outputs]
perf_graph = true
csv = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/lid_driven/transient_fsp.i)
n=64
mu=2e-3
[GlobalParams]
gravity = '0 0 0'
preset = true
supg = false
[]
[Problem]
extra_tag_matrices = 'mass'
previous_nl_solution_required = true
type = NavierStokesProblem
mass_matrix = 'mass'
schur_fs_index = '1'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
nx = ${n}
ny = ${n}
elem_type = QUAD9
[]
[]
[Variables]
[vel_x]
order = SECOND
family = LAGRANGE
[]
[vel_y]
order = SECOND
family = LAGRANGE
[]
[p]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
# mass
[mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[]
[x_time]
type = INSMomentumTimeDerivative
variable = vel_x
[]
[x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[]
[x_mass]
type = MassMatrix
variable = vel_x
matrix_tags = 'mass'
[]
[y_time]
type = INSMomentumTimeDerivative
variable = vel_y
[]
[y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[]
[y_mass]
type = MassMatrix
variable = vel_y
matrix_tags = 'mass'
[]
[]
[BCs]
[x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'bottom right left'
value = 0.0
[]
[lid]
type = FunctionDirichletBC
variable = vel_x
boundary = 'top'
function = 'lid_function'
[]
[y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'bottom right top left'
value = 0.0
[]
[]
[Materials]
[const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '1 ${mu}'
[]
[]
[Functions]
[lid_function]
# We pick a function that is exactly represented in the velocity
# space so that the Dirichlet conditions are the same regardless
# of the mesh spacing.
type = ParsedFunction
expression = '4*x*(1-x)'
[]
[]
[Preconditioning]
[FSP]
type = FSP
topsplit = 'by_diri_others'
[by_diri_others]
splitting = 'diri others'
splitting_type = additive
petsc_options_iname = '-ksp_type'
petsc_options_value = 'preonly'
[]
[diri]
sides = 'left right top bottom'
vars = 'vel_x vel_y'
petsc_options_iname = '-pc_type'
petsc_options_value = 'jacobi'
[]
[others]
splitting = 'u p'
splitting_type = schur
petsc_options_iname = '-pc_fieldsplit_schur_fact_type -pc_fieldsplit_schur_precondition -ksp_gmres_restart -ksp_rtol -ksp_type -ksp_atol'
petsc_options_value = 'full self 300 1e-5 fgmres 1e-9'
unside_by_var_boundary_name = 'left top right bottom left top right bottom'
unside_by_var_var_name = 'vel_x vel_x vel_x vel_x vel_y vel_y vel_y vel_y'
[]
[u]
vars = 'vel_x vel_y'
unside_by_var_boundary_name = 'left top right bottom left top right bottom'
unside_by_var_var_name = 'vel_x vel_x vel_x vel_x vel_y vel_y vel_y vel_y'
# petsc_options = '-ksp_converged_reason'
petsc_options_iname = '-pc_type -ksp_pc_side -ksp_type -ksp_rtol -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre right gmres 1e-2 boomeramg 300'
[]
[p]
vars = 'p'
petsc_options = '-pc_lsc_scale_diag -ksp_converged_reason'# -lsc_ksp_converged_reason -lsc_ksp_monitor_true_residual
petsc_options_iname = '-ksp_type -ksp_gmres_restart -ksp_rtol -pc_type -ksp_pc_side -lsc_pc_type -lsc_pc_hypre_type -lsc_ksp_type -lsc_ksp_rtol -lsc_ksp_pc_side -lsc_ksp_gmres_restart'
petsc_options_value = 'fgmres 300 1e-2 lsc right hypre boomeramg gmres 1e-1 right 300'
[]
[]
[]
[Postprocessors]
[pavg]
type = ElementAverageValue
variable = p
[]
[]
[Correctors]
[set_pressure]
type = NSPressurePin
pin_type = 'average'
variable = p
pressure_average = 'pavg'
[]
[]
[Executioner]
solve_type = NEWTON
type = Transient
petsc_options_iname = '-snes_max_it'
petsc_options_value = '100'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
abort_on_solve_fail = true
normalize_solution_diff_norm_by_dt = false
[TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 6
dt = 1e-2
[]
steady_state_detection = true
[]
[Outputs]
[exo]
type = Exodus
execute_on = 'final'
hide = 'pavg'
[]
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg_bussetta_simple.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = cond_number.e
[]
allow_renumbering = false
[]
[Problem]
type = AugmentedLagrangianContactFEProblem
extra_tag_vectors = 'ref'
maximum_lagrangian_update_iterations = 1000
[]
[AuxVariables]
[penalty_normal_pressure]
[]
[penalty_frictional_pressure]
[]
[accumulated_slip_one]
[]
[tangential_vel_one]
[]
[normal_gap]
[]
[normal_lm]
[]
[saved_x]
[]
[saved_y]
[]
[active]
[]
[]
[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'
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
save_in = 'saved_x saved_y'
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 = penalty_friction_object_al_friction
contact_quantity = normal_pressure
boundary = 3
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_pressure_one
boundary = 3
[]
[penalty_tangential_vel_one]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_velocity_one
boundary = 3
[]
[penalty_accumulated_slip_one]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = penalty_friction_object_al_friction
contact_quantity = accumulated_slip_one
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = penalty_friction_object_al_friction
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
variable = normal_gap
user_object = penalty_friction_object_al_friction
contact_quantity = normal_gap
boundary = 3
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_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
[]
[active_set_size]
type = NodalSum
variable = active
[]
[]
[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 = 1e8
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 = 'NEWTON'
petsc_options = '-ksp_snes_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = ' 201 hypre boomeramg 8'
line_search = 'none'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
nl_max_its = 50
l_tol = 1e-05
l_abs_tol = 1e-13
start_time = 0.0
end_time = 0.1 # 1.0
dt = 0.1
dtmin = 0.1
[Predictor]
type = SimplePredictor
scale = 1.0
[]
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
[]
[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
[vectorpp_output]
type = CSV
create_final_symlink = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
[]
[Contact]
[al_friction]
formulation = mortar_penalty
model = coulomb
primary = '2'
secondary = '3'
penalty = 1e7
penalty_friction = 1e+7
friction_coefficient = 0.4
adaptivity_penalty_friction = SIMPLE
adaptivity_penalty_normal = BUSSETTA
al_penetration_tolerance = 1e-7
al_incremental_slip_tolerance = 1e-5 # Not active
penalty_multiplier = 100
penalty_multiplier_friction = 5
[]
[]
(modules/combined/test/tests/elastic_thermal_patch/elastic_thermal_jacobian_rz_smp.i)
# This problem is intended to exercise the Jacobian for coupled RZ
# problems. Only two iterations should be needed.
[GlobalParams]
temperature = temp
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = elastic_thermal_patch_rz_test.e
[]
[Functions]
[./ur]
type = ParsedFunction
expression = '0'
[../]
[./uz]
type = ParsedFunction
expression = '0'
[../]
[./body]
type = ParsedFunction
expression = '-400/x'
[../]
[./temp]
type = ParsedFunction
expression = '117.56+100*t'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 117.56
[../]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
displacements = 'disp_x disp_y'
[All]
displacements = 'disp_x disp_y'
add_variables = true
strain = SMALL
incremental = true
eigenstrain_names = eigenstrain
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[../]
[../]
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./ur]
type = FunctionDirichletBC
variable = disp_x
boundary = 1
function = ur
[../]
[./uz]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = uz
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = 10
function = temp
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 117.56
thermal_expansion_coeff = 1e-6
eigenstrain_name = eigenstrain
[../]
[./stress]
type = ComputeStrainIncrementBasedStress
[../]
[./heat]
type = HeatConductionMaterial
specific_heat = 0.116
thermal_conductivity = 4.85e-4
[../]
[./density]
type = Density
density = 0.283
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_abs_tol = 1e-9
nl_rel_tol = 1e-12
l_max_its = 20
start_time = 0.0
dt = 1.0
num_steps = 1
end_time = 1.0
[]
[Outputs]
file_base = elastic_thermal_jacobian_rz_smp_out
[./exodus]
type = Exodus
execute_on = 'initial timestep_end nonlinear'
nonlinear_residual_dt_divisor = 100
[../]
[]
(test/tests/auxscalarkernels/aux_scalar_deps/aux_scalar_deps.i)
#
# Testing a solution that is second order in space and first order in time
#
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[AuxVariables]
[./a]
family = SCALAR
order = FIRST
[../]
[./b]
family = SCALAR
order = FIRST
[../]
[./c]
family = SCALAR
order = FIRST
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[ICs]
[./a_ic]
type = ScalarConstantIC
variable = a
value = 0
[../]
[./b_ic]
type = ScalarConstantIC
variable = b
value = 2
[../]
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t
[../]
[./a_fn]
type = ParsedFunction
expression = t
[../]
[./b_fn]
type = ParsedFunction
expression = (4-t)/2
[../]
[]
# NOTE: The execute_on = 'timestep_end' is crucial for this test. Without it
# the aux values would be updated during the residual formation and we would
# end up with the right value at the end of the time step. With this flag on,
# the dependencies has to be correct for this test to work. Otherwise the
# values of 'c' will be lagged.
[AuxScalarKernels]
[./c_saux]
type = QuotientScalarAux
variable = c
numerator = a
denominator = b
execute_on = 'timestep_end'
[../]
[./a_saux]
type = FunctionScalarAux
variable = a
function = a_fn
execute_on = 'timestep_end'
[../]
[./b_saux]
type = FunctionScalarAux
variable = b
function = b_fn
execute_on = 'timestep_end'
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 2
dt = 1
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/rates/shear.i)
# shear modulus
G = 5000
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[AuxKernel]
type = RankTwoAux
rank_two_tensor = cauchy_stress
index_i = 0
index_j = 0
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[AuxKernel]
type = RankTwoAux
rank_two_tensor = cauchy_stress
index_i = 1
index_j = 1
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[AuxKernel]
type = RankTwoAux
rank_two_tensor = cauchy_stress
index_i = 0
index_j = 1
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[]
[BCs]
[x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'top bottom' # This contains all 8 nodes in the patch
function = 't*y'
[]
[y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top bottom' # This contains all 8 nodes in the patch
function = '0'
[]
[z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top bottom' # This contains all 8 nodes in the patch
function = '0'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
lambda = ${G}
shear_modulus = ${G}
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Postprocessors]
[sxx]
type = ElementAverageValue
variable = stress_xx
execute_on = 'INITIAL TIMESTEP_BEGIN'
outputs = none
[]
[sxx0]
type = ParsedPostprocessor
pp_names = 'sxx'
expression = 'sxx/${G}'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[syy]
type = ElementAverageValue
variable = stress_yy
execute_on = 'INITIAL TIMESTEP_BEGIN'
outputs = none
[]
[syy0]
type = ParsedPostprocessor
pp_names = 'syy'
expression = 'syy/${G}'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[sxy]
type = ElementAverageValue
variable = stress_xy
execute_on = 'INITIAL TIMESTEP_BEGIN'
outputs = none
[]
[sxy0]
type = ParsedPostprocessor
pp_names = 'sxy'
expression = 'sxy/${G}'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = NEWTON
petsc_options_iname = -pc_type
petsc_options_value = lu
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
end_time = 20
[]
[Outputs]
csv = true
[]
(modules/combined/test/tests/ad_cavity_pressure/additional_volume.i)
#
# Cavity Pressure Test using using automatic differentiation
#
# This test is designed to compute an internal pressure based on
# p = n * R * / (V_cavity / T_cavity + V_add / T_add)
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T_cavity is the temperature in the cavity
# T_add is the temperature of the additional volume
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7. An additional volume of 2 is added.
#
# The test adjusts n, T, and V in the following way:
# n => n0 + alpha * t
# T => T0 + beta * t
# V => V_cavity0 + gamma * t + V_add
# with
# alpha = n0
# beta = T0 / 2
# gamma = -(0.003322259...) * V0
# T0 = 240.54443866068704
# V_cavity0 = 7
# V_add = 2
# T_add = 100
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# An additional volume of 2 with a temperature of 100.0 is included.
#
# So, n0 = p0 * (V_cavity / T_cavity + V_add / T_add) / R
# = 100 * (7 / 240.544439 + 2 / 100) / 8.314472
# = 0.59054
#
# The parameters combined at t = 1 gives p = 249.647.
#
# This test sets the initial temperature to 500, but the CavityPressure
# is told that that initial temperature is T0. Thus, the final solution
# is unchanged.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = 3d.e
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[Functions]
[displ_positive]
type = PiecewiseLinear
x = '0 1'
y = '0 0.0029069767441859684'
[]
[displ_negative]
type = PiecewiseLinear
x = '0 1'
y = '0 -0.0029069767441859684'
[]
[temp1]
type = PiecewiseLinear
x = '0 1'
y = '1 1.5'
scale_factor = 240.54443866068704
[]
[material_input_function]
type = PiecewiseLinear
x = '0 1'
y = '0 0.59054'
[]
[additional_volume]
type = ConstantFunction
value = 2
[]
[temperature_of_additional_volume]
type = ConstantFunction
value = 100
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[temp]
initial_condition = 500
[]
[material_input]
[]
[]
[AuxVariables]
[pressure_residual_x]
[]
[pressure_residual_y]
[]
[pressure_residual_z]
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zx]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
use_automatic_differentiation = true
[]
[heat]
type = ADDiffusion
variable = temp
use_displaced_mesh = true
[]
[material_input_dummy]
type = ADDiffusion
variable = material_input
use_displaced_mesh = true
[]
[]
[AuxKernels]
[stress_xx]
type = ADRankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[]
[stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[]
[stress_zz]
type = ADRankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[]
[stress_xy]
type = ADRankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[]
[stress_yz]
type = ADRankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[]
[stress_zx]
type = ADRankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[]
[]
[BCs]
[no_x_exterior]
type = DirichletBC
variable = disp_x
boundary = '7 8'
value = 0.0
[]
[no_y_exterior]
type = DirichletBC
variable = disp_y
boundary = '9 10'
value = 0.0
[]
[no_z_exterior]
type = DirichletBC
variable = disp_z
boundary = '11 12'
value = 0.0
[]
[prescribed_left]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = displ_positive
[]
[prescribed_right]
type = FunctionDirichletBC
variable = disp_x
boundary = 14
function = displ_negative
[]
[no_y]
type = DirichletBC
variable = disp_y
boundary = '15 16'
value = 0.0
[]
[no_z]
type = DirichletBC
variable = disp_z
boundary = '17 18'
value = 0.0
[]
[no_x_interior]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[]
[no_y_interior]
type = DirichletBC
variable = disp_y
boundary = '3 4'
value = 0.0
[]
[no_z_interior]
type = DirichletBC
variable = disp_z
boundary = '5 6'
value = 0.0
[]
[temperatureInterior]
type = ADFunctionDirichletBC
boundary = 100
function = temp1
variable = temp
[]
[MaterialInput]
type = ADFunctionDirichletBC
boundary = '100 13 14 15 16'
function = material_input_function
variable = material_input
[]
[CavityPressure]
[1]
boundary = 100
initial_pressure = 100
material_input = materialInput
R = 8.314472
temperature = aveTempInterior
initial_temperature = 240.54443866068704
volume = internalVolume
startup_time = 0.5
output = ppress
save_in = 'pressure_residual_x pressure_residual_y pressure_residual_z'
additional_volumes = volume1
temperature_of_additional_volumes = temperature1
use_automatic_differentiation = true
[]
[]
[]
[Materials]
[elast_tensor1]
type = ADComputeElasticityTensor
C_ijkl = '0 5'
fill_method = symmetric_isotropic
block = 1
[]
[strain1]
type = ADComputeFiniteStrain
block = 1
[]
[stress1]
type = ADComputeFiniteStrainElasticStress
block = 1
[]
[elast_tensor2]
type = ADComputeElasticityTensor
C_ijkl = '0 5'
fill_method = symmetric_isotropic
block = 2
[]
[strain2]
type = ADComputeFiniteStrain
block = 2
[]
[stress2]
type = ADComputeFiniteStrainElasticStress
block = 2
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_rel_tol = 1e-12
l_tol = 1e-12
l_max_its = 20
dt = 0.5
end_time = 1.0
use_pre_SMO_residual = true
[]
[Postprocessors]
[internalVolume]
type = InternalVolume
boundary = 100
execute_on = 'initial linear'
[]
[aveTempInterior]
type = SideAverageValue
boundary = 100
variable = temp
execute_on = 'initial linear'
[]
[materialInput]
type = SideAverageValue
boundary = '7 8 9 10 11 12'
variable = material_input
execute_on = linear
[]
[volume1]
type = FunctionValuePostprocessor
function = additional_volume
execute_on = 'initial linear'
[]
[temperature1]
type = FunctionValuePostprocessor
function = temperature_of_additional_volume
execute_on = 'initial linear'
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/static_deformations/layered_cosserat_02.i)
# apply shears and Cosserat rotations and observe the stresses and moment-stresses
# with
# young = 0.7
# poisson = 0.2
# layer_thickness = 0.1
# joint_normal_stiffness = 0.25
# joint_shear_stiffness = 0.2
# then
# a0000 = 0.730681
# a0011 = 0.18267
# a2222 = 0.0244221
# a0022 = 0.006055
# a0101 = 0.291667
# a66 = 0.018717
# a77 = 0.155192
# b0110 = 0.000534
# b0101 = 0.000107
# and with
# u_x = y + 2*z
# u_y = x -1.5*z
# u_z = 1.1*x - 2.2*y
# wc_x = 0.5
# wc_y = 0.8
# then
# strain_xx = 0
# strain_xy = 1
# strain_xz = 2 - 0.8 = 1.2
# strain_yx = 1
# strain_yy = 0
# strain_yz = -1.5 + 0.5 = -1
# strain_zx = 1.1 + 0.8 = 1.9
# strain_zy = -2.2 - 0.5 = -2.7
# strain_zz = 0
# so that
# stress_xy = a0101*(1+1) = 0.583333
# stress_xz = a66*1.2 + a66*1.9 = 0.058021
# stress_yx = a0101*(1+1) = 0.583333
# stress_yz = a66*(-1) + a66*(-2.7) = -0.06925
# old stress_zx = a77*1.2 + a66*1.9 = 0.221793
# old stress_zy = a77*(-1) + a66*(-2.7) = -0.205728
# stress_zx = a66*1.2 + a77*1.9 = 0.317325
# stress_zy = a66*(-1) + a77*(-2.7) = -0.437735
# and all others zero
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
ymax = 1
nz = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
# zmin is called back
# zmax is called front
# ymin is called bottom
# ymax is called top
# xmin is called left
# xmax is called right
[./strain_xx]
type = FunctionDirichletBC
variable = disp_x
boundary = 'left right'
function = 'y+2*z'
[../]
[./strain_yy]
type = FunctionDirichletBC
variable = disp_y
boundary = 'bottom top'
function = 'x-1.5*z'
[../]
[./strain_zz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'back front'
function = '1.1*x-2.2*y'
[../]
[./wc_x]
type = FunctionDirichletBC
variable = wc_x
boundary = 'left right'
function = 0.5
[../]
[./wc_y]
type = FunctionDirichletBC
variable = wc_y
boundary = 'left right'
function = 0.8
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yx]
type = PointValue
point = '0 0 0'
variable = stress_yx
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zx]
type = PointValue
point = '0 0 0'
variable = stress_zx
[../]
[./s_zy]
type = PointValue
point = '0 0 0'
variable = stress_zy
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./c_s_xx]
type = PointValue
point = '0 0 0'
variable = couple_stress_xx
[../]
[./c_s_xy]
type = PointValue
point = '0 0 0'
variable = couple_stress_xy
[../]
[./c_s_xz]
type = PointValue
point = '0 0 0'
variable = couple_stress_xz
[../]
[./c_s_yx]
type = PointValue
point = '0 0 0'
variable = couple_stress_yx
[../]
[./c_s_yy]
type = PointValue
point = '0 0 0'
variable = couple_stress_yy
[../]
[./c_s_yz]
type = PointValue
point = '0 0 0'
variable = couple_stress_yz
[../]
[./c_s_zx]
type = PointValue
point = '0 0 0'
variable = couple_stress_zx
[../]
[./c_s_zy]
type = PointValue
point = '0 0 0'
variable = couple_stress_zy
[../]
[./c_s_zz]
type = PointValue
point = '0 0 0'
variable = couple_stress_zz
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 0.7
poisson = 0.2
layer_thickness = 0.1
joint_normal_stiffness = 0.25
joint_shear_stiffness = 0.2
[../]
[./strain]
type = ComputeCosseratSmallStrain
[../]
[./stress]
type = ComputeCosseratLinearElasticStress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol'
petsc_options_value = 'gmres asm lu 1E-10 1E-14 10 1E-15 1E-10'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
num_steps = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = layered_cosserat_02
csv = true
[]
(modules/solid_mechanics/test/tests/central_difference/consistent/3D/3d_consistent_explicit_mass_scaling.i)
# One element test to test the central difference time integrator in 3D.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 2
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 2
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[AuxVariables]
[vel_x]
[]
[accel_x]
[]
[vel_y]
[]
[accel_y]
[]
[vel_z]
[]
[accel_z]
[]
[]
[AuxKernels]
[accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[]
[vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[]
[accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[]
[vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_x
[]
[accel_z]
type = TestNewmarkTI
variable = accel_z
displacement = disp_z
first = false
[]
[vel_z]
type = TestNewmarkTI
variable = vel_z
displacement = disp_z
[]
[]
[Kernels]
[DynamicSolidMechanics]
displacements = 'disp_x disp_y disp_z'
[]
[inertia_x]
type = InertialForce
variable = disp_x
[]
[inertia_y]
type = InertialForce
variable = disp_y
[]
[inertia_z]
type = InertialForce
variable = disp_z
[]
[]
[BCs]
[x_bot]
type = FunctionDirichletBC
variable = disp_x
boundary = 'back'
function = dispx
preset = false
[]
[y_bot]
type = FunctionDirichletBC
variable = disp_y
boundary = 'back'
function = dispy
preset = false
[]
[z_bot]
type = FunctionDirichletBC
variable = disp_z
boundary = 'back'
function = dispz
preset = false
[]
[Periodic]
[x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[]
[y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[]
[]
[]
[Functions]
[dispx]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0' # time
y = '0.0 1.0 0.0 -1.0 0.0' # displacement
[]
[dispy]
type = ParsedFunction
value = 0.1*t*t*sin(10*t)
[]
[dispz]
type = ParsedFunction
value = 0.1*t*t*sin(20*t)
[]
[]
[Materials]
[elasticity_tensor_block]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
block = 0
[]
[strain_block]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
implicit = false
[]
[stress_block]
type = ComputeFiniteStrainElasticStress
block = 0
[]
[density]
type = GenericConstantMaterial
block = 0
prop_names = density
prop_values = 1e4
[]
[density_scaling]
type = DensityScaling
block = 0
density = density
desired_time_step = 0.06
output_properties = density_scaling
outputs = 'exodus'
factor = 0.5
[]
[]
[Executioner]
type = Transient
start_time = -0.01
end_time = 0.1
dt = 0.005
timestep_tolerance = 1e-6
[TimeIntegrator]
type = CentralDifference
use_constant_mass = false
solve_type = lumped
[]
[TimeStepper]
type = PostprocessorDT
postprocessor = time_step
[]
[]
[Postprocessors]
[accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[]
[time_step]
type = CriticalTimeStep
factor = 0.5
density = density
density_scaling = density_scaling
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/executioners/transient_sync_time/transient_sync_time_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 20
ny = 20
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./bc_func]
type = ParsedFunction
expression = sin(pi*0.1*x*t)
[../]
# Laplacian of the function above
[./interior_func]
type = ParsedFunction
expression = 0.01*pi*pi*t*t*sin(0.1*pi*x*t)
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./forcing]
type = BodyForce
variable = u
function = interior_func
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
preset = false
boundary = '0 1 2 3'
function = bc_func
[../]
[]
[Executioner]
type = Transient
dt = 1
start_time = 0
end_time = 40
num_steps = 1000
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out
exodus = true
sync_times = '10.5 20 30.5'
[]
(modules/xfem/test/tests/moving_interface/moving_bimaterial_finite_strain_cut_mesh.i)
# This test is for two layer materials with different youngs modulus with AD
# The global stress is determined by switching the stress based on level set values
# The material interface is marked by a level set function
# The two layer materials are glued together
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[XFEM]
output_cut_plane = true
[]
[UserObjects]
[cut]
type = InterfaceMeshCut2DUserObject
mesh_file = line.e
interface_velocity_function = -1
heal_always = true
[]
[]
[Mesh]
use_displaced_mesh = true
[generated_mesh]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmin = 0
xmax = 5
ymin = 0
ymax = 5
elem_type = QUAD4
[]
[left_bottom]
type = ExtraNodesetGenerator
new_boundary = 'left_bottom'
coord = '0 0'
input = generated_mesh
[]
[left_top]
type = ExtraNodesetGenerator
new_boundary = 'left_top'
coord = '0 5'
input = left_bottom
[]
[]
# [Functions]
# [ls_func]
# type = ParsedFunction
# expression = 'y-2.73+t'
# []
# []
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[AuxVariables]
[ls]
[]
[a_strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[a_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[a_strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[b_strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[b_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[b_strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
# [ls_function]
# type = FunctionAux
# variable = ls
# function = ls_func
# []
[a_strain_xx]
type = RankTwoAux
variable = a_strain_xx
rank_two_tensor = A_total_strain
index_i = 0
index_j = 0
[]
[a_strain_yy]
type = RankTwoAux
variable = a_strain_yy
rank_two_tensor = A_total_strain
index_i = 1
index_j = 1
[]
[a_strain_xy]
type = RankTwoAux
variable = a_strain_xy
rank_two_tensor = A_total_strain
index_i = 0
index_j = 1
[]
[b_strain_xx]
type = RankTwoAux
variable = b_strain_xx
rank_two_tensor = B_total_strain
index_i = 0
index_j = 0
[]
[b_strain_yy]
type = RankTwoAux
variable = b_strain_yy
rank_two_tensor = B_total_strain
index_i = 1
index_j = 1
[]
[b_strain_xy]
type = RankTwoAux
variable = b_strain_xy
rank_two_tensor = B_total_strain
index_i = 0
index_j = 1
[]
[stress_xx]
type = RankTwoAux
variable = stress_xx
rank_two_tensor = stress
index_i = 0
index_j = 0
[]
[stress_xy]
type = RankTwoAux
variable = stress_xy
rank_two_tensor = stress
index_i = 0
index_j = 1
[]
[stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_i = 1
index_j = 1
[]
[]
[Kernels]
[solid_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[solid_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[]
[Constraints]
[dispx_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_x
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[]
[dispy_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_y
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[]
[]
[BCs]
[bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[]
[bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[]
[topx]
type = FunctionDirichletBC
boundary = top
variable = disp_x
function = 0.03*t
[]
[topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = '0.03*t'
[]
[]
[Materials]
[elasticity_tensor_A]
type = ComputeIsotropicElasticityTensor
base_name = A
youngs_modulus = 1e9
poissons_ratio = 0.3
[]
[strain_A]
type = ComputeFiniteStrain
base_name = A
[]
[stress_A]
type = ComputeFiniteStrainElasticStress
base_name = A
[]
[elasticity_tensor_B]
type = ComputeIsotropicElasticityTensor
base_name = B
youngs_modulus = 1e7
poissons_ratio = 0.3
[]
[strain_B]
type = ComputeFiniteStrain
base_name = B
[]
[stress_B]
type = ComputeFiniteStrainElasticStress
base_name = B
[]
[combined_stress]
type = LevelSetBiMaterialRankTwo
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = stress
[]
[combined_jacob_mult]
type = LevelSetBiMaterialRankFour
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = Jacobian_mult
[]
[]
[Postprocessors]
[disp_x_norm]
type = ElementL2Norm
variable = disp_x
[]
[disp_y_norm]
type = ElementL2Norm
variable = disp_y
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-13
nl_abs_tol = 1e-50
# time control
start_time = 0.0
dt = 0.1
num_steps = 4
max_xfem_update = 1
[]
[Outputs]
print_linear_residuals = false
exodus = true
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/rectangle_w_line.i)
[Mesh]
parallel_type = 'replicated'
[rectangle]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 50
xmin = -0.5
xmax = 0.5
ymin = -1.25
ymax = 1.25
boundary_name_prefix = rectangle
[]
[rectangle_id]
type = SubdomainIDGenerator
input = rectangle
subdomain_id = 1
[]
[line]
type = GeneratedMeshGenerator
dim = 1
xmin = -0.5
xmax = 0.5
nx = 10
boundary_name_prefix = line
boundary_id_offset = 10
[]
[line_id]
type = SubdomainIDGenerator
input = line
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'rectangle_id line_id'
[]
[blcok_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'rectangle line'
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time_derivative]
type = HeatConductionTimeDerivative
variable = temperature
block = 'rectangle'
[]
[heat_conduction]
type = HeatConduction
variable = temperature
block = 'rectangle'
[]
[time_derivative_line]
type = TrussHeatConductionTimeDerivative
variable = temperature
area = area
block = 'line'
[]
[heat_conduction_line]
type = TrussHeatConduction
variable = temperature
area = area
block = 'line'
[]
[]
[AuxVariables]
[area]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[area]
type = ConstantAux
variable = area
value = 0.1 # strip thickness
execute_on = 'initial timestep_begin'
[]
[]
[Constraints]
[equalvalue]
type = EqualValueEmbeddedConstraint
secondary = 'line'
primary = 'rectangle'
penalty = 1e6
formulation = kinematic
primary_variable = temperature
variable = temperature
[]
[]
[Materials]
[rectangle]
type = GenericConstantMaterial
block = 'rectangle'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[line]
type = GenericConstantMaterial
block = 'line'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '10.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[]
[BCs]
[right]
type = FunctionDirichletBC
variable = temperature
boundary = 'rectangle_right line_right'
function = '10*t'
[]
[]
[VectorPostprocessors]
[x_n0_25]
type = LineValueSampler
start_point = '-0.25 0 0'
end_point = '-0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[x_0_25]
type = LineValueSampler
start_point = '0.25 0 0'
end_point = '0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
end_time = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = 'csv/rectangle_w_line'
time_data = true
[]
[]
(test/tests/time_steppers/timesequence_stepper/timesequence_restart2.i)
[Mesh]
file = timesequence_restart1_cp/0002-mesh.cpa.gz
[]
[Problem]
restart_file_base = timesequence_restart1_cp/0002
# There is an initial conditions overwriting the restart on the nonlinear variable u
# As you can see in the gold file, this makes the initial step output be from the
# initial condition
allow_initial_conditions_with_restart = true
[]
[Functions]
[exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[]
[forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[]
[]
[Variables]
[u]
family = LAGRANGE
order = SECOND
[]
[]
[ICs]
[u_var]
type = FunctionIC
variable = u
function = exact_fn
[]
[]
[Kernels]
[td]
type = TimeDerivative
variable = u
[]
[diff]
type = Diffusion
variable = u
[]
[ffn]
type = BodyForce
variable = u
function = forcing_fn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[]
[]
[Executioner]
type = Transient
end_time = 4.0
[TimeStepper]
type = TimeSequenceStepper
time_sequence = '0 0.85 1.3 2 4'
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/planar_hard2.i)
# apply uniform stretches in x, y and z directions.
# let friction_angle = 60deg, friction_angle_residual=10deg, friction_angle_rate = 0.5E4
# With cohesion = C, friction_angle = phi, the
# algorithm should return to
# sigma_m = C*Cos(phi)/Sin(phi)
# Or, when T=C,
# phi = arctan(C/sigma_m)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningExponential
value_0 = 1.04719755 # 60deg
value_residual = 0.17453293 # 10deg
rate = 0.5E4
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
shift = 1E-12
use_custom_returnMap = true
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.0E7 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = mc
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = planar_hard2
exodus = false
[./csv]
type = CSV
execute_on = timestep_end
[../]
[]
(test/tests/postprocessors/nodal_var_value/screen_output_test.i)
[Mesh]
file = square-2x2-nodeids.e
# This test can only be run with renumering disabled, so the
# NodalVariableValue postprocessor's node id is well-defined.
allow_renumbering = false
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[../]
[./v]
order = SECOND
family = LAGRANGE
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
expression = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
expression = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
expression = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '2'
value = 0
[../]
[]
[Postprocessors]
active = 'l2 node1 node4'
[./l2]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./node1]
type = NodalVariableValue
variable = u
nodeid = 15
[../]
[./node4]
type = NodalVariableValue
variable = v
nodeid = 10
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 1
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[./console]
type = Console
max_rows = 2
[../]
[]
(test/tests/utils/spline_interpolation/bicubic_spline_interpolation_x_normal.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1 # needed to ensure Z is the problem dimension
ny = 4
nz = 4
ymax = 4
zmax = 4
[]
[Functions]
[./yx1]
type = ParsedFunction
expression = '3*y^2'
[../]
[./yx2]
type = ParsedFunction
expression = '6*z^2'
[../]
[./spline_fn]
type = BicubicSplineFunction
normal_component = 'x'
x1 = '0 2 4'
x2 = '0 2 4 6'
y = '0 16 128 432 8 24 136 440 64 80 192 496'
yx11 = '0 0 0 0'
yx1n = '48 48 48 48'
yx21 = '0 0 0'
yx2n = '216 216 216'
yx1 = 'yx1'
yx2 = 'yx2'
[../]
[./u_func]
type = ParsedFunction
expression = 'y^3 + 2*z^3'
[../]
[./u2_forcing_func]
type = ParsedFunction
expression = '-6*y - 12*z'
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./bi_func_value]
order = FIRST
family = LAGRANGE
[../]
[./y_deriv]
order = FIRST
family = LAGRANGE
[../]
[./z_deriv]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./bi_func_value]
type = FunctionAux
variable = bi_func_value
function = spline_fn
[../]
[./deriv_1]
type = FunctionDerivativeAux
function = spline_fn
variable = y_deriv
component = y
[../]
[./deriv_2]
type = FunctionDerivativeAux
function = spline_fn
variable = z_deriv
component = z
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./body_force]
type = BodyForce
variable = u
function = u2_forcing_func
[../]
[]
[BCs]
[./sides]
type = FunctionDirichletBC
variable = u
boundary = 'left right front back'
function = u_func
[../]
[]
[Postprocessors]
[./nodal_l2_err_spline]
type = NodalL2Error
variable = u
function = spline_fn
execute_on = 'initial timestep_end'
[../]
[./nodal_l2_err_analytic]
type = NodalL2Error
variable = u
function = u_func
execute_on = 'initial timestep_end'
[../]
[./y_deriv_err_analytic]
type = NodalL2Error
variable = y_deriv
function = yx1
execute_on = 'initial timestep_end'
[../]
[./z_deriv_err_analytic]
type = NodalL2Error
variable = z_deriv
function = yx2
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_rel_tol = 1e-12
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test2.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test2.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[]
[Outputs]
file_base = pl_test2_out
exodus = true
[]
(modules/solid_mechanics/test/tests/multi/paper3.i)
# This runs the third example models described in the 'MultiSurface' plasticity paper
# Just change the deactivation_scheme
#
# Plasticity models:
# Mohr-Coulomb with cohesion = 40MPa, friction angle = 35deg, dilation angle = 5deg
# Tensile with strength = 1MPa
# WeakPlaneTensile with strength = 1000Pa
# WeakPlaneShear with cohesion = 0.1MPa and friction angle = 25, dilation angle = 5deg
#
# Lame lambda = 1.2GPa. Lame mu = 1.2GPa (Young = 3GPa, poisson = 0.5)
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 125
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[GlobalParams]
volumetric_locking_correction=true
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./linesearch]
order = CONSTANT
family = MONOMIAL
[../]
[./ld]
order = CONSTANT
family = MONOMIAL
[../]
[./constr_added]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./linesearch]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = linesearch
[../]
[./ld]
type = MaterialRealAux
property = plastic_linear_dependence_encountered
variable = ld
[../]
[./constr_added]
type = MaterialRealAux
property = plastic_constraints_added
variable = constr_added
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./max_iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console csv'
[../]
[./av_linesearch]
type = ElementAverageValue
variable = linesearch
outputs = 'console csv'
[../]
[./av_ld]
type = ElementAverageValue
variable = ld
outputs = 'console csv'
[../]
[./av_constr_added]
type = ElementAverageValue
variable = constr_added
outputs = 'console csv'
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 4E7
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
yield_function_tolerance = 1.0
shift = 1.0
internal_constraint_tolerance = 1.0E-7
[../]
[./mc_smooth]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 4E6
yield_function_tolerance = 1.0
internal_constraint_tolerance = 1.0E-7
[../]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./tensile]
type = SolidMechanicsPlasticTensileMulti
tensile_strength = ts
yield_function_tolerance = 1.0
shift = 1.0
internal_constraint_tolerance = 1.0E-7
use_custom_returnMap = false
use_custom_cto = false
[../]
[./tensile_smooth]
type = SolidMechanicsPlasticTensile
tensile_strength = ts
tensile_tip_smoother = 1E5
yield_function_tolerance = 1.0
internal_constraint_tolerance = 1.0E-7
[../]
[./wpt_str]
type = SolidMechanicsHardeningConstant
value = 1.0E3
[../]
[./wpt]
type = SolidMechanicsPlasticWeakPlaneTensile
tensile_strength = wpt_str
yield_function_tolerance = 1.0
internal_constraint_tolerance = 1.0E-7
[../]
[./wps_c]
type = SolidMechanicsHardeningConstant
value = 1.0E5
[../]
[./wps_tan_phi]
type = SolidMechanicsHardeningConstant
value = 0.466
[../]
[./wps_tan_psi]
type = SolidMechanicsHardeningConstant
value = 0.087
[../]
[./wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = wps_c
tan_friction_angle = wps_tan_phi
tan_dilation_angle = wps_tan_psi
smoother = 1.0E4
yield_function_tolerance = 1.0
internal_constraint_tolerance = 1.0E-7
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1.2E9 1.2E9'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-7
plastic_models = 'tensile_smooth mc_smooth wpt wps'
max_NR_iterations = 30
specialIC = 'none'
deactivation_scheme = 'optimized'
min_stepsize = 1E-6
max_stepsize_for_dumb = 1E-2
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1 1'
debug_jac_at_intnl = '1 1 1 1'
debug_stress_change = 1E1
debug_pm_change = '1E-6 1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = paper3
exodus = false
csv = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl2D.i)
#
# 2D Cylindrical Gap Heat Transfer Test.
#
# This test exercises 2D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid cylinder of radius = 1 unit, and outer
# hollow cylinder with an inner radius of 2 in the x-y plane. In other words,
# the gap between them is 1 radial unit in length.
#
# The conductivity of both cylinders is set very large to achieve a uniform
# temperature in each cylinder. The temperature of the center node of the
# inner cylinder is ramped from 100 to 200 over one time unit. The temperature
# of the outside of the outer, hollow cylinder is held fixed at 100.
#
# A simple analytical solution is possible for the integrated heat flux
# between the inner and outer cylinders:
#
# Integrated Flux = (T_left - T_right) * (gapK/(r*ln(r2/r1))) * Area
#
# For gapK = 1 (default value)
#
# The area is taken as the area of the secondary (inner) surface:
#
# Area = 2 * pi * h * r, where h is the height of the cylinder.
#
# The integrated heat flux across the gap at time 1 is then:
#
# 2*pi*h*k*delta_T/(ln(r2/r1))
# 2*pi*1*1*100/(ln(2/1)) = 906.5 watts
#
# For comparison, see results from the integrated flux post processors.
# This simulation makes use of symmetry, so only 1/4 of the cylinders is meshed
# As such, the integrated flux from the post processors is 1/4 of the total,
# or 226.6 watts.
# The value coming from the post processor is slightly less than this
# but converges as mesh refinement increases.
# Note that the 2D and 3D results are the same.
#
# Simulating contact is challenging. Regression tests that exercise
# contact features can be difficult to solve consistently across multiple
# platforms. While designing these tests, we felt it worth while to note
# some aspects of these tests. The following applies to:
# sphere3D.i, sphere2DRZ.i, cyl2D.i, and cyl3D.i.
# 1. We decided that to perform consistently across multiple platforms we
# would use very small convergence tolerance. In this test we chose an
# nl_rel_tol of 1e-12.
# 2. Due to such a high value for thermal conductivity (used here so that the
# domains come to a uniform temperature) the integrated flux at time = 0
# was relatively large (the value coming from SideIntegralFlux =
# -_diffusion_coef[_qp]*_grad_u[_qp]*_normals[_qp] where the diffusion coefficient
# here is thermal conductivity).
# Even though _grad_u[_qp] is small, in this case the diffusion coefficient
# is large. The result is a number that isn't exactly zero and tends to
# fail exodiff. For this reason the parameter execute_on = initial should not
# be used. That parameter is left to default settings in these regression tests.
#
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = cyl2D.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
gap_conductivity = 1
quadrature = true
gap_geometry_type = CYLINDER
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 0 1'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[./Console]
type = Console
[../]
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
(modules/solid_mechanics/test/tests/truss/truss_plastic.i)
[Mesh]
type = GeneratedMesh
dim = 1
elem_type = EDGE
nx = 1
[]
[GlobalParams]
displacements = 'disp_x'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./e_over_l]
order = CONSTANT
family = MONOMIAL
[../]
[./area]
order = CONSTANT
family = MONOMIAL
[../]
[./react_x]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./hf]
type = PiecewiseLinear
x = '0 0.0001 0.0003 0.0023'
y = '50e6 52e6 54e6 56e6'
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./load]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = 't'
[../]
[]
[AuxKernels]
[./axial_stress]
type = MaterialRealAux
property = axial_stress
variable = axial_stress
execute_on = 'initial TIMESTEP_END'
[../]
[./e_over_l]
type = MaterialRealAux
property = e_over_l
variable = e_over_l
execute_on = 'initial TIMESTEP_END'
[../]
[./area]
type = ConstantAux
variable = area
value = 1.0
execute_on = 'initial timestep_begin'
[../]
[]
[Postprocessors]
[./s_xx]
type = ElementIntegralMaterialProperty
mat_prop = axial_stress
[../]
[./e_xx]
type = ElementIntegralMaterialProperty
mat_prop = total_stretch
[../]
[./ee_xx]
type = ElementIntegralMaterialProperty
mat_prop = elastic_stretch
[../]
[./ep_xx]
type = ElementIntegralMaterialProperty
mat_prop = plastic_stretch
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-11
l_max_its = 20
dt = 5e-5
num_steps = 10
[]
[Kernels]
[./solid]
type = StressDivergenceTensorsTruss
component = 0
variable = disp_x
area = area
save_in = react_x
[../]
[]
[Materials]
[./truss]
type = PlasticTruss
youngs_modulus = 2.0e11
yield_stress = 500e5
outputs = 'exodus'
output_properties = 'elastic_stretch hardening_variable plastic_stretch total_stretch'
[../]
[]
[Outputs]
exodus = true
[]
(test/tests/executioners/time_period/time_period_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Functions]
[./exact_p1]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[./ffn_p1]
type = ParsedFunction
expression = (x*x+y*y)-4*t
[../]
[./exact_p2]
type = ParsedFunction
expression = t*((x*x*x)+(y*y*y))
[../]
[./ffn_p2]
type = ParsedFunction
expression = (x*x*x+y*y*y)-6*t*(x+y)
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn1]
type = BodyForce
variable = u
function = ffn_p1
[../]
[./ffn2]
type = BodyForce
variable = u
function = ffn_p2
[../]
[]
[BCs]
[./all1]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_p1
[../]
[./all2]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_p2
[../]
[]
[Executioner]
type = Transient
start_time = 0
dt = 0.1
num_steps = 10
[]
[Controls]
[./first_period]
type = TimePeriod
start_time = 0.0
end_time = 0.45
enable_objects = '*/ffn1 */all1'
disable_objects = '*/ffn2 */all2'
execute_on = 'initial timestep_begin'
set_sync_times = true
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/initial_stress/mc_tensile.i)
# In this example, an initial stress is applied that
# is inadmissible, and the return-map algorithm must be
# used to return to the yield surface before any other
# computations can be carried out.
# In this case, the return-map algorithm must subdivide
# the initial stress, otherwise it does not converge.
# This test is testing that subdivision process.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = 'back'
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = 'back'
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front'
function = '2*t-1'
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front'
function = 't-1'
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front'
function = 't-1'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
outputs = console
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 1E5
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 60
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 4.0
mc_edge_smoother = 25
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[./str]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./pt]
type = SolidMechanicsPlasticTensile
tensile_strength = str
yield_function_tolerance = 1E-3
tensile_tip_smoother = 0.05
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y disp_z'
eigenstrain_names = ini_stress
[../]
[./ini_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '8E6 4E6 -18E6 4E6 -40E6 -2E6 -18E6 -2E6 -34E6'
eigenstrain_name = ini_stress
[../]
[./mc]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1E-9
plastic_models = 'pt mc'
deactivation_scheme = safe
max_NR_iterations = 100
min_stepsize = 0.1
[../]
[]
[Executioner]
end_time = 2
dt = 1
type = Transient
[]
[Outputs]
file_base = mc_tensile
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/generalized_plane_strain/pull_3D.i)
nz = 1
z = '${fparse nz*0.2}'
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
stabilize_strain = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = 5
ny = 5
nz = ${nz}
zmax = ${z}
[]
use_displaced_mesh = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[BCs]
[fix_x]
type = DirichletBC
boundary = 'top bottom'
variable = disp_x
value = 0
[]
[fix_y]
type = DirichletBC
boundary = 'bottom'
variable = disp_y
value = 0
[]
[fix_z]
type = DirichletBC
boundary = 'top bottom'
variable = disp_z
value = 0
[]
[disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[strain]
type = ComputeLagrangianStrain
[]
[stress]
type = ComputeLagrangianLinearElasticStress
[]
[stress_zz]
type = RankTwoCartesianComponent
rank_two_tensor = cauchy_stress
index_i = 2
index_j = 2
property_name = stress_zz
[]
[strain_zz]
type = RankTwoCartesianComponent
rank_two_tensor = mechanical_strain
index_i = 2
index_j = 2
property_name = strain_zz
[]
[]
[Executioner]
type = Transient
dt = 0.01
end_time = 0.1
solve_type = 'newton'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-8
nl_rel_tol = 1e-6
[]
[Postprocessors]
[strain_zz]
type = ElementAverageMaterialProperty
mat_prop = strain_zz
[]
[stress_zz]
type = ElementAverageMaterialProperty
mat_prop = stress_zz
[]
[]
[Outputs]
csv = true
file_base = 'pull_3D_nz_${nz}'
[]
(test/tests/mesh/mesh_generation/disc_sector.i)
# Generates a sector of a Disc Mesh between angle=Pi/4 and angle=3Pi/4
# Radius of outside circle=5
# Solves the diffusion equation with u=-5 at origin, and u=0 on outside
# as well as u=-5+r at angle=Pi/4 and u=-5+r^4/125 at angle=3Pi/4
[Mesh]
type = AnnularMesh
nr = 10
nt = 12
rmin = 0
rmax = 5
dmin = 45
dmax = 135
growth_r = 1.3
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./inner]
type = DirichletBC
variable = u
value = -5.0
boundary = rmin
[../]
[./outer]
type = FunctionDirichletBC
variable = u
function = 0
boundary = rmax
[../]
[./tmin]
type = FunctionDirichletBC
variable = u
function = '-5.0+sqrt(x*x + y*y)'
boundary = dmin
[../]
[./tmax]
type = FunctionDirichletBC
variable = u
function = '-5.0+pow(x*x + y*y, 2)/125'
boundary = dmax
[../]
[]
[Executioner]
type = Steady
solve_type = PJFNK
[]
[Outputs]
exodus = true
[]
(test/tests/time_integrators/dirk/dirk-2d-heat-adap.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 4
ny = 4
elem_type = QUAD4
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 1
value = 1
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
start_time = 0.0
num_steps = 5
dt = 0.25
[./TimeIntegrator]
type = LStableDirk2
[../]
[./Adaptivity]
refine_fraction = 0.07
coarsen_fraction = 0.
max_h_level = 4
[../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/combined/test/tests/phase_field_fracture/crack2d_aniso_hist_false.i)
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 40
ny = 20
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./All]
add_variables = true
strain = SMALL
additional_generate_output = 'strain_yy stress_yy'
planar_formulation = PLANE_STRAIN
[../]
[../]
[../]
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = F
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.05 1e-6'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '127.0 70.8 70.8 127.0 70.8 127.0 73.55 73.55 73.55'
fill_method = symmetric9
euler_angle_1 = 30
euler_angle_2 = 0
euler_angle_3 = 0
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
property_name = L
expression = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
property_name = kappa_op
expression = 'gc_prop * l'
[../]
[./damage_stress]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'local_fracture_energy'
decomposition_type = stress_spectral
[../]
[./degradation]
type = DerivativeParsedMaterial
property_name = degradation
coupled_variables = 'c'
expression = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '1.0e-6'
derivative_order = 2
[../]
[./local_fracture_energy]
type = DerivativeParsedMaterial
property_name = local_fracture_energy
coupled_variables = 'c'
material_property_names = 'gc_prop l'
expression = 'c^2 * gc_prop / 2 / l'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
coupled_variables = c
sum_materials = 'elastic_energy local_fracture_energy'
derivative_order = 2
property_name = F
[../]
[]
[Postprocessors]
[./av_stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./av_strain_yy]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solving_package'
petsc_options_value = 'lu superlu_dist'
nl_rel_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 2e-6
num_steps = 5
[]
[Outputs]
exodus = true
[]
(modules/xfem/test/tests/mesh_cut_2D_fracture/edge_crack_2d_propagation.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[XFEM]
geometric_cut_userobjects = 'cut_mesh2'
qrule = volfrac
output_cut_plane = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 45
ny = 15
xmin = -1
xmax = 0.49
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[dispBlock]
type = BoundingBoxNodeSetGenerator
new_boundary = pull_set
bottom_left = '-0.1 0.99 0'
top_right = '0.1 1.01 0'
input = gen
[]
[]
[DomainIntegral]
integrals = 'Jintegral InteractionIntegralKI InteractionIntegralKII'
displacements = 'disp_x disp_y'
crack_front_points_provider = cut_mesh2
2d = true
number_points_from_provider = 2
crack_direction_method = CurvedCrackFront
radius_inner = '0.15'
radius_outer = '0.45'
poissons_ratio = 0.3
youngs_modulus = 207000
block = 0
incremental = true
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = SMALL
incremental = true
planar_formulation = plane_strain
add_variables = true
generate_output = 'stress_xx stress_yy'
[]
[]
[Functions]
[pull_func]
type = ParsedFunction
expression = 0.00025*(1+t)
[]
[]
[BCs]
[top_y]
type = FunctionDirichletBC
boundary = pull_set
variable = disp_y
function = pull_func
[]
[bottom_x]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[]
[bottom_y]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 207000
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = ' lu superlu_dist NONZERO 1e-20'
line_search = 'none'
nl_abs_tol = 1e-7
[Predictor]
type = SimplePredictor
scale = 1.0
[]
# time control
start_time = 0.0
dt = 1.0
end_time = 3
max_xfem_update = 100
[]
[Outputs]
[xfemcutter]
type = XFEMCutMeshOutput
xfem_cutter_uo = cut_mesh2
[]
[console]
type = Console
output_linear = false
output_nonlinear = false
[]
[]
(modules/solid_mechanics/test/tests/notched_plastic_block/biaxial_abbo.i)
# Uses an Abbo et al smoothed version of Mohr-Coulomb (via SolidMechanicsPlasticMohrCoulomb and ComputeMultiPlasticityStress) to simulate the following problem.
# A cubical block is notched around its equator.
# All of its outer surfaces have roller BCs, but the notched region is free to move as needed
# The block is initialised with a high hydrostatic tensile stress
# Without the notch, the BCs do not allow contraction of the block, and this stress configuration is admissible
# With the notch, however, the interior parts of the block are free to move in order to relieve stress, and this causes plastic failure
# The top surface is then pulled upwards (the bottom is fixed because of the roller BCs)
# This causes more failure
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 9
ny = 9
nz = 9
xmin = 0
xmax = 0.1
ymin = 0
ymax = 0.1
zmin = 0
zmax = 0.1
[]
[block_to_remove_xmin]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 -0.01 0.045'
top_right = '0.01 0.11 0.055'
location = INSIDE
block_id = 1
input = generated_mesh
[]
[block_to_remove_xmax]
type = SubdomainBoundingBoxGenerator
bottom_left = '0.09 -0.01 0.045'
top_right = '0.11 0.11 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_xmin
[]
[block_to_remove_ymin]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 -0.01 0.045'
top_right = '0.11 0.01 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_xmax
[]
[block_to_remove_ymax]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 0.09 0.045'
top_right = '0.11 0.11 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_ymin
[]
[remove_block]
type = BlockDeletionGenerator
block = 1
input = block_to_remove_ymax
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_zz'
eigenstrain_names = ini_stress
[../]
[]
[Postprocessors]
[./uz]
type = PointValue
point = '0 0 0.1'
use_displaced_mesh = false
variable = disp_z
[../]
[./s_zz]
type = ElementAverageValue
use_displaced_mesh = false
variable = stress_zz
[../]
[./num_res]
type = NumResidualEvaluations
[../]
[./nr_its] # num_iters is the average number of NR iterations encountered per element in this timestep
type = ElementAverageValue
variable = num_iters
[../]
[./max_nr_its] # num_iters is the average number of NR iterations encountered in the element in this timestep, so we must get max(max_nr_its) to obtain the max number of iterations
type = ElementExtremeValue
variable = num_iters
[../]
[./runtime]
type = PerfGraphData
data_type = TOTAL
section_name = 'Root'
[../]
[]
[BCs]
# back=zmin, front=zmax, bottom=ymin, top=ymax, left=xmin, right=xmax
[./xmin_xzero]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./xmax_xzero]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.0
[../]
[./ymin_yzero]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./ymax_yzero]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[../]
[./zmin_zzero]
type = DirichletBC
variable = disp_z
boundary = back
value = '0'
[../]
[./zmax_disp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '1E-6*max(t,0)'
[../]
[]
[AuxVariables]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./num_iters]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./num_iters_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = num_iters
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 5E6
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 10
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 0.02E6
mc_edge_smoother = 29
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 16E9
poissons_ratio = 0.25
[../]
[./mc]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1E-11
plastic_models = mc
max_NR_iterations = 1000
debug_fspb = crash
[../]
[./strain_from_initial_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '6E6 0 0 0 6E6 0 0 0 6E6'
eigenstrain_name = ini_stress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
start_time = -1
end_time = 10
dt = 1
solve_type = NEWTON
type = Transient
l_tol = 1E-2
nl_abs_tol = 1E-5
nl_rel_tol = 1E-7
l_max_its = 200
nl_max_its = 400
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[]
[Outputs]
file_base = biaxial_abbo
perf_graph = true
exodus = false
csv = true
[]
(modules/peridynamics/test/tests/heat_conduction/2D_steady_state_BPD.i)
# This test solves a 2D steady state heat equation
# The error is found by comparing to the analytical solution
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
[../]
[./gpd]
type = MeshGeneratorPD
input = gmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./temp]
[../]
[]
[AuxVariables]
[./bond_status]
order = CONSTANT
family = MONOMIAL
initial_condition = 1
[../]
[]
[Functions]
[./analytical_sol]
type = ParsedFunction
expression = 'x*x+y*y'
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConductionBPD
variable = temp
[../]
[./heat_source]
type = HeatSourceBPD
variable = temp
power_density = -4
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = temp
boundary = 1003
function = analytical_sol
[../]
[./bottom]
type = FunctionDirichletBC
variable = temp
boundary = 1000
function = analytical_sol
[../]
[./right]
type = FunctionDirichletBC
variable = temp
boundary = 1001
function = analytical_sol
[../]
[./top]
type = FunctionDirichletBC
variable = temp
boundary = 1002
function = analytical_sol
[../]
[]
[Materials]
[./thermal_mat]
type = ThermalConstantHorizonMaterialBPD
temperature = temp
thermal_conductivity = 1
[../]
[]
[Postprocessors]
[./nodal_error]
type = NodalL2Error
function = 'analytical_sol'
variable = temp
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
start_time = 0.0
end_time = 1.0
[]
[Outputs]
exodus = true
file_base = 2D_steady_state_BPD
[]
(modules/porous_flow/test/tests/poro_elasticity/mandel.i)
# Mandel's problem of consolodation of a drained medium
#
# A sample is in plane strain.
# -a <= x <= a
# -b <= y <= b
# It is squashed with constant force by impermeable, frictionless plattens on its top and bottom surfaces (at y=+/-b)
# Fluid is allowed to leak out from its sides (at x=+/-a)
# The porepressure within the sample is monitored.
#
# As is common in the literature, this is simulated by
# considering the quarter-sample, 0<=x<=a and 0<=y<=b, with
# impermeable, roller BCs at x=0 and y=0 and y=b.
# Porepressure is fixed at zero on x=a.
# Porepressure and displacement are initialised to zero.
# Then the top (y=b) is moved downwards with prescribed velocity,
# so that the total force that is inducing this downwards velocity
# is fixed. The velocity is worked out by solving Mandel's problem
# analytically, and the total force is monitored in the simulation
# to check that it indeed remains constant.
#
# Here are the problem's parameters, and their values:
# Soil width. a = 1
# Soil height. b = 0.1
# Soil's Lame lambda. la = 0.5
# Soil's Lame mu, which is also the Soil's shear modulus. mu = G = 0.75
# Soil bulk modulus. K = la + 2*mu/3 = 1
# Drained Poisson ratio. nu = (3K - 2G)/(6K + 2G) = 0.2
# Soil bulk compliance. 1/K = 1
# Fluid bulk modulus. Kf = 8
# Fluid bulk compliance. 1/Kf = 0.125
# Soil initial porosity. phi0 = 0.1
# Biot coefficient. alpha = 0.6
# Biot modulus. M = 1/(phi0/Kf + (alpha - phi0)(1 - alpha)/K) = 4.705882
# Undrained bulk modulus. Ku = K + alpha^2*M = 2.694118
# Undrained Poisson ratio. nuu = (3Ku - 2G)/(6Ku + 2G) = 0.372627
# Skempton coefficient. B = alpha*M/Ku = 1.048035
# Fluid mobility (soil permeability/fluid viscosity). k = 1.5
# Consolidation coefficient. c = 2*k*B^2*G*(1-nu)*(1+nuu)^2/9/(1-nuu)/(nuu-nu) = 3.821656
# Normal stress on top. F = 1
#
# The solution for porepressure and displacements is given in
# AHD Cheng and E Detournay "A direct boundary element method for plane strain poroelasticity" International Journal of Numerical and Analytical Methods in Geomechanics 12 (1988) 551-572.
# The solution involves complicated infinite series, so I shall not write it here
#
# FINAL NOTE: The above solution assumes constant Biot Modulus.
# In porous_flow this is not true. Therefore the solution is
# a little different than in the paper. This test was therefore
# validated against MOOSE's poromechanics, which can choose either
# a constant Biot Modulus (which has been shown to agree with
# the analytic solution), or a non-constant Biot Modulus (which
# gives the same results as porous_flow).
[Mesh]
type = GeneratedMesh
dim = 3
nx = 10
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 0.1
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_x disp_y disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureVG
m = 0.8
alpha = 1e-5
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[porepressure]
[]
[]
[BCs]
[roller_xmin]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left'
[]
[roller_ymin]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom'
[]
[plane_strain]
type = DirichletBC
variable = disp_z
value = 0
boundary = 'back front'
[]
[xmax_drained]
type = DirichletBC
variable = porepressure
value = 0
boundary = right
[]
[top_velocity]
type = FunctionDirichletBC
variable = disp_y
function = top_velocity
boundary = top
[]
[]
[Functions]
[top_velocity]
type = PiecewiseLinear
x = '0 0.002 0.006 0.014 0.03 0.046 0.062 0.078 0.094 0.11 0.126 0.142 0.158 0.174 0.19 0.206 0.222 0.238 0.254 0.27 0.286 0.302 0.318 0.334 0.35 0.366 0.382 0.398 0.414 0.43 0.446 0.462 0.478 0.494 0.51 0.526 0.542 0.558 0.574 0.59 0.606 0.622 0.638 0.654 0.67 0.686 0.702'
y = '-0.041824842 -0.042730269 -0.043412712 -0.04428867 -0.045509181 -0.04645965 -0.047268246 -0.047974749 -0.048597109 -0.0491467 -0.049632388 -0.050061697 -0.050441198 -0.050776675 -0.051073238 -0.0513354 -0.051567152 -0.051772022 -0.051953128 -0.052113227 -0.052254754 -0.052379865 -0.052490464 -0.052588233 -0.052674662 -0.052751065 -0.052818606 -0.052878312 -0.052931093 -0.052977751 -0.053018997 -0.053055459 -0.053087691 -0.053116185 -0.053141373 -0.05316364 -0.053183324 -0.053200724 -0.053216106 -0.053229704 -0.053241725 -0.053252351 -0.053261745 -0.053270049 -0.053277389 -0.053283879 -0.053289615'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[tot_force]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[tot_force]
type = ParsedAux
coupled_variables = 'stress_yy porepressure'
execute_on = timestep_end
variable = tot_force
expression = '-stress_yy+0.6*porepressure'
[]
[]
[Kernels]
[grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[]
[grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[]
[grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[]
[poro_x]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_x
component = 0
[]
[poro_y]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_y
component = 1
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
component = 2
variable = disp_z
[]
[poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
variable = porepressure
fluid_component = 0
[]
[mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = porepressure
[]
[flux]
type = PorousFlowAdvectiveFlux
variable = porepressure
gravity = '0 0 0'
fluid_component = 0
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 8
density0 = 1
thermal_expansion = 0
viscosity = 1
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '0.5 0.75'
# bulk modulus is lambda + 2*mu/3 = 0.5 + 2*0.75/3 = 1
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[eff_fluid_pressure]
type = PorousFlowEffectiveFluidPressure
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[]
[massfrac]
type = PorousFlowMassFraction
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[porosity]
type = PorousFlowPorosity
fluid = true
mechanical = true
ensure_positive = false
porosity_zero = 0.1
biot_coefficient = 0.6
solid_bulk = 1
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '1.5 0 0 0 1.5 0 0 0 1.5'
[]
[relperm]
type = PorousFlowRelativePermeabilityCorey
n = 0 # unimportant in this fully-saturated situation
phase = 0
[]
[]
[Postprocessors]
[p0]
type = PointValue
outputs = csv
point = '0.0 0 0'
variable = porepressure
[]
[p1]
type = PointValue
outputs = csv
point = '0.1 0 0'
variable = porepressure
[]
[p2]
type = PointValue
outputs = csv
point = '0.2 0 0'
variable = porepressure
[]
[p3]
type = PointValue
outputs = csv
point = '0.3 0 0'
variable = porepressure
[]
[p4]
type = PointValue
outputs = csv
point = '0.4 0 0'
variable = porepressure
[]
[p5]
type = PointValue
outputs = csv
point = '0.5 0 0'
variable = porepressure
[]
[p6]
type = PointValue
outputs = csv
point = '0.6 0 0'
variable = porepressure
[]
[p7]
type = PointValue
outputs = csv
point = '0.7 0 0'
variable = porepressure
[]
[p8]
type = PointValue
outputs = csv
point = '0.8 0 0'
variable = porepressure
[]
[p9]
type = PointValue
outputs = csv
point = '0.9 0 0'
variable = porepressure
[]
[p99]
type = PointValue
outputs = csv
point = '1 0 0'
variable = porepressure
[]
[xdisp]
type = PointValue
outputs = csv
point = '1 0.1 0'
variable = disp_x
[]
[ydisp]
type = PointValue
outputs = csv
point = '1 0.1 0'
variable = disp_y
[]
[total_downwards_force]
type = ElementAverageValue
outputs = csv
variable = tot_force
[]
[dt]
type = FunctionValuePostprocessor
outputs = console
function = if(0.15*t<0.01,0.15*t,0.01)
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu 1E-14 1E-10 10000'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 0.7
[TimeStepper]
type = PostprocessorDT
postprocessor = dt
dt = 0.001
[]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = mandel
[csv]
time_step_interval = 3
type = CSV
[]
[]
(modules/solid_mechanics/test/tests/umat/orient_umat/shear_top_umat.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
decomposition_method = HughesWinget
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
elem_type = HEX20
[]
[]
[Functions]
[top_pull]
type = ParsedFunction
expression = t/1000
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_xx stress_yy stress_xy'
[]
[]
[BCs]
[x_pull]
type = FunctionDirichletBC
variable = disp_x
boundary = top
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = bottom
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[]
[]
[Materials]
[umat]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_print'
num_state_vars = 0
use_one_based_indexing = true
use_displaced_mesh = true
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 5
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_rayleigh_hht_ti.i)
# Wave propogation in 1D using HHT time integration in the presence of Rayleigh damping
#
# The test is for an 1D bar element of length 4m fixed on one end
# with a sinusoidal pulse dirichlet boundary condition applied to the other end.
# alpha, beta and gamma are HHT time integration parameters
# eta and zeta are mass dependent and stiffness dependent Rayleigh damping
# coefficients, respectively.
# The equation of motion in terms of matrices is:
#
# M*accel + (eta*M+zeta*K)*((1+alpha)*vel-alpha*vel_old)
# +(1+alpha)*K*disp-alpha*K*disp_old = 0
#
# Here M is the mass matrix, K is the stiffness matrix
#
# The displacement at the first, second, third and fourth node at t = 0.1 are
# -7.787499960311491942e-02, 1.955566679096475483e-02 and -4.634888180231294501e-03, respectively.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 4
nz = 1
xmin = 0.0
xmax = 0.1
ymin = 0.0
ymax = 4.0
zmin = 0.0
zmax = 0.1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[]
[Kernels]
[./DynamicSolidMechanics]
displacements = 'disp_x disp_y disp_z'
hht_alpha = -0.3
stiffness_damping_coefficient = 0.1
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
eta=0.1
alpha = -0.3
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
eta=0.1
alpha = -0.3
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
eta = 0.1
alpha = -0.3
[../]
[]
[AuxKernels]
[./accel_x] # These auxkernels are only to check output
type = TestNewmarkTI
displacement = disp_x
variable = accel_x
first = false
[../]
[./accel_y]
type = TestNewmarkTI
displacement = disp_y
variable = accel_y
first = false
[../]
[./accel_z]
type = TestNewmarkTI
displacement = disp_z
variable = accel_z
first = false
[../]
[./vel_x]
type = TestNewmarkTI
displacement = disp_x
variable = vel_x
[../]
[./vel_y]
type = TestNewmarkTI
displacement = disp_y
variable = vel_y
[../]
[./vel_z]
type = TestNewmarkTI
displacement = disp_z
variable = vel_z
[../]
[]
[BCs]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = top
value=0.0
[../]
[./top_x]
type = DirichletBC
variable = disp_x
boundary = top
value=0.0
[../]
[./top_z]
type = DirichletBC
variable = disp_z
boundary = top
value=0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = right
value=0.0
[../]
[./right_z]
type = DirichletBC
variable = disp_z
boundary = right
value=0.0
[../]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = left
value=0.0
[../]
[./left_z]
type = DirichletBC
variable = disp_z
boundary = left
value=0.0
[../]
[./front_x]
type = DirichletBC
variable = disp_x
boundary = front
value=0.0
[../]
[./front_z]
type = DirichletBC
variable = disp_z
boundary = front
value=0.0
[../]
[./back_x]
type = DirichletBC
variable = disp_x
boundary = back
value=0.0
[../]
[./back_z]
type = DirichletBC
variable = disp_z
boundary = back
value=0.0
[../]
[./bottom_x]
type = DirichletBC
variable = disp_x
boundary = bottom
value=0.0
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value=0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = bottom
function = displacement_bc
[../]
[]
[Materials]
[./Elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1 0'
[../]
[./strain]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeLinearElasticStress
block = 0
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = 'density'
prop_values = '1'
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 6.0
l_tol = 1e-12
nl_rel_tol = 1e-12
dt = 0.1
[./TimeIntegrator]
type = NewmarkBeta
beta = 0.422
gamma = 0.8
[../]
[]
[Functions]
[./displacement_bc]
type = PiecewiseLinear
data_file = 'sine_wave.csv'
format = columns
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_1]
type = NodalVariableValue
nodeid = 1
variable = disp_y
[../]
[./disp_2]
type = NodalVariableValue
nodeid = 3
variable = disp_y
[../]
[./disp_3]
type = NodalVariableValue
nodeid = 10
variable = disp_y
[../]
[./disp_4]
type = NodalVariableValue
nodeid = 14
variable = disp_y
[../]
[]
[Outputs]
file_base = 'wave_rayleigh_hht_out'
exodus = true
perf_graph = true
[]
(modules/combined/test/tests/eigenstrain/variable_finite.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmax = 0.5
ymax = 0.5
elem_type = QUAD4
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./strain11]
order = CONSTANT
family = MONOMIAL
[../]
[./stress11]
order = CONSTANT
family = MONOMIAL
[../]
[./c]
[../]
[./eigenstrain00]
order = CONSTANT
family = MONOMIAL
[../]
[]
[ICs]
[./c_IC]
int_width = 0.15
x1 = 0
y1 = 0
radius = 0.25
outvalue = 0
variable = c
invalue = 1
type = SmoothCircleIC
[../]
[]
[Kernels]
[./TensorMechanics]
[../]
[]
[AuxKernels]
[./strain11]
type = RankTwoAux
rank_two_tensor = mechanical_strain
index_i = 0
index_j = 0
variable = strain11
[../]
[./stress11]
type = RankTwoAux
rank_two_tensor = mechanical_strain
index_i = 1
index_j = 1
variable = stress11
[../]
[./eigenstrain00]
type = RankTwoAux
variable = eigenstrain00
rank_two_tensor = eigenstrain
index_j = 0
index_i = 0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
C_ijkl = '1 1'
fill_method = symmetric_isotropic
[../]
[./var_dependence]
type = DerivativeParsedMaterial
block = 0
expression = 0.01*c^2
coupled_variables = c
outputs = exodus
output_properties = 'var_dep'
f_name = var_dep
enable_jit = true
derivative_order = 2
[../]
[./eigenstrain]
type = ComputeVariableEigenstrain
block = 0
eigen_base = '1 1 1 0 0 0'
args = c
prefactor = var_dep
eigenstrain_name = eigenstrain
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y'
eigenstrain_names = eigenstrain
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[BCs]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./top_y]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 0.0005*t
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
num_steps = 3
solve_type = PJFNK
petsc_options_iname = '-pc_type '
petsc_options_value = lu
l_max_its = 20
nl_max_its = 10
l_tol = 1.0e-4
nl_rel_tol = 1.0e-8
nl_abs_tol = 1.0e-9
reset_dt = true
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(test/tests/functions/constant_function/constant_function_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 4
ny = 4
elem_type = QUAD4
[]
[Functions]
[./bc_fn]
type = ParsedFunction
expression = 'x*x+y*y'
[../]
[./icfn]
type = ConstantFunction
value = 1
[../]
[./ffn]
type = ConstantFunction
value = -4
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = icfn
[../]
[../]
[]
[Kernels]
# Coupling of nonlinear to Aux
[./diff]
type = Diffusion
variable = u
[../]
[./force]
type = BodyForce
variable = u
function = ffn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = bc_fn
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/bouncing-block-contact/mixed-weighted-gap-swapped.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
correct_edge_dropping = true
[]
[Mesh]
second_order = true
[file_mesh]
type = FileMeshGenerator
file = long-bottom-block-1elem-blocks-coarse.e
[]
[]
[Variables]
[disp_x]
block = '1 2'
scaling = 1e1
order = SECOND
[]
[disp_y]
block = '1 2'
scaling = 1e1
order = SECOND
[]
[frictional_normal_lm]
block = 4
scaling = 1e3
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = 10
secondary_boundary = 20
primary_subdomain = 3
secondary_subdomain = 4
lm_variable = frictional_normal_lm
disp_x = disp_x
disp_y = disp_y
correct_edge_dropping = true
[]
[]
[Constraints]
[frictional_normal_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = 10
secondary_boundary = 20
primary_subdomain = 3
secondary_subdomain = 4
variable = frictional_normal_lm
disp_x = disp_x
disp_y = disp_y
normalize_c = true
c = 1.0e-2
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 10
secondary_boundary = 20
primary_subdomain = 3
secondary_subdomain = 4
variable = frictional_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 10
secondary_boundary = 20
primary_subdomain = 3
secondary_subdomain = 4
variable = frictional_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu NONZERO 1e-15'
l_max_its = 30
nl_max_its = 25
line_search = 'none'
nl_rel_tol = 1e-12
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
(modules/porous_flow/test/tests/mass_conservation/mass04.i)
# The sample is a single unit element, with roller BCs on the sides
# and bottom. A constant displacement is applied to the top: disp_z = -0.01*t.
# There is no fluid flow.
# Fluid mass conservation is checked.
#
# Under these conditions
# porepressure = porepressure(t=0) - (Fluid bulk modulus)*log(1 - 0.01*t)
# stress_xx = (bulk - 2*shear/3)*disp_z/L (remember this is effective stress)
# stress_zz = (bulk + 4*shear/3)*disp_z/L (remember this is effective stress)
# where L is the height of the sample (L=1 in this test)
#
# Parameters:
# Bulk modulus = 2
# Shear modulus = 1.5
# fluid bulk modulus = 0.5
# initial porepressure = 0.1
#
# Desired output:
# zdisp = -0.01*t
# p0 = 0.1 - 0.5*log(1-0.01*t)
# stress_xx = stress_yy = -0.01*t
# stress_zz = -0.04*t
#
# Regarding the "log" - it comes from preserving fluid mass
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[porepressure]
initial_condition = 0.1
[]
[]
[BCs]
[confinex]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left right'
[]
[confiney]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom top'
[]
[basefixed]
type = DirichletBC
variable = disp_z
value = 0
boundary = back
[]
[top_velocity]
type = FunctionDirichletBC
variable = disp_z
function = -0.01*t
boundary = front
[]
[]
[Kernels]
[grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[]
[grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[]
[grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[]
[poro_x]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.3
variable = disp_x
component = 0
[]
[poro_y]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.3
variable = disp_y
component = 1
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.3
component = 2
variable = disp_z
[]
[poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
variable = porepressure
fluid_component = 0
[]
[mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = porepressure
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 0.5
density0 = 1
thermal_expansion = 0
viscosity = 1
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '1 1.5'
# bulk modulus is lambda + 2*mu/3 = 1 + 2*1.5/3 = 2
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[eff_fluid_pressure]
type = PorousFlowEffectiveFluidPressure
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[]
[massfrac]
type = PorousFlowMassFraction
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '0.5 0 0 0 0.5 0 0 0 0.5'
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_x disp_y disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1
[]
[]
[Postprocessors]
[p0]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '0 0 0'
variable = porepressure
[]
[zdisp]
type = PointValue
outputs = csv
point = '0 0 0.5'
use_displaced_mesh = false
variable = disp_z
[]
[stress_xx]
type = PointValue
outputs = csv
point = '0 0 0'
variable = stress_xx
[]
[stress_yy]
type = PointValue
outputs = csv
point = '0 0 0'
variable = stress_yy
[]
[stress_zz]
type = PointValue
outputs = csv
point = '0 0 0'
variable = stress_zz
[]
[fluid_mass]
type = PorousFlowFluidMass
fluid_component = 0
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-14 1E-8 10000'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 10
dt = 2
[]
[Outputs]
execute_on = 'initial timestep_end'
file_base = mass04
[csv]
type = CSV
[]
[]
(modules/contact/test/tests/mortar_cartesian_lms/two_block_1st_order_constraint_lm_xy_friction_pg.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
theta = 0
velocity = 0.1
refine = 3
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.35
xmax = -0.05
ymin = -1
ymax = 0
nx = 1
ny = 3
elem_type = QUAD4
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3'
new_boundary = '10 11 12 13'
[]
[left_block_sideset_names]
type = RenameBoundaryGenerator
input = left_block_sidesets
old_boundary = '10 11 12 13'
new_boundary = 'l_bottom l_right l_top l_left'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sideset_names
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.3
ymin = -1
ymax = 0
nx = 1
ny = 2
elem_type = QUAD4
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3'
new_boundary = '20 21 22 23'
[]
[right_block_sideset_names]
type = RenameBoundaryGenerator
input = right_block_sidesets
old_boundary = '20 21 22 23'
new_boundary = 'r_bottom r_right r_top r_left'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sideset_names
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[left_lower]
type = LowerDBlockFromSidesetGenerator
input = combined_mesh
sidesets = '11'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[right_lower]
type = LowerDBlockFromSidesetGenerator
input = left_lower
sidesets = '23'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[rotate_mesh]
type = TransformGenerator
input = right_lower
transform = ROTATE
vector_value = '0 0 ${theta}'
[]
uniform_refine = ${refine}
[]
[Variables]
[lm_x]
block = 'secondary_lower'
use_dual = true
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
[]
[]
[AuxVariables]
[normal_lm]
family = LAGRANGE
order = FIRST
[]
[tangent_lm]
family = LAGRANGE
order = FIRST
[]
[aux_lm]
block = 'secondary_lower'
use_dual = false
[]
[]
[AuxKernels]
[normal_lm]
type = MortarPressureComponentAux
variable = normal_lm
primary_boundary = '23'
secondary_boundary = '11'
lm_var_x = lm_x
lm_var_y = lm_y
component = 'NORMAL'
boundary = '11'
[]
[tangent_lm]
type = MortarPressureComponentAux
variable = tangent_lm
primary_boundary = '23'
secondary_boundary = '11'
lm_var_x = lm_x
lm_var_y = lm_y
component = 'tangent1'
boundary = '11'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = ParsedFunction
expression = '${velocity} * t * cos(${theta}/180*pi)'
[]
[vertical_movement]
type = ParsedFunction
expression = '${velocity} * t * sin(${theta}/180*pi)'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = horizontal_movement
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 21
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 21
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 13
function = vertical_movement
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e4
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e8
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeFrictionalForceCartesianLMMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_x = lm_x
lm_y = lm_y
variable = lm_x # This can be anything really
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
correct_edge_dropping = true
mu = 1.0
c_t = 1.0e5
use_petrov_galerkin = true
aux_lm = aux_lm
[]
[normal_x]
type = CartesianMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_y]
type = CartesianMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist NONZERO 1e-15'
line_search = none
dt = 0.1
dtmin = 0.1
end_time = 1.0
l_max_its = 100
nl_max_its = 20
nl_rel_tol = 1e-8
snesmf_reuse_base = false
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[avg_disp_x]
type = ElementAverageValue
variable = disp_x
block = '1 2'
[]
[avg_disp_y]
type = ElementAverageValue
variable = disp_y
block = '1 2'
[]
[max_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
[]
[max_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
[]
[min_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
value_type = min
[]
[min_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
value_type = min
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[]
[tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[max_norma_lm]
type = ElementExtremeValue
variable = normal_lm
[]
[min_norma_lm]
type = ElementExtremeValue
variable = normal_lm
value_type = min
[]
[]
[VectorPostprocessors]
[normal_lm]
type = NodalValueSampler
block = 'secondary_lower'
variable = normal_lm
sort_by = 'y'
[]
[tangent_lm]
type = NodalValueSampler
block = 'secondary_lower'
variable = tangent_lm
sort_by = 'y'
[]
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_by_parts_traction_steady_stabilized.i)
# This input file tests several different things:
# .) The axisymmetric (RZ) form of the governing equations.
# .) An open boundary.
# .) Not integrating the pressure by parts, thereby requiring a pressure pin.
# .) Natural boundary condition at the outlet.
[GlobalParams]
integrate_p_by_parts = true
laplace = false
gravity = '0 0 0'
supg = true
pspg = true
order = FIRST
[]
[Mesh]
file = '2d_cone.msh'
[]
[Problem]
coord_type = RZ
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
# Jacobian doesn't appear to be correct for RZ traction form
solve_type = PJFNK
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'bjacobi ilu 4'
nl_rel_tol = 1e-12
nl_max_its = 6
[]
[Outputs]
console = true
[./out]
type = Exodus
[../]
[]
[Variables]
[./vel_x]
# Velocity in radial (r) direction
[../]
[./vel_y]
# Velocity in axial (z) direction
[../]
[./p]
[../]
[]
[BCs]
[./u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[../]
[./v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[../]
[./u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[../]
[./v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[../]
[]
[Kernels]
[./mass]
type = INSMassRZ
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumTractionFormRZ
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumTractionFormRZ
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 'volume'
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[../]
[]
[Postprocessors]
[./flow_in]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'bottom'
execute_on = 'timestep_end'
[../]
[./flow_out]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'top'
execute_on = 'timestep_end'
[../]
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence-auto/1D/dirichlet.i)
# Simple 1D plane strain test
[GlobalParams]
displacements = 'disp_x'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[]
[ICs]
[disp_x]
type = RandomIC
variable = disp_x
min = -0.1
max = 0.1
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 1
nx = 10
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[]
[Functions]
[pull]
type = ParsedFunction
expression = '0.06 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = right
variable = disp_x
value = 0.0
[]
[pull]
type = FunctionDirichletBC
boundary = left
variable = disp_x
function = pull
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 5.0
dtmin = 5.0
end_time = 5.0
[]
(test/tests/outputs/console/console_final.i)
###########################################################
# This test exercises console Output control. The console
# output is only output every third step. Additionally it
# is forced to be output after the final timestep as well.
#
# @Requirement U1.40
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
# This test uses ElementalVariableValue postprocessors on specific
# elements, so element numbering needs to stay unchanged
allow_renumbering = false
[]
[Functions]
[./ffn]
type = ParsedFunction
expression = -4
[../]
[./exactfn]
type = ParsedFunction
expression = x*x+y*y
[../]
[./aux_exact_fn]
type = ParsedFunction
expression = t*(x*x+y*y)
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./force]
type = BodyForce
variable = u
function = ffn
[../]
[]
[AuxVariables]
[./aux_u]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./a]
type = FunctionAux
variable = aux_u
function = aux_exact_fn
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exactfn
[../]
[]
[Postprocessors]
[./elem_56]
type = ElementalVariableValue
variable = u
elementid = 56
[../]
[./aux_elem_99]
type = ElementalVariableValue
variable = aux_u
elementid = 99
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.01
start_time = 0
num_steps = 10
[]
[Outputs]
time_step_interval = 3
execute_on = 'initial timestep_end final'
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test4q.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test4q.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.025
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test4q_out
exodus = true
[]
(modules/solid_mechanics/test/tests/cohesive_zone_model/czm_multiple_dimension_base.i)
[Mesh]
[./msh]
type = GeneratedMeshGenerator
[]
[./subdomain_1]
type = SubdomainBoundingBoxGenerator
input = msh
bottom_left = '0 0 0'
block_id = 1
top_right = '0.5 1 1'
[]
[./subdomain_2]
type = SubdomainBoundingBoxGenerator
input = subdomain_1
bottom_left = '0.5 0 0'
block_id = 2
top_right = '1 1 1'
[]
[./breakmesh]
input = subdomain_2
type = BreakMeshByBlockGenerator
[../]
[add_side_sets]
input = breakmesh
type = SideSetsFromNormalsGenerator
normals = '0 -1 0
0 1 0
-1 0 0
1 0 0
0 0 -1
0 0 1'
fixed_normal = true
new_boundary = 'y0 y1 x0 x1 z0 z1'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = SMALL
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_yz stress_xz stress_xy'
[../]
[]
[Physics/SolidMechanics/CohesiveZone]
[./czm1]
boundary = 'interface'
generate_output = 'traction_x traction_y traction_z normal_traction tangent_traction jump_x jump_y jump_z normal_jump tangent_jump'
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = x0
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
preset = false
boundary = x0
value = 0.0
[../]
[./left_z]
type = DirichletBC
variable = disp_z
preset = false
boundary = x0
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = x1
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = x1
[../]
[./right_z]
type = FunctionDirichletBC
variable = disp_z
preset = false
boundary = x1
[../]
[]
[Materials]
[./Elasticity_tensor]
type = ComputeElasticityTensor
block = '1 2'
fill_method = symmetric_isotropic
C_ijkl = '0.3 0.5e8'
[../]
[./stress]
type = ComputeLinearElasticStress
block = '1 2'
[../]
[./czm_mat]
type = PureElasticTractionSeparation
boundary = 'interface'
normal_stiffness = 10
tangent_stiffness = 5
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
solve_type = NEWTON
nl_abs_tol = 1e-8
nl_rel_tol = 1e-6
nl_max_its = 5
l_tol = 1e-10
l_max_its = 50
start_time = 0.0
dt = 0.2
end_time = 0.2
dtmin = 0.2
line_search = none
[]
[Outputs]
[./out]
type = Exodus
[../]
[]
(test/tests/time_integrators/convergence/explicit_convergence.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 4
ny = 4
elem_type = QUAD9
[]
[Variables]
active = 'u'
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[./forcing_fn]
type = ParsedFunction
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
implicit = false
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
implicit = false
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
# We are solving only mass matrices in this problem. The Jacobi
# preconditioner is a bit faster than ILU or AMG for this.
petsc_options_iname = '-pc_type'
petsc_options_value = 'jacobi'
start_time = 0.0
end_time = 0.03125
dt = 0.00390625
[./TimeIntegrator]
type = Heun
[../]
# For explicit methods, we use the LINEAR solve type.
solve_type = 'LINEAR'
l_tol = 1e-13
[]
[Outputs]
execute_on = 'initial timestep_end'
exodus = true
[]
(modules/contact/test/tests/verification/hertz_cyl/quart_symm_q8/hertz_cyl_qsym_1deg_template1.i)
[GlobalParams]
order = SECOND
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Mesh]
file = hertz_cyl_qsym_1deg_q8.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
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[./tang_force_x]
[../]
[./tang_force_y]
[../]
[]
[Functions]
[./disp_ramp_vert]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. -0.0020 -0.0020'
[../]
[./disp_ramp_zero]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 0.0 0.0'
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./inc_slip_x]
type = PenetrationAux
variable = inc_slip_x
execute_on = timestep_end
boundary = 4
paired_boundary = 3
[../]
[./inc_slip_y]
type = PenetrationAux
variable = inc_slip_y
execute_on = timestep_end
boundary = 4
paired_boundary = 3
[../]
[./accum_slip_x]
type = PenetrationAux
variable = accum_slip_x
execute_on = timestep_end
boundary = 4
paired_boundary = 3
[../]
[./accum_slip_y]
type = PenetrationAux
variable = accum_slip_y
execute_on = timestep_end
boundary = 4
paired_boundary = 3
[../]
[./penetration]
type = PenetrationAux
variable = penetration
boundary = 4
paired_boundary = 3
[../]
[./tang_force_x]
type = PenetrationAux
variable = tang_force_x
quantity = tangential_force_x
boundary = 4
paired_boundary = 3
[../]
[./tang_force_y]
type = PenetrationAux
variable = tang_force_y
quantity = tangential_force_y
boundary = 4
paired_boundary = 3
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 5
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 5
[../]
[./disp_x281]
type = NodalVariableValue
nodeid = 280
variable = disp_x
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[]
[BCs]
[./side_x]
type = DirichletBC
variable = disp_y
boundary = '1 3'
value = 0.0
[../]
[./bot_y]
type = DirichletBC
variable = disp_x
boundary = '1 2 3'
value = 0.0
[../]
[./top_y_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = disp_ramp_vert
[../]
[]
[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'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff2_strain]
type = ComputeFiniteStrain
block = '2'
[../]
[./stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[../]
[./stuff3_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '3'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff3_strain]
type = ComputeFiniteStrain
block = '3'
[../]
[./stuff3_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[../]
[./stuff4_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '4'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff4_strain]
type = ComputeFiniteStrain
block = '4'
[../]
[./stuff4_stress]
type = ComputeFiniteStrainElasticStress
block = '4'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-7
nl_rel_tol = 1e-6
l_max_its = 50
nl_max_its = 100
start_time = 0.0
dt = 0.1
dtmin = 0.1
num_steps = 10
end_time = 1.0
l_tol = 1e-4
[]
[VectorPostprocessors]
[./x_disp]
type = NodalValueSampler
variable = disp_x
boundary = '3 4 5'
sort_by = id
[../]
[./y_disp]
type = NodalValueSampler
variable = disp_y
boundary = '3 4 5'
sort_by = id
[../]
[./cont_press]
type = NodalValueSampler
variable = contact_pressure
boundary = '4'
sort_by = id
[../]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[./chkfile]
type = CSV
show = 'bot_react_x bot_react_y disp_x281 top_react_x top_react_y x_disp y_disp cont_press'
start_time = 0.9
execute_vector_postprocessors_on = timestep_end
[../]
[./outfile]
type = CSV
delimiter = ' '
execute_vector_postprocessors_on = none
[../]
[]
[Contact]
[./interface]
primary = 3
secondary = 4
normalize_penalty = true
tangential_tolerance = 1e-3
penalty = 1e+11
[../]
[]
(modules/solid_mechanics/test/tests/2D_geometries/planestrain.i)
# This test uses the strain calculator ComputePlaneSmallStrain,
# which is generated through the use of the SolidMechanics QuasiStatic Physics.
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[./square]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = SMALL
planar_formulation = PLANE_STRAIN
add_variables = true
generate_output = 'stress_xx stress_xy stress_yy stress_zz strain_xx strain_xy strain_yy strain_zz'
[../]
[]
[Functions]
[./pull]
type = ParsedFunction
expression ='0.01 * t'
[../]
[]
[BCs]
[./rightx]
type = DirichletBC
boundary = 1
variable = disp_x
value = 0.0
[../]
[./bottomy]
type = DirichletBC
boundary = 0
variable = disp_y
value = 0.0
[../]
[./pull]
type = FunctionDirichletBC
boundary = 2
variable = disp_y
function = pull
[../]
[]
[Materials]
[./linear_stress]
type = ComputeLinearElasticStress
block = 0
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 0
poissons_ratio = 0.3
youngs_modulus = 1e10
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
l_max_its = 100
l_tol = 1e-10
nl_max_its = 15
nl_rel_tol = 1e-12
start_time = 0.0
dt = 1.0
dtmin = 1.0
end_time = 5.0
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/umat/temperature/elastic_temperature.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Functions]
[top_pull]
type = ParsedFunction
expression = t/100
[]
# Forced evolution of temperature
[temperature_load]
type = ParsedFunction
expression = '273 + 10*t'
[]
# Factor to multiply the elasticity tensor in MOOSE
[elasticity_prefactor]
type = ParsedFunction
expression = '273/(273 + 10*t)'
[]
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temperature_function]
type = FunctionAux
variable = temperature
function = temperature_load
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Materials]
# This input file is used to compare the MOOSE and UMAT models, activating
# specific ones with cli variable_names.
# 1. Active for umat calculation
[umat]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_temperature'
num_state_vars = 0
temperature = temperature
use_one_based_indexing = true
[]
# 2. Active for reference MOOSE computations
[elastic]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000
poissons_ratio = 0.3
elasticity_tensor_prefactor = 'elasticity_prefactor'
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 30
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/cavity_pressure/rz.i)
#
# Cavity Pressure Test
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (2) with an interior cavity of volume 8.
# Block 1 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts T in the following way:
# T => T0 + beta * t
# with
# beta = T0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# At t = 1, p = 200.
[Problem]
coord_type = RZ
[]
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Mesh]
file = rz.e
[]
[Functions]
[temperature]
type = PiecewiseLinear
x = '0 1'
y = '1 2'
scale_factor = 240.54443866068704
[]
[]
[Variables]
[disp_r]
[]
[disp_z]
[]
[temp]
initial_condition = 240.54443866068704
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
[]
[heat]
type = Diffusion
variable = temp
use_displaced_mesh = true
[]
[]
[BCs]
[no_x]
type = DirichletBC
variable = disp_r
boundary = '1 2'
value = 0.0
[]
[no_y]
type = DirichletBC
variable = disp_z
boundary = '1 2'
value = 0.0
[]
[temperatureInterior]
type = FunctionDirichletBC
boundary = 2
function = temperature
variable = temp
[]
[CavityPressure]
[1]
boundary = 2
initial_pressure = 100
R = 8.314472
temperature = aveTempInterior
volume = internalVolume
startup_time = 0.5
output = ppress
[]
[]
[]
[Materials]
[elastic_tensor1]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 1
[]
[strain1]
type = ComputeAxisymmetricRZFiniteStrain
block = 1
[]
[stress1]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elastic_tensor2]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 2
[]
[strain2]
type = ComputeAxisymmetricRZFiniteStrain
block = 2
[]
[stress2]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_abs_tol = 1e-10
l_max_its = 20
dt = 0.5
end_time = 1.0
use_pre_SMO_residual = true
[]
[Postprocessors]
[internalVolume]
type = InternalVolume
boundary = 2
execute_on = 'initial linear'
[]
[aveTempInterior]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial linear'
[]
[]
[Outputs]
exodus = true
[checkpoint]
type = Checkpoint
num_files = 1
[]
[]
(modules/contact/test/tests/mortar_tm/2drz/frictionless_second/finite_rr.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD9
order = SECOND
name = 'finite_rr'
[Problem]
coord_type = RZ
[]
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.6
ymin = 0
ymax = 10
nx = 2
ny = 33
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.61
xmax = 1.21
ymin = 9.2
ymax = 10.0
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[block]
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'block'
extra_vector_tags = 'ref'
[]
[plank]
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'plank'
eigenstrain_names = 'swell'
extra_vector_tags = 'ref'
[]
[]
[Contact]
[frictionless]
primary = plank_right
secondary = block_left
formulation = mortar
c_normal = 1e0
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
preset = false
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = block_right
value = 0
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = block_right
function = '-t'
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'plank block'
[]
[swell]
type = ComputeEigenstrain
block = 'plank'
eigenstrain_name = swell
eigen_base = '1 0 0 0 0 0 0 0 0'
prefactor = swell_mat
[]
[swell_mat]
type = GenericFunctionMaterial
prop_names = 'swell_mat'
prop_values = '7e-2*(1-cos(4*t))'
block = 'plank'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 3
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'contact'
nl_abs_tol = 1e-12
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[]
[Outputs]
file_base = ${name}
[comp]
type = CSV
show = 'contact'
[]
[out]
type = CSV
file_base = '${name}_out'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/twinning/coplanar_twin_hardening.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[]
[AuxVariables]
[total_twin_volume_fraction]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_3]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[total_twin_volume_fraction]
type = MaterialRealAux
variable = total_twin_volume_fraction
property = total_volume_fraction_twins
execute_on = timestep_end
[]
[twin_resistance_0]
type = MaterialStdVectorAux
variable = twin_resistance_0
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[twin_resistance_1]
type = MaterialStdVectorAux
variable = twin_resistance_1
property = slip_resistance
index = 1
execute_on = timestep_end
[]
[twin_resistance_2]
type = MaterialStdVectorAux
variable = twin_resistance_2
property = slip_resistance
index = 2
execute_on = timestep_end
[]
[twin_resistance_3]
type = MaterialStdVectorAux
variable = twin_resistance_3
property = slip_resistance
index = 3
execute_on = timestep_end
[]
[twin_volume_fraction_0]
type = MaterialStdVectorAux
variable = twin_volume_fraction_0
property = twin_system_volume_fraction
index = 0
execute_on = timestep_end
[]
[twin_volume_fraction_1]
type = MaterialStdVectorAux
variable = twin_volume_fraction_1
property = twin_system_volume_fraction
index = 1
execute_on = timestep_end
[]
[twin_volume_fraction_2]
type = MaterialStdVectorAux
variable = twin_volume_fraction_2
property = twin_system_volume_fraction
index = 2
execute_on = timestep_end
[]
[twin_volume_fraction_3]
type = MaterialStdVectorAux
variable = twin_volume_fraction_3
property = twin_system_volume_fraction
index = 3
execute_on = timestep_end
[]
[twin_tau_0]
type = MaterialStdVectorAux
variable = twin_tau_0
property = applied_shear_stress
index = 0
execute_on = timestep_end
[]
[twin_tau_1]
type = MaterialStdVectorAux
variable = twin_tau_1
property = applied_shear_stress
index = 1
execute_on = timestep_end
[]
[twin_tau_2]
type = MaterialStdVectorAux
variable = twin_tau_2
property = applied_shear_stress
index = 2
execute_on = timestep_end
[]
[twin_tau_3]
type = MaterialStdVectorAux
variable = twin_tau_3
property = applied_shear_stress
index = 3
execute_on = timestep_end
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'bottom'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '-1.0e-3*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.08e5 6.034e4 6.034e4 1.08e5 6.03e4 1.08e5 2.86e4 2.86e4 2.86e4' #Tallon and Wolfenden. J. Phys. Chem. Solids (1979)
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'twin_only_xtalpl'
tan_mod_type = exact
[]
[twin_only_xtalpl]
type = CrystalPlasticityTwinningKalidindiUpdate
number_slip_systems = 4
slip_sys_file_name = 'select_twin_systems_verify_hardening.txt'
initial_twin_lattice_friction = 6.0
non_coplanar_coefficient_twin_hardening = 0
non_coplanar_twin_hardening_exponent = 0
coplanar_coefficient_twin_hardening = 8e8
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[total_twin_volume_fraction]
type = ElementAverageValue
variable = total_twin_volume_fraction
[]
[twin_resistance_0]
type = ElementAverageValue
variable = twin_resistance_0
[]
[twin_resistance_1]
type = ElementAverageValue
variable = twin_resistance_1
[]
[twin_resistance_2]
type = ElementAverageValue
variable = twin_resistance_2
[]
[twin_resistance_3]
type = ElementAverageValue
variable = twin_resistance_3
[]
[twin_volume_fraction_0]
type = ElementAverageValue
variable = twin_volume_fraction_0
[]
[twin_volume_fraction_1]
type = ElementAverageValue
variable = twin_volume_fraction_1
[]
[twin_volume_fraction_2]
type = ElementAverageValue
variable = twin_volume_fraction_2
[]
[twin_volume_fraction_3]
type = ElementAverageValue
variable = twin_volume_fraction_3
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.05
dtmin = 1e-6
dtmax = 10.0
num_steps = 4
[]
[Outputs]
csv = true
perf_graph = true
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test3qnns.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test3q.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_method = nodal_normal_based
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-10
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test3qnns_out
exodus = true
[]
[NodalNormals]
boundary = 11
corner_boundary = 20
[]
(modules/contact/test/tests/bouncing-block-contact/bouncing-block-ranfs.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
ping_pong_protection = true
[]
[Mesh]
file = long-bottom-block-no-lower-d.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[ICs]
[./disp_y]
block = 2
variable = disp_y
value = ${fparse starting_point + offset}
type = ConstantIC
[../]
[]
[Kernels]
[./disp_x]
type = MatDiffusion
variable = disp_x
[../]
[./disp_y]
type = MatDiffusion
variable = disp_y
[../]
[]
[Contact]
[./top_bottom]
secondary = 10
primary = 20
model = frictionless
formulation = ranfs
[../]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[../]
[./leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[../]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = 2.5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_hypre_type -mat_mffd_err'
petsc_options_value = 'hypre boomeramg 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
[exo]
type = Exodus
[]
checkpoint = true
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
[./num_nl]
type = NumNonlinearIterations
[../]
[./cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[../]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/planar1.i)
# apply uniform stretch in x, y and z directions.
# With cohesion = 10, friction_angle = 60deg, the
# algorithm should return to
# sigma_m = 10*Cos(60)/Sin(60) = 5.773503
# using planar surfaces (not smoothed)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1.1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.2E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./phi]
type = SolidMechanicsHardeningConstant
value = 1.04719756
[../]
[./psi]
type = SolidMechanicsHardeningConstant
value = 0.1
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = coh
friction_angle = phi
dilation_angle = psi
yield_function_tolerance = 1E-3
shift = 1E-12
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-10
deactivation_scheme = safe
plastic_models = mc
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1
debug_stress_change = 1E-5
debug_pm_change = 1E-6
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = planar1
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/multiapps/auto_diff_auto_scaling/sub.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = ADDiffusion
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = right
function = 't'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
num_steps = 2
solve_type = 'Newton'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
verbose = true
[]
[Outputs]
exodus = true
[]
(test/tests/multiapps/picard/function_dt_sub.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 1
nx = 10
[]
[Functions]
[./u_fn]
type = ParsedFunction
expression = t*x
[../]
[./ffn]
type = ParsedFunction
expression = x
[../]
[./dts]
type = PiecewiseLinear
x = '0.1 10'
y = '0.1 10'
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./td]
type = TimeDerivative
variable = u
[../]
[./fn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = right
function = u_fn
[../]
[]
[Executioner]
type = Transient
dt = 0.1
solve_type = 'PJFNK'
nl_abs_tol = 1e-10
start_time = 0
num_steps = 3
[./TimeStepper]
type = FunctionDT
function = dts
[../]
[]
[Outputs]
exodus = true
[]
(test/tests/multiapps/restart_multilevel/parent2.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
ymin = 0
xmax = 1
ymax = 1
nx = 10
ny = 10
[]
[Functions]
[v_fn]
type = ParsedFunction
expression = t*x
[]
[ffn]
type = ParsedFunction
expression = x
[]
[]
[AuxVariables]
[v]
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[td]
type = TimeDerivative
variable = u
[]
[ufn]
type = BodyForce
variable = u
function = ffn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = v_fn
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
[MultiApps]
[sub_app]
app_type = MooseTestApp
type = TransientMultiApp
input_files = 'sub.i'
execute_on = timestep_end
positions = '0 -1 0'
[]
[]
[Transfers]
[from_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub_app
source_variable = u
variable = v
[]
[]
[Problem]
restart_file_base = parent_out_cp/0005
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/rectangle_w_strip.i)
[Mesh]
[rectangle]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 50
xmin = -0.5
xmax = 0.5
ymin = -1.25
ymax = 1.25
[]
[strip]
type = SubdomainBoundingBoxGenerator
input = rectangle
bottom_left = '-0.5 -0.05 0'
top_right = '0.5 0.05 0'
block_id = 2
block_name = 'strip'
location = INSIDE
[]
[top_bottom_layers]
type = SubdomainBoundingBoxGenerator
input = strip
bottom_left = '-0.5 -0.05 0'
top_right = '0.5 0.05 0'
block_id = 1
block_name = 'rectangle'
location = OUTSIDE
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time_derivative]
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat_conduction]
type = HeatConduction
variable = temperature
[]
[]
[Materials]
[block]
type = GenericConstantMaterial
block = 'rectangle'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[strip]
type = GenericConstantMaterial
block = 'strip'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '10.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[]
[BCs]
[right]
type = FunctionDirichletBC
variable = temperature
boundary = 'right'
function = '10*t'
[]
[]
[VectorPostprocessors]
[x_n0_25]
type = LineValueSampler
start_point = '-0.25 0 0'
end_point = '-0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[x_0_25]
type = LineValueSampler
start_point = '0.25 0 0'
end_point = '0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
end_time = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = 'csv/rectangle_w_strip'
time_data = true
[]
[]
(modules/combined/test/tests/elastic_patch/elastic_patch_rz_nonlinear.i)
#
# This problem is taken from the Abaqus verification manual:
# "1.5.4 Patch test for axisymmetric elements"
# The stress solution is given as:
# xx = yy = zz = 19900
# xy = 0
#
# If strain = log(1+1e-2) = 0.00995033...
# then
# stress = E/(1+PR)/(1-2*PR)*(1-PR +PR +PR)*strain = 19900.6617
# with E = 1e6 and PR = 0.25.
#
# The code computes stress = 19900.6617 when
# increment_calculation = eigen. There is a small error when the
# rashidapprox option is used.
#
# Since the strain is 1e-3 in all three directions, the new density should be
# new_density = original_density * V_0 / V
# new_density = 0.283 / (1 + 9.95e-3 + 9.95e-3 + 9,95e-3) = 0.2747973
#
# The code computes a new density of .2746770
[GlobalParams]
displacements = 'disp_x disp_y'
temperature = temp
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = elastic_patch_rz.e
[]
[Variables]
[temp]
initial_condition = 117.56
[]
[]
[Physics/SolidMechanics/QuasiStatic/All]
strain = FINITE
decomposition_method = EigenSolution
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[]
[Kernels]
[heat]
type = TimeDerivative
variable = temp
[]
[]
[BCs]
[ur]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = 10
function = '1e-2*x'
[]
[uz]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 10
function = '1e-2*y'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[density]
type = Density
density = 0.283
outputs = all
[]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 1.0
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test4nnstt.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test4tt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
# [./element_id]
# [../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.09
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.09
normal_smoothing_method = nodal_normal_based
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
# [./penetrate17]
# type = PenetrationAux
# variable = element_id
# boundary = 11
# paired_boundary = 12
# quantity = element_id
# [../]
#
# [./penetrate18]
# type = PenetrationAux
# variable = element_id
# boundary = 12
# paired_boundary = 11
# quantity = element_id
# [../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[]
[Outputs]
file_base = pl_test4nnstt_out
exodus = true
[]
[NodalNormals]
boundary = 11
corner_boundary = 20
[]
(modules/contact/test/tests/ranfs-and-scaling/bouncing-block-ranfs.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-no-lower-d-coarse.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[ICs]
[./disp_y]
block = 2
variable = disp_y
value = ${fparse starting_point + offset}
type = ConstantIC
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = false
use_automatic_differentiation = true
strain = SMALL
[]
[]
[Materials]
[elasticity]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 1e3
poissons_ratio = 0.3
[]
[stress]
type = ADComputeLinearElasticStress
[]
[]
[Constraints]
[./disp_x]
type = RANFSNormalMechanicalContact
secondary = 10
primary = 20
variable = disp_x
primary_variable = disp_x
component = x
normal_smoothing_distance = 0.1
[../]
[./disp_y]
type = RANFSNormalMechanicalContact
secondary = 10
primary = 20
variable = disp_y
primary_variable = disp_y
component = y
normal_smoothing_distance = 0.1
[../]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[../]
[./leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[../]
[]
[Executioner]
type = Transient
end_time = 100
dt = 5
dtmin = 2.5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_hypre_type -mat_mffd_err'
petsc_options_value = 'hypre boomeramg 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
automatic_scaling = true
verbose = true
scaling_group_variables = 'disp_x disp_y'
resid_vs_jac_scaling_param = 1
nl_rel_tol = 1e-12
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
[exo]
type = Exodus
[]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
[nl]
type = NumNonlinearIterations
[]
[lin]
type = NumLinearIterations
[]
[tot_nl]
type = CumulativeValuePostprocessor
postprocessor = nl
[]
[tot_lin]
type = CumulativeValuePostprocessor
postprocessor = lin
[]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform15.i)
# Using CappedMohrCoulomb with compressive failure only
# A single element is incrementally compressed in the z and x directions
# This causes the return direction to be along the hypersurface sigma_I = 0
# and the resulting stresses are checked to lie on the expected yield surface
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-2*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-0.5*z*(t+1.5*t*t)'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 3
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 2.0'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.5
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 0.1
type = Transient
[]
[Outputs]
file_base = small_deform15
csv = true
[]
(modules/solid_mechanics/test/tests/multi/special_joint1.i)
# Plasticity models:
# WeakPlaneTensile with strength = 1000Pa
# WeakPlaneShear with cohesion = 0.1MPa and friction angle = 25
#
# Lame lambda = 1GPa. Lame mu = 1.3GPa
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 125
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[GlobalParams]
volumetric_locking_correction=true
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./linesearch]
order = CONSTANT
family = MONOMIAL
[../]
[./ld]
order = CONSTANT
family = MONOMIAL
[../]
[./constr_added]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./linesearch]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = linesearch
[../]
[./ld]
type = MaterialRealAux
property = plastic_linear_dependence_encountered
variable = ld
[../]
[./constr_added]
type = MaterialRealAux
property = plastic_constraints_added
variable = constr_added
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./max_iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./av_linesearch]
type = ElementAverageValue
variable = linesearch
outputs = 'console csv'
[../]
[./av_ld]
type = ElementAverageValue
variable = ld
outputs = 'console csv'
[../]
[./av_constr_added]
type = ElementAverageValue
variable = constr_added
outputs = 'console csv'
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console csv'
[../]
[]
[UserObjects]
[./wpt_str]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./wpt]
type = SolidMechanicsPlasticWeakPlaneTensile
tensile_strength = wpt_str
yield_function_tolerance = 1.0
internal_constraint_tolerance = 1.0E-7
[../]
[./wps_c]
type = SolidMechanicsHardeningConstant
value = 1.0E5
[../]
[./wps_tan_phi]
type = SolidMechanicsHardeningConstant
value = 0.466
[../]
[./wps_tan_psi]
type = SolidMechanicsHardeningConstant
value = 0.087
[../]
[./wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = wps_c
tan_friction_angle = wps_tan_phi
tan_dilation_angle = wps_tan_psi
smoother = 0
yield_function_tolerance = 1.0
internal_constraint_tolerance = 1.0E-7
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1.0E9 1.3E9'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-7
plastic_models = 'wpt wps'
max_NR_iterations = 5
specialIC = 'joint'
deactivation_scheme = 'safe'
min_stepsize = 1
max_stepsize_for_dumb = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1 1'
debug_jac_at_intnl = '1 1 1 1'
debug_stress_change = 1E1
debug_pm_change = '1E-6 1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = special_joint1
exodus = false
csv = true
[]
(test/tests/multiapps/picard_catch_up/sub_failing_problem.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
[]
[Variables]
[./v]
[../]
[]
[AuxVariables]
[./u]
[../]
[]
[Kernels]
[./diff_v]
type = Diffusion
variable = v
[../]
[./force_v]
type = CoupledForce
variable = v
v = u
[../]
[]
[BCs]
[./left_v]
type = DirichletBC
variable = v
boundary = left
value = 1
[../]
[./right_v]
type = FunctionDirichletBC
variable = v
boundary = right
function = 't + 1'
[../]
[]
[Problem]
type = FailingProblem
fail_steps = '2'
[../]
[Executioner]
type = Transient
num_steps = 2
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
nl_abs_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/frictional/sliding_elastic_blocks_2d/sliding_elastic_blocks_2d_tp.i)
[Mesh]
file = sliding_elastic_blocks_2d.e
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[./accum_slip]
[../]
[./tang_force_x]
[../]
[./tang_force_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
save_in = 'saved_x saved_y'
diag_save_in = 'diag_saved_x diag_saved_y'
[../]
[]
[AuxKernels]
[./inc_slip_x]
type = PenetrationAux
variable = inc_slip_x
quantity = incremental_slip_x
boundary = 3
paired_boundary = 2
[../]
[./inc_slip_y]
type = PenetrationAux
variable = inc_slip_y
quantity = incremental_slip_y
boundary = 3
paired_boundary = 2
[../]
[./accum_slip]
type = PenetrationAux
variable = accum_slip
execute_on = timestep_end
quantity = accumulated_slip
boundary = 3
paired_boundary = 2
[../]
[./tangential_force_x]
type = PenetrationAux
variable = tang_force_x
execute_on = timestep_end
quantity = tangential_force_x
boundary = 3
paired_boundary = 2
[../]
[./tangential_force_y]
type = PenetrationAux
variable = tang_force_y
execute_on = timestep_end
quantity = tangential_force_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
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[../]
[./ref_resid_x]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_x
[../]
[./ref_resid_y]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_y
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = -0.005
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e7
poissons_ratio = 0.3
[../]
[./right]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.01
end_time = 0.05
num_steps = 1000
nl_rel_tol = 1e-16
nl_abs_tol = 1e-09
dtmin = 0.01
l_tol = 1e-3
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
secondary = 3
primary = 2
model = coulomb
formulation = tangential_penalty
friction_coefficient = '0.25'
penalty = 1e6
[../]
[]
[Dampers]
[./contact_slip]
type = ContactSlipDamper
secondary = 3
primary = 2
[../]
[]
(modules/navier_stokes/test/tests/finite_element/ins/cg-dg-hybrid/mms/lid-driven/hybrid-cg-dg-mms.i)
rho=1.1
mu=1.1
cp=1.1
k=1.1
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = -1
xmax = 1.0
ymin = -1
ymax = 1.0
nx = 2
ny = 2
[]
[corner_node]
type = ExtraNodesetGenerator
new_boundary = 'pinned_node'
nodes = '0'
input = gen
[]
[]
[Variables]
[u]
family = MONOMIAL
[]
[v]
family = MONOMIAL
[]
[pressure][]
[T]
family = MONOMIAL
[]
[]
[Kernels]
[momentum_x_convection]
type = ADConservativeAdvection
variable = u
velocity = 'velocity'
advected_quantity = 'rhou'
[]
[momentum_x_diffusion]
type = MatDiffusion
variable = u
diffusivity = 'mu'
[]
[momentum_x_pressure]
type = PressureGradient
integrate_p_by_parts = false
variable = u
pressure = pressure
component = 0
[]
[u_forcing]
type = BodyForce
variable = u
function = forcing_u
[]
[momentum_y_convection]
type = ADConservativeAdvection
variable = v
velocity = 'velocity'
advected_quantity = 'rhov'
[]
[momentum_y_diffusion]
type = MatDiffusion
variable = v
diffusivity = 'mu'
[]
[momentum_y_pressure]
type = PressureGradient
integrate_p_by_parts = false
variable = v
pressure = pressure
component = 1
[]
[v_forcing]
type = BodyForce
variable = v
function = forcing_v
[]
[mass]
type = ADConservativeAdvection
variable = pressure
velocity = velocity
advected_quantity = -1
[]
[p_forcing]
type = BodyForce
variable = pressure
function = forcing_p
[]
[T_convection]
type = ADConservativeAdvection
variable = T
velocity = 'velocity'
advected_quantity = 'rho_cp_temp'
[]
[T_diffusion]
type = MatDiffusion
variable = T
diffusivity = 'k'
[]
[T_forcing]
type = BodyForce
variable = T
function = forcing_T
[]
[]
[DGKernels]
[momentum_x_convection]
type = ADDGAdvection
variable = u
velocity = 'velocity'
advected_quantity = 'rhou'
[]
[momentum_x_diffusion]
type = DGDiffusion
variable = u
sigma = 6
epsilon = -1
diff = 'mu'
[]
[momentum_y_convection]
type = ADDGAdvection
variable = v
velocity = 'velocity'
advected_quantity = 'rhov'
[]
[momentum_y_diffusion]
type = DGDiffusion
variable = v
sigma = 6
epsilon = -1
diff = 'mu'
[]
[T_convection]
type = ADDGAdvection
variable = T
velocity = 'velocity'
advected_quantity = 'rho_cp_temp'
[]
[T_diffusion]
type = DGDiffusion
variable = T
sigma = 6
epsilon = -1
diff = 'k'
[]
[]
[BCs]
[u_walls]
type = DGFunctionDiffusionDirichletBC
boundary = 'left bottom right top'
variable = u
sigma = 6
epsilon = -1
function = exact_u
diff = 'mu'
[]
[v_walls]
type = DGFunctionDiffusionDirichletBC
boundary = 'left bottom right top'
variable = v
sigma = 6
epsilon = -1
function = exact_v
diff = 'mu'
[]
[pressure_pin]
type = FunctionDirichletBC
variable = pressure
boundary = 'pinned_node'
function = 'exact_p'
[]
[T_walls]
type = DGFunctionDiffusionDirichletBC
boundary = 'left bottom right top'
variable = T
sigma = 6
epsilon = -1
function = exact_T
diff = 'k'
[]
[]
[Materials]
[const]
type = ADGenericConstantMaterial
prop_names = 'rho cp'
prop_values = '${rho} ${cp}'
[]
[const_reg]
type = GenericConstantMaterial
prop_names = 'mu k'
prop_values = '${mu} ${k}'
[]
[vel]
type = ADVectorFromComponentVariablesMaterial
vector_prop_name = 'velocity'
u = u
v = v
[]
[rhou]
type = ADParsedMaterial
property_name = 'rhou'
coupled_variables = 'u'
material_property_names = 'rho'
expression = 'rho*u'
[]
[rhov]
type = ADParsedMaterial
property_name = 'rhov'
coupled_variables = 'v'
material_property_names = 'rho'
expression = 'rho*v'
[]
[rho_cp]
type = ADParsedMaterial
property_name = 'rho_cp'
material_property_names = 'rho cp'
expression = 'rho*cp'
[]
[rho_cp_temp]
type = ADParsedMaterial
property_name = 'rho_cp_temp'
material_property_names = 'rho cp'
coupled_variables = 'T'
expression = 'rho*cp*T'
[]
[]
[Functions]
[exact_u]
type = ParsedFunction
expression = 'sin(y)*cos((1/2)*x*pi)'
[]
[forcing_u]
type = ParsedFunction
expression = 'mu*sin(y)*cos((1/2)*x*pi) + (1/4)*pi^2*mu*sin(y)*cos((1/2)*x*pi) - 1/2*pi*rho*sin(x)*sin(y)*sin((1/2)*y*pi)*cos((1/2)*x*pi) + rho*sin(x)*cos(y)*cos((1/2)*x*pi)*cos((1/2)*y*pi) - pi*rho*sin(y)^2*sin((1/2)*x*pi)*cos((1/2)*x*pi) + sin(y)*cos(x)'
symbol_names = 'mu rho'
symbol_values = '${mu} ${rho}'
[]
[exact_v]
type = ParsedFunction
expression = 'sin(x)*cos((1/2)*y*pi)'
[]
[forcing_v]
type = ParsedFunction
expression = 'mu*sin(x)*cos((1/2)*y*pi) + (1/4)*pi^2*mu*sin(x)*cos((1/2)*y*pi) - pi*rho*sin(x)^2*sin((1/2)*y*pi)*cos((1/2)*y*pi) - 1/2*pi*rho*sin(x)*sin(y)*sin((1/2)*x*pi)*cos((1/2)*y*pi) + rho*sin(y)*cos(x)*cos((1/2)*x*pi)*cos((1/2)*y*pi) + sin(x)*cos(y)'
symbol_names = 'mu rho'
symbol_values = '${mu} ${rho}'
[]
[exact_p]
type = ParsedFunction
expression = 'sin(x)*sin(y)'
[]
[forcing_p]
type = ParsedFunction
expression = '(1/2)*pi*sin(x)*sin((1/2)*y*pi) + (1/2)*pi*sin(y)*sin((1/2)*x*pi)'
[]
[exact_T]
type = ParsedFunction
expression = 'cos(x)*cos(y)'
[]
[forcing_T]
type = ParsedFunction
expression = '-cp*rho*sin(x)*sin(y)*cos(x)*cos((1/2)*y*pi) - cp*rho*sin(x)*sin(y)*cos(y)*cos((1/2)*x*pi) - 1/2*pi*cp*rho*sin(x)*sin((1/2)*y*pi)*cos(x)*cos(y) - 1/2*pi*cp*rho*sin(y)*sin((1/2)*x*pi)*cos(x)*cos(y) + 2*k*cos(x)*cos(y)'
symbol_names = 'rho cp k'
symbol_values = '${rho} ${cp} ${k}'
[]
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_type -mat_mumps_icntl_14'
petsc_options_value = 'lu NONZERO mumps 300'
nl_rel_tol = 1e-12
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[h]
type = AverageElementSize
outputs = 'console csv'
execute_on = 'timestep_end'
[]
[L2u]
type = ElementL2Error
variable = u
function = exact_u
outputs = 'console csv'
execute_on = 'timestep_end'
[]
[L2v]
variable = v
function = exact_v
type = ElementL2Error
outputs = 'console csv'
execute_on = 'timestep_end'
[]
[L2T]
variable = T
function = exact_T
type = ElementL2Error
outputs = 'console csv'
execute_on = 'timestep_end'
[]
[L2p]
variable = pressure
function = exact_p
type = ElementL2Error
outputs = 'console csv'
execute_on = 'timestep_end'
[]
[]
(modules/porous_flow/test/tests/jacobian/linear_por.i)
# Testing Jacobian resulting from PorousFlowPorosityLinear in a THM situation
[GlobalParams]
PorousFlowDictator = dictator
strain_at_nearest_qp = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
[]
[]
[Variables]
[pp]
initial_condition = 1
[]
[T]
initial_condition = 2
[]
[disp]
[]
[]
[ICs]
[disp]
type = FunctionIC
variable = disp
function = '3 * x'
[]
[]
[BCs]
[disp]
type = FunctionDirichletBC
boundary = 'left right top bottom front back'
variable = disp
function = '3 * x'
[]
[]
[PorousFlowFullySaturated]
coupling_type = ThermoHydroMechanical
fp = simple_fluid
porepressure = pp
temperature = T
displacements = 'disp disp disp'
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
[]
[]
[Materials]
[porosity]
type = PorousFlowPorosityLinear
porosity_ref = 0.5
P_ref = 0.5
P_coeff = 1.0
T_ref = -3.0
T_coeff = 1.0
epv_ref = 2.5
epv_coeff = 1.0
[]
[perm]
type = PorousFlowPermeabilityConst
permeability = '0 0 0 0 0 0 0 0 0'
[]
[matrix_energy]
type = PorousFlowMatrixInternalEnergy
density = 0.0
specific_heat_capacity = 0.0
[]
[thermal_conductivity]
type = PorousFlowThermalConductivityIdeal
dry_thermal_conductivity = '0 0 0 0 0 0 0 0 0'
[]
[density]
type = GenericConstantMaterial
prop_names = density
prop_values = 0.0
[]
[elasticity]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1E-99
poissons_ratio = 0
[]
[strain]
type = ComputeSmallStrain
displacements = 'disp disp disp'
[]
[stress]
type = ComputeLinearElasticStress
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
num_steps = 1
# petsc_options = '-snes_test_jacobian -snes_force_iteration'
# petsc_options_iname = '-snes_type --ksp_type -pc_type -snes_convergence_test'
# petsc_options_value = ' ksponly preonly none skip'
[]
(modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform3_inner_tip.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-1.7E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E5
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E5
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
mc_interpolation_scheme = inner_tip
yield_function_tolerance = 1 # irrelevant here
internal_constraint_tolerance = 1 # irrelevant here
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[./mc]
type = CappedDruckerPragerStressUpdate
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-8
tip_smoother = 8
smoothing_tol = 1E-7
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3_inner_tip
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/material_limit_time_step/elas_plas/nafems_nl1_lim.i)
#
# Tests material model IsotropicPlasticity with material based time stepper
# Boundary conditions from NAFEMS test NL1
#
[GlobalParams]
order = FIRST
family = LAGRANGE
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]#Comment
file = one_elem2.e
[] # Mesh
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[] # Variables
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_eff]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[] # AuxVariables
[Kernels]
[SolidMechanics]
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./elastic_strain_yy]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_yy
index_i = 1
index_j = 1
[../]
[./plastic_strain_eff]
type = MaterialRealAux
property = effective_plastic_strain
variable = plastic_strain_eff
[../]
[./tot_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_yy
index_i = 1
index_j = 1
[../]
[] # AuxKernels
[Functions]
[./appl_dispx]
type = PiecewiseLinear
x = '0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0'
y = '0.0 0.25e-4 0.50e-4 0.50e-4 0.50e-4 0.25e-4 0.0 0.0 0.0'
[../]
[./appl_dispy]
type = PiecewiseLinear
x = '0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0'
y = '0.0 0.0 0.0 0.25e-4 0.50e-4 0.50e-4 0.50e-4 0.25e-4 0.0 '
[../]
[]
[BCs]
[./side_x]
type = DirichletBC
variable = disp_x
boundary = 101
value = 0.0
[../]
[./origin_x]
type = DirichletBC
variable = disp_x
boundary = 103
value = 0.0
[../]
[./bot_y]
type = DirichletBC
variable = disp_y
boundary = 102
value = 0.0
[../]
[./origin_y]
type = DirichletBC
variable = disp_y
boundary = 103
value = 0.0
[../]
[./top_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = appl_dispy
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 2
function = appl_dispx
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 250e9
poissons_ratio = 0.25
[../]
[./strain]
type = ComputePlaneFiniteStrain
block = 1
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'isoplas'
block = 1
[../]
[./isoplas]
type = IsotropicPlasticityStressUpdate
yield_stress = 5e6
hardening_constant = 0.0
relative_tolerance = 1e-20
absolute_tolerance = 1e-8
max_inelastic_increment = 0.000001
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
l_tol = 1e-4
l_max_its = 100
nl_max_its = 20
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.1
time_t = '1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0'
time_dt = '0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1'
optimal_iterations = 30
iteration_window = 9
growth_factor = 2.0
cutback_factor = 0.5
timestep_limiting_postprocessor = matl_ts_min
[../]
start_time = 0.0
num_steps = 1000
end_time = 8.0
[] # Executioner
[Postprocessors]
[./matl_ts_min]
type = MaterialTimeStepPostprocessor
[../]
[./stress_xx]
type = ElementAverageValue
variable = stress_xx
[../]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./vonmises]
type = ElementAverageValue
variable = vonmises
[../]
[./el_strain_yy]
type = ElementAverageValue
variable = elastic_strain_yy
[../]
[./plas_strain_eff]
type = ElementAverageValue
variable = plastic_strain_eff
[../]
[./tot_strain_yy]
type = ElementAverageValue
variable = tot_strain_yy
[../]
[./disp_x1]
type = NodalVariableValue
nodeid = 0
variable = disp_x
[../]
[./disp_x4]
type = NodalVariableValue
nodeid = 3
variable = disp_x
[../]
[./disp_y1]
type = NodalVariableValue
nodeid = 0
variable = disp_y
[../]
[./disp_y4]
type = NodalVariableValue
nodeid = 3
variable = disp_y
[../]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
exodus = true
csv = true
[./console]
type = Console
output_linear = true
[../]
[] # Outputs
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/random4.i)
# Using CappedMohrCoulomb
# Plasticity models:
# Tensile strength = 0.1MPa
# Compressive strength = 1.0MPa
# Cohesion = 1MPa
# Friction angle = dilation angle = 0.5
#
# Lame lambda = 1GPa. Lame mu = 1.3GPa
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 100
ny = 12
nz = 1
xmin = 0
xmax = 100
ymin = 0
ymax = 12
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./f3]
order = CONSTANT
family = MONOMIAL
[../]
[./f4]
order = CONSTANT
family = MONOMIAL
[../]
[./f5]
order = CONSTANT
family = MONOMIAL
[../]
[./f6]
order = CONSTANT
family = MONOMIAL
[../]
[./f7]
order = CONSTANT
family = MONOMIAL
[../]
[./f8]
order = CONSTANT
family = MONOMIAL
[../]
[./f9]
order = CONSTANT
family = MONOMIAL
[../]
[./f10]
order = CONSTANT
family = MONOMIAL
[../]
[./f11]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./f3]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 3
variable = f3
[../]
[./f4]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 4
variable = f4
[../]
[./f5]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 5
variable = f5
[../]
[./f6]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 6
variable = f6
[../]
[./f7]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 7
variable = f7
[../]
[./f8]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 8
variable = f8
[../]
[./f9]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 9
variable = f9
[../]
[./f10]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 10
variable = f10
[../]
[./f11]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 11
variable = f11
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = int1
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./tot_iters]
type = ElementIntegralMaterialProperty
mat_prop = plastic_NR_iterations
outputs = console
[../]
[./intnl0_max]
type = ElementExtremeValue
variable = int0
outputs = console
[../]
[./intnl1_max]
type = ElementExtremeValue
variable = int1
outputs = console
[../]
[./raw_f0]
type = ElementExtremeValue
variable = f0
outputs = console
[../]
[./raw_f1]
type = ElementExtremeValue
variable = f1
outputs = console
[../]
[./raw_f2]
type = ElementExtremeValue
variable = f2
outputs = console
[../]
[./raw_f3]
type = ElementExtremeValue
variable = f3
outputs = console
[../]
[./raw_f4]
type = ElementExtremeValue
variable = f4
outputs = console
[../]
[./raw_f5]
type = ElementExtremeValue
variable = f5
outputs = console
[../]
[./raw_f6]
type = ElementExtremeValue
variable = f6
outputs = console
[../]
[./raw_f7]
type = ElementExtremeValue
variable = f7
outputs = console
[../]
[./raw_f8]
type = ElementExtremeValue
variable = f8
outputs = console
[../]
[./raw_f9]
type = ElementExtremeValue
variable = f9
outputs = console
[../]
[./raw_f10]
type = ElementExtremeValue
variable = f10
outputs = console
[../]
[./raw_f11]
type = ElementExtremeValue
variable = f11
outputs = console
[../]
[./iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./f0]
type = FunctionValuePostprocessor
function = should_be_zero0_fcn
[../]
[./f1]
type = FunctionValuePostprocessor
function = should_be_zero1_fcn
[../]
[./f2]
type = FunctionValuePostprocessor
function = should_be_zero2_fcn
[../]
[./f3]
type = FunctionValuePostprocessor
function = should_be_zero3_fcn
[../]
[./f4]
type = FunctionValuePostprocessor
function = should_be_zero4_fcn
[../]
[./f5]
type = FunctionValuePostprocessor
function = should_be_zero5_fcn
[../]
[./f6]
type = FunctionValuePostprocessor
function = should_be_zero6_fcn
[../]
[./f7]
type = FunctionValuePostprocessor
function = should_be_zero7_fcn
[../]
[./f8]
type = FunctionValuePostprocessor
function = should_be_zero8_fcn
[../]
[./f9]
type = FunctionValuePostprocessor
function = should_be_zero9_fcn
[../]
[./f10]
type = FunctionValuePostprocessor
function = should_be_zero10_fcn
[../]
[./f11]
type = FunctionValuePostprocessor
function = should_be_zero11_fcn
[../]
[]
[Functions]
[./should_be_zero0_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f0'
[../]
[./should_be_zero1_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f1'
[../]
[./should_be_zero2_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f2'
[../]
[./should_be_zero3_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f3'
[../]
[./should_be_zero4_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f4'
[../]
[./should_be_zero5_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f5'
[../]
[./should_be_zero6_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f6'
[../]
[./should_be_zero7_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f7'
[../]
[./should_be_zero8_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f8'
[../]
[./should_be_zero9_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f9'
[../]
[./should_be_zero10_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f10'
[../]
[./should_be_zero11_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f11'
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningCubic
value_0 = 1E6
value_residual = 2E6
internal_limit = 1
[../]
[./cs]
type = SolidMechanicsHardeningCubic
value_0 = 1E7
value_residual = 0.5E7
internal_limit = 1
[../]
[./coh]
type = SolidMechanicsHardeningCubic
value_0 = 2E6
value_residual = 1E6
internal_limit = 1
[../]
[./phi]
type = SolidMechanicsHardeningCubic
value_0 = 0.6
value_residual = 0.2
internal_limit = 1
[../]
[./psi]
type = SolidMechanicsHardeningCubic
value_0 = 0.5
value_residual = 0.1
internal_limit = 1
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '1E9 1.3E9'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = phi
dilation_angle = psi
smoothing_tol = 1E5
max_NR_iterations = 1000
yield_function_tol = 1.0E-1
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
dtmin = 1
type = Transient
[]
[Outputs]
file_base = random4
csv = true
[]
(modules/solid_mechanics/test/tests/tensile/small_deform8_update_version.i)
# A single unit element is stretched by 1E-6m in z direction.
# with Lame lambda = 0.6E6 and Lame mu (shear) = 1E6
# stress_zz = 2.6 Pa
# stress_xx = 0.6 Pa
# stress_yy = 0.6 Pa
# tensile_strength is set to 0.5Pa
#
# stress_zz = 0.5
# plastic multiplier = 2.1/2.6 E-6
# stress_xx = 0.6 - (2.1/2.6*0.6) = 0.115
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.0E-6*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0.6E6 1E6'
[../]
[./tensile]
type = TensileStressUpdate
tensile_strength = ts
smoothing_tol = 0.0
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform8_update_version
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test3ns.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test3.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-10
l_max_its = 10
start_time = 0.0
dt = 0.0125
end_time = 1.0
[]
[Outputs]
file_base = pl_test3ns_out
exodus = true
[]
(modules/porous_flow/examples/groundwater/ex01.i)
# Groundwater extraction example.
# System consists of two confined aquifers separated by an aquitard
# There is a hydraulic gradient in the upper aquifer
# A well extracts water from the lower aquifer, and the impact on the upper aquifer is observed
# In the center of the model, the roof of the upper aquifer sits 70m below the local water table
[Mesh]
[basic_mesh]
type = GeneratedMeshGenerator
dim = 3
xmin = -50
xmax = 50
nx = 20
ymin = -25
ymax = 25
ny = 10
zmin = -100
zmax = -70
nz = 3
[]
[lower_aquifer]
type = SubdomainBoundingBoxGenerator
input = basic_mesh
block_id = 1
block_name = lower_aquifer
bottom_left = '-1000 -500 -100'
top_right = '1000 500 -90'
[]
[aquitard]
type = SubdomainBoundingBoxGenerator
input = lower_aquifer
block_id = 2
block_name = aquitard
bottom_left = '-1000 -500 -90'
top_right = '1000 500 -80'
[]
[upper_aquifer]
type = SubdomainBoundingBoxGenerator
input = aquitard
block_id = 3
block_name = upper_aquifer
bottom_left = '-1000 -500 -80'
top_right = '1000 500 -70'
[]
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[pp]
[]
[]
[ICs]
[pp]
type = FunctionIC
variable = pp
function = insitu_pp
[]
[]
[BCs]
[pp]
type = FunctionDirichletBC
variable = pp
function = insitu_pp
boundary = 'left right top bottom front back'
[]
[]
[Functions]
[upper_aquifer_head]
type = ParsedFunction
expression = '10 + x / 200'
[]
[lower_aquifer_head]
type = ParsedFunction
expression = '20'
[]
[insitu_head]
type = ParsedFunction
symbol_values = 'lower_aquifer_head upper_aquifer_head'
symbol_names = 'low up'
expression = 'if(z <= -90, low, if(z >= -80, up, (up * (z + 90) - low * (z + 80)) / (10.0)))'
[]
[insitu_pp]
type = ParsedFunction
symbol_values = 'insitu_head'
symbol_names = 'h'
expression = '(h - z) * 1E4'
[]
[l_rate]
type = ParsedFunction
symbol_values = 'm3_produced dt'
symbol_names = 'm3_produced dt'
expression = '1000 * m3_produced / dt'
[]
[]
[AuxVariables]
[insitu_head]
[]
[head_change]
[]
[]
[AuxKernels]
[insitu_head]
type = FunctionAux
variable = insitu_head
function = insitu_head
[]
[head_change]
type = ParsedAux
coupled_variables = 'pp insitu_head'
use_xyzt = true
expression = 'pp / 1E4 + z - insitu_head'
variable = head_change
[]
[]
[Postprocessors]
[m3_produced]
type = PorousFlowPlotQuantity
uo = volume_extracted
outputs = 'none'
[]
[dt]
type = TimestepSize
outputs = 'none'
[]
[l_per_s]
type = FunctionValuePostprocessor
function = l_rate
[]
[]
[VectorPostprocessors]
[drawdown]
type = LineValueSampler
variable = head_change
start_point = '-50 0 -75'
end_point = '50 0 -75'
num_points = 101
sort_by = x
[]
[]
[PorousFlowBasicTHM]
fp = simple_fluid
gravity = '0 0 -10'
porepressure = pp
multiply_by_density = false
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
# the following mean that density = 1000 * exp(P / 1E15) ~ 1000
thermal_expansion = 0
bulk_modulus = 1E15
[]
[]
[Materials]
[porosity_aquifers]
type = PorousFlowPorosityConst
porosity = 0.05
block = 'upper_aquifer lower_aquifer'
[]
[porosity_aquitard]
type = PorousFlowPorosityConst
porosity = 0.2
block = aquitard
[]
[biot_mod]
type = PorousFlowConstantBiotModulus
fluid_bulk_modulus = 2E9
biot_coefficient = 1.0
[]
[permeability_aquifers]
type = PorousFlowPermeabilityConst
permeability = '1E-12 0 0 0 1E-12 0 0 0 1E-12'
block = 'upper_aquifer lower_aquifer'
[]
[permeability_aquitard]
type = PorousFlowPermeabilityConst
permeability = '1E-16 0 0 0 1E-16 0 0 0 1E-17'
block = aquitard
[]
[]
[DiracKernels]
[sink]
type = PorousFlowPolyLineSink
SumQuantityUO = volume_extracted
point_file = ex01.bh_lower
line_length = 10
variable = pp
# following produces a flux of 0 m^3(water)/m(borehole length)/s if porepressure = 0, and a flux of 1 m^3/m/s if porepressure = 1E9
p_or_t_vals = '0 1E9'
fluxes = '0 1'
[]
[]
[UserObjects]
[volume_extracted]
type = PorousFlowSumQuantity
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = Newton
[TimeStepper]
type = SolutionTimeAdaptiveDT
dt = 1.1E5
[]
end_time = 3.456E5 # 4 days
nl_abs_tol = 1E-13
[]
[Outputs]
[csv]
type = CSV
file_base = ex01_lower_extraction
execute_on = final
[]
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence-auto/3D/dirichlet.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
stabilize_strain = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[ICs]
[disp_x]
type = RandomIC
variable = disp_x
min = -0.02
max = 0.02
[]
[disp_y]
type = RandomIC
variable = disp_y
min = -0.02
max = 0.02
[]
[disp_z]
type = RandomIC
variable = disp_z
min = -0.02
max = 0.02
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 4
ny = 4
nz = 4
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[Functions]
[pullx]
type = ParsedFunction
expression = '0.4 * t'
[]
[pully]
type = ParsedFunction
expression = '-0.2 * t'
[]
[pullz]
type = ParsedFunction
expression = '0.3 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[lefty]
type = DirichletBC
preset = true
boundary = left
variable = disp_y
value = 0.0
[]
[leftz]
type = DirichletBC
preset = true
boundary = left
variable = disp_z
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = pullx
preset = true
[]
[pull_y]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pully
preset = true
[]
[pull_z]
type = FunctionDirichletBC
boundary = right
variable = disp_z
function = pullz
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 0.2
dtmin = 0.2
end_time = 0.2
[]
(test/tests/executioners/executioner/transient.i)
###########################################################
# This is a simple test with a time-dependent problem
# demonstrating the use of a "Transient" Executioner.
#
# @Requirement F1.10
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
# dudt = 3*t^2*(x^2 + y^2)
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 1
value = 1
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./dt]
type = TimestepSize
[../]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
dt = 0.1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_transient
exodus = true
[]
(test/tests/restart/restart_subapp_not_parent/two_step_solve_sub_restart.i)
[Mesh]
file = two_step_solve_parent_full_solve0_checkpoint_cp/0002-mesh.cpa.gz
[]
[Problem]
restart_file_base = two_step_solve_parent_full_solve0_checkpoint_cp/LATEST
force_restart = true
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
# Initial Condition will come from the restart file
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Postprocessors]
[./average]
type = ElementAverageValue
variable = u
[../]
[]
[Executioner]
type = Transient
end_time = 2.0
dt = 1.0
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/pdass_problems/ironing_penalty_action.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = iron.e
[]
patch_update_strategy = auto
patch_size = 20
allow_renumbering = false
[]
[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
[]
[real_weighted_gap]
order = FIRST
family = LAGRANGE
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[saved_x]
[]
[saved_y]
[]
[diag_saved_x]
[]
[diag_saved_y]
[]
[von_mises]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[disp_ramp_vert]
type = PiecewiseLinear
x = '0. 2. 8.'
y = '0. -1.0 -1.0'
[]
[disp_ramp_horz]
type = PiecewiseLinear
x = '0. 8.'
y = '0. 8.'
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
save_in = 'saved_x saved_y'
block = '1 2'
strain = FINITE
[]
[]
[AuxKernels]
[penalty_normal_pressure_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = penalty_friction_object_contact_block
contact_quantity = normal_pressure
[]
[penalty_frictional_pressure_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = penalty_friction_object_contact_block
contact_quantity = tangential_pressure_one
[]
[penalty_accumulated_slip_auxk]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = penalty_friction_object_contact_block
contact_quantity = accumulated_slip_one
[]
[penalty_tangential_vel_auxk]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = penalty_friction_object_contact_block
contact_quantity = tangential_velocity_one
[]
[real_weighted_gap_auxk]
type = PenaltyMortarUserObjectAux
variable = real_weighted_gap
user_object = penalty_friction_object_contact_block
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'
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
block = '1 2'
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
block = '1 2'
[]
[von_mises_kernel]
#Calculates the von mises stress and assigns it to von_mises
type = RankTwoScalarAux
variable = von_mises
rank_two_tensor = stress
execute_on = timestep_end
scalar_type = VonMisesStress
block = '1 2'
[]
[]
[Contact]
[contact_block]
primary = 20
secondary = 10
friction_coefficient = 0.1
model = coulomb
formulation = mortar_penalty
penalty = 1e5
penalty_friction = 1e4
use_dual = false
[]
[]
[VectorPostprocessors]
[penalty_normal_pressure]
type = NodalValueSampler
variable = penalty_normal_pressure
boundary = 10
sort_by = id
[]
[]
[Postprocessors]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 30
[]
[top_react_y]
type = NodalSum
variable = saved_y
boundary = 30
[]
[]
[BCs]
[bot_x_disp]
type = DirichletBC
variable = disp_x
boundary = '40'
value = 0.0
preset = false
[]
[bot_y_disp]
type = DirichletBC
variable = disp_y
boundary = '40'
value = 0.0
preset = false
[]
[top_y_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = '30'
function = disp_ramp_vert
preset = false
[]
[top_x_disp]
type = FunctionDirichletBC
variable = disp_x
boundary = '30'
function = disp_ramp_horz
preset = false
[]
[]
[Materials]
[stuff1_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 6896
poissons_ratio = 0.32
[]
[stuff1_strain]
type = ComputeFiniteStrain
block = '2'
[]
[stuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[stuff2_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 689.6
poissons_ratio = 0.32
[]
[stuff2_strain]
type = ComputeFiniteStrain
block = '1'
[]
[stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-7
nl_rel_tol = 1e-7
l_tol = 1e-6
l_max_its = 50
nl_max_its = 30
start_time = 0.0
end_time = 6.5 # 6.5
dt = 0.0125
dtmin = 1e-5
[Predictor]
type = SimplePredictor
scale = 1.0
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
exodus = true
csv = true
hide = 'nodal_area penetration contact_pressure'
[chkfile]
type = CSV
start_time = 0.0
execute_vector_postprocessors_on = FINAL
[]
[console]
type = Console
max_rows = 5
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/solid_mechanics/test/tests/umat/analysis_steps/elastic_temperature_steps_uo_intervals.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Functions]
[top_pull_step2]
type = ParsedFunction
expression = (t-5.0)/20
[]
# Forced evolution of temperature
[temperature_load]
type = ParsedFunction
expression = '273'
[]
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temperature_function]
type = FunctionAux
variable = temperature
function = temperature_load
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
[]
[]
[BCs]
[y_step1]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[]
[y_pull_function_step2]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull_step2
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Controls]
[step1]
type = AnalysisStepPeriod
enable_objects = 'BCs::y_step1'
disable_objects = 'BCs::y_pull_function_step2'
analysis_step_user_object = step_uo
step_number = 0
[]
[step2]
type = AnalysisStepPeriod
enable_objects = 'BCs::y_pull_function_step2'
disable_objects = 'BCs::y_step1'
analysis_step_user_object = step_uo
step_number = 1
[]
[]
[UserObjects]
[step_uo]
type = AnalysisStepUserObject
number_steps = 2
total_time_interval = 10
[]
[]
[Materials]
[umat]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_temperature'
num_state_vars = 0
temperature = temperature
use_one_based_indexing = true
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 10
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test3qns.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test3q.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-10
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test3qns_out
exodus = true
[]
(modules/solid_mechanics/test/tests/multi/two_surface04.i)
# Plasticit models:
# SimpleTester with a = 0 and b = 1 and strength = 1
# SimpleTester with a = 1 and b = 1 and strength = 2
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 4.0E-6m in y directions and 2.0E-6 in z direction.
# trial stress_zz = 2 and stress_yy = 4
#
# Then both SimpleTesters should activate initially and return to the "corner" point
# (stress_zz = 1 = stress_yy), but then the plastic multiplier for SimpleTester1 will
# be negative, and so it will be deactivated, and the algorithm will return to
# stress_zz = 0, stress_yy = 2
# internal1 should be zero, internal2 should be 2
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '4E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '2E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[]
[UserObjects]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 2
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = two_surface04
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/combined/test/tests/cavity_pressure/rz_abs_ref.i)
#
# Cavity Pressure Test
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (2) with an interior cavity of volume 8.
# Block 1 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts T in the following way:
# T => T0 + beta * t
# with
# beta = T0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# At t = 1, p = 200.
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
reference_vector = ref
extra_tag_vectors = ref
[]
[GlobalParams]
displacements = 'disp_r disp_z'
absolute_value_vector_tags = ref
[]
[Mesh]
file = rz.e
[]
[Functions]
[temperature]
type = PiecewiseLinear
x = '0 1'
y = '1 2'
scale_factor = 240.54443866068704
[]
[]
[Variables]
[disp_r]
[]
[disp_z]
[]
[temp]
initial_condition = 240.54443866068704
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
[]
[heat]
type = Diffusion
variable = temp
use_displaced_mesh = true
[]
[]
[BCs]
[no_x]
type = DirichletBC
variable = disp_r
boundary = '1 2'
value = 0.0
[]
[no_y]
type = DirichletBC
variable = disp_z
boundary = '1 2'
value = 0.0
[]
[temperatureInterior]
type = FunctionDirichletBC
boundary = 2
function = temperature
variable = temp
[]
[CavityPressure]
[1]
boundary = 2
initial_pressure = 100
R = 8.314472
temperature = aveTempInterior
volume = internalVolume
startup_time = 0.5
output = ppress
[]
[]
[]
[Materials]
[elastic_tensor1]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 1
[]
[strain1]
type = ComputeAxisymmetricRZFiniteStrain
block = 1
[]
[stress1]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elastic_tensor2]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 2
[]
[strain2]
type = ComputeAxisymmetricRZFiniteStrain
block = 2
[]
[stress2]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_abs_tol = 1e-10
l_max_its = 20
dt = 0.5
end_time = 1.0
use_pre_SMO_residual = true
[]
[Postprocessors]
[internalVolume]
type = InternalVolume
boundary = 2
execute_on = 'initial linear'
[]
[aveTempInterior]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial linear'
[]
[]
[Outputs]
exodus = true
[checkpoint]
type = Checkpoint
num_files = 1
[]
[]
(modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_rayleigh_hht.i)
# Wave propogation in 1D using HHT time integration in the presence of Rayleigh damping
#
# The test is for an 1D bar element of length 4m fixed on one end
# with a sinusoidal pulse dirichlet boundary condition applied to the other end.
# alpha, beta and gamma are HHT time integration parameters
# eta and zeta are mass dependent and stiffness dependent Rayleigh damping
# coefficients, respectively.
# The equation of motion in terms of matrices is:
#
# M*accel + (eta*M+zeta*K)*((1+alpha)*vel-alpha*vel_old)
# +(1+alpha)*K*disp-alpha*K*disp_old = 0
#
# Here M is the mass matrix, K is the stiffness matrix
#
# The displacement at the first, second, third and fourth node at t = 0.1 are
# -7.787499960311491942e-02, 1.955566679096475483e-02 and -4.634888180231294501e-03, respectively.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 4
nz = 1
xmin = 0.0
xmax = 0.1
ymin = 0.0
ymax = 4.0
zmin = 0.0
zmax = 0.1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[]
[Kernels]
[./DynamicSolidMechanics]
displacements = 'disp_x disp_y disp_z'
hht_alpha = -0.3
stiffness_damping_coefficient = 0.1
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.422
gamma = 0.8
eta=0.1
alpha = -0.3
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.422
gamma = 0.8
eta=0.1
alpha = -0.3
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.422
gamma = 0.8
eta = 0.1
alpha = -0.3
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.422
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.8
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.422
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.8
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.422
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.8
execute_on = timestep_end
[../]
[]
[BCs]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = top
value=0.0
[../]
[./top_x]
type = DirichletBC
variable = disp_x
boundary = top
value=0.0
[../]
[./top_z]
type = DirichletBC
variable = disp_z
boundary = top
value=0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = right
value=0.0
[../]
[./right_z]
type = DirichletBC
variable = disp_z
boundary = right
value=0.0
[../]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = left
value=0.0
[../]
[./left_z]
type = DirichletBC
variable = disp_z
boundary = left
value=0.0
[../]
[./front_x]
type = DirichletBC
variable = disp_x
boundary = front
value=0.0
[../]
[./front_z]
type = DirichletBC
variable = disp_z
boundary = front
value=0.0
[../]
[./back_x]
type = DirichletBC
variable = disp_x
boundary = back
value=0.0
[../]
[./back_z]
type = DirichletBC
variable = disp_z
boundary = back
value=0.0
[../]
[./bottom_x]
type = DirichletBC
variable = disp_x
boundary = bottom
value=0.0
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value=0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = bottom
function = displacement_bc
[../]
[]
[Materials]
[./Elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1 0'
[../]
[./strain]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeLinearElasticStress
block = 0
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = 'density'
prop_values = '1'
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 6.0
l_tol = 1e-12
nl_rel_tol = 1e-12
dt = 0.1
[]
[Functions]
[./displacement_bc]
type = PiecewiseLinear
data_file = 'sine_wave.csv'
format = columns
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_1]
type = NodalVariableValue
nodeid = 1
variable = disp_y
[../]
[./disp_2]
type = NodalVariableValue
nodeid = 3
variable = disp_y
[../]
[./disp_3]
type = NodalVariableValue
nodeid = 10
variable = disp_y
[../]
[./disp_4]
type = NodalVariableValue
nodeid = 14
variable = disp_y
[../]
[]
[Outputs]
exodus = true
perf_graph = true
[]
(test/tests/bcs/nodal_normals/cylinder_hexes.i)
[Mesh]
file = cylinder-hexes.e
[]
[Functions]
[./all_bc_fn]
type = ParsedFunction
expression = x*x+y*y
[../]
[./f_fn]
type = ParsedFunction
expression = -4
[../]
[]
[NodalNormals]
boundary = '1'
corner_boundary = 100
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = f_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = 'all_bc_fn'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1e-13
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/contact/test/tests/normalized_penalty/normalized_penalty.i)
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Mesh]
file = normalized_penalty.e
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Functions]
[./left_x]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0.02 0'
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
generate_output = 'stress_xx'
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
[]
[]
[Contact]
[./m3_s2]
primary = 3
secondary = 2
penalty = 1e10
normalize_penalty = true
formulation = penalty
tangential_tolerance = 1e-3
[../]
[]
[BCs]
[./left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 1
function = left_x
[../]
[./y]
type = DirichletBC
variable = disp_y
boundary = '1 2 3 4'
value = 0.0
[../]
[./right]
type = DirichletBC
variable = disp_x
boundary = '3 4'
value = 0
[../]
[]
[Materials]
[./stiffStuff1]
type = ComputeIsotropicElasticityTensor
block = '1 2 3 4 1000'
youngs_modulus = 3e8
poissons_ratio = 0.0
[../]
[./stiffStuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2 3 4 1000'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 5e-8
l_max_its = 100
nl_max_its = 10
dt = 0.5
num_steps = 4
[]
[Outputs]
exodus = true
[]
(modules/peridynamics/test/tests/failure_tests/2D_stretch_failure_BPD.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
cracks_start = '0.25 0.5 0'
cracks_end = '0.75 0.5 0'
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 8
ny = 8
[../]
[./gpd]
type = MeshGeneratorPD
input = gmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./damage]
[../]
[./intact_bonds_num]
[../]
[./critical_stretch]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./bond_status]
type = StretchBasedFailureCriterionPD
critical_variable = critical_stretch
variable = bond_status
[../]
[]
[UserObjects]
[./damage]
type = NodalDamageIndexPD
variable = damage
[../]
[./intact_bonds]
type = NodalNumIntactBondsPD
variable = intact_bonds_num
[../]
[]
[ICs]
[./critical_stretch]
type = ConstantIC
variable = critical_stretch
value = 0.001
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1002
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1000
function = '-0.001*t'
[../]
[./rbm_x]
type = RBMPresetOldValuePD
variable = disp_x
boundary = 999
[../]
[./rbm_y]
type = RBMPresetOldValuePD
variable = disp_y
boundary = 999
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = BOND
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.33
[../]
[./force_density]
type = ComputeSmallStrainConstantHorizonMaterialBPD
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
dt = 0.5
end_time = 1
[]
[Outputs]
file_base = 2D_stretch_failure_BPD
exodus = true
[]
(test/tests/time_steppers/iteration_adaptive/piecewise_linear.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./temp_spike]
type = PiecewiseLinear
x = '0 1 1.1 1.2 2'
y = '1 1 2 1 1'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
boundary = left
function = temp_spike
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = -1
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 2.0
verbose = true
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.9
optimal_iterations = 10
timestep_limiting_function = temp_spike
max_function_change = 0.5
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[]
[Outputs]
csv = true
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test4qtt.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test4qtt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.1
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.1
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_abs_tol = 1e-7
l_max_its = 10
start_time = 0.0
dt = 0.0125
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test4qtt_out
exodus = true
[]
(modules/solid_mechanics/test/tests/umat/elastic_shear/elastic_shear.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[tdisp]
type = ParsedFunction
expression = '0.025 * t'
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 1
zmin = 0
zmax = 1
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_xz stress_yz'
[]
[]
[BCs]
[bottom_x]
type = DirichletBC
variable = disp_x
boundary = bottom
value = 0
[]
[bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0
[]
[top_y]
type = DirichletBC
variable = disp_y
boundary = top
value = 0
[]
[top_z]
type = DirichletBC
variable = disp_z
boundary = top
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = top
function = tdisp
[]
[]
[Materials]
[umat]
type = AbaqusUMATStress
# c10=G/2 D=2/K
constant_properties = '5 0.025'
plugin = '../../../plugins/neo_hooke'
num_state_vars = 0
use_one_based_indexing = true
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 20
dt = 10.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
time_step_interval = 1
[]
(modules/combined/test/tests/nodal_patch_recovery/npr_with_lower_domains.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD4
order = FIRST
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.3
xmax = 0.3
ymin = -10
ymax = 10
nx = 2
ny = 67
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.31
xmax = 0.91
ymin = 7.7
ymax = 8.5
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[secondary]
input = block_rename
type = LowerDBlockFromSidesetGenerator
sidesets = 'block_left'
new_block_id = '30'
new_block_name = 'frictionless_secondary_subdomain'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'plank_right'
new_block_id = '20'
new_block_name = 'frictionless_primary_subdomain'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[temp]
order = ${order}
block = 'plank block'
scaling = 1e-1
[]
[thermal_lm]
order = ${order}
block = 'frictionless_secondary_subdomain'
scaling = 1e-7
[]
[frictionless_normal_lm]
order = ${order}
block = 'frictionless_secondary_subdomain'
use_dual = true
[]
[]
[AuxVariables]
[stress_xx]
order = FIRST
family = MONOMIAL
block = 'plank block'
[]
[stress_yy]
order = FIRST
family = MONOMIAL
block = 'plank block'
[]
[stress_xx_recovered]
order = FIRST
family = LAGRANGE
block = 'plank block'
[]
[stress_yy_recovered]
order = FIRST
family = LAGRANGE
block = 'plank block'
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
block = 'plank block'
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
block = 'plank block'
[]
[stress_xx_recovered]
type = NodalPatchRecoveryAux
variable = stress_xx_recovered
nodal_patch_recovery_uo = stress_xx_patch
execute_on = 'TIMESTEP_END'
block = 'plank block'
[]
[stress_yy_recovered]
type = NodalPatchRecoveryAux
variable = stress_yy_recovered
nodal_patch_recovery_uo = stress_yy_patch
execute_on = 'TIMESTEP_END'
block = 'plank block'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[action]
generate_output = 'stress_zz vonmises_stress hydrostatic_stress strain_xx strain_yy strain_zz'
block = 'plank block'
use_automatic_differentiation = false
strain = FINITE
[]
[]
[Kernels]
[hc]
type = HeatConduction
variable = temp
use_displaced_mesh = true
block = 'plank block'
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = plank_right
secondary_boundary = block_left
primary_subdomain = frictionless_primary_subdomain
secondary_subdomain = frictionless_secondary_subdomain
lm_variable = frictionless_normal_lm
disp_x = disp_x
disp_y = disp_y
[]
[stress_xx_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '0 0'
execute_on = 'NONLINEAR TIMESTEP_END'
block = 'plank block'
[]
[stress_yy_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '1 1'
execute_on = 'NONLINEAR TIMESTEP_END'
block = 'plank block'
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = plank_right
secondary_boundary = block_left
primary_subdomain = frictionless_primary_subdomain
secondary_subdomain = frictionless_secondary_subdomain
variable = frictionless_normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = plank_right
secondary_boundary = block_left
primary_subdomain = frictionless_primary_subdomain
secondary_subdomain = frictionless_secondary_subdomain
variable = frictionless_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = plank_right
secondary_boundary = block_left
primary_subdomain = frictionless_primary_subdomain
secondary_subdomain = frictionless_secondary_subdomain
variable = frictionless_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[thermal_contact]
type = GapConductanceConstraint
variable = thermal_lm
secondary_variable = temp
k = 1
use_displaced_mesh = true
primary_boundary = plank_right
primary_subdomain = frictionless_primary_subdomain
secondary_boundary = block_left
secondary_subdomain = frictionless_secondary_subdomain
displacements = 'disp_x disp_y'
[]
[]
[BCs]
[left_temp]
type = DirichletBC
variable = temp
boundary = 'plank_left'
value = 400
[]
[right_temp]
type = DirichletBC
variable = temp
boundary = 'block_right'
value = 300
[]
[left_x]
type = DirichletBC
variable = disp_x
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = block_right
function = '-0.04*sin(4*(t+1.5))+0.02'
preset = false
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = block_right
function = '-t'
preset = false
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'plank block'
[]
[heat_plank]
type = HeatConductionMaterial
block = plank
thermal_conductivity = 2
specific_heat = 1
[]
[heat_block]
type = HeatConductionMaterial
block = block
thermal_conductivity = 1
specific_heat = 1
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -snes_max_it'
petsc_options_value = 'lu NONZERO 1e-15 20'
end_time = 0.4
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'none'
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[avg_temp]
type = ElementAverageValue
variable = temp
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[stress_xx_recovered]
type = ElementExtremeValue
variable = stress_xx_recovered
block = 'block'
value_type = max
[]
[stress_yy_recovered]
type = ElementExtremeValue
variable = stress_yy_recovered
block = 'block'
value_type = max
[]
[]
[Outputs]
exodus = true
[comp]
type = CSV
show = 'contact avg_temp'
[]
[out]
type = CSV
[]
[dof]
type = DOFMap
execute_on = 'initial'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/except6.i)
# Plastic deformation, tensile failure, with normal=(1,0,0)
# With Lame lambda=0 and Lame mu=1, applying the following
# deformation to the zmax surface of a unit cube:
# disp_x = t
# should yield trial stress:
# stress_xx = 2*t
# Use tensile strength = 1, we should return to stress_xx = 1
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = right
function = 0
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = right
function = 0
[../]
[]
[AuxVariables]
[./strainp_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./strainp_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xx
index_i = 0
index_j = 0
[../]
[./strainp_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xy
index_i = 0
index_j = 1
[../]
[./strainp_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xz
index_i = 0
index_j = 2
[../]
[./strainp_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yy
index_i = 1
index_j = 1
[../]
[./strainp_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yz
index_i = 1
index_j = 2
[../]
[./strainp_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zz
index_i = 2
index_j = 2
[../]
[./straint_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xx
index_i = 0
index_j = 0
[../]
[./straint_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xy
index_i = 0
index_j = 1
[../]
[./straint_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xz
index_i = 0
index_j = 2
[../]
[./straint_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yy
index_i = 1
index_j = 1
[../]
[./straint_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yz
index_i = 1
index_j = 2
[../]
[./straint_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zz
index_i = 2
index_j = 2
[../]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = strainp_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = strainp_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = strainp_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = strainp_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = strainp_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = strainp_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = straint_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = straint_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = straint_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = straint_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = straint_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = straint_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 30
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1111077
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 40
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakInclinedPlaneStressUpdate
normal_vector = '0 0 0'
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-5
[../]
[]
[Executioner]
end_time = 2
dt = 1
type = Transient
[]
[Outputs]
file_base = except6
csv = true
[]
(modules/solid_mechanics/test/tests/notched_plastic_block/biaxial_smooth.i)
# Uses a multi-smooted version of Mohr-Coulomb (via CappedMohrCoulombStressUpdate and ComputeMultipleInelasticStress) to simulate the following problem.
# A cubical block is notched around its equator.
# All of its outer surfaces have roller BCs, but the notched region is free to move as needed
# The block is initialised with a high hydrostatic tensile stress
# Without the notch, the BCs do not allow contraction of the block, and this stress configuration is admissible
# With the notch, however, the interior parts of the block are free to move in order to relieve stress, and this causes plastic failure
# The top surface is then pulled upwards (the bottom is fixed because of the roller BCs)
# This causes more failure
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 9
ny = 9
nz = 9
xmin = 0
xmax = 0.1
ymin = 0
ymax = 0.1
zmin = 0
zmax = 0.1
[]
[block_to_remove_xmin]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 -0.01 0.045'
top_right = '0.01 0.11 0.055'
location = INSIDE
block_id = 1
input = generated_mesh
[]
[block_to_remove_xmax]
type = SubdomainBoundingBoxGenerator
bottom_left = '0.09 -0.01 0.045'
top_right = '0.11 0.11 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_xmin
[]
[block_to_remove_ymin]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 -0.01 0.045'
top_right = '0.11 0.01 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_xmax
[]
[block_to_remove_ymax]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 0.09 0.045'
top_right = '0.11 0.11 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_ymin
[]
[remove_block]
type = BlockDeletionGenerator
block = 1
input = block_to_remove_ymax
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_zz'
eigenstrain_names = ini_stress
[../]
[]
[Postprocessors]
[./uz]
type = PointValue
point = '0 0 0.1'
use_displaced_mesh = false
variable = disp_z
[../]
[./s_zz]
type = ElementAverageValue
use_displaced_mesh = false
variable = stress_zz
[../]
[./num_res]
type = NumResidualEvaluations
[../]
[./nr_its] # num_iters is the average number of NR iterations encountered per element in this timestep
type = ElementAverageValue
variable = num_iters
[../]
[./max_nr_its] # max_num_iters is the maximum number of NR iterations encountered in the element during the whole simulation
type = ElementExtremeValue
variable = max_num_iters
[../]
[./runtime]
type = PerfGraphData
data_type = TOTAL
section_name = 'Root'
[../]
[]
[BCs]
# back=zmin, front=zmax, bottom=ymin, top=ymax, left=xmin, right=xmax
[./xmin_xzero]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./xmax_xzero]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.0
[../]
[./ymin_yzero]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./ymax_yzero]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[../]
[./zmin_zzero]
type = DirichletBC
variable = disp_z
boundary = back
value = '0'
[../]
[./zmax_disp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '1E-6*max(t,0)'
[../]
[]
[AuxVariables]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./num_iters]
order = CONSTANT
family = MONOMIAL
[../]
[./max_num_iters]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./num_iters_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = num_iters
[../]
[./max_num_iters_auxk]
type = MaterialRealAux
property = max_plastic_NR_iterations
variable = max_num_iters
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 6
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E16
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 5E6
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 10
convert_to_radians = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 16E9
poissons_ratio = 0.25
[../]
[./mc]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = ts
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
smoothing_tol = 0.2E6
yield_function_tol = 1E-5
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[./strain_from_initial_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '6E6 0 0 0 6E6 0 0 0 6E6'
eigenstrain_name = ini_stress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
start_time = -1
end_time = 10
dt = 1
solve_type = NEWTON
type = Transient
l_tol = 1E-2
nl_abs_tol = 1E-5
nl_rel_tol = 1E-7
l_max_its = 200
nl_max_its = 400
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[]
[Outputs]
file_base = biaxial_smooth
perf_graph = true
exodus = false
csv = true
[]
(test/tests/outputs/sampled_output/over_sampling_test_file.i)
[Mesh]
type = FileMesh
file = square_3x3.e
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[./forcing_fn]
type = ParsedFunction
expression = -4+(x*x+y*y)
[../]
[]
[Variables]
active = 'u'
[./u]
order = THIRD
family = HERMITE
[../]
[]
[Kernels]
active = 'ie diff ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1 2 3 4'
function = exact_fn
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.2
start_time = 0
num_steps = 5
[]
[Outputs]
file_base = out_file
exodus = true
[./oversampling]
file_base = out_file_oversample
type = Exodus
refinements = 3
[../]
[]
(test/tests/time_integrators/crank-nicolson/cranic.i)
#
# Testing a solution that is second order in space and second order in time
#
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*((x*x)+(y*y))-(4*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*((x*x)+(y*y))
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
scheme = 'crank-nicolson'
start_time = 0.0
num_steps = 5
dt = 0.25
# [./Adaptivity]
# refine_fraction = 0.2
# coarsen_fraction = 0.3
# max_h_level = 4
# [../]
[]
[Outputs]
exodus = true
[]
(modules/xfem/test/tests/solid_mechanics_basic/test.i)
[GlobalParams]
#displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
use_crack_growth_increment = true
crack_growth_increment = 0.2
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 5
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '1.0 0.5 0.3 0.5'
time_start_cut = 0.0
time_end_cut = 2.0
heal_always = true
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
displacements = 'disp_x disp_y'
[./all]
strain = FINITE
planar_formulation = plane_strain
add_variables = true
displacements = 'disp_x disp_y'
[../]
[]
[Functions]
[./pull]
type = PiecewiseLinear
x='0 50 100'
y='0 0.02 0.1'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[../]
[./bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[../]
[./topx]
type = DirichletBC
boundary = top
variable = disp_x
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pull
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 0
[../]
[./_elastic_strain]
type = ComputeFiniteStrainElasticStress
block = 0
displacements = 'disp_x disp_y'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-9
# time control
start_time = 0.0
dt = 1.0
end_time = 2.0
num_steps = 5000
max_xfem_update = 1
[]
[Outputs]
file_base = crack_propagation_2d_out
exodus = true
execute_on = timestep_end
[./console]
type = Console
output_linear = true
[../]
[]
(test/tests/interfacekernels/adaptivity/adaptivity.i)
# This input file is used for two tests:
# 1) Check that InterfaceKernels work with mesh adaptivity
# 2) Error out when InterfaceKernels are used with adaptivity
# and stateful material prpoerties
[Mesh]
parallel_type = 'replicated'
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[]
[./subdomain1]
input = gen
type = SubdomainBoundingBoxGenerator
bottom_left = '0.5 0 0'
top_right = '1 1 0'
block_id = 1
[../]
[./interface]
type = SideSetsBetweenSubdomainsGenerator
input = subdomain1
primary_block = '0'
paired_block = '1'
new_boundary = 'primary0_interface'
[../]
[./break_boundary]
input = interface
type = BreakBoundaryOnSubdomainGenerator
[../]
[]
[Variables]
[./u]
[./InitialCondition]
type = ConstantIC
value = 1
[../]
block = 0
[../]
[./u_neighbor]
[./InitialCondition]
type = ConstantIC
value = 1
[../]
block = 1
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = (x*x*x)-6.0*x
[../]
[./bc_fn]
type = ParsedFunction
expression = (x*x*x)
[../]
[]
[Kernels]
[./diff]
type = MatDiffusionTest
variable = u
prop_name = diffusivity
block = 0
[../]
[./abs]
type = Reaction
variable = u
block = 0
[../]
[./forcing]
type = BodyForce
variable = u
function = forcing_fn
block = 0
[../]
[./diffn]
type = MatDiffusionTest
variable = u_neighbor
prop_name = diffusivity
block = 1
[../]
[./absn]
type = Reaction
variable = u_neighbor
block = 1
[../]
[./forcingn]
type = BodyForce
variable = u_neighbor
function = forcing_fn
block = 1
[../]
[]
[InterfaceKernels]
[./flux_match]
type = PenaltyInterfaceDiffusion
variable = u
neighbor_var = u_neighbor
boundary = primary0_interface
penalty = 1e6
[../]
[]
[BCs]
[./u]
type = FunctionDirichletBC
variable = u
boundary = 'left'
function = bc_fn
[../]
[./u_neighbor]
type = FunctionDirichletBC
variable = u_neighbor
boundary = 'right'
function = bc_fn
[../]
[]
[Materials]
active = 'constant'
[./stateful]
type = StatefulTest
prop_names = 'diffusivity'
prop_values = '1'
block = '0 1'
[../]
[./constant]
type = GenericConstantMaterial
prop_names = 'diffusivity'
prop_values = '1'
block = '0 1'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
[]
[Adaptivity]
marker = 'marker'
steps = 1
[./Markers]
[./marker]
type = BoxMarker
bottom_left = '0 0 0'
top_right = '1 1 0'
inside = refine
outside = coarsen
[../]
[../]
[]
[Outputs]
exodus = true
[]
(modules/xfem/test/tests/solid_mechanics_basic/test_crack_counter.i)
# This test is used to verify that the pure test object (TestCrackCounter)
# is correctly using the API for extracting the crack_tip_origin_direction_map
# from XFEM. The map contains information of the location of all the crack tips
# computed by XFEM. The TestCrackCounter postprocessor simply returns the
# number of elements in the map which corresponds to the number of cracks.
#
# In this test case 4 prescribed cracks are applied. Therefore, the
# TestCrackCounter postprocessor returns a value of 4.
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 11
ny = 11
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '1.0 0.5 0.7 0.5'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[./line_seg_cut_uo2]
type = LineSegmentCutUserObject
cut_data = '0.0 0.5 0.3 0.5'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[./line_seg_cut_uo3]
type = LineSegmentCutUserObject
cut_data = '0.5 0.0 0.5 0.3'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[./line_seg_cut_uo4]
type = LineSegmentCutUserObject
cut_data = '0.5 1.0 0.5 0.7'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
planar_formulation = plane_strain
add_variables = true
[../]
[]
[Functions]
[./pull]
type = PiecewiseLinear
x='0 50 100'
y='0 0.02 0.1'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[../]
[./bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[../]
[./topx]
type = DirichletBC
boundary = top
variable = disp_x
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pull
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 0
[../]
[./_elastic_strain]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Postprocessors]
[./number_of_cracks]
type = TestCrackCounter
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-9
# time control
start_time = 0.0
dt = 1.0
end_time = 1.0
num_steps = 5000
max_xfem_update = 1
[]
[Outputs]
csv = true
[]
(test/tests/mortar/continuity-2d-conforming/equalgradient.i)
[Mesh]
[file]
type = FileMeshGenerator
file = 2blk-conf.e
[]
[secondary]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '101'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = '100'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = '1 2'
[../]
[./lmx]
order = FIRST
family = LAGRANGE
block = 'secondary_lower'
[../]
[./lmy]
order = FIRST
family = LAGRANGE
block = 'secondary_lower'
[../]
[]
[ICs]
[./block1]
type = FunctionIC
variable = u
block = 1
function = y
[../]
[./block2]
type = FunctionIC
variable = u
block = 2
function = y-0.5
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[Constraints]
[./cedx]
type = EqualGradientConstraint
secondary_variable = u
variable = lmx
primary_boundary = 100
primary_subdomain = 10000
secondary_boundary = 101
secondary_subdomain = 10001
component = 0
[../]
[./cedy]
type = EqualGradientConstraint
secondary_variable = u
variable = lmy
primary_boundary = 100
primary_subdomain = 10000
secondary_boundary = 101
secondary_subdomain = 10001
component = 1
[../]
[]
[BCs]
[./all]
type = DiffusionFluxBC
variable = u
boundary = '2 4 100 101'
[../]
[./boundary]
type = DirichletBC
boundary = 1
variable = u
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
boundary = 3
variable = u
function = 0.5-t
[../]
[]
[Preconditioning]
[./fmp]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Transient
nl_rel_tol = 1e-11
l_tol = 1e-10
l_max_its = 10
dt = 0.05
num_steps = 3
[]
[Outputs]
exodus = true
print_linear_residuals = false
[]
(modules/xfem/test/tests/checkpoint/checkpoint.i)
# This test is for two layer materials with different youngs modulus
# The global stress is determined by switching the stress based on level set values
# The material interface is marked by a level set function
# The two layer materials are glued together
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./level_set_cut_uo]
type = LevelSetCutUserObject
level_set_var = ls
[../]
[]
[Mesh]
displacements = 'disp_x disp_y'
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
xmin = 0.0
xmax = 5.
ymin = 0.0
ymax = 5.
elem_type = QUAD4
[]
[./left_bottom]
type = ExtraNodesetGenerator
new_boundary = 'left_bottom'
coord = '0.0 0.0'
input = gen
[../]
[./left_top]
type = ExtraNodesetGenerator
new_boundary = 'left_top'
coord = '0.0 5.'
input = left_bottom
[../]
[]
[AuxVariables]
[./ls]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./ls_function]
type = FunctionAux
variable = ls
function = ls_func
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Functions]
[./ls_func]
type = ParsedFunction
expression = 'y-2.5'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./a_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./a_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./a_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./b_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./b_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./b_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./a_strain_xx]
type = RankTwoAux
rank_two_tensor = A_total_strain
index_i = 0
index_j = 0
variable = a_strain_xx
[../]
[./a_strain_yy]
type = RankTwoAux
rank_two_tensor = A_total_strain
index_i = 1
index_j = 1
variable = a_strain_yy
[../]
[./a_strain_xy]
type = RankTwoAux
rank_two_tensor = A_total_strain
index_i = 0
index_j = 1
variable = a_strain_xy
[../]
[./b_strain_xx]
type = RankTwoAux
rank_two_tensor = B_total_strain
index_i = 0
index_j = 0
variable = b_strain_xx
[../]
[./b_strain_yy]
type = RankTwoAux
rank_two_tensor = B_total_strain
index_i = 1
index_j = 1
variable = b_strain_yy
[../]
[./b_strain_xy]
type = RankTwoAux
rank_two_tensor = B_total_strain
index_i = 0
index_j = 1
variable = b_strain_xy
[../]
[]
[Constraints]
[./dispx_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_x
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[../]
[./dispy_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_y
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[../]
[./bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
boundary = top
variable = disp_x
function = 0.03*t
[../]
[./topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = '0.03*t'
[../]
[]
[Materials]
[./elasticity_tensor_A]
type = ComputeIsotropicElasticityTensor
base_name = A
youngs_modulus = 1e9
poissons_ratio = 0.3
[../]
[./strain_A]
type = ComputeSmallStrain
base_name = A
[../]
[./stress_A]
type = ComputeLinearElasticStress
base_name = A
[../]
[./elasticity_tensor_B]
type = ComputeIsotropicElasticityTensor
base_name = B
youngs_modulus = 1e5
poissons_ratio = 0.3
[../]
[./strain_B]
type = ComputeSmallStrain
base_name = B
[../]
[./stress_B]
type = ComputeLinearElasticStress
base_name = B
[../]
[./combined_stress]
type = LevelSetBiMaterialRankTwo
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = stress
[../]
[./combined_dstressdstrain]
type = LevelSetBiMaterialRankFour
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = Jacobian_mult
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'bt'
# controls for linear iterations
l_max_its = 20
l_tol = 1e-3
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-7
# time control
start_time = 0.0
dt = 0.1
num_steps = 2
max_xfem_update = 1
[]
[Outputs]
checkpoint = true
exodus = true
execute_on = timestep_end
csv = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/combined/test/tests/thermal_elastic/thermal_elastic.i)
# Patch Test
# This test is designed to compute constant xx, yy, zz, xy, yz, and xz
# stress on a set of irregular hexes. The mesh is composed of one
# block with seven elements. The elements form a unit cube with one
# internal element. There is a nodeset for each exterior node.
# The cube is displaced by 1e-6 units in x, 2e-6 in y, and 3e-6 in z.
# The faces are sheared as well (1e-6, 2e-6, and 3e-6 for xy, yz, and
# zx). This gives a uniform strain/stress state for all six unique
# tensor components. This displacement is again applied in the second
# step.
# With Young's modulus at 1e6 and Poisson's ratio at 0, the shear
# modulus is 5e5 (G=E/2/(1+nu)). Therefore, for the mechanical strain,
#
# stress xx = 1e6 * 1e-6 = 1
# stress yy = 1e6 * 2e-6 = 2
# stress zz = 1e6 * 3e-6 = 3
# stress xy = 2 * 5e5 * 1e-6 / 2 = 0.5
# (2 * G * gamma_xy / 2 = 2 * G * epsilon_xy)
# stress yz = 2 * 5e5 * 2e-6 / 2 = 1
# stress zx = 2 * 5e5 * 3e-6 / 2 = 1.5
# Young's modulus is a function of temperature for this test. The
# temperature changes from 100 to 500. The Young's modulus drops
# due to that temperature change from 1e6 to 6e5.
# Poisson's ratio also is a function of temperature and changes from
# 0 to 0.25.
# At the end of the temperature ramp, E=6e5 and nu=0.25. This gives
# G=2.4e=5. lambda=E*nu/(1+nu)/(1-2*nu)=2.4E5. The final stress
# is therefore
# stress xx = 2.4e5 * 12e-6 + 2*2.4e5*2e-6 = 3.84
# stress yy = 2.4e5 * 12e-6 + 2*2.4e5*4e-6 = 4.80
# stress zz = 2.4e5 * 12e-6 + 2*2.4e5*6e-6 = 5.76
# stress xy = 2 * 2.4e5 * 2e-6 / 2 = 0.48
# (2 * G * gamma_xy / 2 = 2 * G * epsilon_xy)
# stress yz = 2 * 2.4e5 * 4e-6 / 2 = 0.96
# stress xz = 2 * 2.4e5 * 6e-6 / 2 = 1.44
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = thermal_elastic.e
[]
[Functions]
[./ramp1]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 2.'
scale_factor = 1e-6
[../]
[./ramp2]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 2.'
scale_factor = 2e-6
[../]
[./ramp3]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 2.'
scale_factor = 3e-6
[../]
[./ramp4]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 2.'
scale_factor = 4e-6
[../]
[./ramp6]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 2.'
scale_factor = 6e-6
[../]
[./tempFunc]
type = PiecewiseLinear
x = '0 1 2'
y = '100.0 100.0 500.0'
[../]
[]
[Variables]
[./temp]
initial_condition = 100.0
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_xz stress_yz'
strain = FINITE
[../]
[]
[Kernels]
[./heat]
type = Diffusion
variable = temp
[../]
[]
[BCs]
[./node1_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./node1_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = ramp2
[../]
[./node1_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 1
function = ramp3
[../]
[./node2_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 2
function = ramp1
[../]
[./node2_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = ramp2
[../]
[./node2_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 2
function = ramp6
[../]
[./node3_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 3
function = ramp1
[../]
[./node3_y]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[../]
[./node3_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 3
function = ramp3
[../]
[./node4_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[../]
[./node4_y]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[./node4_z]
type = DirichletBC
variable = disp_z
boundary = 4
value = 0.0
[../]
[./node5_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 5
function = ramp1
[../]
[./node5_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = ramp4
[../]
[./node5_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 5
function = ramp3
[../]
[./node6_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 6
function = ramp2
[../]
[./node6_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 6
function = ramp4
[../]
[./node6_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 6
function = ramp6
[../]
[./node7_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 7
function = ramp2
[../]
[./node7_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 7
function = ramp2
[../]
[./node7_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 7
function = ramp3
[../]
[./node8_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 8
function = ramp1
[../]
[./node8_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 8
function = ramp2
[../]
[./node8_z]
type = DirichletBC
variable = disp_z
boundary = 8
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = '10 12'
function = tempFunc
[../]
[]
[Materials]
[./youngs_modulus]
type = PiecewiseLinearInterpolationMaterial
x = '100 500'
y = '1e6 6e5'
property = youngs_modulus
variable = temp
[../]
[./poissons_ratio]
type = PiecewiseLinearInterpolationMaterial
x = '100 500'
y = '0 0.25'
property = poissons_ratio
variable = temp
[../]
[./elasticity_tensor]
type = ComputeVariableIsotropicElasticityTensor
args = temp
youngs_modulus = youngs_modulus
poissons_ratio = poissons_ratio
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
l_max_its = 20
start_time = 0.0
dt = 1.0
end_time = 2.0
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/thermo_mech/youngs_modulus_function_temp.i)
# ---------------------------------------------------------------------------
# This test is designed to verify the variable elasticity tensor functionality in the
# ComputeFiniteStrainElasticStress class with the elasticity_tensor_has_changed flag
# by varying the young's modulus with temperature. A constant strain is applied
# to the mesh in this case, and the stress varies with the changing elastic constants.
#
# Geometry: A single element cube in symmetry boundary conditions and pulled
# at a constant displacement to create a constant strain in the x-direction.
#
# Temperature: The temperature varies from 400K to 700K in this simulation by
# 100K each time step. The temperature is held constant in the last
# timestep to ensure that the elasticity tensor components are constant
# under constant temperature.
#
# Results: Because Poisson's ratio is set to zero, only the stress along the x
# axis is non-zero. The stress changes with temperature.
#
# Temperature(K) strain_{xx}(m/m) Young's Modulus(Pa) stress_{xx}(Pa)
# 400 0.001 10.0e6 1.0e4
# 500 0.001 10.0e6 1.0e4
# 600 0.001 9.94e6 9.94e3
# 700 0.001 9.93e6 9.93e3
#
# The tensor mechanics results align exactly with the analytical results above
# when this test is run with ComputeIncrementalStrain. When the test is
# run with ComputeFiniteStrain, a 0.05% discrepancy between the analytical
# strains and the simulation strain results is observed, and this discrepancy
# is carried over into the calculation of the elastic stress.
#-------------------------------------------------------------------------
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 400
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./temperature_function]
type = PiecewiseLinear
x = '1 4'
y = '400 700'
[../]
[]
[Kernels]
[./heat]
type = Diffusion
variable = temp
[../]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./elastic_strain_xx]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./u_left_fix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./u_back_fix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./u_pull_right]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.001
[../]
[./temp_bc_1]
type = FunctionDirichletBC
variable = temp
preset = false
boundary = '1 2 3 4'
function = temperature_function
[../]
[]
[Materials]
[./youngs_modulus]
type = PiecewiseLinearInterpolationMaterial
xy_data = '0 10e+6
599.9999 10e+6
600 9.94e+6
99900 10e3'
property = youngs_modulus
variable = temp
[../]
[./elasticity_tensor]
type = ComputeVariableIsotropicElasticityTensor
args = temp
youngs_modulus = youngs_modulus
poissons_ratio = 0.0
[../]
[./strain]
type = ComputeIncrementalStrain
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Executioner]
type = Transient
end_time = 5
[]
[Postprocessors]
[./elastic_strain_xx]
type = ElementAverageValue
variable = elastic_strain_xx
[../]
[./elastic_stress_xx]
type = ElementAverageValue
variable = stress_xx
[../]
[./temp]
type = AverageNodalVariableValue
variable = temp
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/neml2/plasticity/kinharden.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = true
[]
[]
[]
[]
[NEML2]
input = 'kinharden_neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL POSTPROCESSOR POSTPROCESSOR MATERIAL MATERIAL'
moose_inputs = ' neml2_strain time time plastic_strain kinematic_plastic_strain'
neml2_inputs = ' forces/E forces/t old_forces/t old_state/internal/Ep old_state/internal/Kp'
moose_output_types = 'MATERIAL MATERIAL MATERIAL'
moose_outputs = ' neml2_stress plastic_strain kinematic_plastic_strain'
neml2_outputs = ' state/S state/internal/Ep state/internal/Kp'
moose_derivative_types = 'MATERIAL'
moose_derivatives = 'neml2_jacobian'
neml2_derivatives = 'state/S forces/E'
[]
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[convert_strain]
type = RankTwoTensorToSymmetricRankTwoTensor
from = 'mechanical_strain'
to = 'neml2_strain'
[]
[stress]
type = ComputeLagrangianObjectiveCustomSymmetricStress
custom_small_stress = 'neml2_stress'
custom_small_jacobian = 'neml2_jacobian'
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
preset = false
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 1e-3
dtmin = 1e-3
num_steps = 5
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/uel/test.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
xmax = 10
ymax = 3
elem_type = TRI3
[]
[]
[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 = left
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/elastic_uel_tri
use_displaced_mesh = false
num_state_vars = 8
constant_properties = '100 0.3' # E nu
[]
[]
[Problem]
kernel_coverage_check = false
[]
[Executioner]
type = Transient
dt = 1
num_steps = 15
[]
[Postprocessors]
[delta_l]
type = SideAverageValue
variable = disp_x
boundary = right
[]
[V]
type = ElementIntegralMaterialProperty
mat_prop = 1
[]
[]
[Outputs]
exodus = true
csv = true
print_linear_residuals = false
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_no_parts_steady_stabilized.i)
# This input file tests several different things:
# .) The axisymmetric (RZ) form of the governing equations.
# .) An open boundary.
# .) Not integrating the pressure by parts, thereby requiring a pressure pin.
# .) Natural boundary condition at the outlet.
[GlobalParams]
integrate_p_by_parts = false
laplace = true
gravity = '0 0 0'
supg = true
pspg = true
order = FIRST
[]
[Mesh]
file = '2d_cone.msh'
[]
[Problem]
coord_type = RZ
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = Newton
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'bjacobi ilu 4'
nl_rel_tol = 1e-12
nl_max_its = 6
[]
[Outputs]
console = true
[./out]
type = Exodus
[../]
[]
[Variables]
[./vel_x]
# Velocity in radial (r) direction
[../]
[./vel_y]
# Velocity in axial (z) direction
[../]
[./p]
[../]
[]
[BCs]
[./p_corner]
# This is required, because pressure term is *not* integrated by parts.
type = DirichletBC
boundary = top_right
value = 0
variable = p
[../]
[./u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[../]
[./v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[../]
[./u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[../]
[./v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[../]
[]
[Kernels]
[./mass]
type = INSMassRZ
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 'volume'
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[../]
[]
[Postprocessors]
[./flow_in]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'bottom'
execute_on = 'timestep_end'
[../]
[./flow_out]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'top'
execute_on = 'timestep_end'
[../]
[]
(test/tests/time_integrators/actually_explicit_euler_verification/ee-2d-linear-adapt.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = (x+y)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*(x+y)
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = ic
[../]
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
preset = false
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Adaptivity]
steps = 1
marker = box
max_h_level = 2
[./Markers]
[./box]
bottom_left = '-0.4 -0.4 0'
inside = refine
top_right = '0.4 0.4 0'
outside = do_nothing
type = BoxMarker
[../]
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
num_steps = 4
dt = 0.005
l_tol = 1e-12
[./TimeIntegrator]
type = ActuallyExplicitEuler
[../]
[]
[Outputs]
exodus = true
[./console]
type = Console
max_rows = 10
[../]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform18.i)
# Using CappedMohrCoulomb with compressive failure only
# A single unit element is stretched by -1E-6m in z direction.
# with Lame lambda = 0.6E6 and Lame mu (shear) = 1E6
# stress_zz = -2.6 Pa
# stress_xx = -0.6 Pa
# stress_yy = -0.6 Pa
# compressive_strength is set to 0.5Pa
#
# stress_zz = -0.5
# plastic multiplier = 2.1/2.6 E-6
# stress_xx = -0.6 - (2.1/2.6*-0.6) = -0.115
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-1.0E-6*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0.6E6 1E6'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.0
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform18
csv = true
[]
(modules/xfem/test/tests/pressure_bc/2d_pressure_displaced_mesh.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 5
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '0.0 0.5 1.0 0.5'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
planar_formulation = PLANE_STRAIN
generate_output = 'stress_xx stress_yy'
[../]
[]
[Functions]
[./pressure]
type = PiecewiseLinear
x = '0 1.0'
y = '500 500'
[../]
[./bc_func_tx]
type = ParsedFunction
expression = '0.5-(0.5-x)*cos(pi*t/2.0)-x'
[../]
[./bc_func_ty]
type = ParsedFunction
expression = '(0.5-x)*sin(pi*t/2.0)+0.5'
[../]
[]
[BCs]
[./bottom_y]
type = DirichletBC
boundary = 0
preset = false
variable = disp_y
value = 0.0
[../]
[./bottom_x]
type = DirichletBC
boundary = 0
preset = false
variable = disp_x
value = 0.0
[../]
[./top_right_y]
type = FunctionDirichletBC
boundary = 2
preset = false
variable = disp_y
function = bc_func_ty
[../]
[./top_right_x]
type = FunctionDirichletBC
boundary = 2
preset = false
variable = disp_x
function = bc_func_tx
[../]
[]
[DiracKernels]
[./pressure_x]
type = XFEMPressure
variable = disp_x
component = 0
function = pressure
use_displaced_mesh = true
[../]
[./pressure_y]
type = XFEMPressure
variable = disp_y
component = 1
function = pressure
use_displaced_mesh = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-14
# time control
start_time = 0.0
dt = 0.1
end_time = 1.0
[]
[Outputs]
file_base = 2d_pressure_displaced_mesh_out
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/small_deform6.i)
# apply repeated stretches in z direction, and smaller stretches in the x and y directions
# so that sigma_II = sigma_III,
# which means that lode angle = -30deg.
# The allows yield surface in meridional plane to be mapped out
# Using cap smoothing
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.9E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.9E-6*y*sin(t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 50
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningExponential
value_0 = 0
value_residual = 0.8726646 # 50deg
rate = 3000.0
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
tip_scheme = cap
mc_tip_smoother = 0
cap_start = 3
cap_rate = 0.8
mc_edge_smoother = 20
yield_function_tolerance = 1E-8
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 30
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform6
exodus = false
[./csv]
type = CSV
[../]
[]
(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
[]
(test/tests/time_integrators/dirk/dirk-2d-heat.i)
#
# Testing a solution that is second order in space and first order in time.
#
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 20
ny = 20
elem_type = QUAD9
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = exact_fn
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = ((x*x)+(y*y))-(4*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
start_time = 0.0
end_time = 1.0
dt = 1.0
nl_abs_tol=1e-13
nl_rel_tol=1e-13
[./TimeIntegrator]
type = LStableDirk2
[../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/combined/tutorials/introduction/thermal_mechanical_contact/thermomech_cont_step02.i)
#
# Three shell thermo mechanical contact
# https://mooseframework.inl.gov/modules/combined/tutorials/introduction/step02.html
#
[GlobalParams]
displacements = 'disp_x disp_y'
block = '0 1 2'
[]
[Problem]
# switch to an axisymmetric coordinate system
coord_type = RZ
[]
[Mesh]
# inner cylinder
[inner]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 40
xmax = 1
ymin = -1.75
ymax = 1.75
boundary_name_prefix = inner
[]
# middle shell with subdomain ID 1
[middle_elements]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 40
xmin = 1.1
xmax = 2.1
ymin = -2.5
ymax = 2.5
boundary_name_prefix = middle
boundary_id_offset = 4
[]
[middle]
type = SubdomainIDGenerator
input = middle_elements
subdomain_id = 1
[]
# outer shell with subdomain ID 2
[outer_elements]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 48
xmin = 2.2
xmax = 3.2
ymin = -3
ymax = 3
boundary_name_prefix = outer
boundary_id_offset = 8
[]
[outer]
type = SubdomainIDGenerator
input = outer_elements
subdomain_id = 2
[]
[collect_meshes]
type = MeshCollectionGenerator
inputs = 'inner middle outer'
[]
# add set of 3 nodes to remove rigid body modes for y-translation in each block
[pin]
type = ExtraNodesetGenerator
input = collect_meshes
new_boundary = pin
coord = '0 0 0; 1.6 0 0; 2.7 0 0'
[]
patch_update_strategy = iteration
[]
[Variables]
# temperature field variable (first order Lagrange by default)
[T]
[]
# temperature lagrange multipliers
[Tlm1]
block = 'inner_gap_secondary_subdomain'
[]
[Tlm2]
block = 'outer_gap_secondary_subdomain'
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = T
[]
[dTdt]
type = HeatConductionTimeDerivative
variable = T
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
eigenstrain_names = thermal
generate_output = 'vonmises_stress stress_xx strain_xx stress_yy strain_yy'
volumetric_locking_correction = true
temperature = T
[]
[]
[Contact]
[inner_gap]
primary = middle_left
secondary = inner_right
model = frictionless
formulation = mortar
c_normal = 1e+0
[]
[outer_gap]
primary = outer_left
secondary = middle_right
model = frictionless
formulation = mortar
c_normal = 1e+0
[]
[]
[Constraints]
# thermal contact constraint
[Tlm1]
type = GapConductanceConstraint
variable = Tlm1
secondary_variable = T
use_displaced_mesh = true
k = 1e-1
primary_boundary = middle_left
primary_subdomain = inner_gap_secondary_subdomain
secondary_boundary = inner_right
secondary_subdomain = inner_gap_primary_subdomain
[]
[Tlm2]
type = GapConductanceConstraint
variable = Tlm2
secondary_variable = T
use_displaced_mesh = true
k = 1e-1
primary_boundary = outer_left
primary_subdomain = outer_gap_secondary_subdomain
secondary_boundary = middle_right
secondary_subdomain = outer_gap_primary_subdomain
[]
[]
[BCs]
[center_axis_fix]
type = DirichletBC
variable = disp_x
boundary = 'inner_left'
value = 0
[]
[y_translation_fix]
type = DirichletBC
variable = disp_y
boundary = 'pin'
value = 0
[]
[heat_center]
type = FunctionDirichletBC
variable = T
boundary = 'inner_left'
function = t*40
[]
[cool_right]
type = DirichletBC
variable = T
boundary = 'outer_right'
value = 0
[]
[]
[Materials]
[eigen_strain_inner]
type = ComputeThermalExpansionEigenstrain
eigenstrain_name = thermal
temperature = T
thermal_expansion_coeff = 1e-3
stress_free_temperature = 0
block = 0
[]
[eigen_strain_middle]
type = ComputeThermalExpansionEigenstrain
eigenstrain_name = thermal
temperature = T
thermal_expansion_coeff = 2e-4
stress_free_temperature = 0
block = 1
[]
[eigen_strain_outer]
type = ComputeThermalExpansionEigenstrain
eigenstrain_name = thermal
temperature = T
thermal_expansion_coeff = 1e-5
stress_free_temperature = 0
block = 2
[]
[elasticity]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
# thermal properties
[thermal_conductivity_0]
type = HeatConductionMaterial
thermal_conductivity = 50
specific_heat = 1
block = 0
[]
[thermal_conductivity_1]
type = HeatConductionMaterial
thermal_conductivity = 5
specific_heat = 1
block = 1
[]
[thermal_conductivity_2]
type = HeatConductionMaterial
thermal_conductivity = 1
specific_heat = 1
block = 2
[]
[density]
type = Density
density = 1
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
# [Debug]
# show_var_residual_norms = true
# []
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu nonzero '
snesmf_reuse_base = false
end_time = 7
dt = 0.05
nl_rel_tol = 1e-08
nl_abs_tol = 1e-50
[Predictor]
type = SimplePredictor
scale = 0.5
[]
[]
[Outputs]
exodus = true
print_linear_residuals = false
perf_graph = true
[]
(modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_rayleigh_newmark.i)
# Wave propogation in 1D using Newmark time integration in the presence of Rayleigh damping
#
# The test is for an 1D bar element of length 4m fixed on one end
# with a sinusoidal pulse dirichlet boundary condition applied to the other end.
# beta and gamma are Newmark time integration parameters
# eta and zeta are mass dependent and stiffness dependent Rayleigh damping
# coefficients, respectively.
# The equation of motion in terms of matrices is:
#
# M*accel + (eta*M+zeta*K)*vel +K*disp = 0
#
# Here M is the mass matrix, K is the stiffness matrix
#
# The displacement at the second, third and fourth node at t = 0.1 are
# -7.776268399030435152e-02, 1.949967184623528985e-02 and -4.615737877580032046e-03, respectively
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 4
nz = 1
xmin = 0.0
xmax = 0.1
ymin = 0.0
ymax = 4.0
zmin = 0.0
zmax = 0.1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./DynamicSolidMechanics]
displacements = 'disp_x disp_y disp_z'
stiffness_damping_coefficient = 0.1
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.3025
gamma = 0.6
eta=0.1
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.3025
gamma = 0.6
eta=0.1
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.3025
gamma = 0.6
eta = 0.1
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.3025
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.6
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.3025
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.6
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.3025
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.6
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 0
index_j = 1
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 0
index_j = 1
[../]
[]
[BCs]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = top
value=0.0
[../]
[./top_x]
type = DirichletBC
variable = disp_x
boundary = top
value=0.0
[../]
[./top_z]
type = DirichletBC
variable = disp_z
boundary = top
value=0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = right
value=0.0
[../]
[./right_z]
type = DirichletBC
variable = disp_z
boundary = right
value=0.0
[../]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = left
value=0.0
[../]
[./left_z]
type = DirichletBC
variable = disp_z
boundary = left
value=0.0
[../]
[./front_x]
type = DirichletBC
variable = disp_x
boundary = front
value=0.0
[../]
[./front_z]
type = DirichletBC
variable = disp_z
boundary = front
value=0.0
[../]
[./back_x]
type = DirichletBC
variable = disp_x
boundary = back
value=0.0
[../]
[./back_z]
type = DirichletBC
variable = disp_z
boundary = back
value=0.0
[../]
[./bottom_x]
type = DirichletBC
variable = disp_x
boundary = bottom
value=0.0
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value=0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = bottom
function = displacement_bc
[../]
[]
[Materials]
[./Elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1 0'
[../]
[./strain]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeLinearElasticStress
block = 0
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = 'density'
prop_values = '1'
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 6.0
l_tol = 1e-12
nl_rel_tol = 1e-12
dt = 0.1
[]
[Functions]
[./displacement_bc]
type = PiecewiseLinear
data_file = 'sine_wave.csv'
format = columns
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_1]
type = NodalVariableValue
nodeid = 1
variable = disp_y
[../]
[./disp_2]
type = NodalVariableValue
nodeid = 3
variable = disp_y
[../]
[./disp_3]
type = NodalVariableValue
nodeid = 10
variable = disp_y
[../]
[./disp_4]
type = NodalVariableValue
nodeid = 14
variable = disp_y
[../]
[]
[Outputs]
exodus = true
perf_graph = true
[]
(modules/porous_flow/test/tests/poro_elasticity/undrained_oedometer.i)
# An undrained oedometer test on a saturated poroelastic sample.
#
# The sample is a single unit element, with roller BCs on the sides
# and bottom. A constant displacement is applied to the top: disp_z = -0.01*t.
# There is no fluid flow.
#
# Under these conditions
# porepressure = -(Fluid bulk modulus)*log(1 - 0.01t)
# stress_xx = (bulk - 2*shear/3)*disp_z/L (remember this is effective stress)
# stress_zz = (bulk + 4*shear/3)*disp_z/L (remember this is effective stress)
# where L is the height of the sample (L=1 in this test)
#
# Parameters:
# Bulk modulus = 2
# Shear modulus = 1.5
# fluid bulk modulus = 1
#
# Desired output:
# zdisp = -0.01*t
# p0 = 1*log(1-0.01t)
# stress_xx = stress_yy = -0.01*t
# stress_zz = -0.04*t
#
# Regarding the "log" - it just comes from conserving fluid mass
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[porepressure]
[]
[]
[BCs]
[confinex]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left right'
[]
[confiney]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom top'
[]
[basefixed]
type = DirichletBC
variable = disp_z
value = 0
boundary = back
[]
[top_velocity]
type = FunctionDirichletBC
variable = disp_z
function = -0.01*t
boundary = front
[]
[]
[Kernels]
[grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[]
[grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[]
[grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[]
[poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
variable = porepressure
fluid_component = 0
[]
[mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = porepressure
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 1
density0 = 1
thermal_expansion = 0
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '1 1.5'
# bulk modulus is lambda + 2*mu/3 = 1 + 2*1.5/3 = 2
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[eff_fluid_pressure]
type = PorousFlowEffectiveFluidPressure
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[]
[massfrac]
type = PorousFlowMassFraction
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_x disp_y disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureVG
m = 0.8
alpha = 1
[]
[]
[Postprocessors]
[fluid_mass]
type = PorousFlowFluidMass
fluid_component = 0
execute_on = 'initial timestep_end'
[]
[p0]
type = PointValue
outputs = csv
point = '0 0 0'
variable = porepressure
[]
[zdisp]
type = PointValue
outputs = csv
point = '0 0 0.5'
variable = disp_z
[]
[stress_xx]
type = PointValue
outputs = csv
point = '0 0 0'
variable = stress_xx
[]
[stress_yy]
type = PointValue
outputs = csv
point = '0 0 0'
variable = stress_yy
[]
[stress_zz]
type = PointValue
outputs = csv
point = '0 0 0'
variable = stress_zz
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-14 1E-8 10000'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 10
dt = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = undrained_oedometer
[csv]
type = CSV
[]
[]
(modules/level_set/test/tests/kernels/advection/advection_mms.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 12
nx = 48
[]
[Adaptivity]
steps = 5
marker = marker
[./Markers]
[./marker]
type = UniformMarker
mark = REFINE
[../]
[../]
[]
[Variables]
[./phi]
[../]
[]
[AuxVariables]
[./velocity]
family = LAGRANGE_VEC
[../]
[]
[ICs]
[./vel_ic]
type = VectorFunctionIC
variable = velocity
function = velocity_func
[]
[]
[BCs]
[./left]
type = FunctionDirichletBC
boundary = 'left'
function = phi_exact
variable = phi
[../]
[]
[Functions]
[./phi_exact]
type = ParsedFunction
expression = 'a*sin(pi*x/b)*cos(pi*x)'
symbol_names = 'a b'
symbol_values = '2 12'
[../]
[./phi_mms]
type = ParsedFunction
expression = '-2*pi*a*sin(pi*x)*sin(pi*x/b) + 2*pi*a*cos(pi*x)*cos(pi*x/b)/b'
symbol_names = 'a b'
symbol_values = '2 12'
[../]
[./velocity_func]
type = ParsedVectorFunction
expression_x = '2'
expression_y = '2'
[../]
[]
[Kernels]
[./phi_advection]
type = LevelSetAdvection
variable = phi
velocity = velocity
[../]
[./phi_forcing]
type = BodyForce
variable = phi
function = phi_mms
[../]
[]
[Postprocessors]
[./error]
type = ElementL2Error
function = phi_exact
variable = phi
[../]
[./h]
type = AverageElementSize
[../]
[]
[VectorPostprocessors]
active = ''
[./results]
type = LineValueSampler
variable = phi
start_point = '0 0 0'
end_point = '12 0 0'
num_points = 500
sort_by = x
[../]
[]
[Executioner]
type = Steady
nl_rel_tol = 1e-10
solve_type = NEWTON
# A steady-state pure advection problem is numerically challenging,
# it has a zero diagonal in the Jabocian matrix. The following solver
# settings seem to reliably solve this problem.
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
[]
[Outputs]
execute_on = 'TIMESTEP_END'
csv = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform22.i)
# Mohr-Coulomb only
# apply stretches in x direction and smaller stretches in the y direction
# to observe return to the MC plane
# This tests uses hardening of the cohesion. The returned configuration
# should obey
# 0 = 0.5 * (Smax - Smin) + 0.5 * (Smax + Smin) * sin(phi) - C cos(phi)
# which allows inference of C.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.4E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.1E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 6
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_max]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_mid]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_min]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./mc_coh]
type = SolidMechanicsHardeningCubic
value_0 = 10
value_residual = 20
internal_limit = 5E-6
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1E7
poissons_ratio = 0.3
[../]
[./mc]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = ts
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
smoothing_tol = 0
yield_function_tol = 1.0E-9
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_hard21
csv = true
[]
(test/tests/time_integrators/tvdrk2/2d-quadratic.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 20
ny = 20
elem_type = QUAD9
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*((x*x)+(y*y))-(4*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*((x*x)+(y*y))
[../]
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
implicit = true
[../]
[./diff]
type = Diffusion
variable = u
implicit = false
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
implicit = false
[../]
[]
[ICs]
[./u_ic]
type = FunctionIC
variable = u
function = ic
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
[./TimeIntegrator]
type = ExplicitTVDRK2
[../]
solve_type = 'LINEAR'
start_time = 0.0
num_steps = 10
dt = 0.0001
l_tol = 1e-8
[]
[Outputs]
exodus = true
perf_graph = true
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test2qtt.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test2q.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.1
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.1
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1.e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test2qtt_out
exodus = true
[]
(modules/solid_mechanics/test/tests/finite_strain_jacobian/bending_jacobian.i)
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 10
ymin = 0
ymax = 2
nx = 10
ny = 2
elem_type = QUAD4
[]
[corner]
type = ExtraNodesetGenerator
new_boundary = 101
coord = '0 0'
input = generated_mesh
[]
[side]
type = ExtraNodesetGenerator
new_boundary = 102
coord = '10 0'
input = corner
[]
[mid]
type = ExtraNodesetGenerator
new_boundary = 103
coord = '5 2'
input = side
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
use_finite_deform_jacobian = true
volumetric_locking_correction = false
[../]
[]
[Materials]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
[../]
[]
[BCs]
[./fix_corner_x]
type = DirichletBC
variable = disp_x
boundary = 101
value = 0
[../]
[./fix_corner_y]
type = DirichletBC
variable = disp_y
boundary = 101
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 102
value = 0
[../]
[./move_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 103
function = '-t'
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_max_its = 10
l_tol = 1e-4
l_max_its = 50
dt = 0.1
dtmin = 0.1
num_steps = 2
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/sliding_block/sliding/frictionless_kinematic.i)
# This is a benchmark test that checks constraint based frictionless
# contact using the kinematic method. In this test a constant
# displacement is applied in the horizontal direction to simulate
# a small block come sliding down a larger block.
#
# The gold file is run on one processor
# and the benchmark case is run on a minimum of 4 processors to ensure no
# parallel variability in the contact pressure and penetration results.
#
[Mesh]
file = sliding_elastic_blocks_2d.e
patch_size = 80
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[../]
[]
[AuxKernels]
[./zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./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
[../]
[]
[Postprocessors]
[./nonlinear_its]
type = NumNonlinearIterations
execute_on = timestep_end
[../]
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 222
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 222
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = -0.02
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./left_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 20 101'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.1
end_time = 15
num_steps = 1000
l_tol = 1e-6
nl_rel_tol = 1e-10
nl_abs_tol = 1e-6
dtmin = 0.01
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
time_step_interval = 10
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
secondary = 3
primary = 2
model = frictionless
penalty = 1e+6
normal_smoothing_distance = 0.1
[../]
[]
(test/tests/functions/piecewise_constant/piecewise_constant.i)
# This tests the PiecewiseConstant function.
# There are four variables and four functions: a,b,c, and d. The diffusion equation is "solved"
# for each of these variables with a boundary condition of type FunctionDirichletBC applied to a boundary
# (i.e. node set) that includes every node in the element, so the solution is the boundary condition defined by the function.
# Each boundary condition uses a function of type PiecewiseConstant.
#
# The value of the variables should correspond to the function.
[Mesh]
file = cube.e
# This problem only has 1 element, so using DistributedMesh in parallel
# isn't really an option, and we don't care that much about DistributedMesh
# in serial.
parallel_type = replicated
[]
[Variables]
[aVar]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[]
[bVar]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[]
[cVar]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[]
[dVar]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[]
[]
[Functions]
[a]
type = PiecewiseConstant
xy_data = '0.5 0.1
1.0 0.2
1.5 0.1'
direction = left
[]
[b]
type = PiecewiseConstant
x = '0.5 1.0 1.5'
y = '0.1 0.2 0.1'
direction = right
[]
[c]
type = PiecewiseConstant
data_file = pc.csv
direction = left
format = columns
[]
[d]
type = PiecewiseConstant
data_file = pc.csv
direction = right
format = columns
[]
[]
[Kernels]
[diffa]
type = Diffusion
variable = aVar
[]
[diffb]
type = Diffusion
variable = bVar
[]
[diffc]
type = Diffusion
variable = cVar
[]
[diffd]
type = Diffusion
variable = dVar
[]
[]
[BCs]
[a]
type = FunctionDirichletBC
variable = aVar
boundary = '1'
function = a
[]
[b]
type = FunctionDirichletBC
variable = bVar
boundary = '1'
function = b
[]
[c]
type = FunctionDirichletBC
variable = cVar
boundary = '1'
function = c
[]
[d]
type = FunctionDirichletBC
variable = dVar
boundary = '1'
function = d
[]
[]
[Executioner]
type = Transient
dt = 0.2
end_time = 3
nl_rel_tol = 1e-12
[]
[Outputs]
exodus = true
[]
(test/tests/auxscalarkernels/constant_scalar_aux/constant_scalar_aux.i)
#
# Testing a solution that is second order in space and first order in time
#
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[AuxVariables]
[./x]
family = SCALAR
order = FIRST
[../]
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[ICs]
[./ic_x]
type = ScalarConstantIC
variable = x
value = 11
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = ((x*x)+(y*y))-(4*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[]
[AuxScalarKernels]
[./const_x]
type = ConstantScalarAux
variable = x
value = 11
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
dt = 0.25
# [./Adaptivity]
# refine_fraction = 0.2
# coarsen_fraction = 0.3
# max_h_level = 4
# [../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform5.i)
# Plastic deformation, shear failure
# With Young = 10, poisson=0.25 (Lame lambda=4, mu=4)
# applying the following
# deformation to the zmax surface of a unit cube:
# disp_x = 8*t
# disp_y = 6*t
# disp_z = 5*t/6
# should yield trial stress:
# stress_zz = 10*t
# stress_zx = 32*t
# stress_zy = 24*t (so q_trial = 40*t)
# Use tan(friction_angle) = 0.5 and tan(dilation_angle) = 1/6, and cohesion=20,
# the system should return to p=0, q=20, ie stress_zz=0, stress_xz=16,
# stress_yz=12 on the first time step (t=1)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 8*t
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 6*t
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 5*t/6
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 20
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.166666666667
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 100
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 100
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '4 4'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-5
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform5
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/action/action_1D.i)
# Simple 1D plane strain test
[GlobalParams]
displacements = 'disp_x'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 1
nx = 10
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
add_variables = true
new_system = true
formulation = UPDATED
volumetric_locking_correction = false
[]
[]
[]
[]
[Functions]
[pull]
type = ParsedFunction
expression = '0.06 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = right
variable = disp_x
value = 0.0
[]
[pull]
type = FunctionDirichletBC
boundary = left
variable = disp_x
function = pull
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[stress_base]
type = ComputeLagrangianLinearElasticStress
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
dtmin = 1.0
end_time = 5.0
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/bouncing-block-contact/ping-ponging/kinematic-ping-pong.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-no-lower-d.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[ICs]
[./disp_y]
block = 2
variable = disp_y
value = ${fparse starting_point + offset}
type = ConstantIC
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = false
use_automatic_differentiation = true
strain = SMALL
[]
[]
[Materials]
[elasticity]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 1e0
poissons_ratio = 0.3
[]
[stress]
type = ADComputeLinearElasticStress
[]
[]
[Contact]
[leftright]
secondary = 10
primary = 20
model = frictionless
formulation = kinematic
penalty = 1e0
[]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[../]
[./leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[../]
[]
[Executioner]
type = Transient
num_steps = 19
end_time = 200
dt = 5
dtmin = 5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_hypre_type -mat_mffd_err'
petsc_options_value = 'hypre boomeramg 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
[exo]
type = Exodus
[]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/planar_xz.i)
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks in the x-z plane. Each element block
# is a square. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far bottom boundary
# is ramped from 100 to 200 over one time unit. The temperature of the far top
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
# The heat flux across the gap at time = 1 is then:
#
# Flux = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors. These results
# are the same as for the unit 1-D gap heat transfer between two unit cubes.
[Mesh]
[file]
type = FileMeshGenerator
file = simple_2D.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 90 0'
input = file
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_bottom]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_top]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-12
l_tol = 1e-3
l_max_its = 100
dt = 1e-1
end_time = 1.0
[]
[Postprocessors]
[./temp_bottom]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_top]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_bottom]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_top]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/cohesive_zone_model/bilinear_mixed.i)
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 2
xmax = 1
ymax = 2
nx = 1
ny = 2
[]
[block1]
type = SubdomainBoundingBoxGenerator
input = 'msh'
bottom_left = '0 0 0'
top_right = '1 1 0'
block_id = 1
block_name = 'block1'
[]
[block2]
type = SubdomainBoundingBoxGenerator
input = 'block1'
bottom_left = '0 1 0'
top_right = '1 2 0'
block_id = 2
block_name = 'block2'
[]
[split]
type = BreakMeshByBlockGenerator
input = block2
[]
[top_node]
type = ExtraNodesetGenerator
coord = '0 2 0'
input = split
new_boundary = top_node
[]
[bottom_node]
type = ExtraNodesetGenerator
coord = '0 0 0'
input = top_node
new_boundary = bottom_node
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
generate_output = 'stress_yy stress_xy strain_xy'
[all]
strain = FINITE
add_variables = true
use_automatic_differentiation = true
decomposition_method = TaylorExpansion
[]
[]
[]
[]
[BCs]
[fix_x]
type = DirichletBC
preset = true
value = 0.0
boundary = bottom_node
variable = disp_x
[]
[fix_top]
type = DirichletBC
preset = true
boundary = top
variable = disp_x
value = 0
[]
[top]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = 'if(t<=0.3,t,if(t<=0.6,0.3-(t-0.3),0.6-t))'
preset = true
[]
[bottom]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0
preset = true
[]
[]
[Modules/TensorMechanics/CohesiveZoneMaster]
[czm_ik]
boundary = 'interface'
[]
[]
[Materials]
[stress]
type = ADComputeFiniteStrainElasticStress
[]
[elasticity_tensor]
type = ADComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
[]
[czm]
type = BiLinearMixedModeTraction
boundary = 'interface'
penalty_stiffness = 1e6
GI_c = 1e3
GII_c = 1e2
normal_strength = 1e4
shear_strength = 1e3
displacements = 'disp_x disp_y'
eta = 2.2
viscosity = 1e-3
[]
[]
[Postprocessors]
[stress_yy]
type = ElementExtremeValue
variable = stress_yy
value_type = max
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
l_max_its = 2
l_tol = 1e-14
nl_max_its = 30
nl_rel_tol = 1e-50
nl_abs_tol = 1e-15
start_time = 0.0
dt = 0.01
end_time = 0.85
dtmin = 0.01
[]
[Outputs]
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/update_euler_angle.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[euler_angle_1]
order = CONSTANT
family = MONOMIAL
[]
[euler_angle_2]
order = CONSTANT
family = MONOMIAL
[]
[euler_angle_3]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[euler_angle_1]
type = MaterialRealVectorValueAux
variable = euler_angle_1
property = updated_Euler_angle
component = 0
execute_on = timestep_end
[]
[euler_angle_2]
type = MaterialRealVectorValueAux
variable = euler_angle_2
property = updated_Euler_angle
component = 1
execute_on = timestep_end
[]
[euler_angle_3]
type = MaterialRealVectorValueAux
variable = euler_angle_3
property = updated_Euler_angle
component = 2
execute_on = timestep_end
[]
[]
[BCs]
[Periodic]
[all]
variable = 'disp_x'
auto_direction = 'z'
[]
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front'
function = '0.01*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[updated_euler_angle]
type = ComputeUpdatedEulerAngle
radian_to_degree = true
[]
[]
[Postprocessors]
[euler_angle_1]
type = ElementAverageValue
variable = euler_angle_1
[]
[euler_angle_2]
type = ElementAverageValue
variable = euler_angle_2
[]
[euler_angle_3]
type = ElementAverageValue
variable = euler_angle_3
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu '
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.1
dtmin = 0.01
end_time = 5
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/neml2/viscoplasticity/isokinharden.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = true
[]
[]
[]
[]
[NEML2]
input = 'isokinharden_neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL MATERIAL POSTPROCESSOR POSTPROCESSOR MATERIAL MATERIAL MATERIAL'
moose_inputs = ' neml2_strain neml2_strain time time neml2_stress equivalent_plastic_strain kinematic_plastic_strain'
neml2_inputs = ' forces/E old_forces/E forces/t old_forces/t old_state/S old_state/internal/ep old_state/internal/Kp'
moose_output_types = 'MATERIAL MATERIAL MATERIAL'
moose_outputs = ' neml2_stress equivalent_plastic_strain kinematic_plastic_strain'
neml2_outputs = ' state/S state/internal/ep state/internal/Kp'
moose_derivative_types = 'MATERIAL'
moose_derivatives = 'neml2_jacobian'
neml2_derivatives = 'state/S forces/E'
[]
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[convert_strain]
type = RankTwoTensorToSymmetricRankTwoTensor
from = 'mechanical_strain'
to = 'neml2_strain'
[]
[stress]
type = ComputeLagrangianObjectiveCustomSymmetricStress
custom_small_stress = 'neml2_stress'
custom_small_jacobian = 'neml2_jacobian'
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
preset = false
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 1e-3
dtmin = 1e-3
num_steps = 5
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = hertz_cyl_finer.e
[]
allow_renumbering = false
[]
[Problem]
type = AugmentedLagrangianContactFEProblem
extra_tag_vectors = 'ref'
[]
[AuxVariables]
[penalty_normal_pressure]
[]
[penalty_frictional_pressure]
[]
[accumulated_slip_one]
[]
[tangential_vel_one]
[]
[normal_gap]
[]
[normal_lm]
[]
[saved_x]
[]
[saved_y]
[]
[active]
[]
[]
[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'
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
save_in = 'saved_x saved_y'
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 = penalty_friction_object_al_friction
contact_quantity = normal_pressure
boundary = 3
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_pressure_one
boundary = 3
[]
[penalty_tangential_vel_one]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_velocity_one
boundary = 3
[]
[penalty_accumulated_slip_one]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = penalty_friction_object_al_friction
contact_quantity = accumulated_slip_one
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = penalty_friction_object_al_friction
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
variable = normal_gap
user_object = penalty_friction_object_al_friction
contact_quantity = normal_gap
boundary = 3
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_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
[]
[active_set_size]
type = NodalSum
variable = active
[]
[]
[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 = 1e8
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 = 'NEWTON'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = -pc_type
petsc_options_value = lu
line_search = 'basic'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
nl_max_its = 50
l_tol = 1e-05
l_abs_tol = 1e-13
start_time = 0.0
end_time = 0.2 # 3.5
dt = 0.1
dtmin = 0.1
[Predictor]
type = SimplePredictor
scale = 1.0
[]
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
[]
[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
[vectorpp_output]
type = CSV
create_final_symlink = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
[]
[Contact]
[al_friction]
formulation = mortar_penalty
model = coulomb
primary = '2'
secondary = '3'
penalty = 1e5
penalty_friction = 1e8
friction_coefficient = 0.4
al_penetration_tolerance = 1e-7
al_incremental_slip_tolerance = 1.0 # Not active
penalty_multiplier = 100
penalty_multiplier_friction = 1
[]
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/RZ_cone_high_reynolds.i)
[GlobalParams]
gravity = '0 0 0'
laplace = true
transient_term = false
supg = true
pspg = true
family = LAGRANGE
order = FIRST
[]
[Mesh]
file = 'cone_linear_alltri.e'
[]
[Problem]
coord_type = RZ
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = NEWTON
[../]
[]
[Executioner]
# type = Transient
# dt = 0.005
# dtmin = 0.005
# num_steps = 5
# l_max_its = 100
# Block Jacobi works well for this problem, as does "-pc_type asm
# -pc_asm_overlap 2", but an overlap of 1 does not work for some
# reason?
# petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
# petsc_options_value = 'bjacobi ilu 4'
# Note: The Steady executioner can be used for this problem, if you
# drop the INSMomentumTimeDerivative kernels and use the following
# direct solver options.
type = Steady
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
nl_rel_tol = 1e-12
nl_max_its = 20
[]
[Outputs]
console = true
[./out]
type = Exodus
[../]
[]
[Variables]
[./vel_x]
# Velocity in radial (r) direction
[../]
[./vel_y]
# Velocity in axial (z) direction
[../]
[./p]
order = FIRST
[../]
[]
[BCs]
[./u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[../]
[./v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[../]
[./u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[../]
[./v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[../]
[]
[Kernels]
# [./x_momentum_time]
# type = INSMomentumTimeDerivative
# variable = vel_x
# [../]
# [./y_momentum_time]
# type = INSMomentumTimeDerivative
# variable = vel_y
# [../]
[./mass]
type = INSMassRZ
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 1
prop_names = 'rho mu'
prop_values = '1 1e-3'
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[../]
[]
[Postprocessors]
[./flow_in]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'bottom'
outputs = 'console' execute_on = 'timestep_end'
[../]
[./flow_out]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'top'
outputs = 'console' execute_on = 'timestep_end'
[../]
[]
(test/tests/outputs/variables/show_single_vars.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
# This test uses ElementalVariableValue postprocessors on specific
# elements, so element numbering needs to stay unchanged
allow_renumbering = false
[]
[Functions]
[./ffn]
type = ParsedFunction
expression = -4
[../]
[./exactfn]
type = ParsedFunction
expression = x*x+y*y
[../]
[./aux_exact_fn]
type = ParsedFunction
expression = t*(x*x+y*y)
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./force]
type = BodyForce
variable = u
function = ffn
[../]
[]
[AuxVariables]
[./aux_u]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./a]
type = FunctionAux
variable = aux_u
function = aux_exact_fn
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exactfn
[../]
[]
[Postprocessors]
[./elem_56]
type = ElementalVariableValue
variable = u
elementid = 56
[../]
[./aux_elem_99]
type = ElementalVariableValue
variable = aux_u
elementid = 99
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.01
start_time = 0
num_steps = 1
[]
[Outputs]
exodus = true
show = 'aux_u'
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform5.i)
# Using CappedMohrCoulomb with tensile failure only
# A single element is incrementally stretched in the in the z and x directions
# This causes the return direction to be along the hypersurface sigma_III = 0
# and the resulting stresses are checked to lie on the expected yield surface
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = finite
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '4*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = 'z*(t-0.5)'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 2.0'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.5
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 0.1
type = Transient
[]
[Outputs]
file_base = small_deform5
csv = true
[]
(modules/contact/test/tests/hertz_spherical/hertz_contact_hex27.i)
# Hertz Contact: Sphere on sphere
# Spheres have the same radius, Young's modulus, and Poisson's ratio.
# Define E:
# 1/E = (1-nu1^2)/E1 + (1-nu2^2)/E2
#
# Effective radius R:
# 1/R = 1/R1 + 1/R2
#
# F is the applied compressive load.
#
# Area of contact a::
# a^3 = 3FR/4E
#
# Depth of indentation d:
# d = a^2/R
#
#
# Let R1 = R2 = 2. Then R = 1.
#
# Let nu1 = nu2 = 0.25, E1 = E2 = 1.40625e7. Then E = 7.5e6.
#
# Let F = 10000. Then a = 0.1, d = 0.01.
#
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]#Comment
file = hertz_contact_hex27.e
allow_renumbering = false
[] # Mesh
[Functions]
[./pressure]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 795.77471545947674 # 10000/pi/2^2
[../]
[./disp_y]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. -0.01 -0.01'
[../]
[] # Functions
[Variables]
[./disp_x]
order = SECOND
family = LAGRANGE
[../]
[./disp_y]
order = SECOND
family = LAGRANGE
[../]
[./disp_z]
order = SECOND
family = LAGRANGE
[../]
[] # Variables
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic]
order = CONSTANT
family = MONOMIAL
[../]
[] # AuxVariables
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = SMALL
# extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[../]
[] # AuxKernels
[BCs]
[./base_x]
type = DirichletBC
variable = disp_x
boundary = 1000
value = 0.0
[../]
[./base_y]
type = DirichletBC
variable = disp_y
boundary = 1000
value = 0.0
[../]
[./base_z]
type = DirichletBC
variable = disp_z
boundary = 1000
value = 0.0
[../]
[./symm_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./symm_z]
type = DirichletBC
variable = disp_z
boundary = 3
value = 0.0
[../]
[./disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[] # BCs
[Contact]
[./dummy_name]
primary = 1000
secondary = 100
normalize_penalty = true
tangential_tolerance = 1e-3
penalty = 1e+10
[../]
[]
[Materials]
[./tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.40625e7
poissons_ratio = 0.25
[../]
[./stress]
type = ComputeLinearElasticStress
block = '1'
[../]
[./tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '1000'
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./stress_1000]
type = ComputeLinearElasticStress
block = '1000'
[../]
[] # Materials
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-7
l_max_its = 10
start_time = 0.0
dt = 0.5
end_time = 0.5 # was 2.0
[./Quadrature]
order = FIFTH
[../]
[] # Executioner
[Postprocessors]
[./maxdisp]
type = NodalVariableValue
nodeid = 386 # 387-1 where 387 is the exodus node number of the top-center node
variable = disp_y
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[] # Outputs
(modules/thermal_hydraulics/test/tests/components/form_loss_from_external_app_1phase/phy.form_loss_1phase.parent.i)
# This tests a form loss transfer using the MultiApp system. A dummy heat
# conduction problem is solved, then the form loss evaluated and transferred
# to the child app side of the solve, then the child app solves and then the
# parent continues solving
[Mesh]
type = GeneratedMesh
dim = 1
xmax = 2
nx = 10
[]
[Functions]
[left_bc_fn]
type = PiecewiseLinear
x = '0 1'
y = '300 310'
[]
[K_prime_fn]
type = ParsedFunction
expression = 't*(2-x)*x'
[]
[]
[AuxVariables]
[K_prime]
[]
[]
[AuxKernels]
[K_prime_ak]
type = FunctionAux
variable = K_prime
function = K_prime_fn
[]
[]
[Variables]
[T]
[]
[]
[ICs]
[T_ic]
type = ConstantIC
variable = T
value = 300
[]
[]
[Kernels]
[td]
type = TimeDerivative
variable = T
[]
[diff]
type = Diffusion
variable = T
[]
[]
[BCs]
[left]
type = FunctionDirichletBC
variable = T
boundary = left
function = left_bc_fn
[]
[]
[Executioner]
type = Transient
dt = 0.5
end_time = 5
nl_abs_tol = 1e-10
abort_on_solve_fail = true
[]
[MultiApps]
[child]
type = TransientMultiApp
app_type = ThermalHydraulicsApp
input_files = phy.form_loss_1phase.child.i
execute_on = 'timestep_end'
[]
[]
[Transfers]
[K_to_s]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = child
source_variable = K_prime
variable = K_prime
[]
[]
(modules/contact/test/tests/cohesive_zone_model/bilinear_mixed_mortar_only_czm.i)
[Mesh]
[base]
type = GeneratedMeshGenerator
dim = 2
xmax = 1.1
ymax = 1
xmin = -0.1
nx = 1
ny = 1
[]
[rename_base]
type = RenameBoundaryGenerator
input = base
old_boundary = 'top bottom left right'
new_boundary = 'top_base bottom_base left_base right_base'
[]
[base_id]
type = SubdomainIDGenerator
input = rename_base
subdomain_id = 1
[]
[top]
type = GeneratedMeshGenerator
dim = 2
xmax = 1
ymin = 1
ymax = 2
nx = 1
ny = 1
[]
[rename_top]
type = RenameBoundaryGenerator
input = top
old_boundary = 'top bottom left right'
new_boundary = '100 101 102 103'
[]
[top_id]
type = SubdomainIDGenerator
input = rename_top
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'base_id top_id'
[]
[top_node]
type = ExtraNodesetGenerator
coord = '0 2 0'
input = combined
new_boundary = top_node
[]
[bottom_node]
type = ExtraNodesetGenerator
coord = '-0.1 0 0'
input = top_node
new_boundary = bottom_node
[]
[secondary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10001
new_block_name = 'secondary_lower'
sidesets = 'top_base'
input = bottom_node
[]
[primary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10000
sidesets = '101'
new_block_name = 'primary_lower'
input = secondary
[]
patch_update_strategy = auto
patch_size = 20
allow_renumbering = false
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
generate_output = 'stress_yy'
[all]
strain = FINITE
add_variables = true
use_automatic_differentiation = true
decomposition_method = TaylorExpansion
generate_output = 'vonmises_stress'
block = '1 2'
[]
[]
[]
[]
[BCs]
[fix_x]
type = DirichletBC
preset = true
value = 0.0
boundary = bottom_node
variable = disp_x
[]
[fix_top]
type = DirichletBC
preset = true
boundary = 100
variable = disp_x
value = 0
[]
[top]
type = FunctionDirichletBC
boundary = 100
variable = disp_y
function = 'if(t<=0.3,t,if(t<=0.6,0.3-(t-0.3),0.6-t))'
preset = true
[]
[bottom]
type = DirichletBC
boundary = bottom_base
variable = disp_y
value = 0
preset = true
[]
[]
[Materials]
[normal_strength]
type = GenericConstantMaterial
prop_names = 'normal_strength'
prop_values = '1e3'
[]
[shear_strength]
type = GenericConstantMaterial
prop_names = 'shear_strength'
prop_values = '7.5e2'
[]
[stress]
type = ADComputeFiniteStrainElasticStress
block = '1 2'
[]
[elasticity_tensor]
type = ADComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
block = '1 2'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
l_max_its = 2
l_tol = 1e-14
nl_max_its = 150
nl_rel_tol = 1e-14
nl_abs_tol = 1e-12
start_time = 0.0
dt = 0.1
end_time = 1.0
dtmin = 0.1
[]
[Outputs]
exodus = true
[]
[UserObjects]
[czm_uo]
type = BilinearMixedModeCohesiveZoneModel
primary_boundary = 101
secondary_boundary = 'top_base'
primary_subdomain = 10000
secondary_subdomain = 10001
correct_edge_dropping = true
disp_x = disp_x
disp_y = disp_y
friction_coefficient = 0.0 # with 2.0 works
secondary_variable = disp_x
penalty = 0e6
penalty_friction = 0e4
use_physical_gap = true
# bilinear model parameters
normal_strength = 'normal_strength'
shear_strength = 'shear_strength'
penalty_stiffness = 200
power_law_parameter = 0.1
GI_c = 123
GII_c = 54
displacements = 'disp_x disp_y'
[]
[]
[Constraints]
[x]
type = NormalMortarMechanicalContact
primary_boundary = 101
secondary_boundary = 'top_base'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = czm_uo
[]
[y]
type = NormalMortarMechanicalContact
primary_boundary = 101
secondary_boundary = 'top_base'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = czm_uo
[]
[c_x]
type = MortarGenericTraction
primary_boundary = 101
secondary_boundary = 'top_base'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
cohesive_zone_uo = czm_uo
[]
[c_y]
type = MortarGenericTraction
primary_boundary = 101
secondary_boundary = 'top_base'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
cohesive_zone_uo = czm_uo
[]
[]
(test/tests/utils/2d_linear_interpolation/2d_linear_interpolation_test_internal.i)
# Test description - view this file in emacs and adjust the window size to view the file as it was created.
#
# This problem tests the MOOSE function PiecewiseBilinear and the MOOSE utility BilinearInterpolation, which are
# used to solve 2D linear interpolation problems.
#
# The problem is one element with node coordinate locations in x,y,z space as indicated in the ASCII art:
#
#
# ^
# |
# z
# |
#
# (1,1,2) (1,2,2)
# *--------------*
# / | / |
# / | (2,2,2) / |
# (2,1,2) *--------------* |
# | | | |
# | *---------|----* (1,2,1) --y-->
# | / (1,1,1) | /
# |/ |/
# *--------------*
# / (2,1,1) (2,2,1)
# /
# x
# /
# |_
#
# problem time ...0...1...2
#
#
# There are four variables and four functions of the same name, u,v,w, and A. The diffusion equation is solved
# for each of these variables with a boundary condition of type FunctionDirchletBC applied to a boundary
# (i.e. node set) that includes every node in the element. Each boundary condition uses a function of type
# PiecewiseBilinear that gets its value from the specified x, y, and z values.
#
# fred is a matrix of data whose first row and first column are vectors that can refer to either spacial positions
# corresponding to an axis or values of time. The remaining data are values of fred for a given row and column pair.
#
#
# Visualize fred like this:
#
# 0 1 3 where fred is a csv file that actually looks like this 0,1,3
# 0 0 0 0 0,0,0,0
# 1 0 1 3 1,0,1,3
# 3 0 5 7 3,0,5,7
#
# Another way to think of fred is:
#
# |0 1 3| - These values can be spacial positions corresponding to
# axis= 0,1, or 2, or time
#
#
# |0| |0 0 0|
# These values can be - |1| |0 1 3| - values of fred corresponding to row-column pairs
# time or spacial |3| |0 5 7|
# positions corresponding
# to axis= 0,1, or 2
#
#
# The parameters and possible values for the function PiecewiseBilinear are:
#
# x = '0 1 3'
# y = '0 1 3'
# z = '0 0 0 0 1 3 0 5 7'
# axis = 0, 1, or 2
# xaxis = 0, 1, or 2
# yaxis = 0, 1, or 2
# radial = true or false (false is default)
#
# where 0, 1, or 2 refer to the x, y, or z axis.
#
# If the parameter axis is defined, then the first row of fred are spacial position and the first column
# of fred are the values of time.
#
# If the parameter xaxis is defined, then the first row of fred are spacial positions and the first column
# of fred are the values of time ... just like defining the parameter axis.
#
# If the parameter yaxis is defined, then the first row of fred are time values and the first column of fred
# are spacial positions.
#
# If parameters axis AND EITHER xaxis or yaxis are defined together you'll get a moose error.
# i.e.
# axis = 0
# xaxis = 1
# results in an error. So, if you use the parameter axis, don't use xaxis or yaxis.
#
# If parameters xaxis and yaxis are defined (and radial is false), then the first row of fred are spacial positions corresponding to xaxis value,
# and the first column are spacial positions corresponding to the yaxis value.
#
# If xaxis and yaxis are defined and radial is true, the first row of fred contains values
# corresponding to the radius calculated from the coordinates of each point. Note that
# the definition of xaxis and yaxis define the "plane" of the radius. For example,
# xaxis = 0 and yaxis = 1 means that x and y components of the point are use to
# calculate the radius. xaxis = 1 and yaxis = 2 means that x and z components are used.
# The first column is for time in this case. xaxis and yaxis have to be specified and
# radial = true for this to work, otherwise a MOOSE error will result.
# This was developed so that an axisymmetric function could be defined for a 3D mesh.
#
[Mesh]
file = cube.e
# This problem only has 1 element, so using DistributedMesh in parallel
# isn't really an option, and we don't care that much about DistributedMesh
# in serial.
parallel_type = replicated
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[./w]
order = FIRST
family = LAGRANGE
[../]
[./A]
order = FIRST
family = LAGRANGE
[../]
[./scaled_u]
order = FIRST
family = LAGRANGE
[../]
[./R]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./u]
type = PiecewiseBilinear
x = '0 1 3'
y = '0 1 3'
z = '0 0 0 0 1 3 0 5 7'
axis = 0
[../]
#
# Example 1 - variable u
#
# In this example, the first variable is u and the parameter axis is given the value 0. For such a case, the first
# row of fred refers to nodal x-coordinate values and the first column of fred (after the first row) refers to the
# times 0, 1, and 3.
#
# So, at time = 0, the value of u at each node is 0, because that's the value of fred for all x-coordinate values at time=0.
#
# At time = 1, the value of u at nodes with x-coordinate = 1 is 1.
# , the value of u at nodes with x-coordinate = 2 is 2.
#
# You can check this value with your own 2D linear interpolation calculation. Go ahead and check all the examples!
#
# At time = 2, the value of u at nodes with x-coordinate = 1 is 3.
# , the value of u at nodes with x-coordinate = 2 is 4.
#
[./v]
type = PiecewiseBilinear
x = '0 1 3'
y = '0 1 3'
z = '0 0 0 0 1 3 0 5 7'
xaxis = 1
[../]
#
# Example 2 - variable v
#
# In this example, the variable is v and the parameter xaxis is given the value 1. For such a case, the first
# row of fred refers to nodal y-coordinate values and the first column of fred (after the first row) refers to the
# times 0, 1, and 3.
#
# At time = 0, the value of v at each node is 0, because that's the value of fred for all y-coordinate values at time=0.
#
# At time = 1, the value of v at nodes with y-coordinate = 1 is 1.
# , the value of v at nodes with y-coordinate = 2 is 2.
#
# At time = 2, the value of v at nodes with y-coordinate = 1 is 3.
# , the value of v at nodes with y-coordinate = 2 is 4.
#
[./w]
type = PiecewiseBilinear
x = '0 1 3'
y = '0 1 3'
z = '0 0 0 0 1 3 0 5 7'
yaxis = 2
[../]
#
# Example 3 - variable w
#
# In this example, the variable is w and the parameter yaxis is given the value 2. For such a case, the first
# row of fred refers to times 0, 1, and 3. The first column of fred (after the first row) refers to the nodal
# z-coordinate values.
#
# At time = 0, the value of w at each node is 0, because that's the value of fred for all z-coordinate values at time=0.
#
# At time = 1, the value of w at nodes with z-coordinate = 1 is 1.
# , the value of w at nodes with z-coordinate = 2 is 3.
#
# At time = 2, the value of w at nodes with z-coordinate = 1 is 2.
# , the value of w at nodes with z-coordinate = 2 is 4.
#
[./A]
type = PiecewiseBilinear
x = '0 1 3'
y = '0 1 3'
z = '0 0 0 0 1 3 0 5 7'
xaxis = 0
yaxis = 1
[../]
#
# Example 4 - variable A
#
# In this example, the variable is A and the parameters xaxis AND yaxis BOTH defined and given the values 0 and 1 respectivley.
# For such a case, the first row of fred refers to nodal x-coordinate values.
# The first column refers to nodal y-coordinate values.
#
# In this example the values are the same for every time (except time=0 where the values are undefined)
#
# For nodal coordinates with x=1, y=1 A = 1
# x=2, y=1 A = 2
# x=1, y=2 A = 3
# x=2, y=2 A = 4
#
# You can use this 2D linear interpolation function for anything (BC, Kernel, AuxKernel, Material) that has
# a function as one of its parameters. For example, this can be used to describe the fission peaking factors
# that vary in time and along the length of a fuel rod, or a fission rate distribution in metal fuel that varies
# as a function of x and y postion, but is constant in time.
#
#
[./scaled_u]
type = PiecewiseBilinear
x = '0 1 3'
y = '0 1 3'
z = '0 0 0 0 1 3 0 5 7'
axis = 0
scale_factor = 2
[../]
#
# Example 5 - variable scaled_u. This is just a scaled version of Example 1 to see if the scale_factor works
#
#
#
[./R]
type = PiecewiseBilinear
x = '0 1 3'
y = '0 1 3'
z = '0 0 0 0 1 3 0 5 7'
xaxis = 0
yaxis = 1
radial = true
[../]
#
# Example 6 - variable R
#
# In this example, the variable is R and the parameters xaxis and yaxis are defined and
# given the values 0 and 1 respectivley. The parameter radial is also defined and given
# the value true. In this case, the x and y components of each point are used to
# calculate a radius. This radius is used in the call to BilinearInterpolation.
# In fred.csv, the first row are the radius values. The first column is time.
#
# At time = 1, the value of R at nodes with coordinates (x = 1, y = 1, or r = 1.414) is 1.414.
# , the value of R at nodes with coordinates (x = 1, y = 2, or r = 2.236) is 2.236.
# , the value of R at nodes with coordinates (x = 2, y = 2, or r = 2.828) is 2.828.
#
# At time = 2, the value of R at nodes with coordinates (x = 1, y = 1, or r = 1.414) is 3.414.
# , the value of R at nodes with coordinates (x = 1, y = 2, or r = 2.236) is 4.236.
# , the value of R at nodes with coordinates (x = 2, y = 2, or r = 2.828) is 4.828.
#
# Note that the case of x = 2, y = 1 gives the same result as x = 1, y=2.
#
#
[] # End Functions
[Kernels]
[./diffu]
type = Diffusion
variable = u
[../]
[./diffv]
type = Diffusion
variable = v
[../]
[./diffw]
type = Diffusion
variable = w
[../]
[./diffA]
type = Diffusion
variable = A
[../]
[./diff_scaled_u]
type = Diffusion
variable = scaled_u
[../]
[./diffR]
type = Diffusion
variable = R
[../]
[]
[BCs]
[./u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = u
[../]
[./v]
type = FunctionDirichletBC
variable = v
boundary = '1'
function = v
[../]
[./w]
type = FunctionDirichletBC
variable = w
boundary = '1'
function = w
[../]
[./A]
type = FunctionDirichletBC
variable = A
boundary = '1'
function = A
[../]
[./scaled_u]
type = FunctionDirichletBC
variable = scaled_u
boundary = '1'
function = scaled_u
[../]
[./R]
type = FunctionDirichletBC
variable = R
boundary = '1'
function = R
[../]
[]
[Executioner]
type = Transient
dt = 1
end_time = 2
nl_rel_tol = 1e-12
[]
[Outputs]
file_base = out
exodus = true
[]
(tutorials/darcy_thermo_mech/step10_multiapps/problems/step10.i)
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 100
ymax = 0.304 # Length of test chamber
xmax = 0.0257 # Test chamber radius
[]
[]
[Variables]
[pressure]
[]
[temperature]
initial_condition = 300 # Start at room temperature
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
# This block adds all of the proper Kernels, strain calculators, and Variables
# for SolidMechanics in the correct coordinate system (autodetected)
add_variables = true
strain = FINITE
eigenstrain_names = eigenstrain
use_automatic_differentiation = true
generate_output = 'vonmises_stress elastic_strain_xx elastic_strain_yy strain_xx strain_yy'
[]
[]
[Kernels]
[darcy_pressure]
type = DarcyPressure
variable = pressure
[]
[heat_conduction]
type = ADHeatConduction
variable = temperature
[]
[heat_conduction_time_derivative]
type = ADHeatConductionTimeDerivative
variable = temperature
[]
[heat_convection]
type = DarcyAdvection
variable = temperature
pressure = pressure
[]
[]
[BCs]
[inlet_temperature]
type = FunctionDirichletBC
variable = temperature
boundary = bottom
function = 'if(t<0,350+50*t,350)'
[]
[outlet_temperature]
type = HeatConductionOutflow
variable = temperature
boundary = top
[]
[inlet]
type = DirichletBC
variable = pressure
boundary = bottom
value = 4000 # (Pa) From Figure 2 from paper. First data point for 1mm spheres.
[]
[outlet]
type = DirichletBC
variable = pressure
boundary = top
value = 0 # (Pa) Gives the correct pressure drop from Figure 2 for 1mm spheres
[]
[hold_inlet]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0
[]
[hold_center]
type = DirichletBC
variable = disp_r
boundary = left
value = 0
[]
[hold_outside]
type = DirichletBC
variable = disp_r
boundary = right
value = 0
[]
[]
[Materials]
viscosity_file = data/water_viscosity.csv
density_file = data/water_density.csv
specific_heat_file = data/water_specific_heat.csv
thermal_expansion_file = data/water_thermal_expansion.csv
[column]
type = PackedColumn
temperature = temperature
radius = 1
thermal_conductivity = k_eff # Use the AuxVariable instead of calculating
fluid_viscosity_file = ${viscosity_file}
fluid_density_file = ${density_file}
fluid_specific_heat_file = ${specific_heat_file}
fluid_thermal_expansion_file = ${thermal_expansion_file}
[]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 200e9 # (Pa) from wikipedia
poissons_ratio = .3 # from wikipedia
[]
[elastic_stress]
type = ADComputeFiniteStrainElasticStress
[]
[thermal_strain]
type = ADComputeThermalExpansionEigenstrain
stress_free_temperature = 300
eigenstrain_name = eigenstrain
temperature = temperature
thermal_expansion_coeff = 1e-6
[]
[]
[Postprocessors/average_temperature]
type = ElementAverageValue
variable = temperature
[]
[AuxVariables/velocity]
order = CONSTANT
family = MONOMIAL_VEC
[]
[AuxVariables/k_eff] # filled from the multiapp
initial_condition = 15.0 # water at 20C
[]
[AuxKernels/velocity]
type = DarcyVelocity
variable = velocity
execute_on = timestep_end
pressure = pressure
[]
[Problem]
type = FEProblem
[]
[Executioner]
type = Transient
end_time = 200
dt = 0.25
start_time = -1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 500'
line_search = none
automatic_scaling = true
compute_scaling_once = false
steady_state_tolerance = 1e-7
steady_state_detection = true
[TimeStepper]
type = FunctionDT
function = 'if(t<0,0.1,0.25)'
[]
[]
[MultiApps/micro]
type = TransientMultiApp
app_type = DarcyThermoMechApp
positions = '0.01285 0.0 0
0.01285 0.0608 0
0.01285 0.1216 0
0.01285 0.1824 0
0.01285 0.2432 0
0.01285 0.304 0'
input_files = step10_micro.i
execute_on = 'timestep_end'
[]
[Transfers]
[keff_from_sub]
type = MultiAppPostprocessorInterpolationTransfer
from_multi_app = micro
variable = k_eff
power = 1
postprocessor = k_eff
execute_on = 'timestep_end'
[]
[temperature_to_sub]
type = MultiAppVariableValueSamplePostprocessorTransfer
to_multi_app = micro
source_variable = temperature
postprocessor = temperature_in
execute_on = 'timestep_end'
[]
[]
[Controls/multiapp]
type = TimePeriod
disable_objects = 'MultiApps::micro Transfers::keff_from_sub Transfers::temperature_to_sub'
start_time = '0'
execute_on = 'initial'
[]
[Outputs/out]
type = Exodus
elemental_as_nodal = true
[]
(modules/xfem/test/tests/moving_interface/verification/2D_rz_homog1mat.i)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #
# XFEM Moving Interface Verification Problem
# Dimensionality: 2D
# Coordinate System: rz
# Material Numbers/Types: homogeneous 1 material, 2 region
# Element Order: 1st
# Interface Characteristics: u independent, prescribed level set function
# Description:
# Transient 2D heat transfer problem in cylindrical coordinates designed with
# the Method of Manufactured Solutions. This problem was developed to verify
# XFEM performance on linear elements in the presence of a moving interface
# sweeping across the x-y coordinates of a system with homogeneous material
# properties. This problem can be exactly evaluated by FEM/Moose without the
# moving interface. Both the temperature and level set function are designed
# to be linear to attempt to minimize error between the Moose/exact solution
# and XFEM results.
# Results:
# The temperature at the bottom left boundary (x=1, y=1) exhibits the largest
# difference between the FEM/Moose solution and XFEM results. We present the
# XFEM results at this location with 10 digits of precision:
# Time Expected Temperature XFEM Calculated Temperature
# 0.2 440 440
# 0.4 480 479.9998745
# 0.6 520 519.9995067
# 0.8 560 559.9989409
# 1.0 600 599.9987054
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Problem]
coord_type = RZ
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
xmin = 1.0
xmax = 2.0
ymin = 1.0
ymax = 2.0
elem_type = QUAD4
[]
[XFEM]
qrule = moment_fitting
output_cut_plane = true
[]
[UserObjects]
[./level_set_cut_uo]
type = LevelSetCutUserObject
level_set_var = ls
heal_always = true
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./ls]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./heat_cond]
type = MatDiffusion
variable = u
diffusivity = diffusion_coefficient
[../]
[./vol_heat_src]
type = BodyForce
variable = u
function = src_func
[../]
[./mat_time_deriv]
type = TestMatTimeDerivative
variable = u
mat_prop_value = rhoCp
[../]
[]
[AuxKernels]
[./ls_function]
type = FunctionAux
variable = ls
function = ls_func
[../]
[]
[Constraints]
[./xfem_constraints]
type = XFEMSingleVariableConstraint
variable = u
geometric_cut_userobject = 'level_set_cut_uo'
use_penalty = true
alpha = 1e5
[../]
[]
[Functions]
[./src_func]
type = ParsedFunction
expression = '10*(-100*x-100*y+400) + 100*1.5*t/x'
[../]
[./neumann_func]
type = ParsedFunction
expression = '1.5*100*t'
[../]
[./dirichlet_right_func]
type = ParsedFunction
expression = '(-100*y+200)*t+400'
[../]
[./dirichlet_top_func]
type = ParsedFunction
expression = '(-100*x+200)*t+400'
[../]
[./ls_func]
type = ParsedFunction
expression = '-0.5*(x+y) + 2.04 - 0.2*t'
[../]
[]
[Materials]
[./mat_time_deriv_prop]
type = GenericConstantMaterial
prop_names = 'rhoCp'
prop_values = 10
[../]
[./therm_cond_prop]
type = GenericConstantMaterial
prop_names = 'diffusion_coefficient'
prop_values = 1.5
[../]
[]
[BCs]
[./left_du]
type = FunctionNeumannBC
variable = u
boundary = 'left'
function = neumann_func
[../]
[./right_u]
type = FunctionDirichletBC
variable = u
boundary = 'right'
function = dirichlet_right_func
[../]
[./bottom_du]
type = FunctionNeumannBC
variable = u
boundary = 'bottom'
function = neumann_func
[../]
[./top_u]
type = FunctionDirichletBC
variable = u
boundary = 'top'
function = dirichlet_top_func
[../]
[]
[ICs]
[./u_ic]
type = ConstantIC
value = 400
variable = u
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_tol = 1.0e-6
nl_max_its = 15
nl_rel_tol = 1.0e-10
nl_abs_tol = 1.0e-9
start_time = 0.0
dt = 0.2
end_time = 1.0
max_xfem_update = 1
[]
[Outputs]
time_step_interval = 1
execute_on = 'initial timestep_end'
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/contact/test/tests/multiple_contact_pairs/multiple_pairs.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = multiple_pairs.e
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_xx'
[]
[]
[Materials]
[stiffStuff]
type = ComputeIsotropicElasticityTensor
block = '1 2 3'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[stiffStuff_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2 3'
[]
[]
[ICs]
[disp_y]
block = '2 3'
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Contact]
[action_name]
primary = '20 20'
secondary = '10 101'
penalty = 1e7
formulation = penalty
tangential_tolerance = 0.0001
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
preset = false
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
preset = false
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = '30 301'
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = '50 501'
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 60
dt = 2.0
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
nl_abs_tol = 1e-9
line_search = 'none'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[]
[VectorPostprocessors]
[cont_press]
type = NodalValueSampler
variable = contact_pressure
boundary = '10 101'
sort_by = x
execute_on = NONLINEAR
[]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/orthotropic_rotation_Cijkl.i)
# This test is designed to test the correct application of the Euler angle
# rotations to the elasticity tensor. The test uses values for the nine C_ijkl
# entries that correspond to the engineering notation placement:
# e.g. C11 = 11e3, c12 = 12e3, c13 = 13e3, c22 = 22e3 ..... c66 = 66e3
#
# A rotation of (0, 90, 0) is applied to the 1x1x1 cube, such that the values of
# c12 and c13 switch, c22 and c33 switch, and c55 and c66 switch. Postprocessors
# are used to verify this switch (made simple with the value convention above)
# and to verify that the unrotated components along the x-axis remain constant.
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[lage_xx]
order = CONSTANT
family = MONOMIAL
[]
[lage_yy]
order = CONSTANT
family = MONOMIAL
[]
[pk2_yy]
order = CONSTANT
family = MONOMIAL
[]
[lage_zz]
order = CONSTANT
family = MONOMIAL
[]
[fp_yy]
order = CONSTANT
family = MONOMIAL
[]
[c11]
order = CONSTANT
family = MONOMIAL
[]
[c12]
order = CONSTANT
family = MONOMIAL
[]
[c13]
order = CONSTANT
family = MONOMIAL
[]
[c22]
order = CONSTANT
family = MONOMIAL
[]
[c23]
order = CONSTANT
family = MONOMIAL
[]
[c33]
order = CONSTANT
family = MONOMIAL
[]
[c44]
order = CONSTANT
family = MONOMIAL
[]
[c55]
order = CONSTANT
family = MONOMIAL
[]
[c66]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[tdisp]
type = ParsedFunction
expression = 0.01*t
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
add_variables = true
[]
[]
[AuxKernels]
[lage_xx]
type = RankTwoAux
rank_two_tensor = total_lagrangian_strain
variable = lage_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[lage_yy]
type = RankTwoAux
rank_two_tensor = total_lagrangian_strain
variable = lage_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[pk2_yy]
type = RankTwoAux
variable = pk2_yy
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 1
index_i = 1
execute_on = timestep_end
[]
[lage_zz]
type = RankTwoAux
rank_two_tensor = total_lagrangian_strain
variable = lage_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = plastic_deformation_gradient
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[c11]
type = RankFourAux
variable = c11
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 0
index_l = 0
execute_on = timestep_end
[]
[c12]
type = RankFourAux
variable = c12
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 1
index_l = 1
execute_on = timestep_end
[]
[c13]
type = RankFourAux
variable = c13
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 2
index_l = 2
execute_on = timestep_end
[]
[c22]
type = RankFourAux
variable = c22
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 1
index_k = 1
index_l = 1
execute_on = timestep_end
[]
[c23]
type = RankFourAux
variable = c23
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 1
index_k = 2
index_l = 2
execute_on = timestep_end
[]
[c33]
type = RankFourAux
variable = c33
rank_four_tensor = elasticity_tensor
index_i = 2
index_j = 2
index_k = 2
index_l = 2
execute_on = timestep_end
[]
[c44]
type = RankFourAux
variable = c44
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 2
index_k = 1
index_l = 2
execute_on = timestep_end
[]
[c55]
type = RankFourAux
variable = c55
rank_four_tensor = elasticity_tensor
index_i = 2
index_j = 0
index_k = 2
index_l = 0
execute_on = timestep_end
[]
[c66]
type = RankFourAux
variable = c66
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 1
index_k = 0
index_l = 1
execute_on = timestep_end
[]
[]
[BCs]
[bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[top]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '11e3 12e3 13e3 22e3 23e3 33e3 44e3 55e3 66e3'
fill_method = symmetric9
euler_angle_1 = 0.0
euler_angle_2 = 45.0
euler_angle_3 = 45.0
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[]
[Postprocessors]
[lage_xx]
type = ElementAverageValue
variable = lage_xx
[]
[pk2_yy]
type = ElementAverageValue
variable = pk2_yy
[]
[lage_yy]
type = ElementAverageValue
variable = lage_yy
[]
[lage_zz]
type = ElementAverageValue
variable = lage_zz
[]
[fp_yy]
type = ElementAverageValue
variable = fp_yy
[]
[c11]
type = ElementAverageValue
variable = c11
[]
[c12]
type = ElementAverageValue
variable = c12
[]
[c13]
type = ElementAverageValue
variable = c13
[]
[c22]
type = ElementAverageValue
variable = c22
[]
[c23]
type = ElementAverageValue
variable = c23
[]
[c33]
type = ElementAverageValue
variable = c33
[]
[c44]
type = ElementAverageValue
variable = c44
[]
[c55]
type = ElementAverageValue
variable = c55
[]
[c66]
type = ElementAverageValue
variable = c66
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_tol = 1e-3
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 1 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dtmax = 0.1
dtmin = 1.0e-3
dt = 0.05
end_time = 0.5
[]
[Outputs]
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_gps_finite.i)
# this test checks the asixymmetric 1D generalized plane strain formulation using finite strains
[GlobalParams]
displacements = disp_x
scalar_out_of_plane_strain = scalar_strain_yy
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = line.e
[]
[Variables]
[./disp_x]
[../]
[./scalar_strain_yy]
order = FIRST
family = SCALAR
[../]
[]
[AuxVariables]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./temp]
initial_condition = 580.0
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '580 580 680'
[../]
[./disp_x]
type = PiecewiseLinear
x = '0 1'
y = '0 2e-3'
[../]
[]
[Kernels]
[SolidMechanics]
[../]
[]
[Physics]
[SolidMechanics]
[./GeneralizedPlaneStrain]
[./gps]
[../]
[../]
[../]
[]
[AuxKernels]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./temp]
type = FunctionAux
variable = temp
function = temp
execute_on = 'timestep_begin'
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
boundary = 1
value = 0
variable = disp_x
[../]
[./disp_x]
type = FunctionDirichletBC
boundary = 2
function = disp_x
variable = disp_x
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 3600
poissons_ratio = 0.2
[../]
[./strain]
type = ComputeAxisymmetric1DFiniteStrain
eigenstrain_names = eigenstrain
scalar_out_of_plane_strain = scalar_strain_yy
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-6
temperature = temp
stress_free_temperature = 580
eigenstrain_name = eigenstrain
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_max_its = 50
l_tol = 1e-6
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0
end_time = 2
num_steps = 2
[]
[Outputs]
exodus = true
console = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform9.i)
# apply a shear deformation to observe shear hardening.
# Shear gives q_trial = 2*Sqrt(20), p_trial=0
# The solution given by MOOSE correctly satisfies the equations
# 0 = f = q + p*tan(phi) - coh
# 0 = p - p_trial + ga * Ezzzz * dg/dp
# 0 = q - q_trial + ga * Ezxzx * dg/dq
# Here dg/dp = tan(psi), and dg/dq = 1
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 't'
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = '2*t'
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0'
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningExponential
value_0 = 1
value_residual = 2
rate = 1
[../]
[./tanphi]
type = SolidMechanicsHardeningExponential
value_0 = 1.0
value_residual = 0.5
rate = 2
[../]
[./tanpsi]
type = SolidMechanicsHardeningExponential
value_0 = 0.1
value_residual = 0.05
rate = 1
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 1E8
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 1E8
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '4 4'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
max_NR_iterations = 20
tip_smoother = 0
smoothing_tol = 1
yield_function_tol = 1E-3
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform9
[./csv]
type = CSV
[../]
[]
(framework/contrib/hit/test/output.i)
# This tests the thermal expansion coefficient function using both
# options to specify that function: mean and instantaneous. There
# two blocks, each containing a single element, and these use the
# two variants of the function.
# In this test, the instantaneous CTE function has a constant value,
# while the mean CTE function is an analytic function designed to
# give the same response. If \bar{alpha}(T) is the mean CTE function,
# and \alpha(T) is the instantaneous CTE function,
# \bar{\alpha}(T) = 1/(T-Tref) \intA^{T}_{Tsf} \alpha(T) dT
# where Tref is the reference temperature used to define the mean CTE
# function, and Tsf is the stress-free temperature.
# The two models produce very similar results. There are slight
# differences due to the large deformation treatment.
[Mesh]
file = 'blocks.e'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[]
[SolidMechanics]
[./solid]
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[left]
type = FunctionDirichletBC
variable = disp_x
function = 0.02*t
boundary = 3
[]
[back]
type = FunctionDirichletBC
variable = disp_z
function = 0.01*t
boundary = 1
[]
[]
[AuxKernels]
[./temp]
type = FunctionAux
variable = temp
block = '1 2'
function = temp_func
[../]
[]
[Materials]
[./mean_alpha]
type = Elastic
block = 1
youngs_modulus = 1e6
poissons_ratio = .3
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp
thermal_expansion_function = cte_func_mean
stress_free_temperature = 0.0
thermal_expansion_reference_temperature = 0.5
thermal_expansion_function_type = mean
[../]
[./inst_alpha]
type = Elastic
block = 2
youngs_modulus = 1e6
poissons_ratio = .3
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
temp = temp
thermal_expansion_function = cte_func_inst
stress_free_temperature = 0.0
thermal_expansion_function_type = instantaneous
[../]
[]
[Functions]
[./cte_func_mean]
type = ParsedFunction
symbol_names = 'tsf tref scale' #stress free temp, reference temp, scale factor
symbol_values = '0.0 0.5 1e-4'
expression = 'scale * (t - tsf) / (t - tref)'
[../]
[./cte_func_inst]
type = PiecewiseLinear
xy_data = '0 1.0
2 1.0'
scale_factor = 1e-4
[../]
[./temp_func]
type = PiecewiseLinear
xy_data = '0 1
1 2'
[../]
[]
[Postprocessors]
[./disp_1]
type = NodalMaxValue
variable = disp_x
boundary = 101
[../]
[./disp_2]
type = NodalMaxValue
variable = disp_x
boundary = 102
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_max_its = 100
l_tol = 1e-4
nl_abs_tol = 1e-8
nl_rel_tol = 1e-12
start_time = 0.0
end_time = 1.0
dt = 0.1
[]
[Outputs]
file_base = const_alpha_out
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/multiple_two_parameter_plasticity/cycled_dp_then_wp.i)
# Use ComputeMultipleInelasticStress with two inelastic models: CappedDruckerPrager and CappedWeakPlane.
# The relative_tolerance and absolute_tolerance parameters are set very large so that
# only one iteration is performed. This is the algorithm that FLAC uses to model
# jointed rocks, only Capped-Mohr-Coulomb is used instead of CappedDruckerPrager
#
# In this test "cycle_models=true" so that in the first timestep only
# CappedDruckerPrager is used, while in the second timestep only
# CappedWeakPlane is used.
#
# initial_stress = diag(1E3, 1E3, 1E3)
# The CappedDruckerPrager has tensile strength 3E2 and large cohesion,
# so the stress initially returns to diag(1E2, 1E2, 1E2)
# The CappedWeakPlane has tensile strength zero and large cohesion,
# so the stress returns to diag(1E2 - v/(1-v)*1E2, 1E2 - v/(1-v)*1E2, 0)
# where v=0.2 is the Poisson's ratio
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
eigenstrain_names = ini_stress
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = 0
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = 0
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = 0
[../]
[]
[AuxVariables]
[./yield_fcn_dp]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn_wp]
order = CONSTANT
family = MONOMIAL
[../]
[./tensile_cdp]
order = CONSTANT
family = MONOMIAL
[../]
[./tensile_cwp]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_dp_auxk]
type = MaterialStdVectorAux
index = 1 # this is the tensile yield function - it should be zero
property = cdp_plastic_yield_function
variable = yield_fcn_dp
[../]
[./yield_fcn_wp_auxk]
type = MaterialStdVectorAux
index = 1 # this is the tensile yield function - it should be zero
property = cwp_plastic_yield_function
variable = yield_fcn_wp
[../]
[./tensile_cdp]
type = MaterialStdVectorAux
index = 1
property = cdp_plastic_internal_parameter
variable = tensile_cdp
[../]
[./tensile_cwp]
type = MaterialStdVectorAux
index = 1
property = cwp_plastic_internal_parameter
variable = tensile_cwp
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./i_cdp]
type = PointValue
point = '0 0 0'
variable = tensile_cdp
[../]
[./i_cwp]
type = PointValue
point = '0 0 0'
variable = tensile_cwp
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 300
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E4
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 1E4
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
internal_constraint_tolerance = 1 # irrelevant here
yield_function_tolerance = 1 # irrelevant here
[../]
[./wp_coh]
type = SolidMechanicsHardeningConstant
value = 1E4
[../]
[./wp_tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./wp_tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1111077
[../]
[./wp_t_strength]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./wp_c_strength]
type = SolidMechanicsHardeningConstant
value = 1E4
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.2
youngs_modulus = 1.0
[../]
[./ini_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '1E3 0 0 0 1E3 0 0 0 1E3'
eigenstrain_name = ini_stress
[../]
[./admissible]
type = ComputeMultipleInelasticStress
relative_tolerance = 1E4
absolute_tolerance = 2
inelastic_models = 'cdp cwp'
perform_finite_strain_rotations = false
cycle_models = true
[../]
[./cdp]
type = CappedDruckerPragerStressUpdate
base_name = cdp
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-5
tip_smoother = 1E3
smoothing_tol = 1E3
[../]
[./cwp]
type = CappedWeakPlaneStressUpdate
base_name = cwp
cohesion = wp_coh
tan_friction_angle = wp_tanphi
tan_dilation_angle = wp_tanpsi
tensile_strength = wp_t_strength
compressive_strength = wp_c_strength
tip_smoother = 1E3
smoothing_tol = 1E3
yield_function_tol = 1E-5
[../]
[]
[Executioner]
end_time = 2
dt = 1
type = Transient
[]
[Outputs]
file_base = cycled_dp_then_wp
csv = true
[]
(modules/solid_mechanics/test/tests/recompute_radial_return/isotropic_plasticity_finite_strain.i)
# This simulation uses the piece-wise linear strain hardening model
# with the incremental small strain formulation; incremental small strain
# is required to produce the strain_increment for the DiscreteRadialReturnStressIncrement
# class, which handles the calculation of the stress increment to return
# to the yield surface in a J2 (isotropic) plasticity problem.
#
# This test assumes a Poissons ratio of 0.3 and applies a displacement loading
# condition on the top in the y direction.
#
# An identical problem was run in Abaqus on a similar 1 element mesh and was used
# to verify the SolidMechanics solution; this SolidMechanics code matches the
# SolidMechanics solution.
#
# Mechanical strain is the sum of the elastic and plastic strains but is different
# from total strain in cases with eigen strains, e.g. thermal strain.
[Mesh]
file = 1x1x1cube.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./top_pull]
type = ParsedFunction
expression = t*(0.0625)
[../]
[./hf]
type = PiecewiseLinear
x = '0 0.001 0.003 0.023'
y = '50 52 54 56'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
[../]
[]
[BCs]
[./y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = top_pull
[../]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./isotropic_plasticity]
type = IsotropicPlasticityStressUpdate
yield_stress = 50.0
hardening_function = hf
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'isotropic_plasticity'
[../]
[]
[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 = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.00125
dtmin = 0.0001
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
(modules/combined/test/tests/evolving_mass_density/rz_tensors.i)
# Constant mass in RZ using Tensor Mechanics
#
# This test forces an RZ mesh to move through a series of displacements
# in order to test whether the mass is constant. The density is chosen
# such that the mass is 2.5.
# This test is a duplicate of the rz.i test for solid mechanics, and the
# output of this tensor mechanics test is compared to the original
# solid mechanics output. The duplication is necessary to test the
# migrated tensor mechanics version while maintaining tests for solid mechanics.
[Mesh]
file = elastic_patch_rz.e
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
[]
[Functions]
[./x101]
type = PiecewiseLinear
x = '0 5 6'
y = '0 0 0.24'
[../]
[./y101]
type = PiecewiseLinear
x = '0 6'
y = '0 0'
[../]
[./x102]
type = PiecewiseLinear
x = '0 4 5'
y = '0 0 0.24'
[../]
[./y102]
type = PiecewiseLinear
x = '0 1 2 3'
y = '0 0 0.12 0'
[../]
[./x103]
type = PiecewiseLinear
x = '0 4 5'
y = '0 0 0.24'
[../]
[./y103]
type = PiecewiseLinear
x = '0 1 3 4'
y = '0 0.12 0.12 0'
[../]
[./x104]
type = PiecewiseLinear
x = '0 5 6'
y = '0 0 0.24'
[../]
[./y104]
type = PiecewiseLinear
x = '0 2 3 4'
y = '0 0 0.12 0'
[../]
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[]
[BCs]
[./101x]
type = FunctionDirichletBC
variable = disp_x
boundary = 101
function = x101
[../]
[./101y]
type = FunctionDirichletBC
variable = disp_y
boundary = 101
function = y101
[../]
[./102x]
type = FunctionDirichletBC
variable = disp_x
boundary = 102
function = x102
[../]
[./102y]
type = FunctionDirichletBC
variable = disp_y
boundary = 102
function = y102
[../]
[./103x]
type = FunctionDirichletBC
variable = disp_x
boundary = 103
function = x103
[../]
[./103y]
type = FunctionDirichletBC
variable = disp_y
boundary = 103
function = y103
[../]
[./104x]
type = FunctionDirichletBC
variable = disp_x
boundary = 104
function = x104
[../]
[./104y]
type = FunctionDirichletBC
variable = disp_y
boundary = 104
function = y104
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = PATCH
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./small_strain_rz]
type = ComputeAxisymmetricRZSmallStrain
block = PATCH
[../]
[./elastic_stress]
type = ComputeLinearElasticStress
block = PATCH
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
# Two sets of linesearch options are for petsc 3.1 and 3.3 respectively
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_abs_tol = 1e-10
l_max_its = 20
start_time = 0.0
dt = 1
num_steps = 6
end_time = 6.0
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
file_base = rz_out
[../]
[]
[Postprocessors]
[./mass]
type = Mass
variable = disp_x
execute_on = 'initial timestep_end'
[../]
[]
(modules/peridynamics/test/tests/simple_tests/2D_finite_strain_H1NOSPD.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 6
ny = 6
[../]
[./gpd]
type = MeshGeneratorPD
input = gmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1003
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 1001
function = '0.01*t'
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = NONORDINARY_STATE
stabilization = BOND_HORIZON_I
strain = FINITE
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e8
poissons_ratio = 0.3
[../]
[./strain]
type = ComputePlaneFiniteStrainNOSPD
stabilization = BOND_HORIZON_I
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
end_time = 1
[./Quadrature]
type = GAUSS_LOBATTO
order = FIRST
[../]
[]
[Outputs]
file_base = 2D_finite_strain_H1NOSPD
exodus = true
[]
(modules/porous_flow/test/tests/hysteresis/hys_sat_01.i)
# 1-phase hysteresis. Saturation calculation. Primary drying curve with low_extension_type = none
# When comparing the results with a by-hand computation, remember the MOOSE results are averaged over an element
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmin = 0
xmax = 10
nx = 100
[]
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
number_fluid_phases = 1
number_fluid_components = 1
porous_flow_vars = pp
[]
[]
[Variables]
[pp]
[]
[]
[ICs]
[pp]
type = FunctionIC
variable = pp
function = '1 - x'
[]
[]
[BCs]
[pp]
type = FunctionDirichletBC
variable = pp
function = '1 - x'
boundary = 'left right'
[]
[]
[Kernels]
[dummy]
type = Diffusion
variable = pp
[]
[]
[Materials]
[hys_order]
type = PorousFlowHysteresisOrder
[]
[saturation_calculator]
type = PorousFlow1PhaseHysP
alpha_d = 10.0
alpha_w = 10.0
n_d = 1.1
n_w = 1.9
S_l_min = 0.1
S_lr = 0.2
S_gr_max = 0.3
Pc_max = 7.0
low_extension_type = none
porepressure = pp
[]
[]
[AuxVariables]
[hys_order]
family = MONOMIAL
order = CONSTANT
[]
[saturation]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[hys_order]
type = PorousFlowPropertyAux
variable = hys_order
property = hysteresis_order
[]
[saturation]
type = PorousFlowPropertyAux
variable = saturation
property = saturation
phase = 0
[]
[]
[VectorPostprocessors]
[sat]
type = LineValueSampler
warn_discontinuous_face_values = false
start_point = '0.5 0 0'
end_point = '9.5 0 0'
num_points = 10
sort_by = x
variable = 'saturation pp'
[]
[]
[Executioner]
type = Transient
solve_type = Linear
dt = 1
end_time = 1
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/twinning/combined_twinning_slip_111tension.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[]
[AuxVariables]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[total_twin_volume_fraction]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_0]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_1]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_2]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_3]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_4]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_5]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_6]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_7]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_8]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_9]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_10]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_11]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_4]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_5]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_6]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_7]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_8]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_9]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_10]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_11]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
[]
[AuxKernels]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[total_twin_volume_fraction]
type = MaterialRealAux
variable = total_twin_volume_fraction
property = twin_total_volume_fraction_twins
execute_on = timestep_end
[]
[slip_increment_0]
type = MaterialStdVectorAux
variable = slip_increment_0
property = slip_increment
index = 0
execute_on = timestep_end
[]
[slip_increment_1]
type = MaterialStdVectorAux
variable = slip_increment_1
property = slip_increment
index = 1
execute_on = timestep_end
[]
[slip_increment_2]
type = MaterialStdVectorAux
variable = slip_increment_2
property = slip_increment
index = 2
execute_on = timestep_end
[]
[slip_increment_3]
type = MaterialStdVectorAux
variable = slip_increment_3
property = slip_increment
index = 3
execute_on = timestep_end
[]
[slip_increment_4]
type = MaterialStdVectorAux
variable = slip_increment_4
property = slip_increment
index = 4
execute_on = timestep_end
[]
[slip_increment_5]
type = MaterialStdVectorAux
variable = slip_increment_5
property = slip_increment
index = 5
execute_on = timestep_end
[]
[slip_increment_6]
type = MaterialStdVectorAux
variable = slip_increment_6
property = slip_increment
index = 6
execute_on = timestep_end
[]
[slip_increment_7]
type = MaterialStdVectorAux
variable = slip_increment_7
property = slip_increment
index = 7
execute_on = timestep_end
[]
[slip_increment_8]
type = MaterialStdVectorAux
variable = slip_increment_8
property = slip_increment
index = 8
execute_on = timestep_end
[]
[slip_increment_9]
type = MaterialStdVectorAux
variable = slip_increment_9
property = slip_increment
index = 9
execute_on = timestep_end
[]
[slip_increment_10]
type = MaterialStdVectorAux
variable = slip_increment_10
property = slip_increment
index = 10
execute_on = timestep_end
[]
[slip_increment_11]
type = MaterialStdVectorAux
variable = slip_increment_11
property = slip_increment
index = 11
execute_on = timestep_end
[]
[twin_volume_fraction_0]
type = MaterialStdVectorAux
variable = twin_volume_fraction_0
property = twin_twin_system_volume_fraction
index = 0
execute_on = timestep_end
[]
[twin_volume_fraction_1]
type = MaterialStdVectorAux
variable = twin_volume_fraction_1
property = twin_twin_system_volume_fraction
index = 1
execute_on = timestep_end
[]
[twin_volume_fraction_2]
type = MaterialStdVectorAux
variable = twin_volume_fraction_2
property = twin_twin_system_volume_fraction
index = 2
execute_on = timestep_end
[]
[twin_volume_fraction_3]
type = MaterialStdVectorAux
variable = twin_volume_fraction_3
property = twin_twin_system_volume_fraction
index = 3
execute_on = timestep_end
[]
[twin_volume_fraction_4]
type = MaterialStdVectorAux
variable = twin_volume_fraction_4
property = twin_twin_system_volume_fraction
index = 4
execute_on = timestep_end
[]
[twin_volume_fraction_5]
type = MaterialStdVectorAux
variable = twin_volume_fraction_5
property = twin_twin_system_volume_fraction
index = 5
execute_on = timestep_end
[]
[twin_volume_fraction_6]
type = MaterialStdVectorAux
variable = twin_volume_fraction_6
property = twin_twin_system_volume_fraction
index = 6
execute_on = timestep_end
[]
[twin_volume_fraction_7]
type = MaterialStdVectorAux
variable = twin_volume_fraction_7
property = twin_twin_system_volume_fraction
index = 7
execute_on = timestep_end
[]
[twin_volume_fraction_8]
type = MaterialStdVectorAux
variable = twin_volume_fraction_8
property = twin_twin_system_volume_fraction
index = 8
execute_on = timestep_end
[]
[twin_volume_fraction_9]
type = MaterialStdVectorAux
variable = twin_volume_fraction_9
property = twin_twin_system_volume_fraction
index = 9
execute_on = timestep_end
[]
[twin_volume_fraction_10]
type = MaterialStdVectorAux
variable = twin_volume_fraction_10
property = twin_twin_system_volume_fraction
index = 10
execute_on = timestep_end
[]
[twin_volume_fraction_11]
type = MaterialStdVectorAux
variable = twin_volume_fraction_11
property = twin_twin_system_volume_fraction
index = 11
execute_on = timestep_end
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'bottom'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.02*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5' # roughly copper
fill_method = symmetric9
euler_angle_1 = 54.74
euler_angle_2 = 45.0
euler_angle_3 = 270.0
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'twin_xtalpl slip_xtalpl'
tan_mod_type = exact
[]
[twin_xtalpl]
type = CrystalPlasticityTwinningKalidindiUpdate
base_name = twin
number_slip_systems = 12
slip_sys_file_name = 'fcc_input_twinning_systems.txt'
initial_twin_lattice_friction = 60.0
[]
[slip_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
total_twin_volume_fraction = 'twin_total_volume_fraction_twins'
[]
[]
[Postprocessors]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[total_twin_volume_fraction]
type = ElementAverageValue
variable = total_twin_volume_fraction
[]
[slip_increment_0]
type = ElementAverageValue
variable = slip_increment_0
[]
[slip_increment_1]
type = ElementAverageValue
variable = slip_increment_1
[]
[slip_increment_2]
type = ElementAverageValue
variable = slip_increment_2
[]
[slip_increment_3]
type = ElementAverageValue
variable = slip_increment_3
[]
[slip_increment_4]
type = ElementAverageValue
variable = slip_increment_4
[]
[slip_increment_5]
type = ElementAverageValue
variable = slip_increment_5
[]
[slip_increment_6]
type = ElementAverageValue
variable = slip_increment_6
[]
[slip_increment_7]
type = ElementAverageValue
variable = slip_increment_7
[]
[slip_increment_8]
type = ElementAverageValue
variable = slip_increment_8
[]
[slip_increment_9]
type = ElementAverageValue
variable = slip_increment_9
[]
[slip_increment_10]
type = ElementAverageValue
variable = slip_increment_10
[]
[slip_increment_11]
type = ElementAverageValue
variable = slip_increment_11
[]
[twin_volume_fraction_0]
type = ElementAverageValue
variable = twin_volume_fraction_0
[]
[twin_volume_fraction_1]
type = ElementAverageValue
variable = twin_volume_fraction_1
[]
[twin_volume_fraction_2]
type = ElementAverageValue
variable = twin_volume_fraction_2
[]
[twin_volume_fraction_3]
type = ElementAverageValue
variable = twin_volume_fraction_3
[]
[twin_volume_fraction_4]
type = ElementAverageValue
variable = twin_volume_fraction_4
[]
[twin_volume_fraction_5]
type = ElementAverageValue
variable = twin_volume_fraction_5
[]
[twin_volume_fraction_6]
type = ElementAverageValue
variable = twin_volume_fraction_6
[]
[twin_volume_fraction_7]
type = ElementAverageValue
variable = twin_volume_fraction_7
[]
[twin_volume_fraction_8]
type = ElementAverageValue
variable = twin_volume_fraction_8
[]
[twin_volume_fraction_9]
type = ElementAverageValue
variable = twin_volume_fraction_9
[]
[twin_volume_fraction_10]
type = ElementAverageValue
variable = twin_volume_fraction_10
[]
[twin_volume_fraction_11]
type = ElementAverageValue
variable = twin_volume_fraction_11
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.005
dtmin = 0.01
num_steps = 6
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform3.i)
# Plastic deformation, tensile failure
# With Young = 10, poisson=0.25 (Lame lambda=4, mu=4)
# applying the following
# deformation to the zmax surface of a unit cube:
# disp_x = 4*t
# disp_y = 3*t
# disp_z = t
# should yield trial stress:
# stress_zz = 12*t
# stress_zx = 16*t
# stress_zy = 12*t
# Use tensile strength = 6, we should return to stress_zz = 6,
# and stress_xx = stress_yy = 2*t up to t=1 when the system is completely
# plastic, so these stress components will not change
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 4*t
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 3*t
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = t
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 80
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1111077
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 6
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 40
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '4 4'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-5
[../]
[]
[Executioner]
end_time = 2
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3
csv = true
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test1qtt.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test1q.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.1
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.1
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1.e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test1qtt_out
exodus = true
[]
(test/tests/time_integrators/newmark-beta/newmark_beta_inactive_steps.i)
###########################################################
# This is a simple test with a time-dependent problem
# demonstrating the use of the TimeIntegrator system.
#
# Testing that the active_time parameter works as intended.
#
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 1
ny = 1
[]
[Variables]
[u]
[]
[]
[Functions]
[forcing_fn]
type = PiecewiseLinear
x = '0.0 0.1 0.6'
y = '0.0 1.0 1.0'
[]
[]
[Kernels]
[ie]
type = TimeDerivative
variable = u
[]
[diff]
type = Diffusion
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = 'left'
value = 0
[]
[right]
type = FunctionDirichletBC
variable = u
boundary = 'right'
function = forcing_fn
[]
[]
[Executioner]
type = Transient
start_time = 0.0
num_steps = 6
dt = 0.1
[TimeIntegrator]
type = NewmarkBeta
inactive_tsteps = 1
[]
[]
[Postprocessors]
[udot]
type = ElementAverageTimeDerivative
variable = u
[]
[udotdot]
type = ElementAverageSecondTimeDerivative
variable = u
[]
[u]
type = ElementAverageValue
variable = u
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/recompute_radial_return/uniaxial_viscoplasticity_incrementalstrain.i)
# This is a test of the HyperbolicViscoplasticityStressUpdate model
# using the small strain formulation. The material is a visco-plastic material
# i.e. a time-dependent linear strain hardening plasticity model.
# A similar problem was run in Abaqus with exactly the same result, although the element
# used in the Abaqus simulation was a CAX4 element. Neverthless, due to the boundary conditions
# and load, the MOOSE and Abaqus result are the same.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = 1x1x1cube.e
[]
[Functions]
[./top_pull]
type = ParsedFunction
expression = t/100
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'stress_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
[../]
[]
[BCs]
[./y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = top_pull
[../]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.3
[../]
[./viscoplasticity]
type = HyperbolicViscoplasticityStressUpdate
yield_stress = 10.0
hardening_constant = 100.0
c_alpha = 0.2418e-6
c_beta = 0.1135
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'viscoplasticity'
tangent_operator = elastic
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 30
dt = 1.0
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
(test/tests/multiapps/restart_subapp_ic/parent2.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
ymin = 0
xmax = 1
ymax = 1
nx = 10
ny = 10
[]
[Functions]
[v_fn]
type = ParsedFunction
expression = t*x
[]
[ffn]
type = ParsedFunction
expression = x
[]
[]
[AuxVariables]
[v]
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[td]
type = TimeDerivative
variable = u
[]
[ufn]
type = BodyForce
variable = u
function = ffn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = v_fn
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
[MultiApps]
[sub_app]
app_type = MooseTestApp
type = TransientMultiApp
input_files = 'sub2.i'
execute_on = timestep_end
positions = '0 -1 0'
[]
[]
[Transfers]
[from_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub_app
source_variable = u
variable = v
[]
[]
[Problem]
restart_file_base = parent_out_cp/0005
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_no_parts_steady.i)
# This input file tests several different things:
# .) The axisymmetric (RZ) form of the governing equations.
# .) An open boundary.
# .) Not integrating the pressure by parts, thereby requiring a pressure pin.
# .) Natural boundary condition at the outlet.
[GlobalParams]
integrate_p_by_parts = false
laplace = true
gravity = '0 0 0'
[]
[Mesh]
file = '2d_cone.msh'
[]
[Problem]
coord_type = RZ
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = Newton
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'bjacobi ilu 4'
nl_rel_tol = 1e-12
nl_max_its = 6
[]
[Outputs]
console = true
[./out]
type = Exodus
[../]
[]
[Variables]
[./vel_x]
# Velocity in radial (r) direction
family = LAGRANGE
order = SECOND
[../]
[./vel_y]
# Velocity in axial (z) direction
family = LAGRANGE
order = SECOND
[../]
[./p]
family = LAGRANGE
order = FIRST
[../]
[]
[BCs]
[./p_corner]
# This is required, because pressure term is *not* integrated by parts.
type = DirichletBC
boundary = top_right
value = 0
variable = p
[../]
[./u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[../]
[./v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[../]
[./u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[../]
[./v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[../]
[]
[Kernels]
[./mass]
type = INSMassRZ
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 'volume'
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[../]
[]
[Postprocessors]
[./flow_in]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'bottom'
execute_on = 'timestep_end'
[../]
[./flow_out]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'top'
execute_on = 'timestep_end'
[../]
[]
(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/heat_transfer/test/tests/heat_conduction_patch/heat_conduction_patch_hex20.i)
#
# This problem is taken from the Abaqus verification manual:
# "1.5.8 Patch test for heat transfer elements"
#
# The temperature on the exterior nodes is 200x+100y+200z.
#
# This gives a constant flux at all Gauss points.
#
# In addition, the temperature at all nodes follows the same formula.
#
# Node x y z Temperature
# 1 1.000E+00 0.000E+00 1.000E+00 4.0000E+02
# 2 6.770E-01 3.050E-01 6.830E-01 3.0250E+02
# 3 3.200E-01 1.860E-01 6.430E-01 2.1120E+02
# 4 0.000E+00 0.000E+00 1.000E+00 2.0000E+02
# 5 1.000E+00 1.000E+00 1.000E+00 5.0000E+02
# 6 7.880E-01 6.930E-01 6.440E-01 3.5570E+02
# 7 1.650E-01 7.450E-01 7.020E-01 2.4790E+02
# 8 0.000E+00 1.000E+00 1.000E+00 3.0000E+02
# 9 8.385E-01 1.525E-01 8.415E-01 3.5125E+02
# 10 4.985E-01 2.455E-01 6.630E-01 2.5685E+02
# 11 1.600E-01 9.300E-02 8.215E-01 2.0560E+02
# 12 5.000E-01 0.000E+00 1.000E+00 3.0000E+02
# 13 1.000E+00 5.000E-01 1.000E+00 4.5000E+02
# 14 7.325E-01 4.990E-01 6.635E-01 3.2910E+02
# 15 2.425E-01 4.655E-01 6.725E-01 2.2955E+02
# 16 0.000E+00 5.000E-01 1.000E+00 2.5000E+02
# 17 8.940E-01 8.465E-01 8.220E-01 4.2785E+02
# 18 4.765E-01 7.190E-01 6.730E-01 3.0180E+02
# 19 8.250E-02 8.725E-01 8.510E-01 2.7395E+02
# 20 5.000E-01 1.000E+00 1.000E+00 4.0000E+02
# 21 1.000E+00 0.000E+00 0.000E+00 2.0000E+02
# 22 0.000E+00 0.000E+00 0.000E+00 0.0000E+00
# 23 8.260E-01 2.880E-01 2.880E-01 2.5160E+02
# 24 2.490E-01 3.420E-01 1.920E-01 1.2240E+02
# 25 1.000E+00 0.000E+00 5.000E-01 3.0000E+02
# 26 5.000E-01 0.000E+00 0.000E+00 1.0000E+02
# 27 0.000E+00 0.000E+00 5.000E-01 1.0000E+02
# 28 9.130E-01 1.440E-01 1.440E-01 2.2580E+02
# 29 1.245E-01 1.710E-01 9.600E-02 6.1200E+01
# 30 7.515E-01 2.965E-01 4.855E-01 2.7705E+02
# 31 5.375E-01 3.150E-01 2.400E-01 1.8700E+02
# 32 2.845E-01 2.640E-01 4.175E-01 1.6680E+02
# 33 2.730E-01 7.500E-01 2.300E-01 1.7560E+02
# 34 0.000E+00 1.000E+00 0.000E+00 1.0000E+02
# 35 2.610E-01 5.460E-01 2.110E-01 1.4900E+02
# 36 0.000E+00 5.000E-01 0.000E+00 5.0000E+01
# 37 2.190E-01 7.475E-01 4.660E-01 2.1175E+02
# 38 1.365E-01 8.750E-01 1.150E-01 1.3780E+02
# 39 0.000E+00 1.000E+00 5.000E-01 2.0000E+02
# 40 8.500E-01 6.490E-01 2.630E-01 2.8750E+02
# 41 8.380E-01 4.685E-01 2.755E-01 2.6955E+02
# 42 8.190E-01 6.710E-01 4.535E-01 3.2160E+02
# 43 5.615E-01 6.995E-01 2.465E-01 2.3155E+02
# 44 1.000E+00 1.000E+00 0.000E+00 3.0000E+02
# 45 1.000E+00 5.000E-01 0.000E+00 2.5000E+02
# 46 1.000E+00 1.000E+00 5.000E-01 4.0000E+02
# 47 9.250E-01 8.245E-01 1.315E-01 2.9375E+02
# 48 5.000E-01 1.000E+00 0.000E+00 2.0000E+02
[Mesh]#Comment
file = heat_conduction_patch_hex20.e
[] # Mesh
[Functions]
[./temps]
type = ParsedFunction
expression ='200*x+100*y+200*z'
[../]
[] # Functions
[Variables]
[./temp]
order = SECOND
family = LAGRANGE
[../]
[] # Variables
[Kernels]
[./heat_r]
type = HeatConduction
variable = temp
[../]
[] # Kernels
[BCs]
[./temps]
type = FunctionDirichletBC
variable = temp
boundary = 10
function = temps
[../]
[] # BCs
[Materials]
[./heat]
type = HeatConductionMaterial
block = 1
specific_heat = 0.116
thermal_conductivity = 4.85e-4
[../]
[] # Materials
[Executioner]
type = Steady
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_abs_tol = 1e-11
nl_rel_tol = 1e-10
l_max_its = 20
[./Quadrature]
order = THIRD
[../]
[] # Executioner
[Outputs]
exodus = true
[] # Output
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/sphere3D.i)
#
# 3D Spherical Gap Heat Transfer Test.
#
# This test exercises 3D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid sphere of radius = 1 unit, and outer
# hollow sphere with an inner radius of 2. In other words, the gap between
# them is 1 radial unit in length.
#
# The conductivity of both spheres is set very large to achieve a uniform
# temperature in each sphere. The temperature of the center node of the
# inner sphere is ramped from 100 to 200 over one time unit. The
# temperature of the outside of the outer, hollow sphere is held fixed
# at 100.
#
# A simple analytical solution is possible for the integrated heat flux
# between the inner and outer spheres:
#
# Integrated Flux = (T_left - T_right) * (gapK/(r^2*((1/r1)-(1/r2)))) * Area
#
# For gapK = 1 (default value)
#
# The area is taken as the area of the secondary (inner) surface:
#
# Area = 4 * pi * 1^2 (4*pi*r^2)
#
# The integrated heat flux across the gap at time 1 is then:
#
# 4*pi*k*delta_T/((1/r1)-(1/r2))
# 4*pi*1*100/((1/1) - (1/2)) = 2513.3 watts
#
# For comparison, see results from the integrated flux post processors.
# This simulation makes use of symmetry, so only 1/8 of the spheres is meshed
# As such, the integrated flux from the post processors is 1/8 of the total,
# or 314.159 watts... i.e. 100*pi.
# The value coming from the post processor is slightly less than this
# but converges as mesh refinement increases.
#
# Simulating contact is challenging. Regression tests that exercise
# contact features can be difficult to solve consistently across multiple
# platforms. While designing these tests, we felt it worth while to note
# some aspects of these tests. The following applies to:
# sphere3D.i, sphere2DRZ.i, cyl2D.i, and cyl3D.i.
# 1. We decided that to perform consistently across multiple platforms we
# would use very small convergence tolerance. In this test we chose an
# nl_rel_tol of 1e-12.
# 2. Due to such a high value for thermal conductivity (used here so that the
# domains come to a uniform temperature) the integrated flux at time = 0
# was relatively large (the value coming from SideIntegralFlux =
# -_diffusion_coef[_qp]*_grad_u[_qp]*_normals[_qp] where the diffusion coefficient
# here is thermal conductivity).
# Even though _grad_u[_qp] is small, in this case the diffusion coefficient
# is large. The result is a number that isn't exactly zero and tends to
# fail exodiff. For this reason the parameter execute_on = initial should not
# be used. That parameter is left to default settings in these regression tests.
#
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = sphere3D.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
gap_conductivity = 1
quadrature = true
gap_geometry_type = SPHERE
sphere_origin = '0 0 0'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 5
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[./Console]
type = Console
[../]
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/orthotropic_rotation_Cijkl.i)
# This test is designed to test the correct application of the Euler angle
# rotations to the elasticity tensor. The test uses values for the nine C_ijkl
# entries that correspond to the engineering notation placement:
# e.g. C11 = 11e3, c12 = 12e3, c13 = 13e3, c22 = 22e3 ..... c66 = 66e3
#
# A rotation of (0, 90, 0) is applied to the 1x1x1 cube, such that the values of
# c12 and c13 switch, c22 and c33 switch, and c55 and c66 switch. Postprocessors
# are used to verify this switch (made simple with the value convention above)
# and to verify that the unrotated components along the x-axis remain constant.
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./lage_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./lage_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./pk2_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./lage_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./c11]
order = CONSTANT
family = MONOMIAL
[../]
[./c12]
order = CONSTANT
family = MONOMIAL
[../]
[./c13]
order = CONSTANT
family = MONOMIAL
[../]
[./c22]
order = CONSTANT
family = MONOMIAL
[../]
[./c23]
order = CONSTANT
family = MONOMIAL
[../]
[./c33]
order = CONSTANT
family = MONOMIAL
[../]
[./c44]
order = CONSTANT
family = MONOMIAL
[../]
[./c55]
order = CONSTANT
family = MONOMIAL
[../]
[./c66]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
[../]
[]
[AuxKernels]
[./lage_xx]
type = RankTwoAux
rank_two_tensor = lage
variable = lage_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./lage_yy]
type = RankTwoAux
rank_two_tensor = lage
variable = lage_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./pk2_yy]
type = RankTwoAux
variable = pk2_yy
rank_two_tensor = pk2
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./lage_zz]
type = RankTwoAux
rank_two_tensor = lage
variable = lage_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./c11]
type = RankFourAux
variable = c11
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 0
index_l = 0
execute_on = timestep_end
[../]
[./c12]
type = RankFourAux
variable = c12
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 1
index_l = 1
execute_on = timestep_end
[../]
[./c13]
type = RankFourAux
variable = c13
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c22]
type = RankFourAux
variable = c22
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 1
index_k = 1
index_l = 1
execute_on = timestep_end
[../]
[./c23]
type = RankFourAux
variable = c23
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 1
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c33]
type = RankFourAux
variable = c33
rank_four_tensor = elasticity_tensor
index_i = 2
index_j = 2
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c44]
type = RankFourAux
variable = c44
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 2
index_k = 1
index_l = 2
execute_on = timestep_end
[../]
[./c55]
type = RankFourAux
variable = c55
rank_four_tensor = elasticity_tensor
index_i = 2
index_j = 0
index_k = 2
index_l = 0
execute_on = timestep_end
[../]
[./c66]
type = RankFourAux
variable = c66
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 1
index_k = 0
index_l = 1
execute_on = timestep_end
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8e3 5 8 60.8e3 9 12 60.8e3'
tan_mod_type = exact
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '11e3 12e3 13e3 22e3 23e3 33e3 44e3 55e3 66e3'
fill_method = symmetric9
euler_angle_1 = 0.0
euler_angle_2 = 90.0
euler_angle_3 = 0.0
[../]
[]
[Postprocessors]
[./lage_xx]
type = ElementAverageValue
variable = lage_xx
[../]
[./pk2_yy]
type = ElementAverageValue
variable = pk2_yy
[../]
[./lage_yy]
type = ElementAverageValue
variable = lage_yy
[../]
[./lage_zz]
type = ElementAverageValue
variable = lage_zz
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./c11]
type = ElementAverageValue
variable = c11
[../]
[./c12]
type = ElementAverageValue
variable = c12
[../]
[./c13]
type = ElementAverageValue
variable = c13
[../]
[./c22]
type = ElementAverageValue
variable = c22
[../]
[./c23]
type = ElementAverageValue
variable = c23
[../]
[./c33]
type = ElementAverageValue
variable = c33
[../]
[./c44]
type = ElementAverageValue
variable = c44
[../]
[./c55]
type = ElementAverageValue
variable = c55
[../]
[./c66]
type = ElementAverageValue
variable = c66
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_tol = 1e-3
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 1 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dtmax = 0.1
dtmin = 1.0e-3
dt = 0.05
end_time = 0.5
[]
[Outputs]
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/mean_cap_TC/small_deform5.i)
# apply nonuniform stretch in x, y and z directions using
# Lame lambda = 0.7E7, Lame mu = 1.0E7,
# trial_stress(0, 0) = 2.9
# trial_stress(1, 1) = 10.9
# trial_stress(2, 2) = 14.9
# With tensile_strength = 2, decaying to zero at internal parameter = 4E-7
# via a Cubic, the algorithm should return to:
# internal parameter = 2.26829E-7
# trace(stress) = 0.799989 = tensile_strength
# stress(0, 0) = -6.4
# stress(1, 1) = 1.6
# stress(2, 2) = 5.6
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1E-7*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '3E-7*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '5E-7*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[]
[UserObjects]
[./tensile_strength]
type = SolidMechanicsHardeningCubic
value_0 = 2
value_residual = 0
internal_limit = 4E-7
[../]
[./compressive_strength]
type = SolidMechanicsHardeningCubic
value_0 = -1
value_residual = 0
internal_limit = 1E-8
[../]
[./cap]
type = SolidMechanicsPlasticMeanCapTC
tensile_strength = tensile_strength
compressive_strength = compressive_strength
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
use_custom_returnMap = false
use_custom_cto = false
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mean_cap]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-11
plastic_models = cap
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform5
exodus = false
[./csv]
type = CSV
[../]
[]
(python/peacock/tests/common/transient.i)
###########################################################
# This is a simple test with a time-dependent problem
# demonstrating the use of a "Transient" Executioner.
#
# @Requirement F1.10
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
# dudt = 3*t^2*(x^2 + y^2)
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 1
value = 1
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./dt]
type = TimestepSize
[../]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
# Preconditioned JFNK (default)
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
dt = 0.1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_transient
exodus = true
[]
(modules/solid_mechanics/test/tests/smeared_cracking/cracking_rz_exponential.i)
#
# Test to exercise the exponential stress release
#
# Stress vs. strain should show a linear relationship until cracking,
# an exponential stress release, a linear relationship back to zero
# strain, a linear relationship with the original stiffness in
# compression and then back to zero strain, a linear relationship
# back to the exponential curve, and finally further exponential
# stress release.
[Mesh]
file = cracking_rz_test.e
[]
[Problem]
coord_type = RZ
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Functions]
[./disply]
type = PiecewiseLinear
x = '0 1 2 3 4 5 6'
y = '0 0.00175 0 -0.0001 0 0.00175 0.0035'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[../]
[]
[BCs]
[./pully]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = disply
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[../]
[./sides]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 186.5e9
poissons_ratio = 0.316
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
cracking_stress = 119.3e6
cracked_elasticity_type = FULL
softening_models = exponential_softening
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type'
petsc_options_value = '101 lu'
line_search = 'none'
l_max_its = 100
l_tol = 1e-5
nl_max_its = 10
nl_rel_tol = 1e-8
nl_abs_tol = 1e-3
start_time = 0.0
end_time = 6.0
dt = 0.005
dtmin = 0.005
[]
[Outputs]
exodus = true
[]
(test/tests/time_integrators/actually_explicit_euler_verification/ee-2d-linear.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = (x+y)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*(x+y)
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = ic
[../]
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
preset = false
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
num_steps = 20
dt = 0.00005
l_tol = 1e-12
[./TimeIntegrator]
type = ActuallyExplicitEuler
[../]
[]
[Outputs]
exodus = true
[./console]
type = Console
max_rows = 10
[../]
[]
(modules/solid_mechanics/test/tests/j2_plasticity/hard2.i)
# UserObject J2 test, with hardening, but with rate=1E6
# apply uniform compression in x direction to give
# trial stress_xx = 5, so sqrt(3*J2) = 5
# with zero Poisson's ratio, lambda_mu = 1E6, and strength=2, strength_residual=1,
# the equations that we need to solve are:
#
# stress_yy = stress_zz [because of the symmetry of the problem: to keep Lode angle constant]
# stress_xx - stress_yy = 1 + (2 - 1)*exp(-0.5*(1E6*q)^2) [yield_fcn = 0]
# stress_xx + stress_yy + stress_zz = 5 [mean stress constant]
# q = gamma
# stress_xx = 1E6*2*gamma*(stress_xx - 5/3)*sqrt(3)/2/sqrt(J2), where sqrt(J2) = (1 + (2 - 1)*exp(-0.5*(1E6*q)^2))/Sqrt(3)
# so RHS = 1E6*2*gamma*(stress_xx - 5/3)*3/2/(stress_xx - stress_yy)
#
# stress_xx = 2.672
# stress_yy = 1.164
# q = 1.164E-6
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '2.5E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = intnl
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./str]
type = SolidMechanicsHardeningGaussian
value_0 = 2
value_residual = 1
rate = 1E12
[../]
[./j2]
type = SolidMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = j2
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = hard2
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/contact/test/tests/mortar_tm/2d/frictionless_second/finite.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD9
order = SECOND
name = 'finite'
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.3
xmax = 0.3
ymin = -10
ymax = 10
nx = 2
ny = 67
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.31
xmax = 0.91
ymin = 7.7
ymax = 8.5
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[action]
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'plank block'
[]
[]
[Contact]
[frictionless]
primary = plank_right
secondary = block_left
formulation = mortar
c_normal = 1e0
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
preset = false
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = block_right
function = '-0.04*sin(4*(t+1.5))+0.02'
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = block_right
function = '-t'
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'plank block'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 5.0
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'contact'
l_max_its = 30
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[]
[Outputs]
file_base = ${name}
[comp]
type = CSV
show = 'contact'
[]
[out]
type = CSV
file_base = '${name}_out'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/jeffery_hamel/wedge_dirichlet.i)
# This input file tests whether we can converge to the semi-analytical
# solution for flow in a 2D wedge.
[GlobalParams]
gravity = '0 0 0'
# Params used by the WedgeFunction for computing the exact solution.
# The value of K is only required for comparing the pressure to the
# exact solution, and is computed by the associated jeffery_hamel.py
# script.
alpha_degrees = 15
Re = 30
K = -9.78221333616
f = f_theta
[]
[Mesh]
[file]
type = FileMeshGenerator
# file = wedge_4x6.e
file = wedge_8x12.e
# file = wedge_16x24.e
# file = wedge_32x48.e
# file = wedge_64x96.e
[]
[./corner_node]
# Pin is on the centerline of the channel on the left-hand side of
# the domain at r=1. If you change the domain, you will need to
# update this pin location for the pressure exact solution to
# work.
type = ExtraNodesetGenerator
new_boundary = pinned_node
coord = '1 0'
input = file
[../]
[]
[Variables]
[./vel_x]
order = SECOND
family = LAGRANGE
[../]
[./vel_y]
order = SECOND
family = LAGRANGE
[../]
[./p]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_x
[../]
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_y
[../]
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[BCs]
[./vel_x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'top_wall bottom_wall'
value = 0.0
[../]
[./vel_y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'top_wall bottom_wall'
value = 0.0
[../]
[./vel_x_inlet]
type = FunctionDirichletBC
variable = vel_x
boundary = 'inlet outlet'
function = 'vel_x_exact'
[../]
[./vel_y_inlet]
type = FunctionDirichletBC
variable = vel_y
boundary = 'inlet outlet'
function = 'vel_y_exact'
[../]
[./pressure_pin]
type = DirichletBC
variable = p
boundary = 'pinned_node'
value = 0
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 1
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = NEWTON
[../]
[]
[Executioner]
type = Transient
dt = 1.e-2
dtmin = 1.e-2
num_steps = 5
petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = '300 bjacobi ilu 4'
line_search = none
nl_rel_tol = 1e-13
nl_abs_tol = 1e-11
nl_max_its = 10
l_tol = 1e-6
l_max_its = 300
[]
[Outputs]
exodus = true
[]
[Functions]
[./f_theta]
# Non-dimensional solution values f(eta), 0 <= eta <= 1 for
# alpha=15 deg, Re=30. Note: this introduces an input file
# ordering dependency: this Function must appear *before* the two
# functions below which use it since apparently proper dependency
# resolution is not done in this scenario.
type = PiecewiseLinear
data_file = 'f.csv'
format = 'columns'
[../]
[./vel_x_exact]
type = WedgeFunction
var_num = 0
mu = 1
rho = 1
[../]
[./vel_y_exact]
type = WedgeFunction
var_num = 1
mu = 1
rho = 1
[../]
[./p_exact]
type = WedgeFunction
var_num = 2
mu = 1
rho = 1
[../]
[]
[Postprocessors]
[./vel_x_L2_error]
type = ElementL2Error
variable = vel_x
function = vel_x_exact
execute_on = 'initial timestep_end'
[../]
[./vel_y_L2_error]
type = ElementL2Error
variable = vel_y
function = vel_y_exact
execute_on = 'initial timestep_end'
[../]
[./p_L2_error]
type = ElementL2Error
variable = p
function = p_exact
execute_on = 'initial timestep_end'
[../]
[]
(test/tests/time_steppers/timesequence_stepper/timesequence_restart_failure.i)
[Mesh]
file = timesequence_restart_failure1_cp/0002-mesh.cpa.gz
[]
[Problem]
restart_file_base = timesequence_restart_failure1_cp/0002
# There is an initial conditions overwriting the restart on the nonlinear variable u
# As you can see in the gold file, this makes the initial step output be from the
# initial condition
allow_initial_conditions_with_restart = true
[]
[Functions]
[exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[]
[forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[]
[]
[Variables]
[u]
family = LAGRANGE
order = SECOND
[]
[]
[ICs]
[u_var]
type = FunctionIC
variable = u
function = exact_fn
[]
[]
[Kernels]
[td]
type = TimeDerivative
variable = u
[]
[diff]
type = Diffusion
variable = u
[]
[ffn]
type = BodyForce
variable = u
function = forcing_fn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[]
[]
[Executioner]
type = Transient
end_time = 4.0
[TimeStepper]
type = TimeSequenceStepper
time_sequence = '0 0.85 1.2 1.3 2 4'
[]
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test3qtt.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test3q.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.09
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.09
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test3qtt_out
exodus = true
[]
(test/tests/restart/restart_steady_from_transient/steady_from_transient_restart.i)
[Mesh]
[fmg]
type = FileMeshGenerator
file = transient_out_cp/LATEST
[]
parallel_type = replicated
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = ((x*x)+(y*y))
[../]
[./forcing_fn]
type = ParsedFunction
expression = -4
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
[Problem]
restart_file_base = transient_out_cp/LATEST
[]
(modules/solid_mechanics/test/tests/shell/static/inclined_straintest.i)
# Static test for the inclined shell element.
# A single shell element is oriented at a 45 deg. angle with respect to the Y axis.
# One end of the shell is fixed and an axial deformation to the shell element is
# applied at the other end by resolving the deformation into Y and Z direction.
# The stress and strain result in the global orientation when transformed to
# the shell oriention gives the correct value of the axial stress and strain.
[Mesh]
type = FileMesh
file = shell_inclined.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[rot_x]
[]
[rot_y]
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[strain_xz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
variable = stress_xx
selected_qp = 0
rank_two_tensor = global_stress_t_points_0
index_i = 0
index_j = 0
[]
[strain_xx]
type = RankTwoAux
variable = strain_xx
rank_two_tensor = total_global_strain_t_points_0
selected_qp = 0
index_i = 0
index_j = 0
[]
[stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = global_stress_t_points_0
selected_qp = 0
index_i = 1
index_j = 1
[]
[strain_yy]
type = RankTwoAux
variable = strain_yy
rank_two_tensor = total_global_strain_t_points_0
selected_qp = 0
index_i = 1
index_j = 1
[]
[stress_xy]
type = RankTwoAux
variable = stress_xy
rank_two_tensor = global_stress_t_points_0
selected_qp = 0
index_i = 0
index_j = 1
[]
[strain_xy]
type = RankTwoAux
variable = strain_xy
rank_two_tensor = total_global_strain_t_points_0
selected_qp = 0
index_i = 0
index_j = 1
[]
[stress_yz]
type = RankTwoAux
variable = stress_yz
rank_two_tensor = global_stress_t_points_0
selected_qp = 0
index_i = 1
index_j = 2
[]
[strain_yz]
type = RankTwoAux
variable = strain_yz
rank_two_tensor = total_global_strain_t_points_0
selected_qp = 0
index_i = 1
index_j = 2
[]
[stress_xz]
type = RankTwoAux
variable = stress_xz
rank_two_tensor = global_stress_t_points_0
selected_qp = 0
index_i = 0
index_j = 2
[]
[strain_xz]
type = RankTwoAux
variable = strain_xz
rank_two_tensor = total_global_strain_t_points_0
selected_qp = 0
index_i = 0
index_j = 2
[]
[stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = global_stress_t_points_0
selected_qp = 0
index_i = 2
index_j = 2
[]
[strain_zz]
type = RankTwoAux
variable = strain_zz
rank_two_tensor = total_global_strain_t_points_0
selected_qp = 0
index_i = 2
index_j = 2
[]
[]
[BCs]
[fixy1]
type = DirichletBC
variable = disp_y
boundary = '0'
value = 0.0
[]
[fixz1]
type = DirichletBC
variable = disp_z
boundary = '0'
value = 0.0
[]
[fixr1]
type = DirichletBC
variable = rot_x
boundary = '0'
value = 0.0
[]
[fixr2]
type = DirichletBC
variable = rot_y
boundary = '0'
value = 0.0
[]
[fixx1]
type = DirichletBC
variable = disp_x
boundary = '0'
value = 0.0
[]
[dispz]
type = FunctionDirichletBC
variable = disp_z
boundary = '2'
function = force_function
[]
[dispy]
type = FunctionDirichletBC
variable = disp_y
boundary = '2'
function = force_function
[]
[]
[Functions]
[force_function]
type = PiecewiseLinear
x = '0.0 1'
y = '0.0 0.33535534'
[]
[]
[Kernels]
[solid_disp_x]
type = ADStressDivergenceShell
block = '0'
component = 0
variable = disp_x
through_thickness_order = SECOND
[]
[solid_disp_y]
type = ADStressDivergenceShell
block = '0'
component = 1
variable = disp_y
through_thickness_order = SECOND
[]
[solid_disp_z]
type = ADStressDivergenceShell
block = '0'
component = 2
variable = disp_z
through_thickness_order = SECOND
[]
[solid_rot_x]
type = ADStressDivergenceShell
block = '0'
component = 3
variable = rot_x
through_thickness_order = SECOND
[]
[solid_rot_y]
type = ADStressDivergenceShell
block = '0'
component = 4
variable = rot_y
through_thickness_order = SECOND
[]
[]
[Materials]
[elasticity]
type = ADComputeIsotropicElasticityTensorShell
youngs_modulus = 5
poissons_ratio = 0.0
block = 0
through_thickness_order = SECOND
[]
[strain]
type = ADComputeIncrementalShellStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y'
thickness = 0.1
through_thickness_order = SECOND
[]
[stress]
type = ADComputeShellStress
block = 0
through_thickness_order = SECOND
[]
[]
[Postprocessors]
[stress_yy_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_yy
[]
[strain_yy_el_0]
type = ElementalVariableValue
elementid = 0
variable = strain_yy
[]
[stress_yz_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_yz
[]
[strain_yz_el_0]
type = ElementalVariableValue
elementid = 0
variable = strain_yz
[]
[stress_xx_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_xx
[]
[strain_xx_el_0]
type = ElementalVariableValue
elementid = 0
variable = strain_xx
[]
[stress_xy_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_xy
[]
[strain_xy_el_0]
type = ElementalVariableValue
elementid = 0
variable = strain_xy
[]
[stress_xz_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_xz
[]
[strain_xz_el_0]
type = ElementalVariableValue
elementid = 0
variable = strain_xz
[]
[stress_zz_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_zz
[]
[strain_zz_el_0]
type = ElementalVariableValue
elementid = 0
variable = strain_zz
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_tol = 1e-11
nl_max_its = 15
nl_rel_tol = 1e-11
nl_abs_tol = 1e-10
l_max_its = 20
dt = 1
dtmin = 0.01
timestep_tolerance = 2e-13
end_time = 1
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/neml2/viscoplasticity/isoharden.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = true
[]
[]
[]
[]
[NEML2]
input = 'isoharden_neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL MATERIAL POSTPROCESSOR POSTPROCESSOR MATERIAL MATERIAL'
moose_inputs = ' neml2_strain neml2_strain time time neml2_stress equivalent_plastic_strain'
neml2_inputs = ' forces/E old_forces/E forces/t old_forces/t old_state/S old_state/internal/ep'
moose_output_types = 'MATERIAL MATERIAL'
moose_outputs = ' neml2_stress equivalent_plastic_strain'
neml2_outputs = ' state/S state/internal/ep'
moose_derivative_types = 'MATERIAL'
moose_derivatives = 'neml2_jacobian'
neml2_derivatives = 'state/S forces/E'
[]
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[convert_strain]
type = RankTwoTensorToSymmetricRankTwoTensor
from = 'mechanical_strain'
to = 'neml2_strain'
[]
[stress]
type = ComputeLagrangianObjectiveCustomSymmetricStress
custom_small_stress = 'neml2_stress'
custom_small_jacobian = 'neml2_jacobian'
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
preset = false
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 1e-3
dtmin = 1e-3
num_steps = 5
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/materials/correctness/cauchy-elastic.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[Functions]
[strain]
type = ParsedFunction
expression = 't'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[boty]
type = DirichletBC
preset = true
boundary = bottom
variable = disp_y
value = 0.0
[]
[backz]
type = DirichletBC
preset = true
boundary = back
variable = disp_z
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = strain
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[sxx]
type = ElementAverageValue
variable = sxx
execute_on = 'initial timestep_end'
[]
[syy]
type = ElementAverageValue
variable = syy
execute_on = 'initial timestep_end'
[]
[sxy]
type = ElementAverageValue
variable = sxy
execute_on = 'initial timestep_end'
[]
[szz]
type = ElementAverageValue
variable = szz
execute_on = 'initial timestep_end'
[]
[syz]
type = ElementAverageValue
variable = syz
execute_on = 'initial timestep_end'
[]
[sxz]
type = ElementAverageValue
variable = sxz
execute_on = 'initial timestep_end'
[]
[exx]
type = ElementAverageValue
variable = exx
execute_on = 'initial timestep_end'
[]
[eyy]
type = ElementAverageValue
variable = eyy
execute_on = 'initial timestep_end'
[]
[exy]
type = ElementAverageValue
variable = exy
execute_on = 'initial timestep_end'
[]
[ezz]
type = ElementAverageValue
variable = ezz
execute_on = 'initial timestep_end'
[]
[eyz]
type = ElementAverageValue
variable = eyz
execute_on = 'initial timestep_end'
[]
[exz]
type = ElementAverageValue
variable = exz
execute_on = 'initial timestep_end'
[]
[]
[AuxVariables]
[sxx]
family = MONOMIAL
order = CONSTANT
[]
[syy]
family = MONOMIAL
order = CONSTANT
[]
[sxy]
family = MONOMIAL
order = CONSTANT
[]
[szz]
family = MONOMIAL
order = CONSTANT
[]
[syz]
family = MONOMIAL
order = CONSTANT
[]
[sxz]
family = MONOMIAL
order = CONSTANT
[]
[exx]
family = MONOMIAL
order = CONSTANT
[]
[eyy]
family = MONOMIAL
order = CONSTANT
[]
[exy]
family = MONOMIAL
order = CONSTANT
[]
[ezz]
family = MONOMIAL
order = CONSTANT
[]
[eyz]
family = MONOMIAL
order = CONSTANT
[]
[exz]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[sxx]
type = RankTwoAux
variable = sxx
rank_two_tensor = cauchy_stress
index_i = 0
index_j = 0
[]
[syy]
type = RankTwoAux
variable = syy
rank_two_tensor = cauchy_stress
index_i = 1
index_j = 1
[]
[sxy]
type = RankTwoAux
variable = sxy
rank_two_tensor = cauchy_stress
index_i = 0
index_j = 1
[]
[zz]
type = RankTwoAux
variable = szz
rank_two_tensor = cauchy_stress
index_i = 2
index_j = 2
[]
[syz]
type = RankTwoAux
variable = syz
rank_two_tensor = cauchy_stress
index_i = 1
index_j = 2
[]
[sxz]
type = RankTwoAux
variable = sxz
rank_two_tensor = cauchy_stress
index_i = 0
index_j = 2
[]
[exx]
type = RankTwoAux
variable = exx
rank_two_tensor = mechanical_strain
index_i = 0
index_j = 0
[]
[eyy]
type = RankTwoAux
variable = eyy
rank_two_tensor = mechanical_strain
index_i = 1
index_j = 1
[]
[exy]
type = RankTwoAux
variable = exy
rank_two_tensor = mechanical_strain
index_i = 0
index_j = 1
[]
[ezz]
type = RankTwoAux
variable = ezz
rank_two_tensor = mechanical_strain
index_i = 2
index_j = 2
[]
[eyz]
type = RankTwoAux
variable = eyz
rank_two_tensor = mechanical_strain
index_i = 1
index_j = 2
[]
[exz]
type = RankTwoAux
variable = exz
rank_two_tensor = mechanical_strain
index_i = 0
index_j = 2
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 5
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 0.1
dtmin = 0.1
end_time = 0.1
[]
[Outputs]
exodus = false
csv = true
[]
(test/tests/restart/restart_add_variable/add_variable_restart.i)
# Use the exodus file for restarting the problem:
# - restart one variable
# - and have one extra variable
# - have PBP active to have more system in Equation system
#
[Mesh]
file = transient_with_stateful_out.e
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[./forcing_fn]
type = ParsedFunction
expression = -4+(x*x+y*y)
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./diffusivity]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./out_diffusivity]
type = MaterialRealAux
variable = diffusivity
property = diffusivity
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = MatDiffusionTest
variable = u
prop_name = diffusivity
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[Materials]
[./mat]
type = StatefulMaterial
block = 0
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left_v]
type = DirichletBC
variable = v
boundary = '3'
value = 0
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '1'
value = 1
[../]
[]
[Preconditioning]
[./PBP]
type = PBP
solve_order = 'u v'
preconditioner = 'AMG AMG'
[../]
[]
[Executioner]
type = Transient
solve_type = JFNK
dt = 0.1
reset_dt = true #NECESSARY to force a change in DT when using restart!
num_steps = 3
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
execute_elemental_on = none
[../]
[]
[Problem]
restart_file_base = transient_with_stateful_out_cp/LATEST
[]
(modules/porous_flow/test/tests/poro_elasticity/mandel_fully_saturated.i)
# Mandel's problem of consolodation of a drained medium
# Using the FullySaturatedDarcyBase and FullySaturatedMassTimeDerivative kernels
#
# A sample is in plane strain.
# -a <= x <= a
# -b <= y <= b
# It is squashed with constant force by impermeable, frictionless plattens on its top and bottom surfaces (at y=+/-b)
# Fluid is allowed to leak out from its sides (at x=+/-a)
# The porepressure within the sample is monitored.
#
# As is common in the literature, this is simulated by
# considering the quarter-sample, 0<=x<=a and 0<=y<=b, with
# impermeable, roller BCs at x=0 and y=0 and y=b.
# Porepressure is fixed at zero on x=a.
# Porepressure and displacement are initialised to zero.
# Then the top (y=b) is moved downwards with prescribed velocity,
# so that the total force that is inducing this downwards velocity
# is fixed. The velocity is worked out by solving Mandel's problem
# analytically, and the total force is monitored in the simulation
# to check that it indeed remains constant.
#
# Here are the problem's parameters, and their values:
# Soil width. a = 1
# Soil height. b = 0.1
# Soil's Lame lambda. la = 0.5
# Soil's Lame mu, which is also the Soil's shear modulus. mu = G = 0.75
# Soil bulk modulus. K = la + 2*mu/3 = 1
# Drained Poisson ratio. nu = (3K - 2G)/(6K + 2G) = 0.2
# Soil bulk compliance. 1/K = 1
# Fluid bulk modulus. Kf = 8
# Fluid bulk compliance. 1/Kf = 0.125
# Soil initial porosity. phi0 = 0.1
# Biot coefficient. alpha = 0.6
# Biot modulus. M = 1/(phi0/Kf + (alpha - phi0)(1 - alpha)/K) = 4.705882
# Undrained bulk modulus. Ku = K + alpha^2*M = 2.694118
# Undrained Poisson ratio. nuu = (3Ku - 2G)/(6Ku + 2G) = 0.372627
# Skempton coefficient. B = alpha*M/Ku = 1.048035
# Fluid mobility (soil permeability/fluid viscosity). k = 1.5
# Consolidation coefficient. c = 2*k*B^2*G*(1-nu)*(1+nuu)^2/9/(1-nuu)/(nuu-nu) = 3.821656
# Normal stress on top. F = 1
#
# The solution for porepressure and displacements is given in
# AHD Cheng and E Detournay "A direct boundary element method for plane strain poroelasticity" International Journal of Numerical and Analytical Methods in Geomechanics 12 (1988) 551-572.
# The solution involves complicated infinite series, so I shall not write it here
[Mesh]
type = GeneratedMesh
dim = 3
nx = 10
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 0.1
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_x disp_y disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[porepressure]
[]
[]
[BCs]
[roller_xmin]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left'
[]
[roller_ymin]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom'
[]
[plane_strain]
type = DirichletBC
variable = disp_z
value = 0
boundary = 'back front'
[]
[xmax_drained]
type = DirichletBC
variable = porepressure
value = 0
boundary = right
[]
[top_velocity]
type = FunctionDirichletBC
variable = disp_y
function = top_velocity
boundary = top
[]
[]
[Functions]
[top_velocity]
type = PiecewiseLinear
x = '0 0.002 0.006 0.014 0.03 0.046 0.062 0.078 0.094 0.11 0.126 0.142 0.158 0.174 0.19 0.206 0.222 0.238 0.254 0.27 0.286 0.302 0.318 0.334 0.35 0.366 0.382 0.398 0.414 0.43 0.446 0.462 0.478 0.494 0.51 0.526 0.542 0.558 0.574 0.59 0.606 0.622 0.638 0.654 0.67 0.686 0.702'
y = '-0.041824842 -0.042730269 -0.043412712 -0.04428867 -0.045509181 -0.04645965 -0.047268246 -0.047974749 -0.048597109 -0.0491467 -0.049632388 -0.050061697 -0.050441198 -0.050776675 -0.051073238 -0.0513354 -0.051567152 -0.051772022 -0.051953128 -0.052113227 -0.052254754 -0.052379865 -0.052490464 -0.052588233 -0.052674662 -0.052751065 -0.052818606 -0.052878312 -0.052931093 -0.052977751 -0.053018997 -0.053055459 -0.053087691 -0.053116185 -0.053141373 -0.05316364 -0.053183324 -0.053200724 -0.053216106 -0.053229704 -0.053241725 -0.053252351 -0.053261745 -0.053270049 -0.053277389 -0.053283879 -0.053289615'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[tot_force]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[tot_force]
type = ParsedAux
coupled_variables = 'stress_yy porepressure'
execute_on = timestep_end
variable = tot_force
expression = '-stress_yy+0.6*porepressure'
[]
[]
[Kernels]
[grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[]
[grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[]
[grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[]
[poro_x]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_x
component = 0
[]
[poro_y]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_y
component = 1
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
component = 2
variable = disp_z
[]
[mass0]
type = PorousFlowFullySaturatedMassTimeDerivative
biot_coefficient = 0.6
coupling_type = HydroMechanical
variable = porepressure
[]
[flux]
type = PorousFlowFullySaturatedDarcyBase
variable = porepressure
gravity = '0 0 0'
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 8
density0 = 1
thermal_expansion = 0
viscosity = 1
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '0.5 0.75'
# bulk modulus is lambda + 2*mu/3 = 0.5 + 2*0.75/3 = 1
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[eff_fluid_pressure_qp]
type = PorousFlowEffectiveFluidPressure
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[ppss]
type = PorousFlow1PhaseFullySaturated
porepressure = porepressure
[]
[massfrac]
type = PorousFlowMassFraction
[]
[simple_fluid_qp]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[porosity]
type = PorousFlowPorosityConst # only the initial value of this is ever used
porosity = 0.1
[]
[biot_modulus]
type = PorousFlowConstantBiotModulus
biot_coefficient = 0.6
solid_bulk_compliance = 1
fluid_bulk_modulus = 8
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '1.5 0 0 0 1.5 0 0 0 1.5'
[]
[]
[Postprocessors]
[p0]
type = PointValue
outputs = csv
point = '0.0 0 0'
variable = porepressure
[]
[p1]
type = PointValue
outputs = csv
point = '0.1 0 0'
variable = porepressure
[]
[p2]
type = PointValue
outputs = csv
point = '0.2 0 0'
variable = porepressure
[]
[p3]
type = PointValue
outputs = csv
point = '0.3 0 0'
variable = porepressure
[]
[p4]
type = PointValue
outputs = csv
point = '0.4 0 0'
variable = porepressure
[]
[p5]
type = PointValue
outputs = csv
point = '0.5 0 0'
variable = porepressure
[]
[p6]
type = PointValue
outputs = csv
point = '0.6 0 0'
variable = porepressure
[]
[p7]
type = PointValue
outputs = csv
point = '0.7 0 0'
variable = porepressure
[]
[p8]
type = PointValue
outputs = csv
point = '0.8 0 0'
variable = porepressure
[]
[p9]
type = PointValue
outputs = csv
point = '0.9 0 0'
variable = porepressure
[]
[p99]
type = PointValue
outputs = csv
point = '1 0 0'
variable = porepressure
[]
[xdisp]
type = PointValue
outputs = csv
point = '1 0.1 0'
variable = disp_x
[]
[ydisp]
type = PointValue
outputs = csv
point = '1 0.1 0'
variable = disp_y
[]
[total_downwards_force]
type = ElementAverageValue
outputs = csv
variable = tot_force
[]
[dt]
type = FunctionValuePostprocessor
outputs = console
function = if(0.15*t<0.01,0.15*t,0.01)
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu 1E-14 1E-10 10000'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 0.7
[TimeStepper]
type = PostprocessorDT
postprocessor = dt
dt = 0.001
[]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = mandel_fully_saturated
[csv]
time_step_interval = 3
type = CSV
[]
[]
(modules/contact/test/tests/tan-pen-and-scaling/bouncing-block-tan-pen.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-no-lower-d-coarse.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[ICs]
[./disp_y]
block = 2
variable = disp_y
value = ${fparse starting_point + offset}
type = ConstantIC
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = false
use_automatic_differentiation = true
strain = SMALL
[]
[]
[Materials]
[elasticity]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 1e3
poissons_ratio = 0.3
constant_on = SUBDOMAIN
[]
[stress]
type = ADComputeLinearElasticStress
[]
[]
[Contact]
[leftright]
secondary = 10
primary = 20
model = coulomb
formulation = tangential_penalty
penalty = 1e3
friction_coefficient = 0.4
normal_smoothing_distance = 0.2
[]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[../]
[./leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[../]
[]
[Executioner]
type = Transient
end_time = 100
dt = 5
dtmin = 5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_hypre_type -mat_mffd_err -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 1e-5 200'
l_max_its = 200
nl_max_its = 20
line_search = 'none'
automatic_scaling = true
verbose = true
scaling_group_variables = 'disp_x disp_y'
resid_vs_jac_scaling_param = 1
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
[exo]
type = Exodus
[]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
[nl]
type = NumNonlinearIterations
[]
[lin]
type = NumLinearIterations
[]
[tot_nl]
type = CumulativeValuePostprocessor
postprocessor = nl
[]
[tot_lin]
type = CumulativeValuePostprocessor
postprocessor = lin
[]
[]
(modules/combined/test/tests/heat_conduction_xfem/heat.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 6
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[XFEM]
geometric_cut_userobjects = 'line_seg_cut_uo'
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '0.5 1.0 0.5 0.5'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[]
[Variables]
[./temp]
initial_condition = 300.0 # set initial temp to ambient
[../]
[]
[Functions]
[./temp_left]
type = PiecewiseLinear
x = '0 2'
y = '0 0.1'
[../]
[]
[Kernels]
[./heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temp
[../]
[]
[BCs]
# Define boundary conditions
[./left_temp]
type = FunctionDirichletBC
variable = temp
boundary = 3
function = temp_left
[../]
[./right_temp]
type = DirichletBC
variable = temp
boundary = 1
value = 0
[../]
[]
[Materials]
[./fuel_thermal]
type = HeatConductionMaterial
block = 0
temp = temp
thermal_conductivity = 5.0
specific_heat = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
end_time = 2.0
num_steps = 2
[]
[Outputs]
# Define output file(s)
file_base = heat_out
time_step_interval = 1
execute_on = timestep_end
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/small_deform2.i)
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 4
mc_edge_smoother = 20
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/prop_block_read.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
ymin = 0
xmax = 1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD4
[]
[./subdomain_id]
input = gen
type = SubdomainPerElementGenerator
subdomain_ids = '0 1
0 1'
[../]
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[./euler1]
order = CONSTANT
family = MONOMIAL
[../]
[./euler2]
order = CONSTANT
family = MONOMIAL
[../]
[./euler3]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = block
nblock= 2
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = lage
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[./euler1]
type = MaterialRealVectorValueAux
variable = euler1
property = Euler_angles
component = 0
execute_on = timestep_end
[../]
[./euler2]
type = MaterialRealVectorValueAux
variable = euler2
property = Euler_angles
component = 1
execute_on = timestep_end
[../]
[./euler3]
type = MaterialRealVectorValueAux
variable = euler3
property = Euler_angles
component = 2
execute_on = timestep_end
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.01
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.01
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
(modules/contact/examples/3d_berkovich/indenter_berkovich_friction.i)
[Mesh]
file = indenter.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
order = FIRST
family = LAGRANGE
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_z]
[../]
[]
[AuxKernels]
[]
[Functions]
[./push_down]
type = ParsedFunction
expression = 'if(t < 1.5, -t, t-3.0)'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
save_in = 'saved_x saved_y saved_z'
use_finite_deform_jacobian = true
[../]
[]
[BCs]
[./botz]
type = DirichletBC
variable = disp_z
boundary = 101
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 101
value = 0.0
[../]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 101
value = 0.0
[../]
[./boty111]
type = DirichletBC
variable = disp_y
boundary = 111
value = 0.0
[../]
[./botx111]
type = DirichletBC
variable = disp_x
boundary = 111
value = 0.0
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = '201'
function = push_down
[../]
[./topy]
type = DirichletBC
variable = disp_y
boundary = 201
value = 0.0
[../]
[./topx]
type = DirichletBC
variable = disp_x
boundary = 201
value = 0.0
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 48
slip_sys_file_name = input_slip_sys_bcc48.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 48 0.0001 0.01'
uo_state_var_name = state_var_gss
slip_incr_tol = 10.0
block = 1
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 48
uo_state_var_name = state_var_gss
block = 1
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 48
groups = '0 24 48'
group_values = '900 1000' #120
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
block = 1
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 48
hprops = '1.4 1000 1200 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
block = 1
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
block = 1
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
maximum_substep_iteration = 25
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 1
C_ijkl = '265190 113650 113650 265190 113650 265190 75769 75769 75760'
fill_method = symmetric9
[../]
[./elasticity_tensor_indenter]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000000.0
poissons_ratio = 0.3
block = 2
[../]
[./stress_indenter]
type = ComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 1
[../]
[./resid_z]
type = NodalSum
variable = saved_z
boundary = 201
[../]
[./disp_z]
type = NodalExtremeValue
variable = disp_z
boundary = 201
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 60
nl_max_its = 50
dt = 0.004
dtmin = 0.00001
end_time = 1.8
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6 # 6 if no friction
l_tol = 1e-3
automatic_scaling = true
[]
[Outputs]
[./my_checkpoint]
type = Checkpoint
time_step_interval = 50
[../]
exodus = true
csv = true
print_linear_residuals = true
print_perf_log = true
[./console]
type = Console
max_rows = 5
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Dampers]
[./contact_slip]
type = ContactSlipDamper
primary = '202'
secondary = '102'
[../]
[]
[Contact]
[./ind_base]
primary = 202
secondary = 102
model = coulomb
friction_coefficient = 0.4
normalize_penalty = true
formulation = tangential_penalty
penalty = 1e7
capture_tolerance = 0.0001
[../]
[]
(modules/combined/test/tests/cavity_pressure/initial_temperature.i)
#
# Cavity Pressure Test
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts n, T, and V in the following way:
# n => n0 + alpha * t
# T => T0 + beta * t
# V => V0 + gamma * t
# with
# alpha = n0
# beta = T0 / 2
# gamma = -(0.003322259...) * V0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# The parameters combined at t = 1 gives p = 301.
#
# This test sets the initial temperature to 500, but the CavityPressure
# is told that that initial temperature is T0. Thus, the final solution
# is unchanged.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = 3d.e
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[Functions]
[displ_positive]
type = PiecewiseLinear
x = '0 1'
y = '0 0.0029069767441859684'
[]
[displ_negative]
type = PiecewiseLinear
x = '0 1'
y = '0 -0.0029069767441859684'
[]
[temp1]
type = PiecewiseLinear
x = '0 1'
y = '1 1.5'
scale_factor = 240.54443866068704
[]
[material_input_function]
type = PiecewiseLinear
x = '0 1'
y = '0 0.35'
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[temp]
initial_condition = 500
[]
[material_input]
[]
[]
[AuxVariables]
[pressure_residual_x]
[]
[pressure_residual_y]
[]
[pressure_residual_z]
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zx]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
[]
[heat]
type = Diffusion
variable = temp
use_displaced_mesh = true
[]
[material_input_dummy]
type = Diffusion
variable = material_input
use_displaced_mesh = true
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[]
[stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[]
[]
[BCs]
[no_x_exterior]
type = DirichletBC
variable = disp_x
boundary = '7 8'
value = 0.0
[]
[no_y_exterior]
type = DirichletBC
variable = disp_y
boundary = '9 10'
value = 0.0
[]
[no_z_exterior]
type = DirichletBC
variable = disp_z
boundary = '11 12'
value = 0.0
[]
[prescribed_left]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = displ_positive
[]
[prescribed_right]
type = FunctionDirichletBC
variable = disp_x
boundary = 14
function = displ_negative
[]
[no_y]
type = DirichletBC
variable = disp_y
boundary = '15 16'
value = 0.0
[]
[no_z]
type = DirichletBC
variable = disp_z
boundary = '17 18'
value = 0.0
[]
[no_x_interior]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[]
[no_y_interior]
type = DirichletBC
variable = disp_y
boundary = '3 4'
value = 0.0
[]
[no_z_interior]
type = DirichletBC
variable = disp_z
boundary = '5 6'
value = 0.0
[]
[temperatureInterior]
type = FunctionDirichletBC
boundary = 100
function = temp1
variable = temp
[]
[MaterialInput]
type = FunctionDirichletBC
boundary = '100 13 14 15 16'
function = material_input_function
variable = material_input
[]
[CavityPressure]
[1]
boundary = 100
initial_pressure = 100
material_input = materialInput
R = 8.314472
temperature = aveTempInterior
initial_temperature = 240.54443866068704
volume = internalVolume
startup_time = 0.5
output = ppress
save_in = 'pressure_residual_x pressure_residual_y pressure_residual_z'
[]
[]
[]
[Materials]
[elast_tensor1]
type = ComputeElasticityTensor
C_ijkl = '0 5'
fill_method = symmetric_isotropic
block = 1
[]
[strain1]
type = ComputeFiniteStrain
block = 1
[]
[stress1]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elast_tensor2]
type = ComputeElasticityTensor
C_ijkl = '0 5'
fill_method = symmetric_isotropic
block = 2
[]
[strain2]
type = ComputeFiniteStrain
block = 2
[]
[stress2]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_rel_tol = 1e-12
l_tol = 1e-12
l_max_its = 20
dt = 0.5
end_time = 1.0
use_pre_SMO_residual = true
[]
[Postprocessors]
[internalVolume]
type = InternalVolume
boundary = 100
execute_on = 'initial linear'
[]
[aveTempInterior]
type = SideAverageValue
boundary = 100
variable = temp
execute_on = 'initial linear'
[]
[materialInput]
type = SideAverageValue
boundary = '7 8 9 10 11 12'
variable = material_input
execute_on = linear
[]
[]
[Outputs]
exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_radiation/gap_heat_transfer_radiation_test.i)
#
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a helium-filled gap including radiation.
#
# The mesh consists of two element blocks containing one element each. Each
# element is a unit cube. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far left boundary
# is ramped from 100 to 200 over one time unit, and then held fixed for an additional
# time unit. The temperature of the far right boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * h_gap
#
# where h_gap = h_gas + h_cont + h_rad
#
# By setting the contact pressure, roughnesses, and jump distances to zero, the gap
# conductance simplifies to:
#
# h_gap = gapK/d_gap + sigma*Fe*(T_left^2 + T_right^2)*(T_left + T_right)
#
# where Fe = 1/(1/eps_left + 1/eps_right - 1)
# eps = emissivity
#
# For pure helium, BISON computes the gas conductivity as:
#
# gapK(Tavg) = 2.639e-3*Tavg^0.7085
#
# For the test, the final (t=2) average gas temperature is (200 +100)/2 = 150,
# giving gapK(150) = 0.09187557
#
# Assuming ems_left = ems_right = 0.5, Fe = 1/3
#
# The heat flux across the gap at that time is then:
#
# Flux(2) = 100 * ((0.09187557/1.0) + (5.669e-8/3)*(200^2 + 100^2)*(200 + 100))
# = 37.532557
#
# The flux post processors give 37.53255
#
[Mesh]
file = gap_heat_transfer_radiation_test.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '200 200'
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[ThermalContact]
[./gap]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
gap_conductivity = 0.09187557
emissivity_primary = 0.5
emissivity_secondary = 0.5
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 10000000.0
[../]
[./density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_abs_tol = 1e-6
nl_rel_tol = 1e-10
l_tol = 1e-3
l_max_its = 100
start_time = 0.0
dt = 1
end_time = 1.0
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
[Outputs]
exodus = true
[]
(modules/porous_flow/test/tests/hysteresis/hys_pc_3.i)
# Capillary-pressure calculation. Third-order curve
# When comparing the results with a by-hand computation, remember the MOOSE results are averaged over an element
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmin = 0.4
xmax = 0.9
nx = 50
[]
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
number_fluid_phases = 1
number_fluid_components = 1
porous_flow_vars = ''
[]
[]
[Variables]
[sat]
[]
[]
[ICs]
[sat]
type = FunctionIC
variable = sat
function = 'x'
[]
[]
[BCs]
[sat]
type = FunctionDirichletBC
variable = sat
function = 'x'
boundary = 'left right'
[]
[]
[Kernels]
[dummy]
type = Diffusion
variable = sat
[]
[]
[Materials]
[hys_order]
type = PorousFlowHysteresisOrder
initial_order = 3
previous_turning_points = '0.1 0.9 0.4'
[]
[pc_calculator]
type = PorousFlowHystereticInfo
alpha_d = 10.0
alpha_w = 7.0
n_d = 1.5
n_w = 1.9
S_l_min = 0.1
S_lr = 0.2
S_gr_max = 0.3
Pc_max = 12.0
high_ratio = 0.9
low_extension_type = none
high_extension_type = none
sat_var = sat
[]
[]
[AuxVariables]
[hys_order]
family = MONOMIAL
order = CONSTANT
[]
[pc]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[hys_order]
type = PorousFlowPropertyAux
variable = hys_order
property = hysteresis_order
[]
[pc]
type = PorousFlowPropertyAux
variable = pc
property = hysteretic_info
[]
[]
[VectorPostprocessors]
[pc]
type = LineValueSampler
warn_discontinuous_face_values = false
start_point = '0.4 0 0'
end_point = '0.9 0 0'
num_points = 8
sort_by = x
variable = 'sat pc'
[]
[]
[Executioner]
type = Transient
solve_type = Linear
dt = 1
end_time = 1
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface14.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 3
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 2.1E-6m in y direction and 3E-6 in z direction.
# trial stress_yy = 2.1 and stress_zz = 3.0
#
# Then all three will be active, but there is linear-dependence.
# SimpleTester1 will turn off, since it is closest,
# and the algorithm will return to stress_zz=1, stress_yy=2, but
# then SimpleTester1 will be positive, so it will be turned back
# on, and then SimpleTester0 or SimpleTester2 will be turned off
# (a random choice will be made).
# If SimpleTester2 is turned
# off then algorithm returns to stress_zz=1=stress_yy, but then
# SimpleTester2 violates Kuhn-Tucker (f<0 and pm>0), so the algorithm
# will restart, and return to stress_zz=1=stress_yy, with internal0=2
# and internal1=1.1
# If SimpleTester0 is turned off then the algorithm will return to
# stress_zz=2, stress_yy=1, where f0>0. Once again, a random choice
# of turning off SimpleTester1 or SimpleTester2 can be made. Hence,
# oscillations can occur. If too many oscillations occur then the algorithm
# will fail
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2.1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '3.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 3
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 4
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1'
debug_jac_at_intnl = '1 1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface14
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/weak_plane_tensile/small_deform_hard1.i)
# Checking internal-parameter evolution
# A single element is stretched by 1E-6*t in z directions.
#
# Young's modulus = 20 MPa. Tensile strength = 10 Pa
#
# There are two time steps.
# In the first
# trial stress_zz = Youngs Modulus*Strain = 2E7*1E-6 = 20 Pa
# so this returns to stress_zz = 10 Pa, and half of the deformation
# goes to plastic strain, yielding ep_zz_plastic = 0.5E-6
# In the second
# trial stress_zz = 10 + Youngs Modulus*(Strain increment) = 10 + 2E7*1E-6 = 30 Pa
# so this returns to stress_zz = 10 Pa, and all of the deformation
# goes to plastic strain, yielding ep_zz_plastic increment = 1E-6,
# so total plastic strain_zz = 1.5E-6.
[GlobalParams]
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = 'stress_zz'
[]
[BCs]
[bottomx]
type = DirichletBC
variable = x_disp
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = y_disp
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = z_disp
boundary = back
value = 0.0
[]
[topx]
type = DirichletBC
variable = x_disp
boundary = front
value = 0
[]
[topy]
type = DirichletBC
variable = y_disp
boundary = front
value = 0
[]
[topz]
type = FunctionDirichletBC
variable = z_disp
boundary = front
function = 1E-6*t
[]
[]
[AuxVariables]
[wpt_internal]
order = CONSTANT
family = MONOMIAL
[]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[wpt_internal]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = wpt_internal
[]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[wpt_internal]
type = PointValue
point = '0 0 0'
variable = wpt_internal
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[]
[UserObjects]
[str]
type = SolidMechanicsHardeningConstant
value = 10
[]
[wpt]
type = SolidMechanicsPlasticWeakPlaneTensile
tensile_strength = str
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-11
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wpt
transverse_direction = '0 0 1'
ep_plastic_tolerance = 1E-11
[]
[]
[Executioner]
end_time = 2
dt = 1
type = Transient
[]
[Outputs]
csv = true
[]
(modules/contact/test/tests/mortar_dynamics/block-dynamics-friction.i)
starting_point = 2e-1
offset = -0.19
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
allow_renumbering = false
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[mechanical_normal_lm]
block = 3
use_dual = true
[]
[mechanical_tangential_lm]
block = 3
use_dual = true
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[DynamicTensorMechanics]
displacements = 'disp_x disp_y'
generate_output = 'stress_xx stress_yy'
strain = FINITE
block = '1 2'
stiffness_damping_coefficient = 0.05
hht_alpha = 0.0
[]
[inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[]
[Materials]
[elasticity_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elasticity_1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e8
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[strain]
type = ComputeFiniteStrain
block = '1 2'
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '7750'
[]
[]
[AuxVariables]
[vel_x]
block = '1 2'
[]
[accel_x]
block = '1 2'
[]
[vel_y]
block = '1 2'
[]
[accel_y]
block = '1 2'
[]
[vel_z]
block = '1 2'
[]
[accel_z]
block = '1 2'
[]
[gap]
block = 3
[]
[]
[AuxKernels]
[gap]
type = WeightedGapAux
variable = gap
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
use_displaced_mesh = true
[]
[accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = 'LINEAR timestep_end'
[]
[vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = 'LINEAR timestep_end'
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = 'LINEAR timestep_end'
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = 'LINEAR timestep_end'
[]
[]
# User object provides the contact force (e.g. LM)
# for the application of the generalized force
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable_normal = mechanical_normal_lm
lm_variable_tangential_one = mechanical_tangential_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeDynamicFrictionalForceLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = mechanical_normal_lm
friction_lm = mechanical_tangential_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
c = 1e4
c_t = 1e4
mu = 0.5
newmark_beta = 0.25
newmark_gamma = 0.5
capture_tolerance = 1.0e-5
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = mechanical_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = mechanical_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = mechanical_tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = mechanical_tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 4 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 30 # 50
function = '0' # '1e-2*t'
[]
[]
[Executioner]
type = Transient
end_time = 75
dt = 0.05
dtmin = .005
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err '
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
nl_max_its = 50
line_search = 'none'
snesmf_reuse_base = false
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
checkpoint = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[VectorPostprocessors]
[mechanical_tangential_lm]
type = NodalValueSampler
block = '3'
variable = mechanical_tangential_lm
sort_by = 'x'
execute_on = TIMESTEP_END
[]
[]
(modules/solid_mechanics/test/tests/multi/paper1.i)
# This runs the models mentioned in the first example of the Multi-Surface paper
#
# Plasticity models:
# SimpleTester with a = 1 and b = 0 and strength = 1E9 (only does elasticity)
# SimpleTester with a = 1 and b = 0 and strength = 0
# SimpleTester with a = 1 and b = 0 and strength = 1E-3
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 125
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./linesearch]
order = CONSTANT
family = MONOMIAL
[../]
[./ld]
order = CONSTANT
family = MONOMIAL
[../]
[./constr_added]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./linesearch]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = linesearch
[../]
[./ld]
type = MaterialRealAux
property = plastic_linear_dependence_encountered
variable = ld
[../]
[./constr_added]
type = MaterialRealAux
property = plastic_constraints_added
variable = constr_added
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./max_iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./av_linesearch]
type = ElementAverageValue
variable = linesearch
outputs = console
[../]
[./av_ld]
type = ElementAverageValue
variable = ld
outputs = console
[../]
[./av_constr_added]
type = ElementAverageValue
variable = constr_added
outputs = console
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = console
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1E9
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 0
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1E-3
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[]
[Materials]
active = 'elasticity_tensor strain single'
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./elastic_model]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-7
plastic_models = 'simple0'
[../]
[./single]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-7
plastic_models = 'simple1'
[../]
[./double]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-7
plastic_models = 'simple1 simple2'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = paper1
exodus = false
csv = true
[]
(modules/contact/test/tests/cohesive_zone_model/bilinear_mixed_compare.i)
[Mesh]
[base]
type = GeneratedMeshGenerator
dim = 2
xmax = 1.0
ymax = 1
xmin = -0.0
nx = 1
ny = 1
[]
[rename_base]
type = RenameBoundaryGenerator
input = base
old_boundary = 'top bottom left right'
new_boundary = 'top_base bottom_base left_base right_base'
[]
[base_id]
type = SubdomainIDGenerator
input = rename_base
subdomain_id = 1
[]
[top]
type = GeneratedMeshGenerator
dim = 2
xmax = 1
ymin = 1
ymax = 2
nx = 1
ny = 1
[]
[rename_top]
type = RenameBoundaryGenerator
input = top
old_boundary = 'top bottom left right'
new_boundary = '100 101 102 103'
[]
[top_id]
type = SubdomainIDGenerator
input = rename_top
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'base_id top_id'
[]
[top_node]
type = ExtraNodesetGenerator
coord = '0 2 0'
input = combined
new_boundary = top_node
[]
[bottom_node]
type = ExtraNodesetGenerator
coord = '-0.0 0 0'
input = top_node
new_boundary = bottom_node
[]
[secondary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10001
new_block_name = 'secondary_lower'
sidesets = 'top_base'
input = bottom_node
[]
[primary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10000
sidesets = '101'
new_block_name = 'primary_lower'
input = secondary
[]
patch_update_strategy = auto
patch_size = 20
allow_renumbering = false
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
generate_output = 'stress_yy vonmises_stress stress_xy'
[all]
strain = FINITE
add_variables = true
use_automatic_differentiation = true
decomposition_method = TaylorExpansion
generate_output = 'vonmises_stress stress_yy stress_xy'
block = '1 2'
[]
[]
[]
[]
[BCs]
[fix_x]
type = DirichletBC
preset = true
value = 0.0
boundary = bottom_node
variable = disp_x
[]
[fix_top]
type = DirichletBC
preset = true
boundary = 100
variable = disp_x
value = 0
[]
[top]
type = FunctionDirichletBC
boundary = 100
variable = disp_y
function = 'if(t<=0.3,t,if(t<=0.6,0.3-(t-0.3),0.6-t))'
preset = true
[]
[bottom]
type = DirichletBC
boundary = bottom_base
variable = disp_y
value = 0
preset = true
[]
[]
[Materials]
[stress]
type = ADComputeFiniteStrainElasticStress
block = '1 2'
[]
[elasticity_tensor]
type = ADComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
block = '1 2'
[]
[]
[Postprocessors]
[stress_yy]
type = ElementExtremeValue
variable = stress_yy
value_type = max
block = '1 2'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
# petsc_options = '-pc_svd_monitor -ksp_monitor_singular_values'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'svd superlu_dist'
automatic_scaling = true
l_max_its = 2
l_tol = 1e-14
nl_max_its = 150
nl_rel_tol = 1e-14
nl_abs_tol = 1e-12
start_time = 0.0
dt = 0.01
end_time = 0.85
dtmin = 0.01
[]
[Outputs]
exodus = true
csv = true
[]
[UserObjects]
[czm_uo]
type = BilinearMixedModeCohesiveZoneModel
primary_boundary = 101
secondary_boundary = 'top_base'
primary_subdomain = 10000
secondary_subdomain = 10001
correct_edge_dropping = true
disp_x = disp_x
disp_y = disp_y
friction_coefficient = 0.0 # with 2.0 works
secondary_variable = disp_x
penalty = 0e6
penalty_friction = 0e4
use_physical_gap = true
# bilinear parameters
normal_strength = 1e4
shear_strength = 1e3
penalty_stiffness = 1e6
power_law_parameter = 2.2
viscosity = 1.0e-3
GI_c = 1e3
GII_c = 1e2
displacements = 'disp_x disp_y'
[]
[]
[Constraints]
[c_x]
type = MortarGenericTraction
primary_boundary = 101
secondary_boundary = 'top_base'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
cohesive_zone_uo = czm_uo
[]
[c_y]
type = MortarGenericTraction
primary_boundary = 101
secondary_boundary = 'top_base'
primary_subdomain = 10000
secondary_subdomain = 10001
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
cohesive_zone_uo = czm_uo
[]
[]
(test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test4qnstt.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test4qtt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
# [./element_id]
# [../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.09
normal_smoothing_distance = 0.2
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.09
normal_smoothing_distance = 0.2
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
# [./penetrate17]
# type = PenetrationAux
# variable = element_id
# boundary = 11
# paired_boundary = 12
# quantity = element_id
# [../]
#
# [./penetrate18]
# type = PenetrationAux
# variable = element_id
# boundary = 12
# paired_boundary = 11
# quantity = element_id
# [../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_abs_tol = 1e-7
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test4qnstt_out
exodus = true
[]
(modules/contact/test/tests/verification/patch_tests/single_pnt_2d/single_point_2d_contact_line_search.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
file = single_point_2d.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./penetration]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./appl_disp]
type = PiecewiseLinear
x = '0 0.001 0.101'
y = '0 0.0 -0.10'
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
save_in = 'saved_x saved_y'
[../]
[]
[AuxKernels]
[./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
[../]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = appl_disp
[../]
[./topy]
type = DirichletBC
variable = disp_y
boundary = 4
value = -0.002001
[../]
[]
[Materials]
[./bot_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e9
poissons_ratio = 0.3
[../]
[./bot_strain]
type = ComputePlaneFiniteStrain
block = '1'
[../]
[./bot_stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[../]
[./top_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./top_strain]
type = ComputePlaneFiniteStrain
block = '2'
[../]
[./top_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[../]
[]
[Postprocessors]
[./disp_x]
type = NodalVariableValue
nodeid = 5
variable = disp_x
[../]
[./disp_y]
type = NodalVariableValue
nodeid = 5
variable = disp_y
[../]
[./inc_slip_x]
type = NodalVariableValue
nodeid = 5
variable = inc_slip_x
[../]
[./inc_slip_y]
type = NodalVariableValue
nodeid = 5
variable = inc_slip_y
[../]
[./accum_slip_x]
type = NodalVariableValue
nodeid = 5
variable = accum_slip_x
[../]
[./accum_slip_y]
type = NodalVariableValue
nodeid = 5
variable = accum_slip_y
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -mat_superlu_dist_iterrefine'
petsc_options_value = 'lu superlu_dist 1'
line_search = 'contact'
contact_line_search_allowed_lambda_cuts = 0
contact_line_search_ltol = 0.5
l_max_its = 15
nl_max_its = 10
dt = 0.001
end_time = 0.002
num_steps = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-8
dtmin = 0.001
l_tol = 1e-3
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
csv = true
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
primary = 2
secondary = 3
model = frictionless
formulation = kinematic
penalty = 1e12
normalize_penalty = true
tangential_tolerance = 1e-3
[../]
[]
(modules/contact/test/tests/mortar_aux_kernels/pressure-aux-friction-3d.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
second_order = false
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[disp_z]
block = '1 2'
[]
[lm_x]
block = 'secondary_lower'
use_dual = true
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
[]
[lm_z]
block = 'secondary_lower'
use_dual = true
[]
[]
[AuxVariables]
[normal_lm]
family = LAGRANGE
order = FIRST
[]
[tangent1_lm]
family = LAGRANGE
order = FIRST
[]
[tangent2_lm]
family = LAGRANGE
order = FIRST
[]
[]
[ICs]
[disp_z]
block = 1
variable = disp_z
value = '${fparse offset}'
type = ConstantIC
[]
[disp_x]
block = 1
variable = disp_x
value = 0
type = ConstantIC
[]
[disp_y]
block = 1
variable = disp_y
value = 0
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[disp_z]
type = MatDiffusion
variable = disp_z
[]
[]
[AuxKernels]
[tangent2_lm]
type = MortarPressureComponentAux
variable = tangent2_lm
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
lm_var_x = lm_x
lm_var_y = lm_y
lm_var_z = lm_z
component = 'tangent2'
boundary = 'top_bottom'
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeFrictionalForceCartesianLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_x = lm_x
lm_y = lm_y
lm_z = lm_z
variable = lm_x # This can be anything really
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
correct_edge_dropping = true
c = 1e+02
c_t = 1e+2
mu = 0.10
[]
[normal_x]
type = CartesianMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_y]
type = CartesianMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_z]
type = CartesianMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_z
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
end_time = 1
dt = .5
dtmin = .01
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_view'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = ' lu superlu_dist NONZERO 1e-15'
l_max_its = 100
nl_max_its = 30
# nl_rel_tol = 1e-6
nl_abs_tol = 1e-12
line_search = 'none'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = false
csv = true
execute_on = 'FINAL'
[]
[VectorPostprocessors]
[tangent2_lm]
type = NodalValueSampler
block = secondary_lower
variable = tangent2_lm
sort_by = 'id'
[]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.05
dtmax = 10.0
dtmin = 0.05
num_steps = 10
[]
[Outputs]
file_base = out
exodus = true
[]
(modules/porous_flow/test/tests/flux_limited_TVD_pflow/pffltvd_2D_angle.i)
# Using flux-limited TVD advection ala Kuzmin and Turek, mploying PorousFlow Kernels and UserObjects, with superbee flux-limiter
# 2D version with velocity = (0.1, 0.2, 0)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
xmin = 0
xmax = 1
ny = 10
ymin = 0
ymax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[porepressure]
[]
[tracer]
[]
[]
[ICs]
[porepressure]
type = FunctionIC
variable = porepressure
function = '1 - x - 2 * y'
[]
[tracer]
type = FunctionIC
variable = tracer
function = 'if(x<0.1 | x > 0.3 | y < 0.1 | y > 0.3, 0, 1)'
[]
[]
[Kernels]
[mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = tracer
[]
[flux0]
type = PorousFlowFluxLimitedTVDAdvection
variable = tracer
advective_flux_calculator = advective_flux_calculator_0
[]
[mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = porepressure
[]
[flux1]
type = PorousFlowFluxLimitedTVDAdvection
variable = porepressure
advective_flux_calculator = advective_flux_calculator_1
[]
[]
[BCs]
[constant_boundary_porepressure]
type = FunctionDirichletBC
variable = porepressure
function = '1 - x - 2 * y'
boundary = 'left right top bottom'
[]
[no_tracer_at_boundary]
type = DirichletBC
variable = tracer
value = 0
boundary = 'left right top bottom'
[]
[]
[FluidProperties]
[the_simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E9
thermal_expansion = 0
viscosity = 1.0
density0 = 1000.0
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure tracer'
number_fluid_phases = 1
number_fluid_components = 2
[]
[pc]
type = PorousFlowCapillaryPressureConst
[]
[advective_flux_calculator_0]
type = PorousFlowAdvectiveFluxCalculatorUnsaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 0
[]
[advective_flux_calculator_1]
type = PorousFlowAdvectiveFluxCalculatorUnsaturatedMultiComponent
flux_limiter_type = superbee
fluid_component = 1
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[]
[massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = tracer
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = the_simple_fluid
phase = 0
[]
[relperm]
type = PorousFlowRelativePermeabilityConst
phase = 0
[]
[porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-2 0 0 0 1E-2 0 0 0 1E-2'
[]
[]
[Preconditioning]
active = basic
[basic]
type = SMP
full = true
petsc_options = '-ksp_diagonal_scale -ksp_diagonal_scale_fix'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = ' asm lu NONZERO 2'
[]
[preferred_but_might_not_be_installed]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 0.3
dt = 0.1
[]
[Outputs]
[out]
type = Exodus
execute_on = 'initial final'
[]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/planar_hard1.i)
# apply uniform stretches in x, y and z directions.
# let mc_cohesion = 10, mc_cohesion_residual = 2, mc_cohesion_rate =
# With cohesion = C, friction_angle = 60deg, tip_smoother = 4, the
# algorithm should return to
# sigma_m = C*Cos(60)/Sin(60)
# This allows checking of the relationship for C
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningExponential
value_0 = 10
value_residual = 2
rate = 1E4
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 60
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
yield_function_tolerance = 1E-5
use_custom_returnMap = true
shift = 1E-12
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = mc
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = planar_hard1
exodus = false
[./csv]
type = CSV
execute_on = timestep_end
[../]
[]
(modules/solid_mechanics/test/tests/multi/paper5.i)
# This runs the J2+cap+hardening example model described in the 'MultiSurface' plasticity paper
#
# Plasticity models:
# J2 with strength = 20MPa to 10MPa in 100% strain
# Compressive cap with strength = 15MPa to 5MPa in 100% strain
#
# Lame lambda = 1.2GPa. Lame mu = 1.2GPa (Young = 3GPa, poisson = 0.25)
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 125
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl0]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl1]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./linesearch]
order = CONSTANT
family = MONOMIAL
[../]
[./ld]
order = CONSTANT
family = MONOMIAL
[../]
[./constr_added]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./intnl0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl0
[../]
[./intnl1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl1
[../]
[./linesearch]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = linesearch
[../]
[./ld]
type = MaterialRealAux
property = plastic_linear_dependence_encountered
variable = ld
[../]
[./constr_added]
type = MaterialRealAux
property = plastic_constraints_added
variable = constr_added
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./max_f0]
type = ElementExtremeValue
variable = f0
outputs = console
[../]
[./max_f1]
type = ElementExtremeValue
variable = f1
outputs = console
[../]
[./max_iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console csv'
[../]
[./av_linesearch]
type = ElementAverageValue
variable = linesearch
outputs = 'console csv'
[../]
[./av_ld]
type = ElementAverageValue
variable = ld
outputs = 'console csv'
[../]
[./av_constr_added]
type = ElementAverageValue
variable = constr_added
outputs = 'console csv'
[../]
[]
[UserObjects]
[./yield_strength]
type = SolidMechanicsHardeningCubic
value_0 = 20E6
value_residual = 10E6
internal_limit = 1
[../]
[./j2]
type = SolidMechanicsPlasticJ2
yield_strength = yield_strength
yield_function_tolerance = 1.0E2
internal_constraint_tolerance = 1.0E-7
use_custom_returnMap = false
[../]
[./compressive_strength]
type = SolidMechanicsHardeningCubic
value_0 = 15E6
value_residual = 5E6
internal_limit = 1
[../]
[./cap]
type = SolidMechanicsPlasticMeanCap
a = -1
strength = compressive_strength
yield_function_tolerance = 1.0E2
internal_constraint_tolerance = 1.0E-7
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1.2E9 1.2E9'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
plastic_models = 'j2 cap'
max_NR_iterations = 10
deactivation_scheme = 'safe'
min_stepsize = 1
max_stepsize_for_dumb = 1
tangent_operator = elastic # tangent operator is unimportant in this test
debug_fspb = crash
debug_jac_at_stress = '10E6 0 0 0 10E6 0 0 0 10E6'
debug_jac_at_pm = '1E-2 1E-2'
debug_jac_at_intnl = '0.05 0.05'
debug_stress_change = 1E1
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = paper5
exodus = false
csv = true
perf_graph = true
[]
(test/tests/actions/add_auxkernel_action/flux_average.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[u]
[]
[]
[AuxVariables]
[flux]
order = CONSTANT
family = MONOMIAL
[AuxKernel]
type = FluxAverageAux
coupled = u
diffusivity = 0.1
boundary = right
[]
[]
[]
[Functions]
[bc_func]
type = ParsedFunction
expression = y+1
[]
[]
[Kernels]
[diff]
type = CoefDiffusion
variable = u
coef = 0.1
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[AuxKernels]
[flux_average]
type = FluxAverageAux
variable = flux
coupled = u
diffusivity = 0.1
boundary = right
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = FunctionDirichletBC
variable = u
boundary = right
function = bc_func
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/hcp_twinning/demonstration_combined_hcp_slip_twins.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[single_xtal]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[]
[AuxVariables]
[temperature]
[]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[fp_xx]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[total_twin_volume_fraction]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_0]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_3]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_9]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_3]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_9]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_0]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_3]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_9]
order = CONSTANT
family = MONOMIAL
[]
[resolved_twin_stress_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_0]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental = true
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[temperature]
type = ConstantAux
variable = temperature
value= 300
[]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_xx]
type = RankTwoAux
variable = fp_xx
rank_two_tensor = plastic_deformation_gradient
index_j = 0
index_i = 0
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[total_twin_volume_fraction]
type = MaterialRealAux
variable = total_twin_volume_fraction
property = twin_total_volume_fraction_twins
execute_on = timestep_end
[]
[slip_increment_0]
type = MaterialStdVectorAux
variable = slip_increment_0
property = slip_increment
index = 0
execute_on = timestep_end
[]
[slip_increment_3]
type = MaterialStdVectorAux
variable = slip_increment_3
property = slip_increment
index = 3
execute_on = timestep_end
[]
[slip_increment_9]
type = MaterialStdVectorAux
variable = slip_increment_9
property = slip_increment
index = 9
execute_on = timestep_end
[]
[tau_3]
type = MaterialStdVectorAux
variable = resolved_shear_stress_3
property = applied_shear_stress
index = 3
execute_on = timestep_end
[]
[tau_9]
type = MaterialStdVectorAux
variable = resolved_shear_stress_9
property = applied_shear_stress
index = 9
execute_on = timestep_end
[]
[slip_resistance_0]
type = MaterialStdVectorAux
variable = slip_resistance_0
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[slip_resistance_3]
type = MaterialStdVectorAux
variable = slip_resistance_3
property = slip_resistance
index = 3
execute_on = timestep_end
[]
[slip_resistance_9]
type = MaterialStdVectorAux
variable = slip_resistance_9
property = slip_resistance
index = 9
execute_on = timestep_end
[]
[twin_tau_0]
type = MaterialStdVectorAux
variable = resolved_twin_stress_0
property = twin_applied_shear_stress
index = 0
execute_on = timestep_end
[]
[twin_resistance_0]
type = MaterialStdVectorAux
variable = twin_resistance_0
property = twin_slip_resistance
index = 0
execute_on = timestep_end
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = disp_y
preset = true
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.005*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.622e5 9.18e4 6.88e4 1.622e5 6.88e4 1.805e5 4.67e4 4.67e4 4.67e4' #alpha Ti, Alankar et al. Acta Materialia 59 (2011) 7003-7009
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'slip_xtalpl twin_xtalpl'
tan_mod_type = exact
[]
[slip_xtalpl]
type = CrystalPlasticityHCPDislocationSlipBeyerleinUpdate
number_slip_systems = 15
slip_sys_file_name = 'hcp_aprismatic_capyramidal_slip_sys.txt'
unit_cell_dimension = '2.934e-7 2.934e-7 4.657e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
zero_tol = 5e-10
temperature = temperature
initial_forest_dislocation_density = 15.0e5
initial_substructure_density = 1.0e3
slip_system_modes = 2
number_slip_systems_per_mode = '3 12'
lattice_friction_per_mode = '98 224' #Knezevic et al MSEA 654 (2013)
effective_shear_modulus_per_mode = '4.7e4 4.7e4' #Ti, in MPa, https://materialsproject.org/materials/mp-46/
burgers_vector_per_mode = '2.934e-7 6.586e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
slip_generation_coefficient_per_mode = '1.25e5 2.25e7' #from Beyerlein and Tome 2008 IJP
normalized_slip_activiation_energy_per_mode = '3.73e-3 3.2e-2' #from Beyerlein and Tome 2008 IJP
slip_energy_proportionality_factor_per_mode = '330 100' #from Beyerlein and Tome 2008 IJP
substructure_rate_coefficient_per_mode = '355 0.4' #from Capolungo et al MSEA (2009)
applied_strain_rate = 0.001
gamma_o = 1.0e-3
Hall_Petch_like_constant_per_mode = '0.2 0.2' #Estimated to match graph in Capolungo et al MSEA (2009), Figure 2
grain_size = 20.0e-3 #20 microns, Beyerlein and Tome IJP (2008)
total_twin_volume_fraction = twin_total_volume_fraction_twins
[]
[twin_xtalpl]
type = CrystalPlasticityTwinningKalidindiUpdate
base_name = twin
crystal_lattice_type = HCP
unit_cell_dimension = '2.934e-7 2.934e-7 4.657e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
number_slip_systems = 6
slip_sys_file_name = 'hcp_tensile_twin_systems.txt'
initial_twin_lattice_friction = 1140.0
non_coplanar_coefficient_twin_hardening = 10000
coplanar_coefficient_twin_hardening = 1000
characteristic_twin_shear = 0.167
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[fp_xx]
type = ElementAverageValue
variable = fp_xx
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[total_twin_volume_fraction]
type = ElementAverageValue
variable = total_twin_volume_fraction
[]
[slip_increment_0]
type = ElementAverageValue
variable = slip_increment_0
[]
[slip_increment_3]
type = ElementAverageValue
variable = slip_increment_3
[]
[slip_increment_9]
type = ElementAverageValue
variable = slip_increment_9
[]
[tau_3]
type = ElementAverageValue
variable = resolved_shear_stress_3
[]
[tau_9]
type = ElementAverageValue
variable = resolved_shear_stress_9
[]
[slip_resistance_0]
type = ElementAverageValue
variable = slip_resistance_0
[]
[slip_resistance_3]
type = ElementAverageValue
variable = slip_resistance_3
[]
[slip_resistance_9]
type = ElementAverageValue
variable = slip_resistance_9
[]
[twin_tau_0]
type = ElementAverageValue
variable = resolved_twin_stress_0
[]
[twin_resistance_0]
type = ElementAverageValue
variable = twin_resistance_0
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_rel_tol = 1e-12
nl_abs_step_tol = 1e-10
dt = 0.5
dtmin = 1.0e-2
dtmax = 10.0
end_time = 2.25
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/small_deform1_uo.i)
# apply uniform stretch in x, y and z directions.
# With cohesion = 10, friction_angle = 60deg, tip_smoother = 4, the
# algorithm should return to
# sigma_m = (10*Cos(60) - 4)/Sin(60) = 1.1547
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 60
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 4
mc_edge_smoother = 25
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1
debug_stress_change = 1E-5
debug_pm_change = 1E-6
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform1_uo
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/finite_strain_elastic/finite_strain_elastic_eigen_sol.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = '0.01 * t'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
decomposition_method = EigenSolution
[../]
[]
[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
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = tdisp
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomeramg
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
nl_rel_tol = 1e-10
dt = 0.05
dtmin = 0.05
nl_abs_step_tol = 1e-10
num_steps = 10
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/random3.i)
# Using CappedMohrCoulomb with Mohr-Coulomb failure only
# Plasticity models:
# Cohesion = 1MPa
# Friction angle = dilation angle = 0.5
#
# Lame lambda = 1GPa. Lame mu = 1.3GPa
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 1234
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 1234
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./f3]
order = CONSTANT
family = MONOMIAL
[../]
[./f4]
order = CONSTANT
family = MONOMIAL
[../]
[./f5]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 6
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 7
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 8
variable = f2
[../]
[./f3]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 9
variable = f3
[../]
[./f4]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 10
variable = f4
[../]
[./f5]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 11
variable = f5
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = int0
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./tot_iters]
type = ElementIntegralMaterialProperty
mat_prop = plastic_NR_iterations
outputs = console
[../]
[./intnl_max]
type = ElementExtremeValue
variable = int0
outputs = console
[../]
[./raw_f0]
type = ElementExtremeValue
variable = f0
outputs = console
[../]
[./raw_f1]
type = ElementExtremeValue
variable = f1
outputs = console
[../]
[./raw_f2]
type = ElementExtremeValue
variable = f2
outputs = console
[../]
[./raw_f3]
type = ElementExtremeValue
variable = f3
outputs = console
[../]
[./raw_f4]
type = ElementExtremeValue
variable = f4
outputs = console
[../]
[./raw_f5]
type = ElementExtremeValue
variable = f5
outputs = console
[../]
[./iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./f0]
type = FunctionValuePostprocessor
function = should_be_zero0_fcn
[../]
[./f1]
type = FunctionValuePostprocessor
function = should_be_zero1_fcn
[../]
[./f2]
type = FunctionValuePostprocessor
function = should_be_zero2_fcn
[../]
[./f3]
type = FunctionValuePostprocessor
function = should_be_zero3_fcn
[../]
[./f4]
type = FunctionValuePostprocessor
function = should_be_zero4_fcn
[../]
[./f5]
type = FunctionValuePostprocessor
function = should_be_zero5_fcn
[../]
[]
[Functions]
[./should_be_zero0_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f0'
[../]
[./should_be_zero1_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f1'
[../]
[./should_be_zero2_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f2'
[../]
[./should_be_zero3_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f3'
[../]
[./should_be_zero4_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f4'
[../]
[./should_be_zero5_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f5'
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E12
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E12
[../]
[./coh]
type = SolidMechanicsHardeningCubic
value_0 = 1E6
value_residual = 0
internal_limit = 1
[../]
[./ang]
type = SolidMechanicsHardeningCubic
value_0 = 0.9
value_residual = 0.2
internal_limit = 1
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '1E9 1.3E9'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 1E5
max_NR_iterations = 100
yield_function_tol = 1.0E-1
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random3
csv = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/planar_hard3.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# Both return to the edge (lode angle = 30deg, ie 010100) and tip are experienced.
#
# It is checked that the yield functions are less than their tolerance values
# It is checked that the cohesion hardens correctly
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.05E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[Functions]
[./should_be_zero_fcn]
type = ParsedFunction
expression = 'if((a<1E-5)&(b<1E-5)&(c<1E-5)&(d<1E-5)&(g<1E-5)&(h<1E-5),0,abs(a)+abs(b)+abs(c)+abs(d)+abs(g)+abs(h))'
symbol_names = 'a b c d g h'
symbol_values = 'f0 f1 f2 f3 f4 f5'
[../]
[./coh_analytic]
type = ParsedFunction
expression = '20-10*exp(-1E5*intnl)'
symbol_names = intnl
symbol_values = internal
[../]
[./coh_from_yieldfcns]
type = ParsedFunction
expression = '(f0+f1-(sxx+syy)*sin(phi))/(-2)/cos(phi)'
symbol_names = 'f0 f1 sxx syy phi'
symbol_values = 'f0 f1 s_xx s_yy 0.8726646'
[../]
[./should_be_zero_coh]
type = ParsedFunction
expression = 'if(abs(a-b)<1E-6,0,1E6*abs(a-b))'
symbol_names = 'a b'
symbol_values = 'Coh_analytic Coh_moose'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn0]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn1]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn2]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn3]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn4]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn5]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn0]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn0
[../]
[./yield_fcn1]
type = MaterialStdVectorAux
index = 1
property = plastic_yield_function
variable = yield_fcn1
[../]
[./yield_fcn2]
type = MaterialStdVectorAux
index = 2
property = plastic_yield_function
variable = yield_fcn2
[../]
[./yield_fcn3]
type = MaterialStdVectorAux
index = 3
property = plastic_yield_function
variable = yield_fcn3
[../]
[./yield_fcn4]
type = MaterialStdVectorAux
index = 4
property = plastic_yield_function
variable = yield_fcn4
[../]
[./yield_fcn5]
type = MaterialStdVectorAux
index = 5
property = plastic_yield_function
variable = yield_fcn5
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = yield_fcn2
[../]
[./f3]
type = PointValue
point = '0 0 0'
variable = yield_fcn3
[../]
[./f4]
type = PointValue
point = '0 0 0'
variable = yield_fcn4
[../]
[./f5]
type = PointValue
point = '0 0 0'
variable = yield_fcn5
[../]
[./yfcns_should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[../]
[./Coh_analytic]
type = FunctionValuePostprocessor
function = coh_analytic
[../]
[./Coh_moose]
type = FunctionValuePostprocessor
function = coh_from_yieldfcns
[../]
[./cohesion_difference_should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_coh
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningExponential
value_0 = 10
value_residual = 20
rate = 1E5
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 0.8726646
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 1 #0.8726646 # 50deg
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
yield_function_tolerance = 1E-5
use_custom_returnMap = true
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = mc
[../]
[]
[Executioner]
end_time = 5
dt = 1
type = Transient
[]
[Outputs]
file_base = planar_hard3
exodus = false
[./csv]
type = CSV
hide = 'f0 f1 f2 f3 f4 f5 s_xy s_xz s_yz Coh_analytic Coh_moose'
execute_on = 'timestep_end'
[../]
[]
(modules/contact/test/tests/mortar_cartesian_lms/frictionless-weighted-gap-lm.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[lm_x]
block = 3
[]
[lm_y]
block = 3
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeWeightedGapCartesianLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_x = lm_x
lm_y = lm_y
variable = lm_x # Shouldn't be needed, but forced by framework
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
c = 1
[]
[normal_x]
type = CartesianMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
[]
[normal_y]
type = CartesianMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = 5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
l_tol = 1e-03
nl_max_its = 20
line_search = 'none'
snesmf_reuse_base = true
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = lm_y
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/update_method_test.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[gss]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[gss]
type = MaterialStdVectorAux
variable = gss
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_increment
index = 0
execute_on = timestep_end
[]
[]
[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
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.01*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[gss]
type = ElementAverageValue
variable = gss
[]
[slip_increment]
type = ElementAverageValue
variable = slip_increment
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.05
dtmin = 0.01
dtmax = 10.0
num_steps = 10
[]
[Outputs]
exodus = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/twinning/non_coplanar_twin_hardening.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[]
[AuxVariables]
[total_twin_volume_fraction]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_tau_3]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[total_twin_volume_fraction]
type = MaterialRealAux
variable = total_twin_volume_fraction
property = total_volume_fraction_twins
execute_on = timestep_end
[]
[twin_resistance_0]
type = MaterialStdVectorAux
variable = twin_resistance_0
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[twin_resistance_1]
type = MaterialStdVectorAux
variable = twin_resistance_1
property = slip_resistance
index = 1
execute_on = timestep_end
[]
[twin_resistance_2]
type = MaterialStdVectorAux
variable = twin_resistance_2
property = slip_resistance
index = 2
execute_on = timestep_end
[]
[twin_resistance_3]
type = MaterialStdVectorAux
variable = twin_resistance_3
property = slip_resistance
index = 3
execute_on = timestep_end
[]
[twin_volume_fraction_0]
type = MaterialStdVectorAux
variable = twin_volume_fraction_0
property = twin_system_volume_fraction
index = 0
execute_on = timestep_end
[]
[twin_volume_fraction_1]
type = MaterialStdVectorAux
variable = twin_volume_fraction_1
property = twin_system_volume_fraction
index = 1
execute_on = timestep_end
[]
[twin_volume_fraction_2]
type = MaterialStdVectorAux
variable = twin_volume_fraction_2
property = twin_system_volume_fraction
index = 2
execute_on = timestep_end
[]
[twin_volume_fraction_3]
type = MaterialStdVectorAux
variable = twin_volume_fraction_3
property = twin_system_volume_fraction
index = 3
execute_on = timestep_end
[]
[twin_tau_0]
type = MaterialStdVectorAux
variable = twin_tau_0
property = applied_shear_stress
index = 0
execute_on = timestep_end
[]
[twin_tau_1]
type = MaterialStdVectorAux
variable = twin_tau_1
property = applied_shear_stress
index = 1
execute_on = timestep_end
[]
[twin_tau_2]
type = MaterialStdVectorAux
variable = twin_tau_2
property = applied_shear_stress
index = 2
execute_on = timestep_end
[]
[twin_tau_3]
type = MaterialStdVectorAux
variable = twin_tau_3
property = applied_shear_stress
index = 3
execute_on = timestep_end
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'bottom'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '-1.0e-3*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.08e5 6.034e4 6.034e4 1.08e5 6.03e4 1.08e5 2.86e4 2.86e4 2.86e4' #Tallon and Wolfenden. J. Phys. Chem. Solids (1979)
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'twin_only_xtalpl'
tan_mod_type = exact
[]
[twin_only_xtalpl]
type = CrystalPlasticityTwinningKalidindiUpdate
number_slip_systems = 4
slip_sys_file_name = 'select_twin_systems_verify_hardening.txt'
initial_twin_lattice_friction = 6.0
non_coplanar_coefficient_twin_hardening = 8e4
non_coplanar_twin_hardening_exponent = 0.1
coplanar_coefficient_twin_hardening = 0
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[total_twin_volume_fraction]
type = ElementAverageValue
variable = total_twin_volume_fraction
[]
[twin_resistance_0]
type = ElementAverageValue
variable = twin_resistance_0
[]
[twin_resistance_1]
type = ElementAverageValue
variable = twin_resistance_1
[]
[twin_resistance_2]
type = ElementAverageValue
variable = twin_resistance_2
[]
[twin_resistance_3]
type = ElementAverageValue
variable = twin_resistance_3
[]
[twin_volume_fraction_0]
type = ElementAverageValue
variable = twin_volume_fraction_0
[]
[twin_volume_fraction_1]
type = ElementAverageValue
variable = twin_volume_fraction_1
[]
[twin_volume_fraction_2]
type = ElementAverageValue
variable = twin_volume_fraction_2
[]
[twin_volume_fraction_3]
type = ElementAverageValue
variable = twin_volume_fraction_3
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.05
dtmin = 1e-6
dtmax = 10.0
num_steps = 4
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/drucker_prager/small_deform2_inner_tip.i)
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1.5E-6*x+2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./mc]
type = SolidMechanicsPlasticDruckerPragerHyperbolic
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
smoother = 4
mc_interpolation_scheme = inner_tip
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2_inner_tip
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/time_steppers/timesequence_stepper/timesequence_restart1.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[ICs]
[./u_var]
type = FunctionIC
variable = u
function = exact_fn
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
end_time = 4.0
[./TimeStepper]
type = TimeSequenceStepper
time_sequence = '0 0.85 1.3 2 4'
[../]
[]
[Outputs]
exodus = true
[./checkpoint]
type = Checkpoint
num_files = 4
[../]
[]
(modules/phase_field/test/tests/free_energy_material/RegularSolutionFreeEnergy.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmax = 1
ymax = 500
elem_type = QUAD4
[]
[Variables]
[./c]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = x
[../]
[../]
[./myT]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = y
[../]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = c
[../]
[./diff2]
type = Diffusion
variable = myT
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = c
boundary = left
function = x
[../]
[./bottom]
type = FunctionDirichletBC
variable = myT
boundary = bottom
function = y
[../]
[./right]
type = FunctionDirichletBC
variable = c
boundary = right
function = x
[../]
[./top]
type = FunctionDirichletBC
variable = myT
boundary = top
function = y
[../]
[]
[Materials]
[./free_energy]
type = RegularSolutionFreeEnergy
property_name = F
c = c
T = myT
outputs = out
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
l_max_its = 1
nl_max_its = 1
nl_abs_tol = 1
[]
[Outputs]
execute_on = 'timestep_end'
[./out]
type = Exodus
execute_on = timestep_end
[../]
[]
(test/tests/multiapps/auto_diff_auto_scaling/main.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = ADDiffusion
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = right
function = 't'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
num_steps = 2
solve_type = 'Newton'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
verbose = true
[]
[Outputs]
exodus = true
[]
[MultiApps]
[sub_app]
type = TransientMultiApp
app_type = MooseTestApp
input_files = 'sub.i'
positions = '0 0 0'
[]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform1.i)
# Using CappedMohrCoulomb with tensile failure only
# checking for small deformation
# A single element is stretched by 1E-6m in z direction, and by small amounts in x and y directions
# stress_zz = Youngs Modulus*Strain = 2E6*1E-6 = 2 Pa
# tensile_strength is set to 1Pa
# Then the final stress should return to the yeild surface and the minimum principal stress value should be 1pa.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.2E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = ts
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.0
yield_function_tol = 1.0E-9
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform1
csv = true
[]
(modules/contact/test/tests/bouncing-block-contact/frictionless-weighted-gap-mixed-basis.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
second_order = true
patch_update_strategy = always
[]
[Variables]
[./disp_x]
block = '1 2'
order = SECOND
[../]
[./disp_y]
block = '1 2'
order = SECOND
[../]
[./normal_lm]
block = 3
[../]
[]
# [AuxVariables]
# [pid]
# order = CONSTANT
# family = MONOMIAL
# []
# []
# [AuxKernels]
# [pid]
# type = ProcessorIDAux
# variable = pid
# []
# []
[ICs]
[./disp_y]
block = 2
variable = disp_y
value = ${fparse starting_point + offset}
type = ConstantIC
[../]
[]
[Kernels]
[./disp_x]
type = MatDiffusion
variable = disp_x
[../]
[./disp_y]
type = MatDiffusion
variable = disp_y
[../]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable = normal_lm
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[./weighted_gap_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
c = 1
weighted_gap_uo = weighted_gap_uo
[../]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
preset = false
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
preset = false
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
preset = false
[../]
[./leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
preset = false
[../]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
snesmf_reuse_base = false
abort_on_solve_fail = true
nl_rel_tol = 1e-12
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[./num_nl]
type = NumNonlinearIterations
[../]
[./cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[../]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(test/tests/geomsearch/patch_update_strategy/always-grid-sequence.i)
[Mesh]
type = FileMesh
file = long_range_coarse.e
dim = 2
patch_update_strategy = always
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
solution_variables = 'u'
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./linear_field]
[../]
[./receiver]
# The field to transfer into
[../]
[./disp_x]
[../]
[./disp_y]
[../]
[./elemental_reciever]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 1
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./linear_in_y]
# This just gives us something to transfer that varies in y so we can ensure the transfer is working properly...
type = FunctionAux
variable = linear_field
function = y
execute_on = initial
[../]
[./right_to_left]
type = GapValueAux
variable = receiver
paired_variable = linear_field
paired_boundary = rightleft
execute_on = 'nonlinear timestep_end'
boundary = leftright
[../]
[./y_displacement]
type = FunctionAux
variable = disp_y
function = t
execute_on = 'linear timestep_begin'
block = left
[../]
[./elemental_right_to_left]
type = GapValueAux
variable = elemental_reciever
paired_variable = linear_field
paired_boundary = rightleft
boundary = leftright
[../]
[]
[BCs]
[./top]
type = FunctionDirichletBC
variable = u
boundary = 'lefttop righttop'
function = 't'
[../]
[./bottom]
type = DirichletBC
variable = u
boundary = 'leftbottom rightbottom'
value = 0
[../]
[]
[Executioner]
type = Transient
num_steps = 3
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
num_grids = 2
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[num_nl]
type = NumNonlinearIterations
[]
[total_nl]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[]
(modules/solid_mechanics/test/tests/beam/fric_constraint/2_block_common_cross.i)
# Test for LineElementAction on multiple blocks by placing parameters
# common to all blocks outside of the individual action blocks
# 2 beams of length 1m are fixed at one end and a force of 1e-4 N
# is applied at the other end of the beams. Beam 1 is in block 1
# and beam 2 is in block 2. All the material properties for the two
# beams are identical. The moment of inertia of beam 2 is twice that
# of beam 1.
# Since the end displacement of a cantilever beam is inversely proportional
# to the moment of inertia, the y displacement at the end of beam 1 should be twice
# that of beam 2.
[Mesh]
type = FileMesh
file = test_fric_cross.e
#displacements = 'disp_x disp_y disp_z'
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = '1 2 3'
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = '1 2 3'
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = '1 3'
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = '1 2 3'
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = '1 2 3'
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = '1 2 3'
value = 0.0
[../]
[./move_z4]
type = FunctionDirichletBC
variable = disp_z
boundary = 2
function = pull
[../]
[]
[Functions]
[./pull]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0'
y = '0.0 0.0 -0.2 -0.4 -0.6 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 5e-5
l_max_its = 10
dt = 1
dtmin = 1
end_time = 13
[]
[Physics/SolidMechanics/LineElement/QuasiStatic]
# parameters common to all blocks
add_variables = true
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
# Geometry parameters
area = 0.5
y_orientation = '0.0 1.0 0.0'
[./block_1]
Iy = 1e-5
Iz = 1e-5
block = 1
[../]
[./block_2]
Iy = 8e-4
Iz = 8e-4
block = '2 3'
[../]
[]
[Materials]
[./stress]
type = ComputeBeamResultants
block = '1 2 3'
[../]
[./elasticity_1]
type = ComputeElasticityBeam
youngs_modulus = 2.0
poissons_ratio = 0.3
shear_coefficient = 1.0
block = '1 2 3'
[../]
[]
[Constraints]
[./tie_z]
type = NodalFrictionalConstraint
normal_force = 0.006
tangential_penalty = 100
friction_coefficient = 0.5
boundary = 6
secondary = 4
variable = disp_z
[../]
[./tie_z2]
type = NodalFrictionalConstraint
normal_force = 0.006
tangential_penalty = 100
friction_coefficient = 0.2
boundary = 6
secondary = 5
variable = disp_z
[../]
[]
[Postprocessors]
[./disp_x_1]
type = NodalVariableValue
nodeid = 1
variable = disp_x
[../]
[./disp_x_2]
type = NodalVariableValue
nodeid = 2
variable = disp_x
[../]
[./disp_z_1]
type = NodalVariableValue
nodeid = 1
variable = disp_z
[../]
[./disp_z_2]
type = NodalVariableValue
nodeid = 2
variable = disp_z
[../]
[]
[Outputs]
#file_base = '2_block_out'
exodus = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/except1.i)
# checking for exception error messages
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 45
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 1
mc_edge_smoother = 25
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1
debug_stress_change = 1E-5
debug_pm_change = 1E-6
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = except1
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/variables/fe_monomial_const/monomial-const-3d.i)
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -1
xmax = 1
ymin = -1
ymax = 1
zmin = -1
zmax = 1
nx = 21
ny = 21
nz = 21
elem_type = HEX8
[]
[Functions]
[./bc_fn]
type=ParsedFunction
expression=0
[../]
[./bc_fnt]
type = ParsedFunction
expression = 0
[../]
[./bc_fnb]
type = ParsedFunction
expression = 0
[../]
[./bc_fnl]
type = ParsedFunction
expression = 0
[../]
[./bc_fnr]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
# type = ParsedFunction
# expression = 0
type = MTPiecewiseConst3D
[../]
[./solution]
type = MTPiecewiseConst3D
[../]
[]
[Variables]
[./u]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
active = 'diff forcing reaction'
[./diff]
type = Diffusion
variable = u
[../]
[./reaction]
type = Reaction
variable = u
[../]
[./forcing]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
# Note: MOOSE's DirichletBCs do not work properly with shape functions that do not
# have DOFs at the element edges. This test works because the solution
# has been designed to be zero at the boundary which is satisfied by the IC
# Ticket #1352
active = ''
[./bc_all]
type=FunctionDirichletBC
variable = u
boundary = 'top bottom left right'
function = bc_fn
[../]
[./bc_top]
type = FunctionNeumannBC
variable = u
boundary = 'top'
function = bc_fnt
[../]
[./bc_bottom]
type = FunctionNeumannBC
variable = u
boundary = 'bottom'
function = bc_fnb
[../]
[./bc_left]
type = FunctionNeumannBC
variable = u
boundary = 'left'
function = bc_fnl
[../]
[./bc_right]
type = FunctionNeumannBC
variable = u
boundary = 'right'
function = bc_fnr
[../]
[]
[Postprocessors]
[./dofs]
type = NumDOFs
[../]
[./h]
type = AverageElementSize
[../]
[./L2error]
type = ElementL2Error
variable = u
function = solution
[../]
[./H1error]
type = ElementH1Error
variable = u
function = solution
[../]
[./H1Semierror]
type = ElementH1SemiError
variable = u
function = solution
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1.e-9
[./Adaptivity]
[../]
[]
[Outputs]
execute_on = 'timestep_end'
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
(modules/contact/test/tests/hertz_spherical/hertz_contact_hex20.i)
# Hertz Contact: Sphere on sphere
# Spheres have the same radius, Young's modulus, and Poisson's ratio.
# Define E:
# 1/E = (1-nu1^2)/E1 + (1-nu2^2)/E2
#
# Effective radius R:
# 1/R = 1/R1 + 1/R2
#
# F is the applied compressive load.
#
# Area of contact a::
# a^3 = 3FR/4E
#
# Depth of indentation d:
# d = a^2/R
#
#
# Let R1 = R2 = 2. Then R = 1.
#
# Let nu1 = nu2 = 0.25, E1 = E2 = 1.40625e7. Then E = 7.5e6.
#
# Let F = 10000. Then a = 0.1, d = 0.01.
#
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y disp_z'
order = SECOND
[]
[Mesh]#Comment
file = hertz_contact_hex20.e
allow_renumbering = false
[] # Mesh
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Functions]
[./pressure]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 795.77471545947674 # 10000/pi/2^2
[../]
[./disp_y]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. -0.01 -0.01'
[../]
[] # Functions
[Variables]
[./disp_x]
order = SECOND
family = LAGRANGE
[../]
[./disp_y]
order = SECOND
family = LAGRANGE
[../]
[./disp_z]
order = SECOND
family = LAGRANGE
[../]
[] # Variables
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic]
order = CONSTANT
family = MONOMIAL
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_z]
[../]
[] # AuxVariables
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = SMALL
extra_vector_tags = 'ref'
save_in = 'saved_x saved_y saved_z'
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[../]
# [./vonmises]
# type = RankTwoScalarAux
# rank_two_tensor = stress
# variable = vonmises
# scalar_type = VonMisesStress
# [../]
[] # AuxKernels
[BCs]
[./base_x]
type = DirichletBC
variable = disp_x
boundary = 1000
value = 0.0
[../]
[./base_y]
type = DirichletBC
variable = disp_y
boundary = 1000
value = 0.0
[../]
[./base_z]
type = DirichletBC
variable = disp_z
boundary = 1000
value = 0.0
[../]
[./symm_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./symm_z]
type = DirichletBC
variable = disp_z
boundary = 3
value = 0.0
[../]
[./disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[] # BCs
[Contact]
[./dummy_name]
primary = 1000
secondary = 100
normalize_penalty = true
tangential_tolerance = 1e-3
penalty = 1e+10
[../]
[]
#[Dampers]
# [./contact_slip]
# type = ContactSlipDamper
# primary = 1000
# secondary = 100
# [../]
#[]
[Materials]
[./tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.40625e7
poissons_ratio = 0.25
[../]
[./stress]
type = ComputeLinearElasticStress
block = '1'
[../]
[./tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '1000'
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./stress_1000]
type = ComputeLinearElasticStress
block = '1000'
[../]
[] # Materials
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-7
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 2.0
[./Quadrature]
order = THIRD
[../]
[] # Executioner
[Postprocessors]
[./maxdisp]
type = NodalVariableValue
nodeid = 386 # 387-1 where 387 is the exodus node number of the top-center node
variable = disp_y
[../]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 2
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 2
[../]
[./bot_react_z]
type = NodalSum
variable = saved_z
boundary = 2
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[] # Outputs
(modules/xfem/test/tests/moving_interface/verification/2D_xy_lsdep1mat.i)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #
# XFEM Moving Interface Verification Problem
# Dimensionality: 2D
# Coordinate System: xy
# Material Numbers/Types: level set dep 1 material, 2 region
# Element Order: 1st
# Interface Characteristics: u independent, prescribed level set function
# Description:
# Transient 2D heat transfer problem in Cartesian coordinates designed with
# the Method of Manufactured Solutions. This problem was developed to verify
# XFEM performance on linear elements in the presence of a moving interface
# sweeping across the x-y coordinates of a system with thermal conductivity
# dependent upon the transient level set function. This problem can be
# exactly evaluated by FEM/Moose without the moving interface. Both the
# temperature and level set function are designed to be linear to attempt to
# minimize the error between the Moose/exact solution and XFEM results.
# Results:
# The temperature at the bottom left boundary (x=0, y=0) exhibits the largest
# difference between the FEM/Moose solution and XFEM results. We present the
# XFEM results at this location with 10 digits of precision:
# Time Expected Temperature XFEM Calculated Temperature
# 0.2 440 440
# 0.4 480 479.9998738
# 0.6 520 519.9995114
# 0.8 560 559.9989360
# 1.0 600 599.9983833
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[XFEM]
qrule = moment_fitting
output_cut_plane = true
[]
[UserObjects]
[./level_set_cut_uo]
type = LevelSetCutUserObject
level_set_var = ls
heal_always = true
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./ls]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./heat_cond]
type = MatDiffusion
variable = u
diffusivity = diffusion_coefficient
[../]
[./vol_heat_src]
type = BodyForce
variable = u
function = src_func
[../]
[./mat_time_deriv]
type = TestMatTimeDerivative
variable = u
mat_prop_value = rhoCp
[../]
[]
[AuxKernels]
[./ls_function]
type = FunctionAux
variable = ls
function = ls_func
[../]
[]
[Constraints]
[./xfem_constraints]
type = XFEMSingleVariableConstraint
variable = u
geometric_cut_userobject = 'level_set_cut_uo'
use_penalty = true
alpha = 1e5
[../]
[]
[Functions]
[./src_func]
type = ParsedFunction
expression = '10*(-100*x-100*y+200)-(5*t/1.04)'
[../]
[./neumann_func]
type = ParsedFunction
expression = '((0.01/1.04)*(-2.5*x-2.5*y-t)+1.55)*100*t'
[../]
[./dirichlet_right_func]
type = ParsedFunction
expression = '(-100*y+100)*t+400'
[../]
[./dirichlet_top_func]
type = ParsedFunction
expression = '(-100*x+100)*t+400'
[../]
[./k_func]
type = ParsedFunction
expression = '(0.01/1.04)*(-2.5*x-2.5*y-t)+1.55'
[../]
[./ls_func]
type = ParsedFunction
expression = '-0.5*(x+y) + 1.04 -0.2*t'
[../]
[]
[Materials]
[./mat_time_deriv_prop]
type = GenericConstantMaterial
prop_names = 'rhoCp'
prop_values = 10
[../]
[./therm_cond_prop]
type = GenericFunctionMaterial
prop_names = 'diffusion_coefficient'
prop_values = 'k_func'
[../]
[]
[BCs]
[./left_du]
type = FunctionNeumannBC
variable = u
boundary = 'left'
function = neumann_func
[../]
[./right_u]
type = FunctionDirichletBC
variable = u
boundary = 'right'
function = dirichlet_right_func
[../]
[./bottom_du]
type = FunctionNeumannBC
variable = u
boundary = 'bottom'
function = neumann_func
[../]
[./top_u]
type = FunctionDirichletBC
variable = u
boundary = 'top'
function = dirichlet_top_func
[../]
[]
[ICs]
[./u_ic]
type = ConstantIC
value = 400
variable = u
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_tol = 1.0e-6
nl_max_its = 15
nl_rel_tol = 1.0e-10
nl_abs_tol = 1.0e-9
start_time = 0.0
dt = 0.2
end_time = 1.0
max_xfem_update = 1
[]
[Outputs]
time_step_interval = 1
execute_on = 'initial timestep_end'
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/strain_energy_density/rate_model_small.i)
# Single element test to check the strain energy density calculation
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 2
[]
[AuxVariables]
[./SERD]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./rampConstantUp]
type = PiecewiseLinear
x = '0. 1.'
y = '0. 1.'
scale_factor = -100
[../]
[./ramp_disp_y]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 6.8e-6 1.36e-5'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./master]
strain = SMALL
add_variables = true
incremental = true
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz'
planar_formulation = PLANE_STRAIN
[../]
[]
[AuxKernels]
[./SERD]
type = MaterialRealAux
variable = SERD
property = strain_energy_rate_density
execute_on = timestep_end
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 'left'
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 'bottom'
value = 0.0
[../]
[./top_disp]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 'top'
function = ramp_disp_y
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 206800
poissons_ratio = 0.0
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'powerlawcrp'
[../]
[./powerlawcrp]
type = PowerLawCreepStressUpdate
coefficient = 3.125e-21 # 7.04e-17 #
n_exponent = 4.0
m_exponent = 0.0
activation_energy = 0.0
# max_inelastic_increment = 0.01
[../]
[./strain_energy_rate_density]
type = StrainEnergyRateDensity
inelastic_models = 'powerlawcrp'
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
l_max_its = 50
nl_max_its = 20
nl_abs_tol = 3e-7
nl_rel_tol = 1e-12
l_tol = 1e-2
start_time = 0.0
dt = 1
end_time = 2
num_steps = 2
[]
[Postprocessors]
[./etxx]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./etyy]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./etzz]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[./sigxx]
type = ElementAverageValue
variable = stress_xx
[../]
[./sigyy]
type = ElementAverageValue
variable = stress_yy
[../]
[./sigzz]
type = ElementAverageValue
variable = stress_zz
[../]
[./SERD]
type = ElementAverageValue
variable = SERD
[../]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/central_difference/consistent/3D/3d_consistent_explicit.i)
# One element test to test the central difference time integrator in 3D.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 2
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 2
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[]
[AuxKernels]
[./accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[../]
[./vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[../]
[./accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[../]
[./vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_x
[../]
[./accel_z]
type = TestNewmarkTI
variable = accel_z
displacement = disp_z
first = false
[../]
[./vel_z]
type = TestNewmarkTI
variable = vel_z
displacement = disp_z
[../]
[]
[Kernels]
[./DynamicSolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
[../]
[]
[BCs]
[./x_bot]
type = FunctionDirichletBC
variable = disp_x
boundary = 'back'
function = dispx
preset = false
[../]
[./y_bot]
type = FunctionDirichletBC
variable = disp_y
boundary = 'back'
function = dispy
preset = false
[../]
[./z_bot]
type = FunctionDirichletBC
variable = disp_z
boundary = 'back'
function = dispz
preset = false
[../]
[./Periodic]
[./x_dir]
variable = 'disp_x disp_y disp_z'
primary = 'left'
secondary = 'right'
translation = '1.0 0.0 0.0'
[../]
[./y_dir]
variable = 'disp_x disp_y disp_z'
primary = 'bottom'
secondary = 'top'
translation = '0.0 1.0 0.0'
[../]
[../]
[]
[Functions]
[./dispx]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0' # time
y = '0.0 1.0 0.0 -1.0 0.0' # displacement
[../]
[./dispy]
type = ParsedFunction
expression = 0.1*t*t*sin(10*t)
[../]
[./dispz]
type = ParsedFunction
expression = 0.1*t*t*sin(20*t)
[../]
[]
[Materials]
[./elasticity_tensor_block]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
block = 0
[../]
[./strain_block]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
implicit = false
[../]
[./stress_block]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = density
prop_values = 1e4
[../]
[]
[Executioner]
type = Transient
start_time = -0.01
end_time = 0.1
dt = 0.005
timestep_tolerance = 1e-6
[./TimeIntegrator]
type = CentralDifference
[../]
[]
[Postprocessors]
[./accel_6x]
type = NodalVariableValue
nodeid = 6
variable = accel_x
[../]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/combined/test/tests/evolving_mass_density/expand_compress_test_tensors.i)
# Element mass tests
# This series of tests is designed to compute the mass of elements based on
# an evolving mass density calculation. The tests consist of expansion and compression
# of the elastic patch test model along each axis, uniform expansion and compression,
# and shear in each direction. The expansion and compression tests change the volume of
# the elements. The corresponding change in density should compensate for this so the
# mass remains constant. The shear tests should not result in a volume change, and this
# is checked too. The mass calculation is done with the post processor called Mass.
# The tests/file names are as follows:
# Expansion and compression along a single axis
# expand_compress_x_test_out.e
# expand_compress_y_test_out.e
# expand_compress_z_test_out.e
# Volumetric expansion and compression
# uniform_expand_compress_test.i
# Zero volume change shear along each axis
# shear_x_test_out.e
# shear_y_test_out.e
# shear_z_test_out.e
# The resulting mass calculation for these tests should always be = 1.
# This test is a duplicate of the uniform_expand_compress_test.i test for solid mechanics, and the
# output of this tensor mechanics test is compared to the original
# solid mechanics output. The duplication is necessary to test the
# migrated tensor mechanics version while maintaining tests for solid mechanics.
[Mesh]
file = elastic_patch.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
order = FIRST
family = LAGRANGE
[]
[Functions]
[./rampConstant1]
type = PiecewiseLinear
x = '0.00 1.00 2.0 3.00'
y = '0.00 0.25 0.0 -0.25'
scale_factor = 1
[../]
[] # Functions
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[./TensorMechanics]
[../]
[]
[BCs]
[./bot_x]
type = DirichletBC
variable = disp_x
value = 0.0
[../]
[./bot_y]
type = DirichletBC
variable = disp_y
value = 0
[../]
[./bot_z]
type = DirichletBC
variable = disp_z
value = 0
[../]
[./top]
type = FunctionDirichletBC
preset = false
function = rampConstant1
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2 3 4 5 6 7'
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./small_strain]
type = ComputeSmallStrain
block = ' 1 2 3 4 5 6 7'
[../]
[./elastic_stress]
type = ComputeLinearElasticStress
block = '1 2 3 4 5 6 7'
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_abs_tol = 1e-10
l_max_its = 20
start_time = 0.0
dt = 1.0
num_steps = 3
end_time = 3.0
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
[Postprocessors]
[./Mass]
type = Mass
variable = disp_x
execute_on = 'initial timestep_end'
[../]
[]
(modules/contact/test/tests/frictional/single_point_2d/single_point_2d_predictor.i)
[Mesh]
file = single_point_2d.e
[]
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[AuxVariables]
[./penetration]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./horizontal_movement]
type = ParsedFunction
expression = t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
save_in = 'saved_x saved_y'
diag_save_in = 'diag_saved_x diag_saved_y'
[../]
[]
[AuxKernels]
[./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
[../]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./botx2]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0.0
[../]
[./boty2]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = horizontal_movement
[../]
[./topy]
type = DirichletBC
variable = disp_y
boundary = 4
value = -0.005
[../]
[]
[Materials]
[./bottom]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e9
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[./top]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[../]
[./ref_resid_x]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_x
[../]
[./ref_resid_y]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_y
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 100
nl_max_its = 200
dt = 0.001
end_time = 0.01
num_steps = 1000
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
dtmin = 0.001
l_tol = 1e-3
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
exodus = true
print_linear_residuals = true
perf_graph = true
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
primary = 2
secondary = 3
model = coulomb
friction_coefficient = '0.25'
[../]
[]
[Dampers]
[./contact_slip]
type = ContactSlipDamper
primary = '2'
secondary = '3'
[../]
[]
(modules/solid_mechanics/test/tests/thermal_expansion/ad_constant_expansion_coeff_old.i)
# This test involves only thermal expansion strains on a 2x2x2 cube of approximate
# steel material. An initial temperature of 25 degrees C is given for the material,
# and an auxkernel is used to calculate the temperature in the entire cube to
# raise the temperature each time step. After the first timestep,in which the
# temperature jumps, the temperature increases by 6.25C each timestep.
# The thermal strain increment should therefore be
# 6.25 C * 1.3e-5 1/C = 8.125e-5 m/m.
# This test is also designed to be used to identify problems with restart files
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./temp]
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
expression = t*(500.0)+300.0
[../]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[./all]
strain = SMALL
incremental = true
add_variables = true
eigenstrain_names = eigenstrain
generate_output = 'strain_xx strain_yy strain_zz'
use_automatic_differentiation = true
[../]
[../]
[../]
[]
[Kernels]
[./tempfuncaux]
type = Diffusion
variable = temp
[../]
[]
[BCs]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
function = temperature_load
boundary = 'left right'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ADComputeFiniteStrainElasticStress
[../]
[./thermal_expansion_strain]
type = ADComputeThermalExpansionEigenstrain
stress_free_temperature = 298
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
use_old_temperature = true
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 0.075
dt = 0.0125
dtmin = 0.0001
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
[../]
[./temperature]
type = AverageNodalVariableValue
variable = temp
[../]
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/pull_and_shear.i)
# Dynamic problem with plasticity.
# A column of material (not subject to gravity) has the z-displacement
# of its sides fixed, but the centre of its bottom side is pulled
# downwards. This causes failure in the bottom elements.
#
# The problem utilises damping in the following way.
# The DynamicStressDivergenceTensors forms the residual
# integral grad(stress) + zeta*grad(stress-dot)
# = V/L * elasticity * (du/dx + zeta * dv/dx)
# where V is the elemental volume, and L is the length-scale,
# and u is the displacement, and v is the velocity.
# The InertialForce forms the residual
# integral density * (accel + eta * velocity)
# = V * density * (a + eta * v)
# where a is the acceleration.
# So, a damped oscillator description with both these
# kernels looks like
# 0 = V * (density * a + density * eta * v + elasticity * zeta * v / L^2 + elasticity / L^2 * u)
# Critical damping is when the coefficient of v is
# 2 * sqrt(density * elasticity / L^2)
# In the case at hand, density=1E4, elasticity~1E10 (Young is 16GPa),
# L~1 to 10 (in the horizontal or vertical direction), so this coefficient ~ 1E7 to 1E6.
# Choosing eta = 1E3 and zeta = 1E-2 gives approximate critical damping.
# If zeta is high then steady-state is achieved very quickly.
#
# In the case of plasticity, the effective stiffness of the elements
# is significantly less. Therefore, the above parameters give
# overdamping.
#
# This simulation is a nice example of the irreversable and non-uniqueness
# of simulations involving plasticity. The result depends on the damping
# parameters and the time stepping.
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 1
nz = 5
bias_z = 1.5
xmin = -10
xmax = 10
ymin = -10
ymax = 10
zmin = -100
zmax = 0
[]
[bottomz_middle]
type = BoundingBoxNodeSetGenerator
new_boundary = bottomz_middle
bottom_left = '-1 -1500 -105'
top_right = '1 1500 -95'
input = generated_mesh
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
beta = 0.25 # Newmark time integration
gamma = 0.5 # Newmark time integration
eta = 1E3 #0.3E4 # higher values mean more damping via density
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Kernels]
[DynamicSolidMechanics] # zeta*K*vel + K * disp
stiffness_damping_coefficient = 1E-2 # higher values mean more damping via stiffness
hht_alpha = 0 # better nonlinear convergence than for alpha>0
[]
[inertia_x] # M*accel + eta*M*vel
type = InertialForce
use_displaced_mesh = false
variable = disp_x
velocity = vel_x
acceleration = accel_x
[]
[inertia_y]
type = InertialForce
use_displaced_mesh = false
variable = disp_y
velocity = vel_y
acceleration = accel_y
[]
[inertia_z]
type = InertialForce
use_displaced_mesh = false
variable = disp_z
velocity = vel_z
acceleration = accel_z
[]
[]
[BCs]
[no_x2]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.0
[]
[no_x1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[no_y1]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[no_y2]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[]
[z_fixed_sides_xmin]
type = DirichletBC
variable = disp_z
boundary = left
value = 0
[]
[z_fixed_sides_xmax]
type = DirichletBC
variable = disp_z
boundary = right
value = 0
[]
[bottomz]
type = FunctionDirichletBC
variable = disp_z
boundary = bottomz_middle
function = max(-10*t,-10)
[]
[]
[AuxVariables]
[accel_x]
[]
[vel_x]
[]
[accel_y]
[]
[vel_y]
[]
[accel_z]
[]
[vel_z]
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[strainp_xx]
order = CONSTANT
family = MONOMIAL
[]
[strainp_xy]
order = CONSTANT
family = MONOMIAL
[]
[strainp_xz]
order = CONSTANT
family = MONOMIAL
[]
[strainp_yy]
order = CONSTANT
family = MONOMIAL
[]
[strainp_yz]
order = CONSTANT
family = MONOMIAL
[]
[strainp_zz]
order = CONSTANT
family = MONOMIAL
[]
[straint_xx]
order = CONSTANT
family = MONOMIAL
[]
[straint_xy]
order = CONSTANT
family = MONOMIAL
[]
[straint_xz]
order = CONSTANT
family = MONOMIAL
[]
[straint_yy]
order = CONSTANT
family = MONOMIAL
[]
[straint_yz]
order = CONSTANT
family = MONOMIAL
[]
[straint_zz]
order = CONSTANT
family = MONOMIAL
[]
[f_shear]
order = CONSTANT
family = MONOMIAL
[]
[f_tensile]
order = CONSTANT
family = MONOMIAL
[]
[f_compressive]
order = CONSTANT
family = MONOMIAL
[]
[intnl_shear]
order = CONSTANT
family = MONOMIAL
[]
[intnl_tensile]
order = CONSTANT
family = MONOMIAL
[]
[iter]
order = CONSTANT
family = MONOMIAL
[]
[ls]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[accel_x] # Calculates and stores acceleration at the end of time step
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
execute_on = timestep_end
[]
[vel_x] # Calculates and stores velocity at the end of the time step
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
execute_on = timestep_end
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
execute_on = timestep_end
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
execute_on = timestep_end
[]
[accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
execute_on = timestep_end
[]
[vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
execute_on = timestep_end
[]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[]
[strainp_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xx
index_i = 0
index_j = 0
[]
[strainp_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xy
index_i = 0
index_j = 1
[]
[strainp_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xz
index_i = 0
index_j = 2
[]
[strainp_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yy
index_i = 1
index_j = 1
[]
[strainp_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yz
index_i = 1
index_j = 2
[]
[strainp_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zz
index_i = 2
index_j = 2
[]
[straint_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xx
index_i = 0
index_j = 0
[]
[straint_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xy
index_i = 0
index_j = 1
[]
[straint_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xz
index_i = 0
index_j = 2
[]
[straint_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yy
index_i = 1
index_j = 1
[]
[straint_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yz
index_i = 1
index_j = 2
[]
[straint_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zz
index_i = 2
index_j = 2
[]
[f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[]
[f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[]
[f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[]
[intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[]
[intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[]
[iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[]
[ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[]
[tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[]
[tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.166666666667
[]
[t_strength]
type = SolidMechanicsHardeningConstant
value = 0
[]
[c_strength]
type = SolidMechanicsHardeningConstant
value = 1E80
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '6.4E9 6.4E9' # young 16MPa, Poisson 0.25
[]
[strain]
type = ComputeIncrementalStrain
[]
[admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[]
[stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 1E6
smoothing_tol = 0.5E6
yield_function_tol = 1E-2
[]
[density]
type = GenericConstantMaterial
block = 0
prop_names = density
prop_values = 1E4
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[]
[]
[Executioner]
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
line_search = bt
nl_abs_tol = 1E1
nl_rel_tol = 1e-5
l_tol = 1E-10
l_max_its = 100
nl_max_its = 100
num_steps = 8
dt = 0.1
type = Transient
[]
[Outputs]
file_base = pull_and_shear
exodus = true
csv = true
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_external_app_1phase/phy.T_wall_transfer_elem_3eqn.parent.i)
# This tests a temperature transfer using the MultiApp system. Simple heat
# conduction problem is solved, then the layered average is computed and
# transferred into the child side of the solve
[Mesh]
type = GeneratedMesh
dim = 1
xmax = 1
nx = 10
parallel_type = replicated
[]
[Functions]
[left_bc_fn]
type = PiecewiseLinear
x = '0 1'
y = '300 310'
[]
[]
[Variables]
[T]
[]
[]
[ICs]
[T_ic]
type = ConstantIC
variable = T
value = 300
[]
[]
[Kernels]
[td]
type = TimeDerivative
variable = T
[]
[diff]
type = Diffusion
variable = T
[]
[]
[BCs]
[left]
type = FunctionDirichletBC
variable = T
boundary = left
function = left_bc_fn
[]
[]
[UserObjects]
[T_avg_uo]
type = LayeredAverage
variable = T
direction = x
num_layers = 5
[]
[]
[Executioner]
type = Transient
dt = 0.5
end_time = 5
nl_abs_tol = 1e-10
abort_on_solve_fail = true
[]
[MultiApps]
[thm]
type = TransientMultiApp
app_type = ThermalHydraulicsApp
input_files = phy.T_wall_transfer_elem_3eqn.child.i
execute_on = TIMESTEP_END
[]
[]
[Transfers]
[T_to_child]
type = MultiAppGeneralFieldUserObjectTransfer
to_multi_app = thm
source_user_object = T_avg_uo
variable = T_wall
greedy_search = true
use_bounding_boxes = false
error_on_miss = true
[]
[]
[Outputs]
exodus = true
[]
(test/tests/predictors/simple/predictor_skip_test.i)
# The purpose of this test is to test the simple predictor. This is a very
# small, monotonically loaded block of material. If things are working right,
# the predictor should come very close to exactly nailing the solution on steps
# after the first step.
#This test checks to see that the predictor is skipped in the last step.
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 3
ny = 3
[]
[Functions]
[ramp1]
type = ParsedFunction
expression = 't'
[]
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[diff_u]
type = Diffusion
variable = u
[]
[]
[BCs]
[bot]
type = DirichletBC
variable = u
boundary = bottom
value = 0.0
[]
[ss2_x]
type = FunctionDirichletBC
variable = u
boundary = top
function = ramp1
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-14
start_time = 0.0
dt = 0.5
end_time = 1.0
[Predictor]
type = SimplePredictor
scale = 1.0
skip_times = '1.0'
[]
[]
[Postprocessors]
[final_residual]
type = Residual
residual_type = FINAL
[]
[initial_residual]
type = Residual
residual_type = INITIAL
[]
[]
[Outputs]
csv = true
[]
(test/tests/outputs/debug/show_execution_userobjects.i)
[Mesh]
[cmg]
type = CartesianMeshGenerator
dim = 2
dx = '1.5 2.4'
dy = '1.3 0.9'
ix = '3 2'
iy = '2 3'
subdomain_id = '0 1
1 0'
[]
[add_interface]
type = SideSetsBetweenSubdomainsGenerator
input = 'cmg'
primary_block = 0
paired_block = 1
new_boundary = 'interface'
[]
second_order = true
[]
[Functions]
[forcing_fnu]
type = ParsedFunction
expression = -5.8*(x+y)+x*x*x-x+y*y*y-y
[]
[forcing_fnv]
type = ParsedFunction
expression = -4
[]
[slnu]
type = ParsedGradFunction
expression = x*x*x-x+y*y*y-y
grad_x = 3*x*x-1
grad_y = 3*y*y-1
[]
[slnv]
type = ParsedGradFunction
expression = x*x+y*y
grad_x = 2*x
grad_y = 2*y
[]
# NeumannBC functions
[bc_fnut]
type = ParsedFunction
expression = 3*y*y-1
[]
[bc_fnub]
type = ParsedFunction
expression = -3*y*y+1
[]
[bc_fnul]
type = ParsedFunction
expression = -3*x*x+1
[]
[bc_fnur]
type = ParsedFunction
expression = 3*x*x-1
[]
[]
[Variables]
[u]
order = SECOND
family = HIERARCHIC
[]
[v]
order = SECOND
family = LAGRANGE
initial_condition = 1
[]
[]
[AuxVariables]
[v_elem]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
active = 'diff1 diff2 test1 forceu forcev react'
[diff1]
type = Diffusion
variable = u
[]
[test1]
type = CoupledConvection
variable = u
velocity_vector = v
[]
[diff2]
type = Diffusion
variable = v
[]
[react]
type = Reaction
variable = u
[]
[forceu]
type = BodyForce
variable = u
function = forcing_fnu
[]
[forcev]
type = BodyForce
variable = v
function = forcing_fnv
[]
[]
[AuxKernels]
[set_v_elem]
type = FunctionAux
variable = v_elem
# selected not to be the solution for no particular reason
function = forcing_fnv
[]
[]
[BCs]
[bc_v]
type = FunctionDirichletBC
variable = v
function = slnv
boundary = 'left right top bottom'
[]
[bc_u_tb]
type = CoupledKernelGradBC
variable = u
var2 = v
vel = '0.1 0.1'
boundary = 'top bottom left right'
[]
[bc_ul]
type = FunctionNeumannBC
variable = u
function = bc_fnul
boundary = 'left'
[]
[bc_ur]
type = FunctionNeumannBC
variable = u
function = bc_fnur
boundary = 'right'
[]
[bc_ut]
type = FunctionNeumannBC
variable = u
function = bc_fnut
boundary = 'top'
[]
[bc_ub]
type = FunctionNeumannBC
variable = u
function = bc_fnub
boundary = 'bottom'
[]
[]
[Postprocessors]
# Global user objects
[dofs]
type = NumDOFs
[]
[h]
type = AverageElementSize
[]
# Elemental user objects
[L2u]
type = ElementL2Error
variable = u
function = slnu
# Testing an option
force_preic = true
[]
[L2v]
type = ElementL2Error
variable = v
function = slnv
# Testing an option
force_preaux = true
[]
[H1error]
type = ElementH1Error
variable = u
function = slnu
[]
[H1Semierror]
type = ElementH1SemiError
variable = u
function = slnu
[]
[L2v_elem]
type = ElementL2Error
variable = v_elem
function = slnv
[]
[f_integral]
type = FunctionElementIntegral
function = slnv
[]
[int_v]
type = ElementIntegralVariablePostprocessor
variable = v
block = 1
execute_on = 'TIMESTEP_END transfer'
[]
[int_v_elem]
type = ElementIntegralVariablePostprocessor
variable = v_elem
block = 1
execute_on = 'TIMESTEP_END transfer'
[]
# Side user objects
[integral_v]
type = SideIntegralVariablePostprocessor
variable = v
boundary = 0
[]
[]
[VectorPostprocessors]
# General UOs
[memory]
type = VectorMemoryUsage
[]
[line]
type = LineValueSampler
variable = v
num_points = 10
start_point = '0 0 0'
end_point = '0.5 0.5 0'
sort_by = 'x'
[]
# Nodal UOs
[nodal_sampler_y]
type = NodalValueSampler
variable = v
sort_by = 'y'
[]
[nodal_sampler_x]
type = NodalValueSampler
variable = v
sort_by = 'x'
[]
# Element UO
[elem_sample]
type = ElementValueSampler
variable = v_elem
sort_by = 'x'
[]
[]
[UserObjects]
# Nodal user objects
[find_node]
type = NearestNodeNumberUO
point = '0.5 0.5 0'
[]
# Side user objects
[side_int]
type = LayeredSideIntegral
variable = v
boundary = 0
direction = y
num_layers = 4
[]
[side_int_2]
type = NearestPointLayeredSideIntegral
variable = v
boundary = 0
direction = x
num_layers = 3
points = '1 1 0'
[]
# Interface user objects
[values]
type = InterfaceQpValueUserObject
var = v
boundary = interface
[]
inactive = 'prime_1 prime_2'
# Threaded general user objects
[prime_2]
type = PrimeProductUserObject
[]
[prime_1]
type = PrimeProductUserObject
[]
# Domain user objects
[domain_2]
type = InterfaceDomainUserObject
u = u
v = v
block = '0'
robin_boundaries = 'left'
interface_boundaries = 'interface'
interface_penalty = 1e-10
nl_abs_tol = 1e1
[]
[domain_1]
type = InterfaceDomainUserObject
u = u
v = v
block = '0 1'
robin_boundaries = 'left'
interface_boundaries = 'interface'
interface_penalty = 1e-10
nl_abs_tol = 1e1
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
l_tol = 1e-5
[]
[Problem]
kernel_coverage_check = false
[]
[MultiApps]
active = ''
[full_solve]
type = FullSolveMultiApp
execute_on = 'initial timestep_end final'
input_files = show_execution_userobjects.i
cli_args = 'Problem/solve=false'
[]
[]
[Transfers]
active = ''
[conservative]
type = MultiAppNearestNodeTransfer
from_multi_app = full_solve
source_variable = v
variable = v_elem
from_postprocessors_to_be_preserved = int_v
to_postprocessors_to_be_preserved = int_v_elem
[]
[]
[Debug]
show_execution_order = 'ALWAYS INITIAL NONLINEAR LINEAR TIMESTEP_BEGIN TIMESTEP_END FINAL'
[]
(modules/navier_stokes/test/tests/finite_element/pins/channel-flow/pm_friction.i)
# This test case tests the porous-medium flow pressure drop due to friction (both viscous and inertia effect)
#
# At the steady state, eps * grad_p = alpha * u + beta * u^2
# With eps = 0.4, L = 1, u = 1, alpha = 1000, beta = 100
# dp = (1000 + 100) / 0.4 = 2,750
# This can be verified by check the p_in - p_out
[GlobalParams]
gravity = '0 0 0'
order = FIRST
family = LAGRANGE
u = vel_x
v = vel_y
pressure = p
temperature = T
porosity = porosity
eos = eos
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 0.1
nx = 10
ny = 4
elem_type = QUAD4
[]
[FluidProperties]
[./eos]
type = SimpleFluidProperties
density0 = 100 # kg/m^3
thermal_expansion = 0 # K^{-1}
cp = 100
viscosity = 0.1 # Pa-s, Re=rho*u*L/mu = 100*1*0.1/0.1 = 100
[../]
[]
[Functions]
[v_in]
type = PiecewiseLinear
x = '0 1e5'
y = '1 1'
[]
[]
[Variables]
# velocity
[vel_x]
initial_condition = 1
[]
[vel_y]
initial_condition = 0
[]
# Pressure
[p]
initial_condition = 1e5
[]
[]
[AuxVariables]
[rho]
initial_condition = 100
[]
# Temperature
[T]
initial_condition = 630
[]
[porosity]
initial_condition = 0.4
[]
[]
[Materials]
[mat]
type = PINSFEMaterial
alpha = 1000
beta = 100
[]
[]
[Kernels]
[mass_time]
type = PINSFEFluidPressureTimeDerivative
variable = p
[]
[mass_space]
type = INSFEFluidMassKernel
variable = p
[]
[x_momentum_time]
type = PINSFEFluidVelocityTimeDerivative
variable = vel_x
[]
[x_momentum_space]
type = INSFEFluidMomentumKernel
variable = vel_x
component = 0
[]
[y_momentum_time]
type = PINSFEFluidVelocityTimeDerivative
variable = vel_y
[]
[y_momentum_space]
type = INSFEFluidMomentumKernel
variable = vel_y
component = 1
[]
[]
[AuxKernels]
[rho_aux]
type = FluidDensityAux
variable = rho
p = p
T = T
fp = eos
[]
[]
[BCs]
# BCs for mass equation
# Inlet
[mass_inlet]
type = INSFEFluidMassBC
variable = p
boundary = 'left'
v_fn = v_in
[]
# Outlet
[./pressure_out]
type = DirichletBC
variable = p
boundary = 'right'
value = 1e5
[../]
# BCs for x-momentum equation
# Inlet
[vx_in]
type = FunctionDirichletBC
variable = vel_x
boundary = 'left'
function = v_in
[]
# Outlet (no BC is needed)
# BCs for y-momentum equation
# Both Inlet and Outlet, and Top and Bottom
[vy]
type = DirichletBC
variable = vel_y
boundary = 'left right bottom top'
value = 0
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
solve_type = 'PJFNK'
[]
[]
[Postprocessors]
[p_in]
type = SideAverageValue
variable = p
boundary = left
[]
[p_out]
type = SideAverageValue
variable = p
boundary = right
[]
[]
[Executioner]
type = Transient
dt = 0.1
dtmin = 1.e-3
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 100'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-5
l_max_its = 100
start_time = 0.0
end_time = 0.5
num_steps = 10
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
time_step_interval = 1
execute_on = 'initial timestep_end'
[console]
type = Console
output_linear = false
[]
[out]
type = Exodus
use_displaced = false
[]
[]
(modules/solid_mechanics/test/tests/volumetric_deform_grad/elastic_stress.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[]
[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
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.01*t'
[../]
[]
[Materials]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./elastic_stress]
type = ComputeDeformGradBasedStress
deform_grad_name = deformation_gradient
elasticity_tensor_name = elasticity_tensor
stress_name = stress
jacobian_name = Jacobian_mult
block = 0
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
C_ijkl = '2.8e5 1.2e5 1.2e5 2.8e5 1.2e5 2.8e5 0.8e5 0.8e5 0.8e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.02
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 101'
dtmax = 10.0
nl_rel_tol = 1e-10
dtmin = 0.02
num_steps = 10
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/tensile/small_deform7.i)
# checking for small deformation
# A single element is incrementally stretched in the in the z direction
# This causes the return direction to be along the hypersurface sigma_II = sigma_III,
# and the resulting stresses are checked to lie on the expected yield surface
#
# tensile_strength is set to 1Pa,
# cap smoothing is used with tip_smoother = 0.0, cap_start = 0.5, cap_rate = 2.0
# Lode angle = -30degrees
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.25E-6*z*t*t'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[./iter_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./mc]
type = SolidMechanicsPlasticTensile
tensile_strength = ts
yield_function_tolerance = 1E-6
tip_scheme = cap
tensile_tip_smoother = 0.0
cap_start = -0.5
cap_rate = 2
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
max_NR_iterations = 1000
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 9
dt = 0.9
type = Transient
[]
[Outputs]
file_base = small_deform7
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/random.i)
# apply many random large deformations, checking that the algorithm returns correctly to
# the yield surface each time.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 125
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./yield_fcn_at_zero]
type = PointValue
point = '0 0 0'
variable = yield_fcn
outputs = 'console'
[../]
[./should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console'
[../]
[]
[Functions]
[./should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'yield_fcn_at_zero'
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 1E3
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 0.1E3
mc_edge_smoother = 25
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
max_NR_iterations = 1000
ep_plastic_tolerance = 1E-6
min_stepsize = 1E-3
plastic_models = mc
debug_fspb = crash
deactivation_scheme = safe
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/2D_geometries/2D-RZ_centerline_VLC.i)
# Simple test to check for use of AxisymmetricCenterlineAverageValue with
# volumetric_locking_correction activated in a tensor mechanics simulation
[Mesh]
type = GeneratedMesh
dim = 2
[]
[GlobalParams]
displacements = 'disp_r disp_z'
volumetric_locking_correction = true
[]
[Problem]
coord_type = RZ
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
[../]
[]
[AuxVariables]
[./temperature]
initial_condition = 298.0
[../]
[]
[BCs]
[./symmetry_x]
type = DirichletBC
variable = disp_r
value = 0
boundary = left
[../]
[./roller_z]
type = DirichletBC
variable = disp_z
value = 0
boundary = bottom
[../]
[./top_load]
type = FunctionDirichletBC
variable = disp_z
function = -0.01*t
boundary = top
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e10
poissons_ratio = 0.3
[../]
[./_elastic_strain]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-6
l_max_its = 50
start_time = 0.0
end_time = 0.3
dt = 0.1
[]
[Postprocessors]
[./center_temperature]
type = AxisymmetricCenterlineAverageValue
variable = temperature
boundary = left
[../]
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/contact/test/tests/verification/hertz_cyl/quart_symm_q4/hertz_cyl_qsym_1deg_template1.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
file = hertz_cyl_qsym_1deg_q4.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
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[./tang_force_x]
[../]
[./tang_force_y]
[../]
[]
[Functions]
[./disp_ramp_vert]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. -0.0020 -0.0020'
[../]
[./disp_ramp_zero]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 0.0 0.0'
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./inc_slip_x]
type = PenetrationAux
variable = inc_slip_x
execute_on = timestep_end
boundary = 4
paired_boundary = 3
[../]
[./inc_slip_y]
type = PenetrationAux
variable = inc_slip_y
execute_on = timestep_end
boundary = 4
paired_boundary = 3
[../]
[./accum_slip_x]
type = PenetrationAux
variable = accum_slip_x
execute_on = timestep_end
boundary = 4
paired_boundary = 3
[../]
[./accum_slip_y]
type = PenetrationAux
variable = accum_slip_y
execute_on = timestep_end
boundary = 4
paired_boundary = 3
[../]
[./penetration]
type = PenetrationAux
variable = penetration
boundary = 4
paired_boundary = 3
[../]
[./tang_force_x]
type = PenetrationAux
variable = tang_force_x
quantity = tangential_force_x
boundary = 4
paired_boundary = 3
[../]
[./tang_force_y]
type = PenetrationAux
variable = tang_force_y
quantity = tangential_force_y
boundary = 4
paired_boundary = 3
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 5
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 5
[../]
[./ref_resid_x]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_x
[../]
[./ref_resid_y]
type = NodalL2Norm
execute_on = timestep_end
variable = saved_y
[../]
[./disp_x281]
type = NodalVariableValue
nodeid = 280
variable = disp_x
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[]
[BCs]
[./side_x]
type = DirichletBC
variable = disp_y
boundary = '1 3'
value = 0.0
[../]
[./bot_y]
type = DirichletBC
variable = disp_x
boundary = '1 2 3'
value = 0.0
[../]
[./top_y_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = disp_ramp_vert
[../]
[]
[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'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff2_strain]
type = ComputeFiniteStrain
block = '2'
[../]
[./stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[../]
[./stuff3_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '3'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff3_strain]
type = ComputeFiniteStrain
block = '3'
[../]
[./stuff3_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[../]
[./stuff4_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '4'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff4_strain]
type = ComputeFiniteStrain
block = '4'
[../]
[./stuff4_stress]
type = ComputeFiniteStrainElasticStress
block = '4'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-6
nl_rel_tol = 1e-5
l_max_its = 50
nl_max_its = 100
start_time = 0.0
dt = 0.1
dtmin = 0.1
num_steps = 10
end_time = 1.0
l_tol = 1e-3
[]
[VectorPostprocessors]
[./x_disp]
type = NodalValueSampler
variable = disp_x
boundary = '3 4 5'
sort_by = id
[../]
[./y_disp]
type = NodalValueSampler
variable = disp_y
boundary = '3 4 5'
sort_by = id
[../]
[./cont_press]
type = NodalValueSampler
variable = contact_pressure
boundary = '4'
sort_by = id
[../]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[./chkfile]
type = CSV
show = 'bot_react_x bot_react_y disp_x281 top_react_x top_react_y x_disp y_disp cont_press'
start_time = 0.9
execute_vector_postprocessors_on = timestep_end
[../]
[./outfile]
type = CSV
delimiter = ' '
execute_vector_postprocessors_on = none
[../]
[]
[Contact]
[./interface]
primary = 3
secondary = 4
model = glued
formulation = kinematic
normalize_penalty = true
tangential_tolerance = 1e-3
penalty = 1e+9
[../]
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test1.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test1.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[]
[Outputs]
file_base = pl_test1_out
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test4tt.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test4tt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.09
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.09
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[]
[Outputs]
file_base = pl_test4tt_out
exodus = true
[]
(test/tests/userobjects/internal_side_user_object/internal_side_user_object.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
ymin = -1
xmax = 1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD4
[]
[Functions]
[./fn_exact]
type = ParsedFunction
expression = 'x*x+y*y'
[../]
[./ffn]
type = ParsedFunction
expression = -4
[../]
[]
[UserObjects]
[./isuo]
type = InsideUserObject
variable = u
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = FIRST
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = fn_exact
[../]
[]
[Postprocessors]
[./value]
type = InsideValuePPS
user_object = isuo
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(test/tests/time_integrators/central-difference/central_difference.i)
###########################################################
# This is a simple test with a time-dependent problem
# demonstrating the use of the TimeIntegrator system.
#
# Testing that the first and second time derivatives
# are calculated correctly using the Central Difference
# method
#
# @Requirement F1.30
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 1
ny = 1
[]
[Variables]
[./u]
[../]
[]
[Functions]
[./forcing_fn]
type = PiecewiseLinear
x = '0.0 0.1 0.2 0.3 0.4 0.5 0.6'
y = '0.0 0.0 0.0025 0.01 0.0175 0.02 0.02'
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
boundary = 'left'
function = forcing_fn
preset = false
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = 'right'
function = forcing_fn
preset = false
[../]
[]
[Executioner]
type = Transient
[./TimeIntegrator]
type = CentralDifference
[]
start_time = 0.0
num_steps = 6
dt = 0.1
[]
[Postprocessors]
[./udot]
type = ElementAverageTimeDerivative
variable = u
[../]
[./udotdot]
type = ElementAverageSecondTimeDerivative
variable = u
[../]
[./u]
type = ElementAverageValue
variable = u
[../]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/neml2/plasticity/isoharden.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = true
[]
[]
[]
[]
[NEML2]
input = 'isoharden_neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL POSTPROCESSOR POSTPROCESSOR MATERIAL MATERIAL'
moose_inputs = ' neml2_strain time time plastic_strain equivalent_plastic_strain'
neml2_inputs = ' forces/E forces/t old_forces/t old_state/internal/Ep old_state/internal/ep'
moose_output_types = 'MATERIAL MATERIAL MATERIAL'
moose_outputs = ' neml2_stress plastic_strain equivalent_plastic_strain'
neml2_outputs = ' state/S state/internal/Ep state/internal/ep'
moose_derivative_types = 'MATERIAL'
moose_derivatives = 'neml2_jacobian'
neml2_derivatives = 'state/S forces/E'
[]
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[convert_strain]
type = RankTwoTensorToSymmetricRankTwoTensor
from = 'mechanical_strain'
to = 'neml2_strain'
[]
[stress]
type = ComputeLagrangianObjectiveCustomSymmetricStress
custom_small_stress = 'neml2_stress'
custom_small_jacobian = 'neml2_jacobian'
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
preset = false
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 1e-3
dtmin = 1e-3
num_steps = 5
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/cp_slip_rate_integ/crysp_substep.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[./disp_z]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[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
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCPSlipRateRes
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.01 5 8 0.001 0.01 9 12 0.001 0.01'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
slip_incr_tol = 1
maximum_substep_iteration = 8
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.2
dtmax = 10.0
dtmin = 0.05
end_time = 1
[]
[Outputs]
file_base = crysp_substep_out
exodus = true
print_linear_residuals = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/multi/two_surface02.i)
# Plasticit models:
# SimpleTester with a = 0 and b = 1 and strength = 1
# SimpleTester with a = 1 and b = 1 and strength = 2
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 1.5E-6m in the y z directions.
# trial stress_zz = 1.5 and stress_yy = 1.5
#
# Then both SimpleTesters should activate, and the final stress
# should have have stress_zz = 1 = stress_yy (ie, the "corner" point)
# the plastic strain for SimpleTester1 should be zero
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1.5E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.5E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[]
[UserObjects]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 2
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = two_surface02
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/small_deform4.i)
# apply repeated stretches in z direction, and smaller stretches in the x and y directions
# so that sigma_II = sigma_III,
# which means that lode angle = -30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.25E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.25E-6*y*sin(t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 50
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningExponential
value_0 = 0
value_residual = 0.8726646 # 50deg
rate = 3000.0
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 4
mc_edge_smoother = 20
yield_function_tolerance = 1E-8
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 30
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform4
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/except2.i)
# checking for exception error messages
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 1
mc_edge_smoother = 25
mc_lode_cutoff = -1.0E-6
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1
debug_stress_change = 1E-5
debug_pm_change = 1E-6
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = except2
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform2_inner_tip.i)
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1.5E-6*x+2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
mc_interpolation_scheme = inner_tip
internal_constraint_tolerance = 1 # irrelevant here
yield_function_tolerance = 1 # irrelevant here
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = cdp
perform_finite_strain_rotations = false
[../]
[./cdp]
type = CappedDruckerPragerStressUpdate
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-8
tip_smoother = 4
smoothing_tol = 1E-5
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2_inner_tip
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/multi/four_surface14.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 3
# SimpleTester3 with a = 0 and b = 1 and strength = 1.1
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 2.1E-6m in y direction and 3E-6 in z direction.
# trial stress_yy = 2.1 and stress_zz = 3.0
#
# This is similar to three_surface14.i, and a description is found there.
# The result should be stress_zz=1=stress_yy, with internal0=2
# and internal1=1.1
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2.1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '3.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./f3]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[./int3]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./f3]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 3
variable = f3
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[./int3]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 3
variable = int3
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./f3]
type = PointValue
point = '0 0 0'
variable = f3
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[./int3]
type = PointValue
point = '0 0 0'
variable = int3
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 3
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple3]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1.1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2 simple3'
max_NR_iterations = 4
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1'
debug_jac_at_intnl = '1 1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = four_surface14
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/materials/output/output_steady.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[u]
[]
[]
[Functions]
[bc_func]
type = ParsedFunction
expression = 0.5*y
[]
[]
[Kernels]
[diff]
type = CoefDiffusion
variable = u
block = 0
coef = 0.1
[]
[]
[BCs]
[left]
type = FunctionDirichletBC
variable = u
boundary = left
function = bc_func
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Materials]
[k]
type = OutputTestMaterial
block = 0
outputs = all
variable = u
output_properties = 'real_property vector_property tensor_property'
[]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(test/tests/predictors/simple/predictor_test_pre_smo.i)
# The purpose of this test is to test the simple predictor. This is a very
# small, monotonically loaded block of material. If things are working right,
# the predictor should come very close to exactly nailing the solution on steps
# after the first step.
# The main thing to check here is that when the predictor is applied in the
# second step, the initial residual is almost zero.
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 3
ny = 3
[]
[Functions]
[ramp1]
type = ParsedFunction
expression = 't'
[]
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[diff_u]
type = Diffusion
variable = u
[]
[]
[BCs]
[bot]
type = DirichletBC
variable = u
boundary = bottom
value = 0.0
[]
[ss2_x]
type = FunctionDirichletBC
variable = u
boundary = top
function = ramp1
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-14
start_time = 0.0
dt = 0.5
end_time = 1.0
[Predictor]
type = SimplePredictor
scale = 1.0
[]
use_pre_SMO_residual = true
[]
[Postprocessors]
[final_residual]
type = Residual
residual_type = FINAL
[]
[pre_smo_residual]
type = Residual
residual_type = PRE_SMO
[]
[initial_residual]
type = Residual
residual_type = INITIAL
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/small_deform_hard1.i)
# apply uniform stretches in x, y and z directions.
# let mc_cohesion = 10, mc_cohesion_residual = 2, mc_cohesion_rate =
# With cohesion = C, friction_angle = 60deg, tip_smoother = 4, the
# algorithm should return to
# sigma_m = (C*Cos(60) - 4)/Sin(60)
# This allows checking of the relationship for C
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningExponential
value_0 = 10
value_residual = 2
rate = 1E4
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 60
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 4
mc_edge_smoother = 25
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
debug_jac_at_stress = '10 1 2 1 10 3 2 3 10'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1E-4
debug_stress_change = 1E-5
debug_pm_change = 1E-6
debug_intnl_change = 1E-8
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_hard1
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/outputs/sampled_output/over_sampling_test_gen.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 3
ny = 3
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[./forcing_fn]
type = ParsedFunction
expression = -4+(x*x+y*y)
[../]
[]
[Variables]
active = 'u'
[./u]
order = THIRD
family = HERMITE
[../]
[]
[Kernels]
active = 'ie diff ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.2
start_time = 0
num_steps = 5
[]
[Outputs]
file_base = out_gen
exodus = true
[./oversampling]
file_base = out_gen_oversample
type = Exodus
refinements = 3
[../]
[]
(modules/porous_flow/test/tests/hysteresis/hys_pc_01.i)
# Capillary-pressure calculation. Primary drying curve with low_extension_type = none
# When comparing the results with a by-hand computation, remember the MOOSE results are averaged over an element
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmin = 0
xmax = 1
nx = 100
[]
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
number_fluid_phases = 1
number_fluid_components = 1
porous_flow_vars = ''
[]
[]
[Variables]
[sat]
[]
[]
[ICs]
[sat]
type = FunctionIC
variable = sat
function = 'x'
[]
[]
[BCs]
[sat]
type = FunctionDirichletBC
variable = sat
function = 'x'
boundary = 'left right'
[]
[]
[Kernels]
[dummy]
type = Diffusion
variable = sat
[]
[]
[Materials]
[hys_order]
type = PorousFlowHysteresisOrder
[]
[pc_calculator]
type = PorousFlowHystereticInfo
alpha_d = 10.0
alpha_w = 10.0
n_d = 1.5
n_w = 1.9
S_l_min = 0.1
S_lr = 0.2
S_gr_max = 0.3
Pc_max = 12.0
low_extension_type = none
sat_var = sat
[]
[]
[AuxVariables]
[hys_order]
family = MONOMIAL
order = CONSTANT
[]
[pc]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[hys_order]
type = PorousFlowPropertyAux
variable = hys_order
property = hysteresis_order
[]
[pc]
type = PorousFlowPropertyAux
variable = pc
property = hysteretic_info
[]
[]
[VectorPostprocessors]
[pc]
type = LineValueSampler
warn_discontinuous_face_values = false
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 10
sort_by = x
variable = 'sat pc'
[]
[]
[Executioner]
type = Transient
solve_type = Linear
dt = 1
end_time = 1
[]
[Outputs]
csv = true
[]
(modules/combined/test/tests/elastic_patch/ad_elastic_patch_plane_strain.i)
#
# This problem is taken from the Abaqus verification manual:
# "1.5.1 Membrane patch test"
# The stress solution is given as:
# xx = yy = 1600
# zz = 800
# xy = 400
# yz = zx = 0
#
# Since the strain is 1e-3 in both directions, the new density should be
# new_density = original_density * V_0 / V
# new_density = 0.283 / (1 + 1e-3 + 1e-3) = 0.282435
[GlobalParams]
displacements = 'disp_x disp_y'
temperature = temp
[]
[Mesh]
file = elastic_patch_rz.e
[]
[Variables]
[temp]
initial_condition = 117.56
[]
[]
[Physics/SolidMechanics/QuasiStatic/All]
strain = SMALL
incremental = true
planar_formulation = PLANE_STRAIN
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[]
[Kernels]
[heat]
type = TimeDerivative
variable = temp
[]
[]
[BCs]
[ur]
type = FunctionDirichletBC
variable = disp_x
boundary = 10
function = '1e-3*(x+0.5*y)'
[]
[uz]
type = FunctionDirichletBC
variable = disp_y
boundary = 10
function = '1e-3*(y+0.5*x)'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
[]
[stress]
type = ComputeStrainIncrementBasedStress
[]
[]
[Materials]
[density]
type = ADDensity
density = 0.283
outputs = all
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
end_time = 1.0
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/user_object_Voce_BCC.i)
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD4
displacements = 'disp_x disp_y'
nx = 2
ny = 2
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y'
use_displaced_mesh = true
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./e_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[UserObjects]
[./prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = element
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = lage
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 48
slip_sys_file_name = input_slip_sys_bcc48.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 12 0.001 0.1 13 24 0.001 0.1 25 48 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 48
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 48
groups = '0 12 24 48'
group_values = '50 51 52'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_voce
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_voce]
type = CrystalPlasticityStateVarRateComponentVoce
variable_size = 48
crystal_lattice_type = 'BCC'
groups = '0 12 24 48'
h0_group_values = '1 2 3'
tau0_group_values = '50 51 52'
tauSat_group_values = '70 81 92'
hardeningExponent_group_values = '1 2 3'
selfHardening_group_values ='4 5 6'
coplanarHardening_group_values='7 8 9'
GroupGroup_Hardening_group_values = '10 20 30
40 50 60
70 80 90'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_voce'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
[../]
[]
[Postprocessors]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./e_yy]
type = ElementAverageValue
variable = e_yy
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.01
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.01
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/action/action_1D.i)
# Simple 1D plane strain test
[GlobalParams]
displacements = 'disp_x'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 1
nx = 10
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
add_variables = true
new_system = true
formulation = TOTAL
volumetric_locking_correction = false
[]
[]
[]
[]
[Functions]
[pull]
type = ParsedFunction
expression = '0.06 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = right
variable = disp_x
value = 0.0
[]
[pull]
type = FunctionDirichletBC
boundary = left
variable = disp_x
function = pull
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[stress_base]
type = ComputeLagrangianLinearElasticStress
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
dtmin = 1.0
end_time = 5.0
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/many_deforms_cap.i)
# apply many large deformations, checking that the algorithm returns correctly to
# the yield surface each time
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = '(sin(0.05*t)+x)/1E0'
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = '(cos(0.04*t)+x*y)/1E0'
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 't/1E2'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./yield_fcn_at_zero]
type = PointValue
point = '0 0 0'
variable = yield_fcn
outputs = 'console'
[../]
[./should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[../]
[]
[Functions]
[./should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'yield_fcn_at_zero'
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 1E3
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
tip_scheme = cap
mc_tip_smoother = 0.0
cap_start = 1000
cap_rate = 1E-3
mc_edge_smoother = 10
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
max_NR_iterations = 1000
ep_plastic_tolerance = 1E-6
plastic_models = mc
debug_fspb = crash
deactivation_scheme = safe
[../]
[]
[Executioner]
end_time = 1000
dt = 1
type = Transient
[]
[Outputs]
file_base = many_deforms_cap
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/special/rotate.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[sdy]
type = UpdatedLagrangianStressDivergence
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[sdz]
type = UpdatedLagrangianStressDivergence
variable = disp_z
component = 2
use_displaced_mesh = true
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[angles]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0 1.5707963'
[]
[stretch]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0.1 0.1'
[]
[move_y]
type = ParsedFunction
expression = 'y*cos(theta) - z * (1 + a)*sin(theta) - y'
symbol_names = 'a theta'
symbol_values = 'stretch angles'
[]
[move_z]
type = ParsedFunction
expression = 'y*sin(theta) + z*(1+a)*cos(theta) - z'
symbol_names = 'a theta'
symbol_values = 'stretch angles'
[]
[dts]
type = PiecewiseConstant
x = '0 1 2'
y = '0.1 0.001 0.001'
direction = 'LEFT_INCLUSIVE'
[]
[]
[BCs]
[fix]
type = DirichletBC
preset = true
value = 0.0
boundary = left
variable = disp_x
[]
[front_y]
type = FunctionDirichletBC
boundary = front
variable = disp_y
function = move_y
preset = true
[]
[back_y]
type = FunctionDirichletBC
boundary = back
variable = disp_y
function = move_y
preset = true
[]
[front_z]
type = FunctionDirichletBC
boundary = front
variable = disp_z
function = move_z
preset = true
[]
[back_z]
type = FunctionDirichletBC
boundary = back
variable = disp_z
function = move_z
preset = true
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[sxx]
type = ElementAverageValue
variable = stress_xx
[]
[syy]
type = ElementAverageValue
variable = stress_yy
[]
[szz]
type = ElementAverageValue
variable = stress_zz
[]
[syz]
type = ElementAverageValue
variable = stress_yz
[]
[sxz]
type = ElementAverageValue
variable = stress_xz
[]
[sxy]
type = ElementAverageValue
variable = stress_xy
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
start_time = 0.0
end_time = 2.0
[TimeStepper]
type = FunctionDT
function = dts
interpolate = False
[]
[]
[Outputs]
exodus = true
csv = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_tight_slip.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = hertz_cyl_finer.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 = AugmentedLagrangianContactFEProblem
extra_tag_vectors = 'ref'
maximum_lagrangian_update_iterations = 1000
[]
[AuxVariables]
[penalty_normal_pressure]
[]
[penalty_frictional_pressure]
[]
[accumulated_slip_one]
[]
[tangential_vel_one]
[]
[normal_gap]
[]
[normal_lm]
[]
[saved_x]
[]
[saved_y]
[]
[active]
[]
[dual_var]
use_dual = true
block = '10001'
[]
[]
[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'
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
save_in = 'saved_x saved_y'
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
boundary = 3
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = friction_uo
contact_quantity = tangential_pressure_one
boundary = 3
[]
[penalty_tangential_vel_one]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = friction_uo
contact_quantity = tangential_velocity_one
boundary = 3
[]
[penalty_accumulated_slip_one]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = friction_uo
contact_quantity = accumulated_slip_one
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = friction_uo
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
variable = normal_gap
user_object = friction_uo
contact_quantity = normal_gap
boundary = 3
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_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
[]
[active_set_size]
type = NodalSum
variable = active
[]
[]
[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 = 'NEWTON'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = -pc_type
petsc_options_value = lu
line_search = 'basic'
nl_abs_tol = 1e-13
nl_rel_tol = 1e-11
nl_max_its = 75
l_tol = 1e-05
l_abs_tol = 1e-13
start_time = 0.0
end_time = 0.1 # 3.5
dt = 0.1
dtmin = 0.1
[Predictor]
type = SimplePredictor
scale = 1.0
[]
automatic_scaling = true
compute_scaling_once = false
off_diagonals_in_auto_scaling = true
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[VectorPostprocessors]
[surface]
type = NodalValueSampler
use_displaced_mesh = false
variable = 'disp_x disp_y normal_gap'
boundary = '3'
sort_by = id
[]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
exodus = true
csv = false
[vectorpp_output]
type = CSV
create_final_symlink = true
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
penalty = 1e5
secondary_variable = disp_x
friction_coefficient = 0.4
penetration_tolerance = 1e-7
slip_tolerance = 1e-8
penalty_friction = 1e6
penalty_multiplier = 10
use_physical_gap = true
aux_lm = dual_var
[]
[]
[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/umat/shear_order/shear_order_umat.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[top_pull]
type = ParsedFunction
expression = 1.0e-5*t
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_xy stress_yz stress_xz strain_xy strain_yz strain_xz'
[]
[]
[BCs]
[pull_function]
type = FunctionDirichletBC
variable = disp_x
boundary = top
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = bottom
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[]
[]
[Materials]
# This input file is used to compare the MOOSE and UMAT models, activating
# specific ones with cli variable_names.
# 1. Active for umat calculation
[umat]
type = AbaqusUMATStress
constant_properties = ' '
plugin = '../../../plugins/elastic_incremental_anisotropic'
num_state_vars = 0
use_one_based_indexing = true
[]
# 2. Active for reference MOOSE computations
[elastic]
type = ComputeElasticityTensor
fill_method = orthotropic
C_ijkl = '1.0e5 1.0e5 1.0e5 1.0e4 2.0e4 3.0e4 0.0 0.0 0.0 0.0 0.0 0.0'
# skip_check = true
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-11
nl_abs_tol = 1e-11
l_tol = 1e-9
start_time = 0.0
end_time = 10.0
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/weak_plane_tensile/small_deform_hard_cubic.i)
# Checking evolution tensile strength for cubic hardening
# A single element is stretched by 1E-6*t in z direction, and
# the yield-surface evolution is mapped out
[GlobalParams]
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = 'stress_zz'
[]
[BCs]
[bottomx]
type = DirichletBC
variable = x_disp
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = y_disp
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = z_disp
boundary = back
value = 0.0
[]
[topx]
type = DirichletBC
variable = x_disp
boundary = front
value = 0
[]
[topy]
type = DirichletBC
variable = y_disp
boundary = front
value = 0
[]
[topz]
type = FunctionDirichletBC
variable = z_disp
boundary = front
function = 1E-6*t
[]
[]
[AuxVariables]
[wpt_internal]
order = CONSTANT
family = MONOMIAL
[]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[wpt_internal]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = wpt_internal
[]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[wpt_internal]
type = PointValue
point = '0 0 0'
variable = wpt_internal
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[]
[UserObjects]
[str]
type = SolidMechanicsHardeningCubic
value_0 = 10
value_residual = 4
internal_limit = 0.000003
[]
[wpt]
type = SolidMechanicsPlasticWeakPlaneTensile
tensile_strength = str
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-11
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wpt
transverse_direction = '0 0 1'
ep_plastic_tolerance = 1E-11
[]
[]
[Executioner]
end_time = 4
dt = 0.5
type = Transient
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/smeared_cracking/cracking_plane_stress.i)
################################################################################
#
# 1x1x1 cube, single element
# simulate plane stress
# pull in +y direction on right surface to produce shear strain
#
#
#
# ____________
# /| /|
# / | 5 / | -X Left 1
# /__________ / | +X Right 4
# | | 3 | | +Y Top 5
# | 1 | | 4 | -Y Bottom 2
# | |_6_____|___| y +Z Front 6
# | / | / ^ -Z Back 3
# | / 2 | / |
# |/__________|/ |
# ----> x
# /
# /
# z
#
#
#
#################################################################################
[Mesh]
file = cube.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./displ]
type = PiecewiseLinear
x = '0 0.1 0.2 0.3 0.4'
y = '0 0.0026 0 -0.0026 0'
[../]
[./pressure]
type = PiecewiseLinear
x = '0 0.1 0.2 0.3 0.4'
y = '0 0 0 0 0'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[../]
[]
[BCs]
[./pull_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = displ
[../]
[./pin_x]
type = DirichletBC
variable = disp_x
boundary = '1 4'
value = 0.0
[../]
[./pin_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = '3'
value = 0.0
[../]
[./front]
type = Pressure
variable = disp_z
boundary = 6
function = pressure
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 200.0e3
poissons_ratio = .3
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
cracking_stress = 120
cracked_elasticity_type = DIAGONAL
shear_retention_factor = 0.1
softening_models = exponential_softening
[../]
[./exponential_softening]
type = ExponentialSoftening
residual_stress = 0.1
beta = 0.1
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type'
petsc_options_value = '101 asm lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-8
l_tol = 1e-5
start_time = 0.0
end_time = 0.4
dt = 0.04
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_basal_active.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[]
[AuxVariables]
[temperature]
[]
[pk2_zz]
order = CONSTANT
family = MONOMIAL
[]
[fp_xx]
order = CONSTANT
family = MONOMIAL
[]
[fp_yy]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[e_xx]
order = CONSTANT
family = MONOMIAL
[]
[e_yy]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_0]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_1]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_0]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_1]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_2]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_0]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_1]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_2]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental = true
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[temperature]
type = ConstantAux
variable = temperature
value= 300
[]
[pk2_zz]
type = RankTwoAux
variable = pk2_zz
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_xx]
type = RankTwoAux
variable = fp_xx
rank_two_tensor = plastic_deformation_gradient
index_j = 0
index_i = 0
execute_on = timestep_end
[]
[fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = plastic_deformation_gradient
index_j = 1
index_i = 1
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_xx]
type = RankTwoAux
variable = e_xx
rank_two_tensor = total_lagrangian_strain
index_j = 0
index_i = 0
execute_on = timestep_end
[]
[e_yy]
type = RankTwoAux
variable = e_yy
rank_two_tensor = total_lagrangian_strain
index_j = 1
index_i = 1
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[slip_increment_0]
type = MaterialStdVectorAux
variable = slip_increment_0
property = slip_increment
index = 0
execute_on = timestep_end
[]
[slip_increment_1]
type = MaterialStdVectorAux
variable = slip_increment_1
property = slip_increment
index = 1
execute_on = timestep_end
[]
[tau_0]
type = MaterialStdVectorAux
variable = resolved_shear_stress_0
property = applied_shear_stress
index = 0
execute_on = timestep_end
[]
[tau_1]
type = MaterialStdVectorAux
variable = resolved_shear_stress_1
property = applied_shear_stress
index = 1
execute_on = timestep_end
[]
[tau_2]
type = MaterialStdVectorAux
variable = resolved_shear_stress_2
property = applied_shear_stress
index = 2
execute_on = timestep_end
[]
[slip_resistance_0]
type = MaterialStdVectorAux
variable = slip_resistance_0
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[slip_resistance_1]
type = MaterialStdVectorAux
variable = slip_resistance_1
property = slip_resistance
index = 1
execute_on = timestep_end
[]
[slip_resistance_2]
type = MaterialStdVectorAux
variable = slip_resistance_2
property = slip_resistance
index = 2
execute_on = timestep_end
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'bottom'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.001*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.622e5 9.18e4 6.88e4 1.622e5 6.88e4 1.805e5 4.67e4 4.67e4 4.67e4' #alpha Ti, Alankar et al. Acta Materialia 59 (2011) 7003-7009
fill_method = symmetric9
# orient in approximately [011] to activate the basal slip planes
euler_angle_1 = 120.0
euler_angle_2 = 125.264
euler_angle_3 = 45.0
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityHCPDislocationSlipBeyerleinUpdate
number_slip_systems = 3
slip_sys_file_name = hcp_basal_slip_sys.txt
unit_cell_dimension = '2.934e-7 2.934e-7 4.657e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
temperature = temperature
initial_forest_dislocation_density = 15.0e5
initial_substructure_density = 1.0e3
slip_system_modes = 1
number_slip_systems_per_mode = '3'
lattice_friction_per_mode = '98' #Knezevic et al MSEA 654 (2013)
effective_shear_modulus_per_mode = '4.7e4' #Ti, in MPa, https://materialsproject.org/materials/mp-46/
burgers_vector_per_mode = '2.934e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
slip_generation_coefficient_per_mode = '5.7e6' #from Knezevic et al. 2015 AM
normalized_slip_activiation_energy_per_mode = '0.002' #from Knezevic et al. 2015 AM
slip_energy_proportionality_factor_per_mode = '700' ##from Knezevic et al. 2015 AM
substructure_rate_coefficient_per_mode = '355' #from Capolungo et al MSEA (2009)
applied_strain_rate = 0.001
gamma_o = 1.0e-3
Hall_Petch_like_constant_per_mode = '0.2' #Estimated to match graph in Capolungo et al MSEA (2009), Figure 2
grain_size = 20.0e-3 #20 microns, Beyerlein and Tome IJP (2008)
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[pk2_zz]
type = ElementAverageValue
variable = pk2_zz
[]
[fp_xx]
type = ElementAverageValue
variable = fp_xx
[]
[fp_yy]
type = ElementAverageValue
variable = fp_yy
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_xx]
type = ElementAverageValue
variable = e_xx
[]
[e_yy]
type = ElementAverageValue
variable = e_yy
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[slip_increment_0]
type = ElementAverageValue
variable = slip_increment_0
[]
[slip_increment_1]
type = ElementAverageValue
variable = slip_increment_1
[]
[tau_0]
type = ElementAverageValue
variable = resolved_shear_stress_0
[]
[tau_1]
type = ElementAverageValue
variable = resolved_shear_stress_1
[]
[tau_2]
type = ElementAverageValue
variable = resolved_shear_stress_2
[]
[slip_resistance_0]
type = ElementAverageValue
variable = slip_resistance_0
[]
[slip_resistance_1]
type = ElementAverageValue
variable = slip_resistance_1
[]
[slip_resistance_2]
type = ElementAverageValue
variable = slip_resistance_2
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.5
dtmin = 1.0e-2
dtmax = 10.0
end_time = 2.5
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform23.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_max = sigma_mid (approximately),
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.25E-6*y*sin(t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 6
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./mc]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = ts
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
smoothing_tol = 5.0
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 30
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform23
csv = true
[]
(modules/solid_mechanics/test/tests/postprocessors/material_tensor_average_test.i)
[Mesh]
[./msh]
type = GeneratedMeshGenerator
dim = 3
xmax = 2
ymax = 2
zmax = 2
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_zz'
[../]
[../]
[../]
[]
[BCs]
[./back_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./move_front]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 't/10.'
[../]
[]
[Materials]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.5e6 0.75e6 0.75e6 1.5e6 0.75e6 1.5e6 0.375e6 0.375e6 0.375e6'
[../]
[]
[Postprocessors]
[./szz_avg]
type =MaterialTensorAverage
rank_two_tensor = stress
index_i = 2
index_j = 2
use_displaced_mesh = true
[]
[./szz_int]
type =MaterialTensorIntegral
rank_two_tensor = stress
index_i = 2
index_j = 2
use_displaced_mesh = true
[]
[./szz_avg_aux]
type =ElementAverageValue
variable = stress_zz
use_displaced_mesh = true
[]
[./szz_int_aux]
type =ElementIntegralVariablePostprocessor
variable = stress_zz
use_displaced_mesh = true
[]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type '
petsc_options_value = lu
nl_rel_tol = 1e-10
nl_abs_tol = 1e-6
l_max_its = 20
start_time = 0.0
dt = 0.2
end_time = 1.0
[]
[Outputs]
csv = 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/mortar/continuity-2d-conforming/conforming.i)
[Mesh]
[file]
type = FileMeshGenerator
file = 2blk-conf.e
[]
[secondary]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '101'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = '100'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Functions]
[./exact_sln]
type = ParsedFunction
expression= y
[../]
[./ffn]
type = ParsedFunction
expression= 0
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
block = '1 2'
[../]
[./lm]
order = FIRST
family = LAGRANGE
block = 'secondary_lower'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[Constraints]
[./ced]
type = EqualValueConstraint
variable = lm
secondary_variable = u
primary_boundary = 100
primary_subdomain = 10000
secondary_boundary = 101
secondary_subdomain = 10001
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1 2 3 4'
function = exact_sln
[../]
[]
[Postprocessors]
[./l2_error]
type = ElementL2Error
variable = u
function = exact_sln
block = '1 2'
execute_on = 'initial timestep_end'
[../]
[]
[Preconditioning]
[./fmp]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Steady
nl_rel_tol = 1e-11
l_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/porous_flow/test/tests/poro_elasticity/vol_expansion.i)
# Apply an increasing porepressure, with zero mechanical forces,
# and observe the corresponding volumetric expansion
#
# P = t
# With the Biot coefficient being 0.3, the effective stresses should be
# stress_xx = stress_yy = stress_zz = 0.3t
# With bulk modulus = 1 then should have
# vol_strain = strain_xx + strain_yy + strain_zz = 0.3t.
# I use a single element lying 0<=x<=1, 0<=y<=1 and 0<=z<=1, and
# fix the left, bottom and back boundaries appropriately,
# so at the point x=y=z=1, the displacements should be
# disp_x = disp_y = disp_z = 0.3t/3 (small strain physics is used)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 1
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
block = 0
PorousFlowDictator = dictator
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[p]
[]
[]
[BCs]
[p]
type = FunctionDirichletBC
boundary = 'bottom top'
variable = p
function = t
[]
[xmin]
type = DirichletBC
boundary = left
variable = disp_x
value = 0
[]
[ymin]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0
[]
[zmin]
type = DirichletBC
boundary = back
variable = disp_z
value = 0
[]
[]
[Kernels]
[p_does_not_really_diffuse]
type = Diffusion
variable = p
[]
[TensorMechanics]
displacements = 'disp_x disp_y disp_z'
[]
[poro_x]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.3
variable = disp_x
component = 0
[]
[poro_y]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.3
variable = disp_y
component = 1
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.3
variable = disp_z
component = 2
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[]
[]
[Postprocessors]
[corner_x]
type = PointValue
point = '1 1 1'
variable = disp_x
[]
[corner_y]
type = PointValue
point = '1 1 1'
variable = disp_y
[]
[corner_z]
type = PointValue
point = '1 1 1'
variable = disp_z
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'p'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[elasticity_tensor]
type = ComputeElasticityTensor
# bulk modulus = 1, poisson ratio = 0.2
C_ijkl = '0.5 0.75'
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
[]
[stress]
type = ComputeLinearElasticStress
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = p
capillary_pressure = pc
[]
[p_eff]
type = PorousFlowEffectiveFluidPressure
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol'
petsc_options_value = 'gmres bjacobi 1E-10 1E-10 10 1E-15 1E-10'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
dt = 0.1
end_time = 1
[]
[Outputs]
file_base = vol_expansion
exodus = true
[]
(modules/contact/test/tests/bouncing-block-contact/frictional-penalty-weighted-vel.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
scaling = 1e0
preset = false
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[]
[UserObjects]
[weighted_vel_uo]
type = PenaltyFrictionUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
penalty = 5e1
penalty_friction = 1e0
friction_coefficient = 0.4
[]
[]
[Constraints]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[tangent_x]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangent_y]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
snesmf_reuse_base = true
abort_on_solve_fail = true
nl_rel_tol = 1e-12
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[]
(modules/combined/test/tests/break_mesh_interface_contact/break_mesh_interface_contact.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
nx = 5
ny = 5
dim = 2
[]
[block1]
type = SubdomainBoundingBoxGenerator
block_id = 1
bottom_left = '0 0 0'
top_right = '0.5 1 0'
input = gen
[]
[block2]
type = SubdomainBoundingBoxGenerator
block_id = 2
bottom_left = '0.5 0 0'
top_right = '1 1 0'
input = block1
[]
[breakmesh]
input = block2
type = BreakMeshByBlockGenerator
block_pairs = '1 2'
split_interface = true
add_interface_on_two_sides = true
[]
[]
[Variables]
[temperature]
[]
[disp_x]
[]
[disp_y]
[]
[]
[Kernels]
[thermal_cond]
type = HeatConduction
variable = temperature
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy strain_xx strain_yy'
add_variables = true
strain = FINITE
incremental = true
[block1]
block = 1
[]
[block2]
block = 2
[]
[]
[ThermalContact]
[thermal_contact]
type = GapHeatTransfer
variable = temperature
primary = Block1_Block2
secondary = Block2_Block1
emissivity_primary = 0
emissivity_secondary = 0
quadrature = true
gap_conductivity = 1
[]
[]
[Contact]
[mechanical]
primary = Block1_Block2
secondary = Block2_Block1
penalty = 1000
model = coulomb
friction_coefficient = 0.5
formulation = tangential_penalty
tangential_tolerance = 0.1
[]
[]
[BCs]
[left_temp]
type = DirichletBC
value = 100
variable = temperature
boundary = left
[]
[right_temp]
type = DirichletBC
value = 0
variable = temperature
boundary = right
[]
[left_disp_x]
type = FunctionDirichletBC
variable = disp_x
boundary = left
function = 0
[]
[left_disp_y]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[]
[right_disp_x]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = '-t'
[]
[right_disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = right
function = '0'
[]
[]
[Materials]
[thermal_cond]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = 1
[]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 100
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Dampers]
[contact_slip]
type = ContactSlipDamper
secondary = Block1_Block2
primary = Block2_Block1
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu mumps'
line_search = none
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
l_tol = 1e-4
l_max_its = 50
nl_max_its = 20
start_time = 0.0
num_steps = 2
dtmin = 1e-8
dt = 1e-2
automatic_scaling = true
[]
[Outputs]
print_linear_residuals = false
time_step_interval = 1
csv = false
perf_graph = false
exodus = true
[]
(test/tests/multiapps/picard/function_dt_parent.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
ymin = 0
xmax = 1
ymax = 1
nx = 10
ny = 10
[]
[Functions]
[v_fn]
type = ParsedFunction
expression = t*x
[]
[ffn]
type = ParsedFunction
expression = x
[]
[dts]
type = PiecewiseLinear
x = '0.1 10'
y = '0.1 10'
[]
[]
[AuxVariables]
[v]
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[td]
type = TimeDerivative
variable = u
[]
[ufn]
type = BodyForce
variable = u
function = ffn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = v_fn
[]
[]
[Executioner]
type = Transient
dt = 0.1
solve_type = 'PJFNK'
nl_abs_tol = 1e-10
fixed_point_max_its = 2
start_time = 0
num_steps = 3
[TimeStepper]
type = FunctionDT
function = dts
[]
[]
[Outputs]
exodus = true
[]
[MultiApps]
[sub_app]
app_type = MooseTestApp
type = TransientMultiApp
input_files = 'function_dt_sub.i'
execute_on = timestep_end
positions = '0 -1 0'
[]
[]
[Transfers]
[from_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub_app
source_variable = u
variable = v
[]
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/block_w_bar.i)
[Mesh]
[whole]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 50
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -1.25
ymax = 1.25
zmin = -0.04
zmax = 0.04
[]
[bar]
type = SubdomainBoundingBoxGenerator
input = whole
bottom_left = '-0.6 -0.05 -0.04'
top_right = '0.6 0.05 0.04'
block_id = 2
block_name = 'bar'
location = INSIDE
[]
[block]
type = SubdomainBoundingBoxGenerator
input = bar
bottom_left = '-0.6 -0.05 -0.04'
top_right = '0.6 0.05 0.04'
block_id = 1
block_name = 'block'
location = OUTSIDE
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time_derivative]
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat_conduction]
type = HeatConduction
variable = temperature
[]
[]
[Materials]
[block]
type = GenericConstantMaterial
block = 'block'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '1.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[line]
type = GenericConstantMaterial
block = 'bar'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '10.0 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[]
[BCs]
[right]
type = FunctionDirichletBC
variable = temperature
boundary = 'right'
function = '10*t'
[]
[]
[VectorPostprocessors]
[x_n0_25]
type = LineValueSampler
start_point = '-0.25 0 0'
end_point = '-0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[x_0_25]
type = LineValueSampler
start_point = '0.25 0 0'
end_point = '0.25 1.25 0'
num_points = 100
variable = 'temperature'
sort_by = id
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
end_time = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = 'csv/block_w_bar'
time_data = true
[]
[]
(modules/contact/test/tests/3d-mortar-contact/frictional-mortar-3d-al.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[AuxVariables]
[penalty_normal_pressure]
order = FIRST
family = LAGRANGE
[]
[penalty_frictional_pressure_one]
order = FIRST
family = LAGRANGE
[]
[accumulated_slip_one]
order = FIRST
family = LAGRANGE
[]
[penalty_frictional_pressure_two]
order = FIRST
family = LAGRANGE
[]
[accumulated_slip_two]
order = FIRST
family = LAGRANGE
[]
[]
[Problem]
type = AugmentedLagrangianContactFEProblem
[]
[AuxKernels]
[penalty_normal_pressure_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
[]
[penalty_frictional_pressure_one_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure_one
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_frictional_pressure_two_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure_two
user_object = friction_uo
contact_quantity = tangential_pressure_two
[]
[penalty_accumulated_slip_two_auxk]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_two
user_object = friction_uo
contact_quantity = accumulated_slip_two
[]
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
allow_renumbering = false
[]
[Variables]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
[]
[]
[Materials]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e5
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e5
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[]
# Other object should mix formulations
[UserObjects]
[friction_uo]
type = PenaltyFrictionUserObject
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
friction_coefficient = 0.4
secondary_variable = disp_x
penalty = 1e0
penalty_friction = 1e1
slip_tolerance = 7.0e-4 # 1e-6
penetration_tolerance = 7.0e-4
# max_penalty_multiplier = 10
penalty_multiplier = 10
penalty_multiplier_friction = 5
[]
[]
[Constraints]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = friction_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = friction_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = friction_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
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 = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[tangential_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[tangential_dir_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_x
component = x
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[tangential_dir_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_y
component = y
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[tangential_dir_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_z
component = z
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = friction_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = .025
dt = .025
dtmin = .001
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
l_max_its = 15
nl_max_its = 90
nl_rel_tol = 1e-12
nl_abs_tol = 1e-13
line_search = 'basic'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[]
[VectorPostprocessors]
[]
(modules/contact/test/tests/mortar_dynamics/block-dynamics-friction-creep.i)
starting_point = 1e-1
offset = -0.095
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
[]
[Variables]
[normal_lm]
block = 3
use_dual = true
[]
[frictional_lm]
block = 3
use_dual = true
[]
[]
[AuxVariables]
[creep_strain_xx]
order = CONSTANT
family = MONOMIAL
block = '2'
[]
[creep_strain_yy]
order = CONSTANT
family = MONOMIAL
block = '2'
[]
[creep_strain_xy]
order = CONSTANT
family = MONOMIAL
block = '2'
[]
[]
[AuxKernels]
[creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
block = '2'
[]
[creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
block = '2'
[]
[creep_strain_xy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xy
index_i = 0
index_j = 1
block = '2'
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Physics/SolidMechanics/Dynamic]
[all]
add_variables = true
hht_alpha = 0.0
newmark_beta = 0.25
newmark_gamma = 0.5
mass_damping_coefficient = 0.0
stiffness_damping_coefficient = 0.01
displacements = 'disp_x disp_y'
generate_output = 'stress_xx stress_yy'
block = '1 2'
strain = FINITE
[]
[]
[Materials]
[elasticity_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elasticity_1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e8
poissons_ratio = 0.3
[]
[multiple_inelastic]
type = ComputeMultipleInelasticStress
inelastic_models = 'creep'
block = '2'
[]
[creep]
type = PowerLawCreepStressUpdate
coefficient = 1.0e-23 # 10e-24
n_exponent = 4
activation_energy = 0
block = '2'
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '775'
[]
[]
# User object provides the contact force (e.g. LM)
# for the application of the generalized force
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable_normal = normal_lm
lm_variable_tangential_one = frictional_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeDynamicFrictionalForceLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
friction_lm = frictional_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
c = 1e4
c_t = 1e4
mu = 0.5
interpolate_normals = false
newmark_beta = 0.25
newmark_gamma = 0.5
capture_tolerance = 1e-04
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 4 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 30 # 50
function = '1e-2*t' #'0.1 *sin(2 * pi / 12 * t)'
[]
[]
[Executioner]
type = Transient
end_time = 0.25
dt = 0.05
dtmin = 0.05
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err '
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
nl_max_its = 50
line_search = 'none'
snesmf_reuse_base = false
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
checkpoint = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/hcp_twinning/modified_kalidindi_for_hcp.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[single_xtal]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[]
[AuxVariables]
[temperature]
initial_condition = 300
[]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[fp_xx]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[total_twin_volume_fraction]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_4]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_5]
order = CONSTANT
family = MONOMIAL
[]
[twin_increment_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_increment_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_increment_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_increment_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_increment_4]
order = CONSTANT
family = MONOMIAL
[]
[twin_increment_5]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_4]
order = CONSTANT
family = MONOMIAL
[]
[twin_resistance_5]
order = CONSTANT
family = MONOMIAL
[]
[resolved_twin_stress_0]
order = CONSTANT
family = MONOMIAL
[]
[resolved_twin_stress_1]
order = CONSTANT
family = MONOMIAL
[]
[resolved_twin_stress_2]
order = CONSTANT
family = MONOMIAL
[]
[resolved_twin_stress_3]
order = CONSTANT
family = MONOMIAL
[]
[resolved_twin_stress_4]
order = CONSTANT
family = MONOMIAL
[]
[resolved_twin_stress_5]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_xx]
type = RankTwoAux
variable = fp_xx
rank_two_tensor = plastic_deformation_gradient
index_j = 0
index_i = 0
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[total_twin_volume_fraction]
type = MaterialRealAux
variable = total_twin_volume_fraction
property = twin_total_volume_fraction_twins
execute_on = timestep_end
[]
[twin_volume_fraction_0]
type = MaterialStdVectorAux
variable = twin_volume_fraction_0
property = twin_twin_system_volume_fraction
index = 0
execute_on = timestep_end
[]
[twin_volume_fraction_1]
type = MaterialStdVectorAux
variable = twin_volume_fraction_1
property = twin_twin_system_volume_fraction
index = 1
execute_on = timestep_end
[]
[twin_volume_fraction_2]
type = MaterialStdVectorAux
variable = twin_volume_fraction_2
property = twin_twin_system_volume_fraction
index = 2
execute_on = timestep_end
[]
[twin_volume_fraction_3]
type = MaterialStdVectorAux
variable = twin_volume_fraction_3
property = twin_twin_system_volume_fraction
index = 3
execute_on = timestep_end
[]
[twin_volume_fraction_4]
type = MaterialStdVectorAux
variable = twin_volume_fraction_4
property = twin_twin_system_volume_fraction
index = 4
execute_on = timestep_end
[]
[twin_volume_fraction_5]
type = MaterialStdVectorAux
variable = twin_volume_fraction_5
property = twin_twin_system_volume_fraction
index = 5
execute_on = timestep_end
[]
[twin_resistance_0]
type = MaterialStdVectorAux
variable = twin_resistance_0
property = twin_slip_resistance
index = 0
execute_on = timestep_end
[]
[twin_resistance_1]
type = MaterialStdVectorAux
variable = twin_resistance_1
property = twin_slip_resistance
index = 1
execute_on = timestep_end
[]
[twin_resistance_2]
type = MaterialStdVectorAux
variable = twin_resistance_2
property = twin_slip_resistance
index = 2
execute_on = timestep_end
[]
[twin_resistance_3]
type = MaterialStdVectorAux
variable = twin_resistance_3
property = twin_slip_resistance
index = 3
execute_on = timestep_end
[]
[twin_resistance_4]
type = MaterialStdVectorAux
variable = twin_resistance_4
property = twin_slip_resistance
index = 4
execute_on = timestep_end
[]
[twin_resistance_5]
type = MaterialStdVectorAux
variable = twin_resistance_5
property = twin_slip_resistance
index = 5
execute_on = timestep_end
[]
[twin_increment_0]
type = MaterialStdVectorAux
variable = twin_increment_0
property = twin_slip_increment
index = 0
execute_on = timestep_end
[]
[twin_increment_1]
type = MaterialStdVectorAux
variable = twin_increment_1
property = twin_slip_increment
index = 1
execute_on = timestep_end
[]
[twin_increment_2]
type = MaterialStdVectorAux
variable = twin_increment_2
property = twin_slip_increment
index = 2
execute_on = timestep_end
[]
[twin_increment_3]
type = MaterialStdVectorAux
variable = twin_increment_3
property = twin_slip_increment
index = 3
execute_on = timestep_end
[]
[twin_increment_4]
type = MaterialStdVectorAux
variable = twin_increment_4
property = twin_slip_increment
index = 4
execute_on = timestep_end
[]
[twin_increment_5]
type = MaterialStdVectorAux
variable = twin_increment_5
property = twin_slip_increment
index = 5
execute_on = timestep_end
[]
[twin_tau_0]
type = MaterialStdVectorAux
variable = resolved_twin_stress_0
property = twin_applied_shear_stress
index = 0
execute_on = timestep_end
[]
[twin_tau_1]
type = MaterialStdVectorAux
variable = resolved_twin_stress_1
property = twin_applied_shear_stress
index = 1
execute_on = timestep_end
[]
[twin_tau_2]
type = MaterialStdVectorAux
variable = resolved_twin_stress_2
property = twin_applied_shear_stress
index = 2
execute_on = timestep_end
[]
[twin_tau_3]
type = MaterialStdVectorAux
variable = resolved_twin_stress_3
property = twin_applied_shear_stress
index = 3
execute_on = timestep_end
[]
[twin_tau_4]
type = MaterialStdVectorAux
variable = resolved_twin_stress_4
property = twin_applied_shear_stress
index = 4
execute_on = timestep_end
[]
[twin_tau_5]
type = MaterialStdVectorAux
variable = resolved_twin_stress_5
property = twin_applied_shear_stress
index = 5
execute_on = timestep_end
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = disp_y
preset = true
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.01*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.622e5 9.18e4 6.88e4 1.622e5 6.88e4 1.805e5 4.67e4 4.67e4 4.67e4' #alpha Ti, Alankar et al. Acta Materialia 59 (2011) 7003-7009
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'twin_xtalpl'
tan_mod_type = exact
[]
[twin_xtalpl]
type = CrystalPlasticityTwinningKalidindiUpdate
base_name = twin
crystal_lattice_type = HCP
unit_cell_dimension = '2.934e-7 2.934e-7 4.657e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
number_slip_systems = 6
slip_sys_file_name = 'hcp_tensile_twin_systems.txt'
initial_twin_lattice_friction = 1140
non_coplanar_coefficient_twin_hardening = 10000
coplanar_coefficient_twin_hardening = 1000
characteristic_twin_shear = 0.167
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[fp_xx]
type = ElementAverageValue
variable = fp_xx
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[total_twin_volume_fraction]
type = ElementAverageValue
variable = total_twin_volume_fraction
[]
[twin_volume_fraction_0]
type = ElementAverageValue
variable = twin_volume_fraction_0
[]
[twin_volume_fraction_1]
type = ElementAverageValue
variable = twin_volume_fraction_1
[]
[twin_volume_fraction_2]
type = ElementAverageValue
variable = twin_volume_fraction_2
[]
[twin_volume_fraction_3]
type = ElementAverageValue
variable = twin_volume_fraction_3
[]
[twin_volume_fraction_4]
type = ElementAverageValue
variable = twin_volume_fraction_4
[]
[twin_volume_fraction_5]
type = ElementAverageValue
variable = twin_volume_fraction_5
[]
[twin_resistance_0]
type = ElementAverageValue
variable = twin_resistance_0
[]
[twin_resistance_1]
type = ElementAverageValue
variable = twin_resistance_1
[]
[twin_resistance_2]
type = ElementAverageValue
variable = twin_resistance_2
[]
[twin_resistance_3]
type = ElementAverageValue
variable = twin_resistance_3
[]
[twin_resistance_4]
type = ElementAverageValue
variable = twin_resistance_4
[]
[twin_resistance_5]
type = ElementAverageValue
variable = twin_resistance_5
[]
[twin_increment_0]
type = ElementAverageValue
variable = twin_increment_0
[]
[twin_increment_1]
type = ElementAverageValue
variable = twin_increment_1
[]
[twin_increment_2]
type = ElementAverageValue
variable = twin_increment_2
[]
[twin_increment_3]
type = ElementAverageValue
variable = twin_increment_3
[]
[twin_increment_4]
type = ElementAverageValue
variable = twin_increment_4
[]
[twin_increment_5]
type = ElementAverageValue
variable = twin_increment_5
[]
[twin_tau_0]
type = ElementAverageValue
variable = resolved_twin_stress_0
[]
[twin_tau_1]
type = ElementAverageValue
variable = resolved_twin_stress_1
[]
[twin_tau_2]
type = ElementAverageValue
variable = resolved_twin_stress_2
[]
[twin_tau_3]
type = ElementAverageValue
variable = resolved_twin_stress_3
[]
[twin_tau_4]
type = ElementAverageValue
variable = resolved_twin_stress_4
[]
[twin_tau_5]
type = ElementAverageValue
variable = resolved_twin_stress_5
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.5
dtmin = 1.0e-2
dtmax = 10.0
end_time = 2.5
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence/L/large.i)
[Mesh]
type = FileMesh
file = 'L.exo'
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Functions]
[pfn]
type = PiecewiseLinear
x = '0 1 2'
y = '0.00 0.3 0.5'
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[BCs]
[left]
type = DirichletBC
preset = true
variable = disp_x
boundary = fix
value = 0.0
[]
[bottom]
type = DirichletBC
preset = true
variable = disp_y
boundary = fix
value = 0.0
[]
[back]
type = DirichletBC
preset = true
variable = disp_z
boundary = fix
value = 0.0
[]
[front]
type = FunctionDirichletBC
variable = disp_z
boundary = pull
function = pfn
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
petsc_options_iname = -pc_type
petsc_options_value = lu
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
end_time = 1.0
dtmin = 0.5
dt = 0.5
[]
[Postprocessors]
[nonlin]
type = NumNonlinearIterations
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/porous_flow/examples/tidal/atm_tides_open_hole.i)
# A 100m x 10m "slab" of height 100m is subjected to cyclic pressure at its top
# Assumptions:
# the boundaries are impermeable, except the top boundary
# only vertical displacement is allowed
# the atmospheric pressure sets the total stress at the top of the model
# at the slab left-hand side there is a borehole that taps into the base of the slab.
[Mesh]
[the_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 1
nz = 10
xmin = 0
xmax = 100
ymin = -5
ymax = 5
zmin = -100
zmax = 0
[]
[bh_back]
type = ExtraNodesetGenerator
coord = '0 -5 -100'
input = the_mesh
new_boundary = 11
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
biot_coefficient = 0.6
multiply_by_density = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[porepressure]
scaling = 1E11
[]
[]
[ICs]
[porepressure]
type = FunctionIC
variable = porepressure
function = '-10000*z' # this is only approximately correct
[]
[]
[Functions]
[ini_stress_zz]
type = ParsedFunction
expression = '(25000 - 0.6*10000)*z' # remember this is effective stress
[]
[cyclic_porepressure]
type = ParsedFunction
expression = 'if(t>0,5000 * sin(2 * pi * t / 3600.0 / 24.0),0)'
[]
[cyclic_porepressure_at_depth]
type = ParsedFunction
expression = '-10000*z + if(t>0,5000 * sin(2 * pi * t / 3600.0 / 24.0),0)'
[]
[neg_cyclic_porepressure]
type = ParsedFunction
expression = '-if(t>0,5000 * sin(2 * pi * t / 3600.0 / 24.0),0)'
[]
[]
[BCs]
# zmin is called 'back'
# zmax is called 'front'
# ymin is called 'bottom'
# ymax is called 'top'
# xmin is called 'left'
# xmax is called 'right'
[no_x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'bottom top' # because of 1-element meshing, this fixes u_x=0 everywhere
[]
[no_y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom top' # because of 1-element meshing, this fixes u_y=0 everywhere
[]
[no_z_disp_at_bottom]
type = DirichletBC
variable = disp_z
value = 0
boundary = back
[]
[pp]
type = FunctionDirichletBC
variable = porepressure
function = cyclic_porepressure
boundary = front
[]
[pp_downhole]
type = FunctionDirichletBC
variable = porepressure
function = cyclic_porepressure_at_depth
boundary = 11
[]
[total_stress_at_top]
type = FunctionNeumannBC
variable = disp_z
function = neg_cyclic_porepressure
boundary = front
[]
[]
[FluidProperties]
[the_simple_fluid]
type = SimpleFluidProperties
thermal_expansion = 0.0
bulk_modulus = 2E9
viscosity = 1E-3
density0 = 1000.0
[]
[]
[PorousFlowBasicTHM]
coupling_type = HydroMechanical
displacements = 'disp_x disp_y disp_z'
porepressure = porepressure
gravity = '0 0 -10'
fp = the_simple_fluid
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
bulk_modulus = 10.0E9 # drained bulk modulus
poissons_ratio = 0.25
[]
[strain]
type = ComputeSmallStrain
eigenstrain_names = ini_stress
[]
[stress]
type = ComputeLinearElasticStress
[]
[ini_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '0 0 0 0 0 0 0 0 ini_stress_zz'
eigenstrain_name = ini_stress
[]
[porosity]
type = PorousFlowPorosityConst # only the initial value of this is ever used
porosity = 0.1
[]
[biot_modulus]
type = PorousFlowConstantBiotModulus
solid_bulk_compliance = 1E-10
fluid_bulk_modulus = 2E9
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-14 0 0 0 1E-14 0 0 0 1E-14'
[]
[density]
type = GenericConstantMaterial
prop_names = density
prop_values = 2500.0
[]
[]
[Postprocessors]
[p0_0]
type = PointValue
outputs = csv
point = '0 0 0'
variable = porepressure
[]
[p100_0]
type = PointValue
outputs = csv
point = '100 0 0'
variable = porepressure
[]
[p0_100]
type = PointValue
outputs = csv
point = '0 0 -100'
variable = porepressure
[]
[p100_100]
type = PointValue
outputs = csv
point = '100 0 -100'
variable = porepressure
[]
[uz0]
type = PointValue
outputs = csv
point = '0 0 0'
variable = disp_z
[]
[uz100]
type = PointValue
outputs = csv
point = '100 0 0'
variable = disp_z
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = -3600
dt = 3600
end_time = 172800
nl_rel_tol = 1E-10
nl_abs_tol = 1E-5
[]
[Outputs]
print_linear_residuals = false
csv = true
[]
(modules/contact/test/tests/mortar_tm/2drz/frictionless_first/finite.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD4
order = FIRST
name = 'finite'
[Problem]
coord_type = RZ
[]
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.6
ymin = -10
ymax = 10
nx = 2
ny = 67
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.61
xmax = 1.21
ymin = 9.2
ymax = 10.0
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[block]
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'block'
[]
[plank]
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'plank'
eigenstrain_names = 'swell'
[]
[]
[Contact]
[frictionless]
primary = plank_right
secondary = block_left
formulation = mortar
c_normal = 1e0
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = DirichletBC
variable = disp_x
boundary = block_right
value = 0
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = block_right
function = '-t'
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'plank block'
[]
[swell]
type = ComputeEigenstrain
block = 'plank'
eigenstrain_name = swell
eigen_base = '1 0 0 0 0 0 0 0 0'
prefactor = swell_mat
[]
[swell_mat]
type = GenericFunctionMaterial
prop_names = 'swell_mat'
prop_values = '7e-2*(1-cos(4*t))'
block = 'plank'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 5
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'contact'
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[]
[Outputs]
file_base = ${name}
[comp]
type = CSV
show = 'contact'
[]
[out]
type = CSV
file_base = '${name}_out'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/contact/test/tests/sliding_block/sliding/frictionless_penalty.i)
# This is a benchmark test that checks constraint based frictionless
# contact using the penalty method. In this test a constant
# displacement is applied in the horizontal direction to simulate
# a small block come sliding down a larger block.
#
# The gold file is run on one processor
# and the benchmark case is run on a minimum of 4 processors to ensure no
# parallel variability in the contact pressure and penetration results.
#
[Mesh]
file = sliding_elastic_blocks_2d.e
patch_size = 80
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[../]
[]
[AuxKernels]
[./zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./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
[../]
[]
[Postprocessors]
[./nonlinear_its]
type = NumNonlinearIterations
execute_on = timestep_end
[../]
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 222
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 222
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = -0.02
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./left_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.1
end_time = 15
num_steps = 1000
l_tol = 1e-6
nl_rel_tol = 1e-10
nl_abs_tol = 1e-6
dtmin = 0.01
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
time_step_interval = 10
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
secondary = 3
primary = 2
model = frictionless
penalty = 1e+7
formulation = penalty
normal_smoothing_distance = 0.1
[../]
[]
(modules/xfem/test/tests/moving_interface/verification/1D_xy_discrete2mat.i)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #
# XFEM Moving Interface Verification Problem
# Dimensionality: quasi-1D
# Coordinate System: xy
# Material Numbers/Types:discrete homog 2 material, 2 region
# Element Order: 1st
# Interface Characteristics: u independent, prescribed level set function
# Description
# A transient heat transfer problem in Cartesian coordinates designed with
# the Method of Manufactured Solutions. This problem was developed to verify
# XFEM performance in the presence of a moving interface separating two
# discrete material regions for linear element models. Both the temperature
# solution and level set function are designed to be linear to attempt to
# minimize error between the exact solution and XFEM results. Thermal
# conductivity, density, and heat capacity are homogeneous in each material
# region with a discontinuous jump in thermal flux between the two material
# regions.
# Results:
# The temperature at the left boundary is determined by the analytical
# solution, so temperature at the right boundary (x=1) should exhibit the
# largest difference between the analytical solution and XFEM results. We
# present the analytical and XFEM results at the material interface position
# and right side boundary at various times.
# Interface:
# Time Expected Temperature XFEM Calculated Temperature
# 20 746.75 746.7235521
# 40 893.05 893.0379081
# 60 1040.15 1040.1527530
#
# Right Boundary (x=1):
# Time Expected Temperature XFEM Calculated Temperature
# 20 720 719.9708681
# 40 840 839.9913293
# 60 960 960.0100886
#
# IMPORTANT NOTE:
# When running this input file, add the --allow-test-objects tag!!!
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 20
ny = 1
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 0.5
elem_type = QUAD4
[]
[XFEM]
qrule = moment_fitting
output_cut_plane = true
[]
[UserObjects]
[./level_set_cut_uo]
type = LevelSetCutUserObject
level_set_var = phi
heal_always = true
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./phi]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./heat_cond]
type = MatDiffusion
variable = u
diffusivity = 'diffusion_coefficient'
[../]
[./vol_heat_src]
type = BodyForce
variable = u
function = src_func
[../]
[./mat_time_deriv]
type = TestMatTimeDerivative
variable = u
mat_prop_value = rhoCp
[../]
[]
[AuxKernels]
[./ls_function]
type = FunctionAux
variable = phi
function = ls_func
[../]
[]
[Constraints]
[./xfem_constraint]
type = XFEMSingleVariableConstraint
variable = u
geometric_cut_userobject = 'level_set_cut_uo'
jump_flux = jump_flux_func
use_penalty = true
alpha = 1e5
[../]
[]
[Functions]
[./src_func]
type = ParsedFunction
expression = 'phi:=(0.75-x-0.001*t);
i:=(0.75-0.001*t);
if (phi>=0,
10*(8-x),
(7/(1-i))*((i-2)*x + (8-7*i)) )'
[../]
[./right_du_func]
type = ParsedFunction
expression = 'i:=(0.75-0.001*t);
(2.0/(1-i))*(-5+5*i+i*t-2*t)'
[../]
[./exact_u_func]
type = ParsedFunction
expression = 'phi:=(0.75-x-0.001*t);
i:=(0.75-0.001*t);
if (phi>=0,
605 - 5*x + t*(8-x),
(1/(1-i))*((-5+5*i+i*t-2*t)*x + (605-605*i+8*t-7*t*i)) )'
[../]
[./jump_flux_func]
type = ParsedFunction
expression = 'i:=(0.75-0.001*t);
k_1:=(20.0);
k_2:=(2.0);
k_1*(5+t) + (k_2/(1-i))*(-5+5*i+i*t-2*t)'
[../]
[./ls_func]
type = ParsedFunction
expression = '0.75 - x - 0.001*t'
[../]
[]
[Materials]
[./mat_time_deriv_prop]
type = GenericConstantMaterial
prop_names = 'A_rhoCp B_rhoCp'
prop_values = '10 7'
[../]
[./therm_cond_prop]
type = GenericConstantMaterial
prop_names = 'A_diffusion_coefficient B_diffusion_coefficient'
prop_values = '20.0 2.0'
[../]
[./combined_rhoCp]
type = LevelSetBiMaterialReal
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = phi
prop_name = rhoCp
[../]
[./combined_diffusion_coefficient]
type = LevelSetBiMaterialReal
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = phi
prop_name = diffusion_coefficient
[../]
[]
[BCs]
[./left_u]
type = FunctionDirichletBC
variable = u
boundary = 'left'
function = exact_u_func
[../]
[./right_du]
type = FunctionNeumannBC
variable = u
boundary = 'right'
function = right_du_func
[../]
[]
[ICs]
[./u_ic]
type = ConstantIC
value = 600
variable = u
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
# petsc_options_iname = '-pc_type -pc_hypre_type'
# petsc_options_value = 'hypre boomeramg'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_tol = 1.0e-6
nl_max_its = 15
nl_rel_tol = 1.0e-10
nl_abs_tol = 1.0e-9
start_time = 0.0
dt = 20
end_time = 60.0
max_xfem_update = 2
[]
[Outputs]
time_step_interval = 1
execute_on = 'initial timestep_end'
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/volumetric_eigenstrain/volumetric_mechanical.i)
# This test ensures that the reported volumetric strain for a cube with
# mechanically imposed displacements (through Dirichlet BCs) exactly
# matches that from a version of this test that experiences the same
# defomation, but due to imposed eigenstrains.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./volumetric_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./master]
strain = FINITE
decomposition_method = EigenSolution #Necessary for exact solution
[../]
[]
[AuxKernels]
[./volumetric_strain]
type = RankTwoScalarAux
scalar_type = VolumetricStrain
rank_two_tensor = total_strain
variable = volumetric_strain
[../]
[]
[Functions]
[pres_disp]
type = PiecewiseLinear
# These values are taken from the displacements in the eigenstrain
# version of this test. The volume of the cube (which starts out as
# a 1x1x1 cube) is (1 + disp)^3. At time 2, this is
# (1.44224957030741)^3, which is 3.0.
xy_data = '0 0
1 0.25992104989487
2 0.44224957030741'
[]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./right]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = pres_disp
[../]
[./top]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = pres_disp
[../]
[./front]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = pres_disp
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./finite_strain_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./volumetric_change]
type = GenericFunctionMaterial
prop_names = volumetric_change
prop_values = t
[../]
[]
[Postprocessors]
[./vol]
type = VolumePostprocessor
use_displaced_mesh = true
execute_on = 'initial timestep_end'
[../]
[./volumetric_strain]
type = ElementalVariableValue
variable = volumetric_strain
elementid = 0
[../]
[./disp_right]
type = NodalExtremeValue
variable = disp_x
boundary = right
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_max_its = 100
l_tol = 1e-4
nl_abs_tol = 1e-8
nl_rel_tol = 1e-12
start_time = 0.0
end_time = 2.0
dt = 1.0
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence/L/large.i)
[Mesh]
type = FileMesh
file = 'L.exo'
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Functions]
[pfn]
type = PiecewiseLinear
x = '0 1 2'
y = '0.00 0.3 0.5'
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[sdy]
type = UpdatedLagrangianStressDivergence
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[sdz]
type = UpdatedLagrangianStressDivergence
variable = disp_z
component = 2
use_displaced_mesh = true
[]
[]
[BCs]
[left]
type = DirichletBC
preset = true
variable = disp_x
boundary = fix
value = 0.0
[]
[bottom]
type = DirichletBC
preset = true
variable = disp_y
boundary = fix
value = 0.0
[]
[back]
type = DirichletBC
preset = true
variable = disp_z
boundary = fix
value = 0.0
[]
[front]
type = FunctionDirichletBC
variable = disp_z
boundary = pull
function = pfn
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
petsc_options_iname = -pc_type
petsc_options_value = lu
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
end_time = 1.0
dtmin = 0.5
dt = 0.5
[]
[Postprocessors]
[nonlin]
type = NumNonlinearIterations
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/contact/test/tests/3d-mortar-contact/frictionless-mortar-3d-test-derivative-trimming.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
second_order = false
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[disp_z]
block = '1 2'
[]
[mortar_normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[ICs]
[disp_z]
block = 1
variable = disp_z
value = '${fparse offset}'
type = ConstantIC
[]
[disp_x]
block = 1
variable = disp_x
value = 0
type = ConstantIC
[]
[disp_y]
block = 1
variable = disp_y
value = 0
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[disp_z]
type = MatDiffusion
variable = disp_z
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
[]
[]
[Constraints]
[normal_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
c = 1.0e4
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = 1
dt = .5
dtmin = .01
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor'
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'
l_max_its = 100
nl_max_its = 30
# nl_rel_tol = 1e-6
nl_abs_tol = 1e-12
line_search = 'none'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_normal_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[]
(test/tests/kernels/ode/ode_expl_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 5
ny = 5
elem_type = QUAD4
[]
[Functions]
[./f_fn]
type = ParsedFunction
expression = -4
[../]
[./bc_all_fn]
type = ParsedFunction
expression = x*x+y*y
[../]
[]
# NL
[Variables]
[./u]
family = LAGRANGE
order = FIRST
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./uff]
type = BodyForce
variable = u
function = f_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = bc_all_fn
[../]
[]
# Aux
[AuxVariables]
[./y]
family = SCALAR
order = FIRST
initial_condition = 1
[../]
[]
[AuxScalarKernels]
[./ode1]
type = ExplicitODE
variable = y
[../]
[]
[Executioner]
type = Transient
start_time = 0
dt = 0.1
num_steps = 10
[]
[Outputs]
exodus = true
[]
(test/tests/postprocessors/num_vars/num_vars.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[Functions]
[forcing_fnu]
type = ParsedFunction
expression = -6*(x+y)+x*x+y*y
[]
[forcing_fnv]
type = ParsedFunction
expression = -4+x*x*x-x+y*y*y-y
[]
[bc_fnut]
type = ParsedFunction
expression = 3*y*y-1
[]
[bc_fnub]
type = ParsedFunction
expression = -3*y*y+1
[]
[bc_fnul]
type = ParsedFunction
expression = -3*x*x+1
[]
[bc_fnur]
type = ParsedFunction
expression = 3*x*x-1
[]
[slnu]
type = ParsedGradFunction
expression = x*x*x-x+y*y*y-y
grad_x = 3*x*x-1
grad_y = 3*y*y-1
[]
[slnv]
type = ParsedGradFunction
expression = x*x+y*y
grad_x = 2*x
grad_y = 2*y
[]
[]
[Variables]
[u]
order = THIRD
family = HIERARCHIC
[]
[v]
order = SECOND
family = LAGRANGE
[]
[]
[Kernels]
[diff1]
type = Diffusion
variable = u
[]
[diff2]
type = Diffusion
variable = v
[]
[forceu]
type = BodyForce
variable = u
function = forcing_fnu
[]
[forcev]
type = BodyForce
variable = v
function = forcing_fnv
[]
[]
[BCs]
[bc_ut]
type = FunctionDirichletBC
variable = u
boundary = top
function = bc_fnut
[]
[bc_ub]
type = FunctionDirichletBC
variable = u
boundary = bottom
function = bc_fnub
[]
[bc_ul]
type = FunctionDirichletBC
variable = u
boundary = left
function = bc_fnul
[]
[bc_ur]
type = FunctionDirichletBC
variable = u
boundary = right
function = bc_fnur
[]
[bc_v]
type = FunctionDirichletBC
variable = v
function = slnv
boundary = 'top left right bottom'
[]
[]
[Preconditioning]
[prec]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_vars'
[dofs]
type = NumDOFs
[]
[h]
type = AverageElementSize
[]
[L2u]
type = ElementL2Error
variable = u
function = slnu
[]
[L2v]
type = ElementL2Error
variable = v
function = slnv
[]
[H1error]
type = ElementH1Error
variable = u
function = solution
[]
[H1Semierror]
type = ElementH1SemiError
variable = u
function = solution
[]
[num_vars]
type = NumVars
system = 'NL'
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_rel_tol = 1e-15
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
execute_on = 'timestep_end'
csv = true
[]
(modules/xfem/test/tests/moving_interface/moving_bimaterial_finite_strain_esm.i)
# This test is for two layer materials with different youngs modulus with AD
# The global stress is determined by switching the stress based on level set values
# The material interface is marked by a level set function
# The two layer materials are glued together
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[XFEM]
output_cut_plane = true
[]
[UserObjects]
[level_set_cut_uo]
type = LevelSetCutUserObject
level_set_var = ls
heal_always = true
[]
[esm]
type = CutElementSubdomainModifier
geometric_cut_userobject = level_set_cut_uo
reinitialize_subdomains = '' #no reinitialization of variables or material properties
[]
[]
[Mesh]
use_displaced_mesh = true
[generated_mesh]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmin = 0
xmax = 5
ymin = 0
ymax = 5
elem_type = QUAD4
[]
[bottom]
type = SubdomainBoundingBoxGenerator
input = generated_mesh
block_id = 0
bottom_left = '0 0 0'
top_right = '5 2.5 0'
[]
[top]
type = SubdomainBoundingBoxGenerator
input = bottom
block_id = 1
bottom_left = '0 2.5 0'
top_right = '5 5 0'
[]
[]
[Functions]
[ls_func]
type = ParsedFunction
expression = 'y-2.73+t'
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[AuxVariables]
[ls]
[]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[ls_function]
type = FunctionAux
variable = ls
function = ls_func
[]
[strain_xx]
type = RankTwoAux
variable = strain_xx
rank_two_tensor = total_strain
index_i = 0
index_j = 0
[]
[strain_yy]
type = RankTwoAux
variable = strain_yy
rank_two_tensor = total_strain
index_i = 1
index_j = 1
[]
[strain_xy]
type = RankTwoAux
variable = strain_xy
rank_two_tensor = total_strain
index_i = 0
index_j = 1
[]
[stress_xx]
type = RankTwoAux
variable = stress_xx
rank_two_tensor = stress
index_i = 0
index_j = 0
[]
[stress_xy]
type = RankTwoAux
variable = stress_xy
rank_two_tensor = stress
index_i = 0
index_j = 1
[]
[stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_i = 1
index_j = 1
[]
[]
[Kernels]
[solid_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[solid_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[]
[Constraints]
[dispx_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_x
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[]
[dispy_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_y
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[]
[]
[BCs]
[bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[]
[bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[]
[topx]
type = FunctionDirichletBC
boundary = top
variable = disp_x
function = 0.03*t
[]
[topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = '0.03*t'
[]
[]
[Materials]
[elasticity_tensor_A]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1e9
poissons_ratio = 0.3
[]
[strain_A]
type = ComputeFiniteStrain
block = 1
[]
[stress_A]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_B]
type = ComputeIsotropicElasticityTensor
block = 0
youngs_modulus = 1e7
poissons_ratio = 0.3
[]
[strain_B]
type = ComputeFiniteStrain
block = 0
[]
[stress_B]
type = ComputeFiniteStrainElasticStress
block = 0
[]
[]
[Postprocessors]
[disp_x_norm]
type = ElementL2Norm
variable = disp_x
[]
[disp_y_norm]
type = ElementL2Norm
variable = disp_y
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-13
nl_abs_tol = 1e-50
# time control
start_time = 0.0
dt = 0.1
num_steps = 4
max_xfem_update = 1
[]
[Outputs]
print_linear_residuals = false
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test3q.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test3q.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.025
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test3q_out
exodus = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction.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
[]
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[frictionless_normal_lm]
order = FIRST
family = LAGRANGE
block = 'secondary_lower'
use_dual = true
[]
[tangential_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[saved_x]
[]
[saved_y]
[]
[diag_saved_x]
[]
[diag_saved_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
save_in = 'saved_x saved_y'
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'
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[]
[_dt]
type = TimestepSize
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[]
[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-7
start_time = 0.0
end_time = 0.3 # 3.5
l_tol = 1e-4
dt = 0.1
dtmin = 0.001
[]
[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
[]
[cont_press]
type = NodalValueSampler
variable = frictionless_normal_lm
boundary = '3'
sort_by = id
[]
[friction]
type = NodalValueSampler
variable = frictionless_normal_lm
boundary = '3'
sort_by = id
[]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
exodus = false
csv = false
[console]
type = Console
max_rows = 5
[]
[chkfile]
type = CSV
show = 'x_disp y_disp cont_press friction'
file_base = cylinder_friction_check
create_final_symlink = true
execute_on = 'FINAL'
[]
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 2
secondary_boundary = 3
primary_subdomain = 10000
secondary_subdomain = 10001
lm_variable_normal = frictionless_normal_lm
lm_variable_tangential_one = tangential_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeFrictionalForceLMMechanicalContact
primary_boundary = 2
secondary_boundary = 3
primary_subdomain = 10000
secondary_subdomain = 10001
variable = frictionless_normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
friction_lm = tangential_lm
mu = 0.4
c_t = 1.0e5
c = 1.0e6
weighted_gap_uo = weighted_vel_uo
weighted_velocities_uo = weighted_vel_uo
[]
[x]
type = NormalMortarMechanicalContact
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
variable = frictionless_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[y]
type = NormalMortarMechanicalContact
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
variable = frictionless_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 2
secondary_boundary = 3
primary_subdomain = 10000
secondary_subdomain = 10001
variable = tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 2
secondary_boundary = 3
primary_subdomain = 10000
secondary_subdomain = 10001
variable = tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
(modules/xfem/test/tests/diffusion_xfem/diffusion.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 6
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '0.5 1.0 0.5 0.5'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[]
[Variables]
[./u]
[../]
[]
[Functions]
[./u_left]
type = PiecewiseLinear
x = '0 2'
y = '0 0.1'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
# Define boundary conditions
[./left_u]
type = FunctionDirichletBC
variable = u
boundary = 3
function = u_left
[../]
[./right_u]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
line_search = 'none'
l_tol = 1e-3
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
end_time = 2.0
[]
[Outputs]
time_step_interval = 1
execute_on = timestep_end
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/rate_independent_cyclic_hardening/nonlin_isoharden_symmetric_strain_controlled.i)
# This simulation uses the piece-wise strain hardening model
# with the Finite strain formulation.
#
# This test applies a repeated displacement loading and unloading condition
# on the top in the y direction. The material deforms elastically until the
# loading reaches the initial yield point and then plastic deformation starts.
#
# The yield surface begins to grow as stress increases with respect to the
# same center of yield surface. The yield surface continue to grow with increasing
# loading upto the value of (Initial yield + Q), where Q is the saturation stress.
# Upon unloading, the stress reverses direction, and material first behaves
# elastically. Since the yield surface has expanded, the material will need
# to be reloaded to a higher stress level to yield again. After reaching this
# yield point, further plastic deformation occurs, and the yield surface continues
# to expand in all directions until the saturation stress value.
#
# This test is based on the similar response obtained for a prescribed symmetrical
# strain path in Besson, Jacques, et al. Non-linear mechanics of materials. Vol. 167.
# Springer Science & Business Media, 2009 pg. 87 fig. 3.4(a). This SolidMechanics code
# matches the SolidMechanics solution.
[Mesh]
file = 1x1x1cube.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[top_pull]
type = PiecewiseLinear
xy_data = '0 0
0.025 0.0025
0.05 0.005
0.1 0.01
0.15 0.005
0.2 0
0.25 -0.005
0.3 -0.01
0.35 -0.005
0.45 0
0.5 0.005
0.55 0.01
0.65 0.005
0.7 0
0.75 -0.005
0.8 -0.01
0.85 -0.005
0.9 0
0.95 0.005
1 0.01
1.05 0.005
1.1 0
1.15 -0.005
1.2 -0.01
1.25 -0.005
1.3 0
1.35 0.005
1.4 0.01
1.45 0.005
1.5 0
1.55 -0.005
1.60 -0.01
1.65 -0.005
1.7 0
1.75 0.005
1.8 0.01
1.85 0.005
1.9 0
1.95 -0.005
2 -0.01
2.05 -0.005
2.10 0
2.15 0.005
2.2 0.01
2.25 0.005
2.3 0
2.35 -0.005
2.4 -0.01
2.45 -0.005
2.5 0
2.55 0.005
2.6 0.01
2.65 0.005
2.7 0
2.75 -0.005
2.8 -0.01
2.85 -0.005
2.9 0
2.95 0.005
3 0.01'
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'strain_yy stress_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
[]
[]
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0
[]
[isotropic_plasticity]
type = CombinedNonlinearHardeningPlasticity
yield_stress = 100
isotropic_hardening_constant = 0
q = 150
b = 5
kinematic_hardening_modulus = 0
gamma = 0
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'isotropic_plasticity'
[]
[]
[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 = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 1.5 # change end_time to 3.0 to get more cycles of loading and unloading
dt = 0.0046875 # keep dt = 0.003125 to output a finer isotropic hardening plot
dtmin = 0.001
[]
[Postprocessors]
[stress_yy]
type = ElementAverageValue
variable = stress_yy
[]
[strain_yy]
type = ElementAverageValue
variable = strain_yy
[]
[]
[Outputs]
csv = true
[]
(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/combined/test/tests/phase_field_fracture/crack2d_vol_dev.i)
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = F
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./mech]
add_variables = true
strain = SMALL
additional_generate_output = 'stress_yy'
save_in = 'resid_x resid_y'
[../]
[../]
[../]
[]
[AuxVariables]
[./resid_x]
[../]
[./resid_y]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = top
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.04 1e-4'
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
property_name = L
expression = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
property_name = kappa_op
expression = 'gc_prop * l'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
[../]
[./damage_stress]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'local_fracture_energy'
decomposition_type = strain_vol_dev
[../]
[./degradation]
type = DerivativeParsedMaterial
property_name = degradation
coupled_variables = 'c'
expression = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '0.0'
derivative_order = 2
[../]
[./local_fracture_energy]
type = DerivativeParsedMaterial
property_name = local_fracture_energy
coupled_variables = 'c'
material_property_names = 'gc_prop l'
expression = 'c^2 * gc_prop / 2 / l'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
coupled_variables = c
sum_materials = 'elastic_energy local_fracture_energy'
derivative_order = 2
property_name = F
[../]
[]
[Postprocessors]
[./resid_x]
type = NodalSum
variable = resid_x
boundary = 2
[../]
[./resid_y]
type = NodalSum
variable = resid_y
boundary = 2
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 preonly lu 1'
nl_rel_tol = 1e-8
l_max_its = 10
nl_max_its = 10
dt = 1e-4
dtmin = 1e-4
num_steps = 2
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/hertz_spherical/hertz_contact_rz_quad8.i)
# Hertz Contact: Sphere on sphere
# Spheres have the same radius, Young's modulus, and Poisson's ratio.
# Define E:
# 1/E = (1-nu1^2)/E1 + (1-nu2^2)/E2
#
# Effective radius R:
# 1/R = 1/R1 + 1/R2
#
# F is the applied compressive load.
#
# Area of contact a::
# a^3 = 3FR/4E
#
# Depth of indentation d:
# d = a^2/R
#
#
# Let R1 = R2 = 2. Then R = 1.
#
# Let nu1 = nu2 = 0.25, E1 = E2 = 1.40625e7. Then E = 7.5e6.
#
# Let F = 10000. Then a = 0.1, d = 0.01.
#
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
[]
[Mesh]#Comment
file = hertz_contact_rz_quad8.e
displacements = 'disp_x disp_y'
allow_renumbering = false
[] # Mesh
[Functions]
[./pressure]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 795.77471545947674 # 10000/pi/2^2
[../]
[./disp_y]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. -0.01 -0.01'
[../]
[] # Functions
[Variables]
[./disp_x]
order = SECOND
family = LAGRANGE
[../]
[./disp_y]
order = SECOND
family = LAGRANGE
[../]
[] # Variables
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic]
order = CONSTANT
family = MONOMIAL
[../]
[] # AuxVariables
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = SMALL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[../]
[] # AuxKernels
[BCs]
[./base_y]
type = DirichletBC
variable = disp_y
boundary = 1000
value = 0.0
[../]
[./symm_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[] # BCs
[Contact]
[./dummy_name]
primary = 1000
secondary = 100
# normal_smoothing_distance = 0.01
normalize_penalty = true
tangential_tolerance = 1e-3
penalty = 1e+10
[../]
[]
[Materials]
[./tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.40625e7
poissons_ratio = 0.25
[../]
[./stress]
type = ComputeLinearElasticStress
block = '1'
[../]
[./tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '1000'
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./stress_1000]
type = ComputeLinearElasticStress
block = '1000'
[../]
[] # Materials
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-7
l_abs_tol = 1e-9
l_max_its = 200
start_time = 0.0
dt = 0.5
end_time = 2.0
[./Quadrature]
order = FIFTH
[../]
[] # Executioner
[Postprocessors]
[./maxdisp]
type = NodalVariableValue
nodeid = 103 # 104-1 where 104 is the exodus node number of the top-left node
variable = disp_y
[../]
[]
[Outputs]
[./out]
type = Exodus
[../]
[] # Output
(modules/solid_mechanics/test/tests/tensile/small_deform9_update_version.i)
# A single unit element is stretched in a complicated way
# that the trial stress is
#
# 1.16226 -0.0116587 0.0587872
# -0.0116587 1.12695 0.0779428
# 0.0587872 0.0779428 0.710169
#
# This has eigenvalues
# la = {0.68849, 1.14101, 1.16987}
# and eigenvectors
#
# {-0.125484, -0.176871, 0.976202}
# {-0.0343704, -0.982614, -0.182451}
# {0.9915, -0.0564471, 0.117223}
#
# The tensile strength is 0.5 and Young=1 and Poisson=0.25.
# Using smoothing_tol=0.01, the return-map algorithm should
# return to, approximately, stress_I=stress_II=0.5. This
# is a reduction of 0.65, so stress_III is approximately
# 0.68849 - 0.25 * 0.65 * 2 = 0.36. The stress_I reduction of
# 0.67 gives an internal parameter of
# 0.67 / (E(1-v)/(1+v)/(1-2v)) = 0.558
# The final stress is
#
# {0.498, -0.003, 0.017},
# {-0.003, 0.495, 0.024},
# {0.017, 0.024, 0.367}
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '3*x+2*y+z'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '3*x-4*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = 'x-2*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0.25
[../]
[./tensile]
type = TensileStressUpdate
tensile_strength = ts
smoothing_tol = 0.001
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform9_update_version
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/neml2/solve_failure/moose.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
incremental = true
new_system = true
add_variables = true
volumetric_locking_correction = true
[]
[]
[]
[]
[AuxVariables]
[temp]
initial_condition = 1200
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = 'xdisp_func'
# Setting this to true is discouraged as it could plasticity solve more difficult.
# We do it here simply to make the solve to fail to test the error handling.
preset = true
[]
[]
[NEML2]
input = 'neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL MATERIAL POSTPROCESSOR POSTPROCESSOR MATERIAL MATERIAL MATERIAL'
moose_inputs = ' neml2_strain neml2_strain time time neml2_stress equivalent_plastic_strain back_stress'
neml2_inputs = ' forces/E old_forces/E forces/t old_forces/t old_state/S old_state/internal/ep old_state/internal/X'
moose_output_types = 'MATERIAL MATERIAL MATERIAL'
moose_outputs = ' neml2_stress equivalent_plastic_strain back_stress'
neml2_outputs = ' state/S state/internal/ep state/internal/X'
moose_derivative_types = 'MATERIAL'
moose_derivatives = 'neml2_jacobian'
neml2_derivatives = 'state/S forces/E'
[]
[]
[Materials]
[convert_strain]
type = RankTwoTensorToSymmetricRankTwoTensor
from = 'mechanical_strain'
to = 'neml2_strain'
[]
[stress]
type = ComputeLagrangianObjectiveCustomSymmetricStress
custom_small_stress = 'neml2_stress'
custom_small_jacobian = 'neml2_jacobian'
[]
[]
[Functions]
[xdisp_func]
type = PiecewiseLinear
x = '0 0.005 0.01 0.015 0.02'
y = '0 0.005 0 -0.005 0'
[]
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'INITIAL TIMESTEP_BEGIN'
outputs = none
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 1e-3
dtmin = 1e-5
end_time = 0.006
nl_abs_tol = 1e-12
nl_rel_tol = 1e-10
nl_max_its = 12
line_search = none
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
print_linear_residuals = false
[]
(modules/xfem/test/tests/moving_interface/moving_bimaterial_finite_strain_esm_using_cut_mesh.i)
# This test is for two layer materials with different youngs modulus with AD
# The global stress is determined by switching the stress based on level set values
# The material interface is marked by a level set function
# The two layer materials are glued together
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[XFEM]
output_cut_plane = true
[]
[UserObjects]
[cut]
type = InterfaceMeshCut2DUserObject
mesh_file = line.e
interface_velocity_function = 1
heal_always = true
[]
[esm]
type = CutElementSubdomainModifier
geometric_cut_userobject = cut
apply_initial_conditions = false
[]
[]
[Mesh]
use_displaced_mesh = true
[generated_mesh]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmin = 0
xmax = 5
ymin = 0
ymax = 5
elem_type = QUAD4
[]
[bottom]
type = SubdomainBoundingBoxGenerator
input = generated_mesh
block_id = 0
bottom_left = '0 0 0'
top_right = '5 2.5 0'
[]
[top]
type = SubdomainBoundingBoxGenerator
input = bottom
block_id = 1
bottom_left = '0 2.5 0'
top_right = '5 5 0'
[]
[]
[Functions]
[ls_func]
type = ParsedFunction
expression = 'y-2.73+t'
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[AuxVariables]
[ls]
[]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[ls_function]
type = FunctionAux
variable = ls
function = ls_func
[]
[strain_xx]
type = RankTwoAux
variable = strain_xx
rank_two_tensor = total_strain
index_i = 0
index_j = 0
[]
[strain_yy]
type = RankTwoAux
variable = strain_yy
rank_two_tensor = total_strain
index_i = 1
index_j = 1
[]
[strain_xy]
type = RankTwoAux
variable = strain_xy
rank_two_tensor = total_strain
index_i = 0
index_j = 1
[]
[stress_xx]
type = RankTwoAux
variable = stress_xx
rank_two_tensor = stress
index_i = 0
index_j = 0
[]
[stress_xy]
type = RankTwoAux
variable = stress_xy
rank_two_tensor = stress
index_i = 0
index_j = 1
[]
[stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_i = 1
index_j = 1
[]
[]
[Kernels]
[solid_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[solid_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[]
[Constraints]
[dispx_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_x
alpha = 1e8
geometric_cut_userobject = 'cut'
[]
[dispy_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_y
alpha = 1e8
geometric_cut_userobject = 'cut'
[]
[]
[BCs]
[bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[]
[bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[]
[topx]
type = FunctionDirichletBC
boundary = top
variable = disp_x
function = 0.03*t
[]
[topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = '0.03*t'
[]
[]
[Materials]
[elasticity_tensor_A]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1e9
poissons_ratio = 0.3
[]
[strain_A]
type = ComputeFiniteStrain
block = 1
[]
[stress_A]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_B]
type = ComputeIsotropicElasticityTensor
block = 0
youngs_modulus = 1e7
poissons_ratio = 0.3
[]
[strain_B]
type = ComputeFiniteStrain
block = 0
[]
[stress_B]
type = ComputeFiniteStrainElasticStress
block = 0
[]
[]
[Postprocessors]
[disp_x_norm]
type = ElementL2Norm
variable = disp_x
[]
[disp_y_norm]
type = ElementL2Norm
variable = disp_y
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-13
nl_abs_tol = 1e-50
# time control
start_time = 0.0
dt = 0.1
num_steps = 4
max_xfem_update = 1
[]
[Outputs]
print_linear_residuals = false
exodus = true
[]
(test/tests/postprocessors/time_extreme_value/time_extreme_value.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = FunctionDirichletBC
variable = u
boundary = left
function = 'if(t<1.0,t,1.0)'
[]
[right]
type = FunctionDirichletBC
variable = u
boundary = right
function = 'if(t<1.0,2.0-t,1.0)'
[]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Postprocessors]
active = 'max_nl_dofs nl_dofs'
[max_nl_dofs]
type = TimeExtremeValue
value_type = max
postprocessor = nl_dofs
execute_on = 'initial timestep_end'
[]
[time_of_max_nl_dofs]
type = TimeExtremeValue
value_type = max
output_type = time
postprocessor = nl_dofs
execute_on = 'initial timestep_end'
[]
[nl_dofs]
type = NumDOFs
system = NL
execute_on = 'initial timestep_end'
[]
[]
[Adaptivity]
marker = marker
max_h_level = 2
[Markers]
[marker]
type = ValueRangeMarker
lower_bound = 0.7
upper_bound = 1.3
buffer_size = 0.2
variable = u
invert = true
third_state = DO_NOTHING
[]
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/mean_cap_TC/small_deform6.i)
# apply nonuniform stretch in x, y and z directions using
# Lame lambda = 0.7E7, Lame mu = 1.0E7,
# trial_stress(0, 0) = 2.9
# trial_stress(1, 1) = 10.9
# trial_stress(2, 2) = 14.9
# With tensile_strength = 2, decaying to zero at internal parameter = 4E-7
# via a Cubic, the algorithm should return to:
# internal parameter = 2.26829E-7
# trace(stress) = 0.799989 = tensile_strength
# stress(0, 0) = -6.4
# stress(1, 1) = 1.6
# stress(2, 2) = 5.6
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1E-7*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '3E-7*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '5E-7*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[]
[UserObjects]
[./tensile_strength]
type = SolidMechanicsHardeningCubic
value_0 = 2
value_residual = 0
internal_limit = 4E-7
[../]
[./compressive_strength]
type = SolidMechanicsHardeningCubic
value_0 = -1
value_residual = 0
internal_limit = 1E-8
[../]
[./cap]
type = SolidMechanicsPlasticMeanCapTC
tensile_strength = tensile_strength
compressive_strength = compressive_strength
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
use_custom_returnMap = true
use_custom_cto = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mean_cap]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-11
plastic_models = cap
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform6
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/combined/test/tests/stateful_mortar_constraints/stateful_mortar_npr.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD4
order = FIRST
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.3
xmax = 0.3
ymin = -10
ymax = 10
nx = 2
ny = 67
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.31
xmax = 0.91
ymin = 7.7
ymax = 8.5
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[secondary]
input = block_rename
type = LowerDBlockFromSidesetGenerator
sidesets = 'block_left'
new_block_id = '30'
new_block_name = 'frictionless_secondary_subdomain'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'plank_right'
new_block_id = '20'
new_block_name = 'frictionless_primary_subdomain'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[temp]
order = ${order}
block = 'plank block'
scaling = 1e-1
[]
[thermal_lm]
order = ${order}
block = 'frictionless_secondary_subdomain'
scaling = 1e-7
[]
[frictionless_normal_lm]
order = ${order}
block = 'frictionless_secondary_subdomain'
use_dual = true
[]
[]
[AuxVariables]
[stress_xx]
order = FIRST
family = MONOMIAL
block = 'plank block'
[]
[stress_yy]
order = FIRST
family = MONOMIAL
block = 'plank block'
[]
[stress_xx_recovered]
order = FIRST
family = LAGRANGE
block = 'plank block'
[]
[stress_yy_recovered]
order = FIRST
family = LAGRANGE
block = 'plank block'
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
block = 'plank block'
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
block = 'plank block'
[]
[stress_xx_recovered]
type = NodalPatchRecoveryAux
variable = stress_xx_recovered
nodal_patch_recovery_uo = stress_xx_patch
execute_on = 'TIMESTEP_END'
block = 'plank block'
[]
[stress_yy_recovered]
type = NodalPatchRecoveryAux
variable = stress_yy_recovered
nodal_patch_recovery_uo = stress_yy_patch
execute_on = 'TIMESTEP_END'
block = 'plank block'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[action]
generate_output = 'stress_zz vonmises_stress hydrostatic_stress strain_xx strain_yy strain_zz'
block = 'plank block'
use_automatic_differentiation = false
strain = FINITE
[]
[]
[Kernels]
[hc]
type = HeatConduction
variable = temp
use_displaced_mesh = true
block = 'plank block'
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = plank_right
secondary_boundary = block_left
primary_subdomain = frictionless_primary_subdomain
secondary_subdomain = frictionless_secondary_subdomain
lm_variable = frictionless_normal_lm
disp_x = disp_x
disp_y = disp_y
[]
[stress_xx_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '0 0'
execute_on = 'NONLINEAR TIMESTEP_END'
block = 'plank block'
[]
[stress_yy_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '1 1'
execute_on = 'NONLINEAR TIMESTEP_END'
block = 'plank block'
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = plank_right
secondary_boundary = block_left
primary_subdomain = frictionless_primary_subdomain
secondary_subdomain = frictionless_secondary_subdomain
variable = frictionless_normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = plank_right
secondary_boundary = block_left
primary_subdomain = frictionless_primary_subdomain
secondary_subdomain = frictionless_secondary_subdomain
variable = frictionless_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = plank_right
secondary_boundary = block_left
primary_subdomain = frictionless_primary_subdomain
secondary_subdomain = frictionless_secondary_subdomain
variable = frictionless_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[thermal_contact]
type = GapConductanceStatefulConstraint
variable = thermal_lm
secondary_variable = temp
k = 0.0001
use_displaced_mesh = true
primary_boundary = plank_right
primary_subdomain = frictionless_primary_subdomain
secondary_boundary = block_left
secondary_subdomain = frictionless_secondary_subdomain
displacements = 'disp_x disp_y'
stateful_variable = stress_xx_recovered
[]
[]
[BCs]
[left_temp]
type = DirichletBC
variable = temp
boundary = 'plank_left'
value = 400
[]
[right_temp]
type = DirichletBC
variable = temp
boundary = 'block_right'
value = 300
[]
[left_x]
type = DirichletBC
variable = disp_x
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = block_right
function = '-0.04*sin(4*(t+1.5))+0.02'
preset = false
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = block_right
function = '-t'
preset = false
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'plank block'
[]
[heat_plank]
type = HeatConductionMaterial
block = plank
thermal_conductivity = 2
specific_heat = 1
[]
[heat_block]
type = HeatConductionMaterial
block = block
thermal_conductivity = 1
specific_heat = 1
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -snes_max_it'
petsc_options_value = 'lu NONZERO 1e-15 20'
end_time = 0.5
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'none'
[]
[Postprocessors]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[avg_temp]
type = ElementAverageValue
variable = temp
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[stress_xx_recovered]
type = ElementExtremeValue
variable = stress_xx_recovered
block = 'block'
value_type = max
[]
[stress_yy_recovered]
type = ElementExtremeValue
variable = stress_yy_recovered
block = 'block'
value_type = max
[]
[min_temperature]
type = ElementExtremeValue
variable = temp
block = 'plank'
value_type = min
[]
[]
[Outputs]
exodus = true
[out]
type = CSV
[]
[dof]
type = DOFMap
execute_on = 'initial'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-vel.i)
starting_point = 2e-1
offset = -0.19
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[normal_lm]
block = 3
use_dual = true
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[DynamicTensorMechanics]
displacements = 'disp_x disp_y'
generate_output = 'stress_xx stress_yy'
strain = FINITE
block = '1 2'
stiffness_damping_coefficient = 1.0
hht_alpha = 0.0
[]
[inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[]
[Materials]
[elasticity_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elasticity_1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e8
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[strain]
type = ComputeFiniteStrain
block = '1 2'
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '7750'
[]
[]
[AuxVariables]
[gap_vel]
block = '3'
[]
[vel_x]
block = '1 2'
[]
[accel_x]
block = '1 2'
[]
[vel_y]
block = '1 2'
[]
[accel_y]
block = '1 2'
[]
[vel_z]
block = '1 2'
[]
[accel_z]
block = '1 2'
[]
[]
[AuxKernels]
[gap_vel]
type = WeightedGapVelAux
variable = gap_vel
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
disp_x = disp_x
disp_y = disp_y
correct_edge_dropping = true
execute_on = 'TIMESTEP_END'
[]
[accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = 'linear timestep_end'
[]
[vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = 'linear timestep_end'
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = 'linear timestep_end'
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = 'linear timestep_end'
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable = normal_lm
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeDynamicWeightedGapLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
c = 1e4
capture_tolerance = 1.0e-5
newmark_beta = 0.25
newmark_gamma = 0.5
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 4 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 0.1
dt = 0.05
dtmin = 0.05
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -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'
nl_max_its = 20
line_search = 'none'
snesmf_reuse_base = false
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
checkpoint = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(modules/porous_flow/test/tests/heterogeneous_materials/vol_expansion_poroperm.i)
# Apply an increasing porepressure, with zero mechanical forces,
# and observe the corresponding volumetric expansion and porosity increase.
# Check that permeability is calculated correctly from porosity.
#
# P = t
# With the Biot coefficient being 1, the effective stresses should be
# stress_xx = stress_yy = stress_zz = t
# With bulk modulus = 1 then should have
# vol_strain = strain_xx + strain_yy + strain_zz = t.
#
# With the biot coefficient being 1, the porosity (phi) # at time t is:
# phi = 1 - (1 - phi0) / exp(vol_strain)
# where phi0 is the porosity at t = 0 and P = 0.
#
# The permeability (k) is
# k = k_anisotropic * f * d^2 * phi^n / (1-phi)^m
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 1
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
block = 0
PorousFlowDictator = dictator
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[p]
[]
[]
[BCs]
[p]
type = FunctionDirichletBC
boundary = 'bottom top'
variable = p
function = t
[]
[xmin]
type = DirichletBC
boundary = left
variable = disp_x
value = 0
[]
[ymin]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0
[]
[zmin]
type = DirichletBC
boundary = back
variable = disp_z
value = 0
[]
[]
[Kernels]
[p_does_not_really_diffuse]
type = Diffusion
variable = p
[]
[TensorMechanics]
displacements = 'disp_x disp_y disp_z'
[]
[poro_x]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 1
variable = disp_x
component = 0
[]
[poro_y]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 1
variable = disp_y
component = 1
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 1
variable = disp_z
component = 2
[]
[]
[AuxVariables]
[poro0]
order = CONSTANT
family = MONOMIAL
[]
[poro]
order = CONSTANT
family = MONOMIAL
[]
[perm_x]
order = CONSTANT
family = MONOMIAL
[]
[perm_y]
order = CONSTANT
family = MONOMIAL
[]
[perm_z]
order = CONSTANT
family = MONOMIAL
[]
[]
[ICs]
[poro0]
type = RandomIC
seed = 0
variable = poro0
max = 0.15
min = 0.05
[]
[]
[AuxKernels]
[poromat]
type = PorousFlowPropertyAux
property = porosity
variable = poro
[]
[perm_x]
type = PorousFlowPropertyAux
property = permeability
variable = perm_x
row = 0
column = 0
[]
[perm_y]
type = PorousFlowPropertyAux
property = permeability
variable = perm_y
row = 1
column = 1
[]
[perm_z]
type = PorousFlowPropertyAux
property = permeability
variable = perm_z
row = 2
column = 2
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'p'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
bulk_modulus = 1
shear_modulus = 1
[]
[strain]
type = ComputeSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = p
capillary_pressure = pc
[]
[p_eff]
type = PorousFlowEffectiveFluidPressure
[]
[porosity]
type = PorousFlowPorosity
fluid = true
mechanical = true
porosity_zero = poro0
solid_bulk = 1
biot_coefficient = 1
[]
[permeability]
type = PorousFlowPermeabilityKozenyCarman
k_anisotropy = '1 0 0 0 2 0 0 0 0.1'
poroperm_function = kozeny_carman_fd2
f = 0.1
d = 5
m = 2
n = 7
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol'
petsc_options_value = 'gmres bjacobi 1E-10 1E-10 10 1E-15 1E-10'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
dt = 0.1
end_time = 1
[]
[Outputs]
exodus = true
execute_on = 'timestep_end'
[]
(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/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rspherical.i)
#
# 1-D spherical Gap Heat Transfer Test
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two "blocks" with a mesh biased toward the gap
# between them. Each block is unit length. The gap between them is one
# unit in length.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far left boundary
# is ramped from 100 to 200 over one time unit, and then held fixed for an additional
# time unit. The temperature of the far right boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks, or spheres in the case of RSPHERICAL.:
#
# Flux = (T_left - T_right) * (gapK/(r^2*((1/r1)-(1/r2))))
#
# For gapK = 1 (default value)
#
# The area is taken as the area of the secondary (inner) surface:
#
# Area = 4 * pi * 1 * 1
#
# The integrated heat flux across the gap at time 2 is then:
#
# 4*pi*k*delta_T/((1/r1)-(1/r2))
# 4*pi*1*100/((1/1) - (1/2)) = 2513.3 watts
#
# For comparison, see results from the flux post processors.
#
#
[Problem]
coord_type = RSPHERICAL
[]
[Mesh]
file = gap_heat_transfer_htonly_rspherical.e
construct_side_list_from_node_list = true
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
gap_geometry_type = sphere
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1e6
[../]
[./density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
# I don't know enough about this test to say why it needs such a
# loose nl_abs_tol... after timestep 10 the residual basically can't
# be reduced much beyond the initial residual. The test probably
# needs to be revisited to determine why.
nl_abs_tol = 1e-3
nl_rel_tol = 1e-10
l_tol = 1e-6
l_max_its = 100
line_search = 'none'
nl_max_its = 10
dt = 1e-1
dtmin = 1e-1
end_time = 2.0
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform3_outer_tip.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-1.7E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E5
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E5
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
mc_interpolation_scheme = outer_tip
yield_function_tolerance = 1 # irrelevant here
internal_constraint_tolerance = 1 # irrelevant here
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[./mc]
type = CappedDruckerPragerStressUpdate
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-8
tip_smoother = 8
smoothing_tol = 1E-7
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3_outer_tip
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-pdass-tangential-lm-mortar-disp.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
[file_mesh]
type = FileMeshGenerator
file = long-bottom-block-1elem-blocks-coarse.e
[]
[]
[Variables]
[disp_x]
block = '1 2'
# order = SECOND
[]
[disp_y]
block = '1 2'
# order = SECOND
[]
[frictional_normal_lm]
block = 3
use_dual = true
[]
[frictional_tangential_lm]
block = 3
use_dual = true
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[]
[UserObjects]
[weighted_velocities_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable_normal = frictional_normal_lm
lm_variable_tangential_one = frictional_tangential_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[frictional_normal_lm]
type = ComputeFrictionalForceLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_normal_lm
friction_lm = frictional_tangential_lm
disp_x = disp_x
disp_y = disp_y
mu = 0.1
c = 1.0e-2
c_t = 1.0e-1
weighted_gap_uo = weighted_velocities_uo
weighted_velocities_uo = weighted_velocities_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_velocities_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_velocities_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_velocities_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_velocities_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[]
(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'
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
extra_vector_tags = 'ref'
block = '1 2 3 4 5 6 7'
generate_output = 'stress_xx stress_yy stress_xy'
[]
[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'
[]
[]
[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/contact/test/tests/mortar_aux_kernels/pressure-aux-friction.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.35
xmax = -0.05
ymin = -1
ymax = 0
nx = 1
ny = 3
elem_type = QUAD4
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3'
new_boundary = '10 11 12 13'
[]
[left_block_sideset_names]
type = RenameBoundaryGenerator
input = left_block_sidesets
old_boundary = '10 11 12 13'
new_boundary = 'l_bottom l_right l_top l_left'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sideset_names
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.3
ymin = -1
ymax = 0
nx = 1
ny = 2
elem_type = QUAD4
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3'
new_boundary = '20 21 22 23'
[]
[right_block_sideset_names]
type = RenameBoundaryGenerator
input = right_block_sidesets
old_boundary = '20 21 22 23'
new_boundary = 'r_bottom r_right r_top r_left'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sideset_names
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[left_lower]
type = LowerDBlockFromSidesetGenerator
input = combined_mesh
sidesets = '11'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[right_lower]
type = LowerDBlockFromSidesetGenerator
input = left_lower
sidesets = '23'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
uniform_refine = 1
[]
[Variables]
[lm_x]
block = 'secondary_lower'
use_dual = true
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
[]
[]
[AuxVariables]
[normal_lm]
family = LAGRANGE
order = FIRST
[]
[tangent_lm]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[tangent_lm]
type = MortarPressureComponentAux
variable = tangent_lm
primary_boundary = '23'
secondary_boundary = '11'
lm_var_x = lm_x
lm_var_y = lm_y
component = 'TANGENT1'
boundary = '11'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = ParsedFunction
expression = '0.1 * t'
[]
[vertical_movement]
type = ParsedFunction
expression = '0.0'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = horizontal_movement
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 21
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 21
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 13
function = vertical_movement
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e4
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e8
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeFrictionalForceCartesianLMMechanicalContact # ComputeCartesianLMFrictionMechanicalContact
# type = ComputeWeightedGapLMMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_x = lm_x
lm_y = lm_y
variable = lm_x # This can be anything really
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
correct_edge_dropping = true
mu = 1.0
c_t = 1.0e5
[]
[normal_x]
type = CartesianMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_y]
type = CartesianMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_view'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -mat_mffd_err -pc_factor_shift_type '
'-pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist 1e-8 NONZERO 1e-15'
line_search = none
dt = 0.1
dtmin = 0.1
end_time = 1.0
l_max_its = 100
nl_max_its = 20
nl_rel_tol = 1e-8
snesmf_reuse_base = false
[]
[Outputs]
exodus = false
csv = true
execute_on = 'FINAL'
[]
[VectorPostprocessors]
[tangent_lm]
type = NodalValueSampler
block = 'secondary_lower'
variable = tangent_lm
sort_by = 'id'
[]
[]
(modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_plane_strain_finite.i)
#
# This test checks elastic stress calculations with mechanical and thermal
# strain using finite strain formulation. Young's modulus is 3600, and Poisson's ratio is 0.2.
# The axisymmetric, plane strain 1D mesh is pulled with displacement of 2e-3.
# Thus, the strain is [log(1+1e-3)=9.995e-4, 0, log(1+1e-3)=9.995e-4] (xx, yy, zz). This gives stress of
# [4.9975, 1.999, 4.9975]. After a temperature increase of 100 with alpha of
# 1e-6, the stress becomes [4.3975, 1.399, 4.3975].
#
[GlobalParams]
displacements = disp_x
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = line.e
[]
[Variables]
[./disp_x]
[../]
[]
[AuxVariables]
[./temp]
initial_condition = 580.0
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '580 580 680'
[../]
[./disp_x]
type = PiecewiseLinear
x = '0 1'
y = '0 2e-3'
[../]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[./ps]
planar_formulation = PLANE_STRAIN
strain = FINITE
generate_output = 'strain_xx strain_zz stress_xx stress_yy stress_zz'
eigenstrain_names = eigenstrain
[../]
[../]
[../]
[]
[AuxKernels]
[./temp]
type = FunctionAux
variable = temp
function = temp
execute_on = 'timestep_begin'
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
boundary = 1
value = 0
variable = disp_x
[../]
[./disp_x]
type = FunctionDirichletBC
boundary = 2
function = disp_x
variable = disp_x
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 3600
poissons_ratio = 0.2
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-6
temperature = temp
stress_free_temperature = 580
eigenstrain_name = eigenstrain
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_max_its = 50
l_tol = 1e-6
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0
end_time = 2
num_steps = 2
[]
[Outputs]
exodus = true
console = true
[]
(modules/combined/test/tests/phase_field_fracture/crack2d_linear_fracture_energy.i)
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = F
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./mech]
add_variables = true
strain = SMALL
additional_generate_output = 'stress_yy'
save_in = 'resid_x resid_y'
[../]
[../]
[../]
[]
[AuxVariables]
[./resid_x]
[../]
[./resid_y]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = top
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.04 1e-4'
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
property_name = L
expression = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
property_name = kappa_op
expression = 'gc_prop * l * 3 / 4'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
[../]
[./elastic]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'fracture_energy'
barrier_energy = 'barrier'
decomposition_type = strain_spectral
[../]
[./degradation]
type = DerivativeParsedMaterial
property_name = degradation
coupled_variables = 'c'
expression = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '0.0'
derivative_order = 2
[../]
[./fracture_energy]
type = DerivativeParsedMaterial
property_name = fracture_energy
coupled_variables = 'c'
material_property_names = 'gc_prop l'
expression = '3 * gc_prop / (8 * l) * c'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
coupled_variables = c
sum_materials = 'elastic_energy fracture_energy'
derivative_order = 2
property_name = F
[../]
[./barrier_energy]
type = ParsedMaterial
property_name = barrier
material_property_names = 'gc_prop l'
expression = '3 * gc_prop / 16 / l'
[../]
[]
[Postprocessors]
[./resid_x]
type = NodalSum
variable = resid_x
boundary = 2
[../]
[./resid_y]
type = NodalSum
variable = resid_y
boundary = 2
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 preonly lu 1'
nl_rel_tol = 1e-8
l_max_its = 10
nl_max_its = 20
dt = 1e-4
dtmin = 1e-4
num_steps = 2
[]
[Outputs]
exodus = true
[]
(tutorials/darcy_thermo_mech/step06_coupled_darcy_heat_conduction/problems/step6b_transient_inflow.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 200
ny = 10
xmax = 0.304 # Length of test chamber
ymax = 0.0257 # Test chamber radius
[]
coord_type = RZ
rz_coord_axis = X
[]
[Variables]
[pressure]
[]
[temperature]
initial_condition = 300 # Start at room temperature
[]
[]
[Kernels]
[darcy_pressure]
type = DarcyPressure
variable = pressure
[]
[heat_conduction]
type = ADHeatConduction
variable = temperature
[]
[heat_conduction_time_derivative]
type = ADHeatConductionTimeDerivative
variable = temperature
[]
[heat_convection]
type = DarcyAdvection
variable = temperature
pressure = pressure
[]
[]
[BCs]
[inlet_temperature]
type = FunctionDirichletBC
variable = temperature
boundary = left
function = 'if(t<0,350+50*t,350)'
[]
[outlet_temperature]
type = HeatConductionOutflow
variable = temperature
boundary = right
[]
[inlet]
type = FunctionDirichletBC
variable = pressure
boundary = left
function = 2000*sin(0.466*pi*t) # Inlet signal from Fig. 3
[]
[outlet]
type = FunctionDirichletBC
variable = pressure
boundary = right
function = 2000*cos(0.466*pi*t) # Outlet signal from Fig. 3
[]
[]
[Materials/column]
type = PackedColumn
radius = 1
temperature = temperature
fluid_viscosity_file = data/water_viscosity.csv
fluid_density_file = data/water_density.csv
fluid_thermal_conductivity_file = data/water_thermal_conductivity.csv
fluid_specific_heat_file = data/water_specific_heat.csv
outputs = exodus
[]
[AuxVariables/velocity]
order = CONSTANT
family = MONOMIAL_VEC
[]
[AuxKernels/velocity]
type = DarcyVelocity
variable = velocity
execute_on = timestep_end
pressure = pressure
[]
[Problem]
type = FEProblem
[]
[Executioner]
type = Transient
end_time = 100
dt = 0.25
start_time = -1
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
steady_state_tolerance = 1e-5
steady_state_detection = true
[TimeStepper]
type = FunctionDT
function = 'if(t<0,0.1,(2*pi/(0.466*pi))/16)' # dt to always hit the peaks of sine/cosine BC
[]
[]
[Outputs]
exodus = true
[]
(modules/porous_flow/examples/tidal/earth_tide_fullsat.i)
# A confined aquifer is fully saturated with water
# Earth tides apply strain to the aquifer and the resulting porepressure changes are recorded
#
# To replicate standard poroelasticity exactly:
# (1) the PorousFlowBasicTHM Action is used;
# (2) multiply_by_density = false;
# (3) PorousFlowConstantBiotModulus is used
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 1
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
biot_coefficient = 0.6
multiply_by_density = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[porepressure]
[]
[]
[BCs]
[strain_x]
type = FunctionDirichletBC
variable = disp_x
function = earth_tide_x
boundary = 'left right'
[]
[strain_y]
type = FunctionDirichletBC
variable = disp_y
function = earth_tide_y
boundary = 'bottom top'
[]
[strain_z]
type = FunctionDirichletBC
variable = disp_z
function = earth_tide_z
boundary = 'back front'
[]
[]
[Functions]
[earth_tide_x]
type = ParsedFunction
expression = 'x*1E-8*(5*cos(t*2*pi) + 2*cos((t-0.5)*2*pi) + 1*cos((t+0.3)*0.5*pi))'
[]
[earth_tide_y]
type = ParsedFunction
expression = 'y*1E-8*(7*cos(t*2*pi) + 4*cos((t-0.3)*2*pi) + 7*cos((t+0.6)*0.5*pi))'
[]
[earth_tide_z]
type = ParsedFunction
expression = 'z*1E-8*(7*cos((t-0.5)*2*pi) + 4*cos((t-0.8)*2*pi) + 7*cos((t+0.1)*4*pi))'
[]
[]
[FluidProperties]
[the_simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E9
[]
[]
[PorousFlowBasicTHM]
coupling_type = HydroMechanical
displacements = 'disp_x disp_y disp_z'
porepressure = porepressure
gravity = '0 0 0'
fp = the_simple_fluid
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
bulk_modulus = 10.0E9 # drained bulk modulus
poissons_ratio = 0.25
[]
[strain]
type = ComputeSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[porosity]
type = PorousFlowPorosityConst # only the initial value of this is ever used
porosity = 0.1
[]
[biot_modulus]
type = PorousFlowConstantBiotModulus
solid_bulk_compliance = 1E-10
fluid_bulk_modulus = 2E9
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-12 0 0 0 1E-12 0 0 0 1E-12'
[]
[]
[Postprocessors]
[pp]
type = PointValue
point = '0.5 0.5 0.5'
variable = porepressure
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = Newton
dt = 0.01
end_time = 2
[]
[Outputs]
console = true
csv = true
[]
(modules/combined/test/tests/poro_mechanics/undrained_oedometer.i)
# An undrained oedometer test on a saturated poroelastic sample.
#
# The sample is a single unit element, with roller BCs on the sides
# and bottom. A constant displacement is applied to the top: disp_z = -0.01*t.
# There is no fluid flow.
#
# Under these conditions
# porepressure = -(Biot coefficient)*(Biot modulus)*disp_z/L
# stress_xx = (bulk - 2*shear/3)*disp_z/L (remember this is effective stress)
# stress_zz = (bulk + 4*shear/3)*disp_z/L (remember this is effective stress)
# where L is the height of the sample (L=1 in this test)
#
# Parameters:
# Biot coefficient = 0.3
# Porosity = 0.1
# Bulk modulus = 2
# Shear modulus = 1.5
# fluid bulk modulus = 1/0.3 = 3.333333
# 1/Biot modulus = (1 - 0.3)*(0.3 - 0.1)/2 + 0.1*0.3 = 0.1. BiotModulus = 10
#
# Desired output:
# zdisp = -0.01*t
# p0 = 0.03*t
# stress_xx = stress_yy = -0.01*t
# stress_zz = -0.04*t
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
porepressure = porepressure
block = 0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./porepressure]
[../]
[]
[BCs]
[./confinex]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left right'
[../]
[./confiney]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom top'
[../]
[./basefixed]
type = DirichletBC
variable = disp_z
value = 0
boundary = back
[../]
[./top_velocity]
type = FunctionDirichletBC
variable = disp_z
function = -0.01*t
boundary = front
[../]
[]
[Kernels]
[./grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[../]
[./grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[../]
[./grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[../]
[./poro_x]
type = PoroMechanicsCoupling
variable = disp_x
component = 0
[../]
[./poro_y]
type = PoroMechanicsCoupling
variable = disp_y
component = 1
[../]
[./poro_z]
type = PoroMechanicsCoupling
variable = disp_z
component = 2
[../]
[./poro_timederiv]
type = PoroFullSatTimeDerivative
variable = porepressure
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '1 1.5'
# bulk modulus is lambda + 2*mu/3 = 1 + 2*1.5/3 = 2
fill_method = symmetric_isotropic
[../]
[./strain]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./poro_material]
type = PoroFullSatMaterial
porosity0 = 0.1
biot_coefficient = 0.3
solid_bulk_compliance = 0.5
fluid_bulk_compliance = 0.3
constant_porosity = true
[../]
[]
[Postprocessors]
[./p0]
type = PointValue
outputs = csv
point = '0 0 0'
variable = porepressure
[../]
[./zdisp]
type = PointValue
outputs = csv
point = '0 0 0.5'
variable = disp_z
[../]
[./stress_xx]
type = PointValue
outputs = csv
point = '0 0 0'
variable = stress_xx
[../]
[./stress_yy]
type = PointValue
outputs = csv
point = '0 0 0'
variable = stress_yy
[../]
[./stress_zz]
type = PointValue
outputs = csv
point = '0 0 0'
variable = stress_zz
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-14 1E-10 10000'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 10
dt = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = undrained_oedometer
[./csv]
type = CSV
[../]
[]
(modules/xfem/test/tests/mechanical_constraint/glued_penalty.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[XFEM]
geometric_cut_userobjects = 'line_seg_cut_uo'
qrule = volfrac
output_cut_plane = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 11
ny = 11
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '1.0 0.5 0.0 0.5'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
planar_formulation = plane_strain
add_variables = true
[../]
[]
[Functions]
[./pull]
type = PiecewiseLinear
x='0 50 100'
y='0 0.02 0.1'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[../]
[./bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[../]
[./topx]
type = DirichletBC
boundary = top
variable = disp_x
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pull
[../]
[]
[Constraints]
[./disp_x]
type = XFEMSingleVariableConstraint
variable = disp_x
use_penalty = true
alpha = 1.0e8
use_displaced_mesh = true
geometric_cut_userobject = 'line_seg_cut_uo'
[../]
[./disp_y]
type = XFEMSingleVariableConstraint
variable = disp_y
use_penalty = true
alpha = 1.0e8
use_displaced_mesh = true
geometric_cut_userobject = 'line_seg_cut_uo'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 0
[../]
[./_elastic_strain]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-9
# time control
start_time = 0.0
dt = 1.0
end_time = 2.0
num_steps = 5000
max_xfem_update = 1
[]
[Outputs]
exodus = true
execute_on = timestep_end
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/multi/three_surface04.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 0.8E-6m in y direction and 1.5E-6 in z direction.
# trial stress_yy = 0.8 and stress_zz = 1.5
#
# Then SimpleTester0 and SimpleTester2 should activate and the algorithm will return to
# the corner stress_yy=0.5, stress_zz=1
# internal0 should be 0.2, and internal2 should be 0.3
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.8E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.5E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface04
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence/3D/dirichlet.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 4
ny = 4
nz = 4
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[sdy]
type = UpdatedLagrangianStressDivergence
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[sdz]
type = UpdatedLagrangianStressDivergence
variable = disp_z
component = 2
use_displaced_mesh = true
[]
[]
[Functions]
[pullx]
type = ParsedFunction
expression = '0.4 * t'
[]
[pully]
type = ParsedFunction
expression = '-0.2 * t'
[]
[pullz]
type = ParsedFunction
expression = '0.3 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[lefty]
type = DirichletBC
preset = true
boundary = left
variable = disp_y
value = 0.0
[]
[leftz]
type = DirichletBC
preset = true
boundary = left
variable = disp_z
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = pullx
preset = true
[]
[pull_y]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pully
preset = true
[]
[pull_z]
type = FunctionDirichletBC
boundary = right
variable = disp_z
function = pullz
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 0.2
dtmin = 0.2
end_time = 1.0
[]
[Postprocessors]
[nonlin]
type = NumNonlinearIterations
[]
[]
[Outputs]
exodus = false
csv = true
[]
(test/tests/restart/restart_subapp_not_parent/complete_solve_no_subapp.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[ICs]
[./u_var]
type = FunctionIC
variable = u
function = exact_fn
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Postprocessors]
[./average]
type = ElementAverageValue
variable = u
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
end_time = 4.0
dt = 1.0
[]
[Outputs]
file_base = complete_solve_no_subapp
exodus = true
[]
(modules/solid_mechanics/test/tests/tensile/small_deform3_update_version.i)
# Using TensileStressUpdate
# checking for small deformation
# A single element is stretched by "ep" in the z and x directions
# This causes the return direction to be along the hypersurface sigma_I = sigma_II
# where sigma_I = (E_2222 + E_2200) * ep
# tensile_strength is set to 1Pa, smoothing_tol = 0.1Pa
# The smoothed yield function is
# yf = sigma_I + ismoother(0) - tensile_strength
# = sigma_I + (0.5 * smoothing_tol - smoothing_tol / Pi) - tensile_strength
# = sigma_I - 0.98183
#
# With zero Poisson's ratio, the return stress will be
# stress_00 = stress_22 = 0.98183
# with all other stress components being zero
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.25E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.25E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./tensile]
type = TensileStressUpdate
tensile_strength = ts
smoothing_tol = 0.1
yield_function_tol = 1.0E-9
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3_update_version
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/contact/test/tests/3d-mortar-contact/frictionless-mortar-3d-penalty.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[AuxVariables]
[penalty_normal_pressure]
order = FIRST
family = LAGRANGE
[]
[]
[AuxKernels]
[penalty_normal_pressure_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = normal_uo
contact_quantity = normal_pressure
[]
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
uniform_refine = 0
allow_renumbering = false
[]
[Variables]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
[]
[]
[Materials]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e4
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e5
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[]
# Other object should mix formulations
[UserObjects]
[normal_uo]
type = PenaltyWeightedGapUserObject
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
penalty = 1e8
[]
[]
[Constraints]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = normal_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = normal_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = normal_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = .025
dt = .025
dtmin = .001
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
l_max_its = 15
nl_max_its = 30
nl_rel_tol = 1e-11
nl_abs_tol = 1e-12
line_search = 'basic'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[]
[VectorPostprocessors]
[]
(modules/solid_mechanics/test/tests/weak_plane_shear/small_deform4.i)
# apply a pure tension, then some shear
# the BCs are designed to map out the yield function, showing
# the affect of 'cap' smoothing
[GlobalParams]
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = 'stress_xz stress_zx stress_yz stress_zz'
[]
[BCs]
[bottomx]
type = DirichletBC
variable = x_disp
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = y_disp
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = z_disp
boundary = back
value = 0.0
[]
[topx]
type = FunctionDirichletBC
variable = x_disp
boundary = front
function = 'if(t<1E-6,0,3*(t-1E-6)*(t-1E-6)*1E6)'
[]
[topy]
type = FunctionDirichletBC
variable = y_disp
boundary = front
function = 'if(t<1E-6,0,5*(t-1E-6)*(t-1E-6)*1E6)'
[]
[topz]
type = FunctionDirichletBC
variable = z_disp
boundary = front
function = 'if(t<1E-6,t,1E-6)'
[]
[]
[AuxVariables]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[iter]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[iter_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[]
[]
[Postprocessors]
[s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[]
[s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[iter]
type = PointValue
point = '0 0 0'
variable = iter
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningConstant
value = 1E3
[]
[tanphi]
type = SolidMechanicsHardeningConstant
value = 1
[]
[tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.08748866
[]
[wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tip_scheme = cap
smoother = 0
cap_rate = 0.001
cap_start = -1000.0
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-6
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '1E9 0.5E9'
[]
[mc]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1E-4
plastic_models = wps
transverse_direction = '0 0 1'
debug_fspb = crash
debug_jac_at_stress = '1E4 2E4 3E4 2E4 -4E4 5E4 3E4 5E4 6E8'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1
debug_stress_change = 1E-3
debug_pm_change = 1E-5
debug_intnl_change = 1E-5
[]
[]
[Executioner]
end_time = 2E-6
dt = 1E-7
type = Transient
[]
[Outputs]
csv = true
[]
(test/tests/kernels/ode/ode_sys_impl_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 2
ny = 2
elem_type = QUAD4
[]
[Functions]
[./f_fn]
type = ParsedFunction
expression = -4
[../]
[./bc_all_fn]
type = ParsedFunction
expression = x*x+y*y
[../]
# ODEs
[./exact_x_fn]
type = ParsedFunction
expression = (-1/3)*exp(-t)+(4/3)*exp(5*t)
[../]
[]
# NL
[Variables]
[./u]
family = LAGRANGE
order = FIRST
[../]
# ODE variables
[./x]
family = SCALAR
order = FIRST
initial_condition = 1
[../]
[./y]
family = SCALAR
order = FIRST
initial_condition = 2
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./uff]
type = BodyForce
variable = u
function = f_fn
[../]
[]
[ScalarKernels]
[./td1]
type = ODETimeDerivative
variable = x
[../]
[./ode1]
type = ImplicitODEx
variable = x
y = y
[../]
[./td2]
type = ODETimeDerivative
variable = y
[../]
[./ode2]
type = ImplicitODEy
variable = y
x = x
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = bc_all_fn
[../]
[]
[Postprocessors]
active = 'exact_x l2err_x'
[./exact_x]
type = FunctionValuePostprocessor
function = exact_x_fn
execute_on = 'initial timestep_end'
point = '0 0 0'
[../]
[./l2err_x]
type = ScalarL2Error
variable = x
function = exact_x_fn
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
start_time = 0
dt = 0.01
num_steps = 100
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_hht.i)
# Wave propogation in 1D using HHT time integration
#
# The test is for an 1D bar element of length 4m fixed on one end
# with a sinusoidal pulse dirichlet boundary condition applied to the other end.
# alpha, beta and gamma are Newmark time integration parameters
# The equation of motion in terms of matrices is:
#
# M*accel + K*((1+alpha)*disp-alpha*disp_old) = 0
#
# Here M is the mass matrix, K is the stiffness matrix
#
# The displacement at the second, third and fourth node at t = 0.1 are
# -8.097405701570538350e-02, 2.113131879547342634e-02 and -5.182787688751439893e-03, respectively.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 4
nz = 1
xmin = 0.0
xmax = 0.1
ymin = 0.0
ymax = 4.0
zmin = 0.0
zmax = 0.1
use_displaced_mesh = false
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/Dynamic]
[all]
add_variables = true
hht_alpha = -0.3
newmark_beta = 0.3025
newmark_gamma = 0.6
[]
[]
[BCs]
[top_y]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[]
[top_x]
type = DirichletBC
variable = disp_x
boundary = top
value = 0.0
[]
[top_z]
type = DirichletBC
variable = disp_z
boundary = top
value = 0.0
[]
[right_x]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.0
[]
[right_z]
type = DirichletBC
variable = disp_z
boundary = right
value = 0.0
[]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[left_z]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[]
[front_x]
type = DirichletBC
variable = disp_x
boundary = front
value = 0.0
[]
[front_z]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[back_x]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[]
[back_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
[bottom_x]
type = DirichletBC
variable = disp_x
boundary = bottom
value = 0.0
[]
[bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[]
[bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = bottom
function = displacement_bc
[]
[]
[Materials]
[Elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '1 0'
[]
[stress]
type = ComputeLinearElasticStress
[]
[density]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = '1'
[]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 6.0
l_tol = 1e-12
nl_rel_tol = 1e-12
dt = 0.1
[]
[Functions]
[displacement_bc]
type = PiecewiseLinear
data_file = 'sine_wave.csv'
format = columns
[]
[]
[Postprocessors]
[_dt]
type = TimestepSize
[]
[disp_1]
type = NodalVariableValue
nodeid = 1
variable = vel_y
[]
[disp_2]
type = NodalVariableValue
nodeid = 3
variable = vel_y
[]
[disp_3]
type = NodalVariableValue
nodeid = 10
variable = vel_y
[]
[disp_4]
type = NodalVariableValue
nodeid = 14
variable = vel_y
[]
[]
[Outputs]
exodus = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/central_difference/lumped/2D/2d_nodalmass_explicit.i)
# One element test to test the central difference time integrator.
[Mesh]
[./generated_mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 2
nx = 1
ny = 2
[../]
[./all_nodes]
type = BoundingBoxNodeSetGenerator
new_boundary = 'all'
input = 'generated_mesh'
top_right = '1 2 0'
bottom_left = '0 0 0'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./accel_x]
[../]
[./vel_x]
[../]
[./accel_y]
[../]
[./vel_y]
[../]
[]
[AuxKernels]
[./accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[../]
[./vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[../]
[./accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[../]
[./vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_y
[../]
[]
[Kernels]
[./DynamicSolidMechanics]
displacements = 'disp_x disp_y'
[../]
[]
[BCs]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./x_bot]
type = FunctionDirichletBC
boundary = bottom
variable = disp_x
function = disp
preset = false
[../]
[]
[Functions]
[./disp]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0' # time
y = '0.0 1.0 0.0 -1.0 0.0' # displacement
[../]
[]
[NodalKernels]
[./nodal_mass_x]
type = NodalTranslationalInertia
variable = 'disp_x'
nodal_mass_file = 'nodal_mass_file.csv'
boundary = 'all'
[../]
[./nodal_mass_y]
type = NodalTranslationalInertia
variable = 'disp_y'
nodal_mass_file = 'nodal_mass_file.csv'
boundary = 'all'
[../]
[]
[Materials]
[./elasticity_tensor_block]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
block = 0
[../]
[./strain_block]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y'
implicit = false
[../]
[./stress_block]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 0.1
dt = 0.005
timestep_tolerance = 1e-6
[./TimeIntegrator]
type = CentralDifference
[../]
[]
[Postprocessors]
[./accel_2x]
type = PointValue
point = '1.0 2.0 0.0'
variable = accel_x
[../]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/porous_flow/test/tests/hysteresis/hys_pc_03.i)
# Capillary-pressure calculation. Primary drying curve with low_extension_type = exponential
# When comparing the results with a by-hand computation, remember the MOOSE results are averaged over an element
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmin = 0
xmax = 1
nx = 100
[]
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
number_fluid_phases = 1
number_fluid_components = 1
porous_flow_vars = ''
[]
[]
[Variables]
[sat]
[]
[]
[ICs]
[sat]
type = FunctionIC
variable = sat
function = 'x'
[]
[]
[BCs]
[sat]
type = FunctionDirichletBC
variable = sat
function = 'x'
boundary = 'left right'
[]
[]
[Kernels]
[dummy]
type = Diffusion
variable = sat
[]
[]
[Materials]
[hys_order]
type = PorousFlowHysteresisOrder
[]
[pc_calculator]
type = PorousFlowHystereticInfo
alpha_d = 10.0
alpha_w = 10.0
n_d = 1.5
n_w = 1.9
S_l_min = 0.1
S_lr = 0.2
S_gr_max = 0.3
Pc_max = 12.0
low_extension_type = exponential
sat_var = sat
[]
[]
[AuxVariables]
[hys_order]
family = MONOMIAL
order = CONSTANT
[]
[pc]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[hys_order]
type = PorousFlowPropertyAux
variable = hys_order
property = hysteresis_order
[]
[pc]
type = PorousFlowPropertyAux
variable = pc
property = hysteretic_info
[]
[]
[VectorPostprocessors]
[pc]
type = LineValueSampler
warn_discontinuous_face_values = false
start_point = '0 0 0'
end_point = '1 0 0'
num_points = 10
sort_by = x
variable = 'sat pc'
[]
[]
[Executioner]
type = Transient
solve_type = Linear
dt = 1
end_time = 1
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/weak_plane_stress/pull_3D.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
stabilize_strain = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
use_displaced_mesh = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
save_in = 'ry'
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[AuxVariables]
[ry]
[]
[]
[BCs]
[left_x]
type = DirichletBC
boundary = left
variable = disp_x
value = 0
[]
[bottom_y]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0
[]
[back_z]
type = DirichletBC
boundary = back
variable = disp_z
value = 0
[]
[disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[strain]
type = ComputeLagrangianStrain
[]
[stress]
type = ComputeLagrangianLinearElasticStress
[]
[]
[Executioner]
type = Transient
dt = 0.01
end_time = 0.1
solve_type = 'newton'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
[]
[Postprocessors]
[Ry]
type = NodalSum
variable = ry
boundary = top
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/action/no_action_L.i)
[Mesh]
type = FileMesh
file = 'L.exo'
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
stabilize_strain = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Functions]
[pfn]
type = PiecewiseLinear
x = '0 1 2'
y = '0.00 0.3 0.5'
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[BCs]
[left]
type = DirichletBC
preset = true
variable = disp_x
boundary = fix
value = 0.0
[]
[bottom]
type = DirichletBC
preset = true
variable = disp_y
boundary = fix
value = 0.0
[]
[back]
type = DirichletBC
preset = true
variable = disp_z
boundary = fix
value = 0.0
[]
[front]
type = FunctionDirichletBC
variable = disp_z
boundary = pull
function = pfn
preset = true
[]
[]
[AuxVariables]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[strain_xz]
order = CONSTANT
family = MONOMIAL
[]
[strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[cauchy_stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[cauchy_stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[cauchy_stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[cauchy_stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[cauchy_stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[cauchy_stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[cauchy_stress_xx]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = cauchy_stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[cauchy_stress_yy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = cauchy_stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[cauchy_stress_zz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = cauchy_stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[cauchy_stress_xy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = cauchy_stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[cauchy_stress_xz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = cauchy_stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[cauchy_stress_yz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = cauchy_stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[strain_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
petsc_options_iname = -pc_type
petsc_options_value = lu
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
end_time = 1.0
dtmin = 0.5
dt = 0.5
[]
[Outputs]
exodus = true
csv = false
[]
(modules/solid_mechanics/test/tests/weak_plane_tensile/small_deform_hard2.i)
# Checking solution of hardening
# A single element is stretched by 1E-6 in z direction.
#
# Young's modulus = 20 MPa. Tensile strength = 10 Exp(-1E6*q) Pa
#
# The trial stress is
# trial_stress_zz = Youngs Modulus*Strain = 2E7*1E-6 = 20 Pa
#
# Therefore the equations we have to solve are
# 0 = f = stress_zz - 10 Exp(-1E6*q)
# 0 = epp = ga - (20 - stress_zz)/2E7
# 0 = intnl = q - ga
#
# The result is
# q = 0.76803905E-6
# stress_zz = 4.6392191 Pa
[GlobalParams]
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = 'stress_zz'
[]
[BCs]
[bottomx]
type = DirichletBC
variable = x_disp
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = y_disp
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = z_disp
boundary = back
value = 0.0
[]
[topx]
type = DirichletBC
variable = x_disp
boundary = front
value = 0
[]
[topy]
type = DirichletBC
variable = y_disp
boundary = front
value = 0
[]
[topz]
type = FunctionDirichletBC
variable = z_disp
boundary = front
function = 1E-6*t
[]
[]
[AuxVariables]
[wpt_internal]
order = CONSTANT
family = MONOMIAL
[]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[wpt_internal]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = wpt_internal
[]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[wpt_internal]
type = PointValue
point = '0 0 0'
variable = wpt_internal
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[]
[UserObjects]
[str]
type = SolidMechanicsHardeningExponential
value_0 = 10
value_residual = 0
rate = 1E6
[]
[wpt]
type = SolidMechanicsPlasticWeakPlaneTensile
tensile_strength = str
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-11
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wpt
transverse_direction = '0 0 1'
ep_plastic_tolerance = 1E-11
[]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
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
[]
(modules/combined/test/tests/umat/gap_heat_transfer_umat.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
temperature = temp
[]
[Mesh]
file = gap_heat_transfer_mesh.e
[]
[Functions]
[disp]
type = PiecewiseLinear
x = '0 2.0'
y = '0 1.0'
[]
[temp]
type = PiecewiseLinear
x = '0 1'
y = '273 2000'
[]
[pressure_function]
type = PiecewiseLinear
x = '0 1'
y = '0 200'
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[temp]
initial_condition = 273
[]
[]
[ThermalContact]
[thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 2
secondary = 3
emissivity_primary = 0
emissivity_secondary = 0
[]
[]
[Physics/SolidMechanics/QuasiStatic/All]
volumetric_locking_correction = true
strain = FINITE
generate_output = 'strain_yy stress_yy'
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[BCs]
[move_right]
type = FunctionDirichletBC
boundary = '3'
variable = disp_x
function = disp
[]
[fixed_x]
type = DirichletBC
boundary = '1'
variable = disp_x
value = 0
[]
[fixed_y]
type = DirichletBC
boundary = '1 2 4'
variable = disp_y
value = 0
[]
[fixed_z]
type = DirichletBC
boundary = '1 2 3 4'
variable = disp_z
value = 0
[]
[temp_bottom]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[]
[temp_top]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[]
[Pressure]
[example]
boundary = 3
function = pressure_function
[]
[]
[]
[Materials]
# 1. Active for umat calculation
[umat]
type = AbaqusUMATStress
constant_properties = '1.0e6 0.3'
plugin = '../../../../solid_mechanics/test/plugins/elastic_temperature'
num_state_vars = 0
temperature = temp
use_one_based_indexing = true
[]
# 2. Active for reference MOOSE computations
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2'
base_name = 'base'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[temp_dependent_elasticity_tensor]
type = CompositeElasticityTensor
block = '1 2'
args = temp
tensors = 'base'
weights = 'prefactor_material'
[]
[prefactor_material_block]
type = DerivativeParsedMaterial
block = '1 2'
property_name = prefactor_material
coupled_variables = temp
expression = '273/(temp)'
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[heat]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1.0
[]
[density]
type = Density
block = '1 2'
density = 1.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
dt = 0.1
end_time = 2.0
[]
[Outputs]
exodus = 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/porous_flow/test/tests/mass_conservation/mass13.i)
# The sample is an annulus in RZ coordinates.
# Roller BCs are applied to the rmin, top and bottom boundaries
# A constant displacement is applied to the outer boundary: disp_r = -0.01 * t * (r - rmin)/(rmax - rmin).
# There is no fluid flow.
# Fluid mass conservation is checked.
#
# The flag volumetric_locking_correction = true is set for the strain calculator,
# which ensures that the volumetric strain is uniform throughout the element
#
# Theoretically,
# volumetric_strain = volume / volume0 - 1 = ((rmax - 0.01*t)^2 - rmin^2) / (rmax^2 - rmin^2) - 1
# However, with ComputeAxisymmetricRZSmallStrain, strain_rr = -0.01 * t / (rmax - rmin)
# and strain_tt = disp_r / r = -0.01 * t * (1 - rmin / r_qp) / (rmax - rmin), where r_qp is the radius of the quadpoint
# With volumetric_locking_correction = true, r_qp = (rmax - rmin) / 2.
# The volumetric strain is
# epv = -0.01 * t * (2 - rmin / r_qp) / (rmax - rmin)
# and volume = volume0 * (1 + epv)
#
# Fluid conservation reads
# volume0 * rho0 * exp(P0/bulk) = volume * rho0 * exp(P/bulk), so
# P - P0 = bulk * log(volume0 / volume) = 0.5 * log(1 / (1 + epv))
# With rmax = 2 and rmin = 1
# fluid_mass = volume0 * rho0 * exp(P0/bulk) = pi*3 * 1 * exp(0.1/0.5) = 11.51145
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmin = 1
xmax = 2
ymin = -0.5
ymax = 0.5
coord_type = RZ
[]
[GlobalParams]
displacements = 'disp_r disp_z'
PorousFlowDictator = dictator
block = 0
biot_coefficient = 0.3
[]
[Variables]
[disp_r]
[]
[disp_z]
[]
[porepressure]
initial_condition = 0.1
[]
[]
[BCs]
[plane_strain]
type = DirichletBC
variable = disp_z
value = 0
boundary = 'bottom top'
[]
[rmin_fixed]
type = DirichletBC
variable = disp_r
value = 0
boundary = left
[]
[contract]
type = FunctionDirichletBC
variable = disp_r
function = -0.01*t
boundary = right
[]
[]
[Kernels]
[grad_stress_r]
type = StressDivergenceRZTensors
variable = disp_r
component = 0
[]
[grad_stress_z]
type = StressDivergenceRZTensors
variable = disp_z
component = 1
[]
[poro_r]
type = PorousFlowEffectiveStressCoupling
variable = disp_r
component = 0
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
variable = disp_z
component = 1
[]
[poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
variable = porepressure
fluid_component = 0
[]
[mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = porepressure
[]
[]
[AuxVariables]
[stress_rr]
order = CONSTANT
family = MONOMIAL
[]
[stress_rz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_tt]
order = CONSTANT
family = MONOMIAL
[]
[strain_rr]
order = CONSTANT
family = MONOMIAL
[]
[strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[strain_tt]
order = CONSTANT
family = MONOMIAL
[]
[vol_strain]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_rr]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_rr
index_i = 0
index_j = 0
[]
[stress_rz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_rz
index_i = 0
index_j = 1
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 1
index_j = 1
[]
[stress_tt]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_tt
index_i = 2
index_j = 2
[]
[strain_rr]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_rr
index_i = 0
index_j = 0
[]
[strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 1
index_j = 1
[]
[strain_tt]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_tt
index_i = 2
index_j = 2
[]
[vol_strain]
type = MaterialRealAux
property = PorousFlow_total_volumetric_strain_qp
variable = vol_strain
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 0.5
density0 = 1
thermal_expansion = 0
viscosity = 1
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '1 1.5'
# bulk modulus is lambda + 2*mu/3 = 1 + 2*1.5/3 = 2
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeAxisymmetricRZSmallStrain
volumetric_locking_correction = true # the strain will be the same at every qp of the element
[]
[stress]
type = ComputeLinearElasticStress
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[eff_fluid_pressure]
type = PorousFlowEffectiveFluidPressure
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[]
[massfrac]
type = PorousFlowMassFraction
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '0.5 0 0 0 0.5 0 0 0 0.5'
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_r disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1
[]
[]
[Postprocessors]
[p0]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '1.0 0 0'
variable = porepressure
[]
[vol_strain]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '1 0 0'
variable = vol_strain
[]
[strain_rr]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '1 0 0'
variable = strain_rr
[]
[strain_zz]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '1 0 0'
variable = strain_zz
[]
[strain_tt]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '1 0 0'
variable = strain_tt
[]
[rdisp]
type = PointValue
outputs = csv
point = '2 0 0'
use_displaced_mesh = false
variable = disp_r
[]
[stress_rr]
type = PointValue
outputs = csv
point = '1 0 0'
variable = stress_rr
[]
[stress_zz]
type = PointValue
outputs = csv
point = '1 0 0'
variable = stress_zz
[]
[stress_tt]
type = PointValue
outputs = csv
point = '1 0 0'
variable = stress_tt
[]
[fluid_mass]
type = PorousFlowFluidMass
fluid_component = 0
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-14 1E-8 10000'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 10
dt = 2
[]
[Outputs]
execute_on = 'initial timestep_end'
[csv]
type = CSV
[]
[]
(modules/stochastic_tools/test/tests/transfers/libtorch_nn_transfer/libtorch_drl_control_sub.i)
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmin = 0.0
xmax = 7.0
nx = 3
[]
[]
[Variables]
[temp]
initial_condition = 300
[]
[]
[Kernels]
[time]
type = CoefTimeDerivative
variable = temp
Coefficient = '${fparse 1.00630182*1.225}'
[]
[heat_conduc]
type = MatDiffusion
variable = temp
diffusivity = 'k'
[]
[]
[BCs]
[left_flux]
type = NeumannBC
value = 0.0
boundary = 'left'
variable = temp
[]
[dirichlet]
type = FunctionDirichletBC
function = temp_env
variable = temp
boundary = 'right'
[]
[]
[Functions]
[temp_env]
type = ParsedFunction
value = '15.0*sin(t/86400.0 *pi) + 273.0'
[]
[design_function]
type = ParsedFunction
value = '297'
[]
[reward_function]
type = ScaledAbsDifferenceDRLRewardFunction
design_function = design_function
observed_value = center_temp_tend
c1 = 1
c2 = 10
[]
[]
[Materials]
[constant]
type = GenericConstantMaterial
prop_names = 'k'
prop_values = 26.53832364
[]
[]
[Postprocessors]
[center_temp]
type = PointValue
variable = temp
point = '3.5 0.0 0.0'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[center_temp_tend]
type = PointValue
variable = temp
point = '3.5 0.0 0.0'
execute_on = 'INITIAL TIMESTEP_END'
[]
[env_temp]
type = FunctionValuePostprocessor
function = temp_env
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[reward]
type = FunctionValuePostprocessor
function = reward_function
execute_on = 'INITIAL TIMESTEP_END'
indirect_dependencies = 'center_temp_tend env_temp'
[]
[left_flux]
type = LibtorchControlValuePostprocessor
control_name = src_control
execute_on = 'INITIAL TIMESTEP_END'
[]
[log_prob_left_flux]
type = LibtorchDRLLogProbabilityPostprocessor
control_name = src_control
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Reporters]
[T_reporter]
type = AccumulateReporter
reporters = 'center_temp_tend/value env_temp/value reward/value left_flux/value log_prob_left_flux/value'
outputs = 'csv_out'
[]
[nn_parameters]
type = LibtorchArtificialNeuralNetParameters
control_name = src_control
outputs = json_out
[]
[]
[Controls]
[src_control]
type = LibtorchDRLControl
parameters = "BCs/left_flux/value"
responses = 'center_temp env_temp'
# keep consistent with LibtorchDRLControlTrainer
input_timesteps = 2
response_scaling_factors = '0.03 0.03'
response_shift_factors = '270 270'
action_standard_deviations = '0.1'
action_scaling_factors = 100
execute_on = 'TIMESTEP_BEGIN'
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_rel_tol = 1e-8
start_time = 0.0
end_time = 86400
dt = 14400.0
[]
[Outputs]
[json_out]
type = JSON
execute_on = FINAL
execute_system_information_on = NONE
[]
[]
(test/tests/multiapps/restart_subapp_ic/sub2.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 1
nx = 10
[]
[Functions]
[u_fn]
type = ParsedFunction
expression = t*x
[]
[ffn]
type = ParsedFunction
expression = x
[]
[]
[Variables]
[u]
initial_condition = 4.2
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[td]
type = TimeDerivative
variable = u
[]
[fn]
type = BodyForce
variable = u
function = ffn
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = FunctionDirichletBC
variable = u
boundary = right
function = u_fn
[]
[]
[Problem]
# Being restarted by the parent, yet the ICs are overriding the initial solution
# See t=0.5s in the gold/parent2_out_sub_app0.e file
allow_initial_conditions_with_restart = true
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/axisymmetric_2d3d_solution_function/2d.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = 2d.e
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 400
[]
[]
[AuxVariables]
[hoop_stress]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_inner_func]
type = PiecewiseLinear
xy_data = '0 400
1 350'
[]
[temp_outer_func]
type = PiecewiseLinear
xy_data = '0 400
1 400'
[]
[press_func]
type = PiecewiseLinear
xy_data = '0 15
1 15'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
volumetric_locking_correction = true
add_variables = true
incremental = true
strain = FINITE
eigenstrain_names = thermal_expansion
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress'
temperature = temp
[]
[]
[AuxKernels]
[hoop_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hoop_stress
scalar_type = HoopStress
execute_on = timestep_end
[]
[]
[BCs]
[no_y]
type = DirichletBC
variable = disp_y
boundary = '1'
value = 0.0
[]
[Pressure]
[internal_pressure]
boundary = '4'
factor = 1.e6
function = press_func
[]
[]
[t_in]
type = FunctionDirichletBC
variable = temp
boundary = '4'
function = temp_inner_func
[]
[t_out]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = temp_outer_func
[]
[]
[Constraints]
[disp_y]
type = EqualValueBoundaryConstraint
variable = disp_y
primary = '65'
secondary = '3'
penalty = 1e18
[]
[]
[Materials]
[thermal1]
type = HeatConductionMaterial
block = '1'
thermal_conductivity = 25.0
specific_heat = 490.0
temp = temp
[]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 193.05e9
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[thermal_expansion]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 13e-6
stress_free_temperature = 295.00
temperature = temp
eigenstrain_name = thermal_expansion
[]
[density]
type = Density
block = '1'
density = 8000.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-ksp_snes_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = ' 201 hypre boomeramg 4'
line_search = 'none'
l_max_its = 25
nl_max_its = 20
nl_rel_tol = 1e-9
l_tol = 1e-2
start_time = 0.0
dt = 1
end_time = 1
dtmin = 1
[]
[Outputs]
file_base = 2d_out
exodus = true
[console]
type = Console
max_rows = 25
[]
[]
(modules/contact/test/tests/mortar_cartesian_lms/two_block_1st_order_constraint_lm_xy.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
theta = 0
velocity = 0.1
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.35
xmax = -0.05
ymin = -1
ymax = 0
nx = 1
ny = 3
elem_type = QUAD4
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3'
new_boundary = '10 11 12 13'
[]
[left_block_sideset_names]
type = RenameBoundaryGenerator
input = left_block_sidesets
old_boundary = '10 11 12 13'
new_boundary = 'l_bottom l_right l_top l_left'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sideset_names
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.3
ymin = -1
ymax = 0
nx = 1
ny = 2
elem_type = QUAD4
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3'
new_boundary = '20 21 22 23'
[]
[right_block_sideset_names]
type = RenameBoundaryGenerator
input = right_block_sidesets
old_boundary = '20 21 22 23'
new_boundary = 'r_bottom r_right r_top r_left'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sideset_names
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[left_lower]
type = LowerDBlockFromSidesetGenerator
input = combined_mesh
sidesets = '11'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[right_lower]
type = LowerDBlockFromSidesetGenerator
input = left_lower
sidesets = '23'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[rotate_mesh]
type = TransformGenerator
input = right_lower
transform = ROTATE
vector_value = '0 0 ${theta}'
[]
[]
[Variables]
[lm_x]
block = 'secondary_lower'
use_dual = true
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = ParsedFunction
expression = '${velocity} * t * cos(${theta}/180*pi)'
[]
[vertical_movement]
type = ParsedFunction
expression = '${velocity} * t * sin(${theta}/180*pi)'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = horizontal_movement
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 21
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 21
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 13
function = vertical_movement
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeWeightedGapCartesianLMMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_x = lm_x
lm_y = lm_y
variable = lm_x # This can be anything really
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
correct_edge_dropping = true
[]
[normal_x]
type = CartesianMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_y]
type = CartesianMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist NONZERO 1e-10'
line_search = none
dt = 0.1
dtmin = 0.1
end_time = 1.0
l_max_its = 100
nl_max_its = 20
nl_rel_tol = 1e-6
snesmf_reuse_base = false
[]
[Outputs]
exodus = false
file_base = './output/1st_order_${theta}_degree_out'
[comp]
type = CSV
show = 'tot_lin_it tot_nonlin_it'
execute_on = 'FINAL'
[]
[]
[Postprocessors]
[avg_disp_x]
type = ElementAverageValue
variable = disp_x
block = '1 2'
[]
[avg_disp_y]
type = ElementAverageValue
variable = disp_y
block = '1 2'
[]
[max_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
[]
[max_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
[]
[min_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
value_type = min
[]
[min_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
value_type = min
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[]
[tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[]
(modules/contact/test/tests/kinematic-and-scaling/bouncing-block-kinematic.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-no-lower-d-coarse.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[ICs]
[./disp_y]
block = 2
variable = disp_y
value = ${fparse starting_point + offset}
type = ConstantIC
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = false
use_automatic_differentiation = true
strain = SMALL
[]
[]
[Materials]
[elasticity]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 1e3
poissons_ratio = 0.3
[]
[stress]
type = ADComputeLinearElasticStress
[]
[]
[Contact]
[leftright]
secondary = 10
primary = 20
model = frictionless
formulation = kinematic
penalty = 1e3
normal_smoothing_distance = 0.1
[]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[../]
[./leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[../]
[]
[Executioner]
type = Transient
end_time = 100
dt = 5
dtmin = 5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 200'
l_max_its = 200
nl_max_its = 20
line_search = 'none'
automatic_scaling = true
verbose = true
scaling_group_variables = 'disp_x disp_y'
resid_vs_jac_scaling_param = 1
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
[exo]
type = Exodus
[]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Postprocessors]
[nl]
type = NumNonlinearIterations
[]
[lin]
type = NumLinearIterations
[]
[tot_nl]
type = CumulativeValuePostprocessor
postprocessor = nl
[]
[tot_lin]
type = CumulativeValuePostprocessor
postprocessor = lin
[]
[]
(test/tests/time_integrators/multiple-integrators/test.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[u][]
[v][]
[]
[Kernels]
[timeu]
type = TimeDerivative
variable = u
[]
[timev]
type = TimeDerivative
variable = v
[]
[diffu]
type = Diffusion
variable = u
[]
[diffv]
type = Diffusion
variable = v
[]
[forceu]
type = BodyForce
variable = u
function = force
[]
[forcev]
type = BodyForce
variable = v
function = force
[]
[]
[Functions]
[exact]
type = ParsedFunction
expression = 't^3*x*y'
[]
[force]
type = ParsedFunction
expression = '3*x*y*t^2'
[]
[]
[BCs]
[allu]
type = FunctionDirichletBC
variable = u
function = exact
boundary = 'left right top bottom'
[]
[allv]
type = FunctionDirichletBC
variable = v
function = exact
boundary = 'left right top bottom'
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'hypre'
dt = 1
end_time = 3
[TimeIntegrators]
[cn]
type = CrankNicolson
variables = 'u'
[]
[ie]
type = ImplicitEuler
variables = 'v'
[]
[]
[]
[Postprocessors]
[L2u]
type = ElementL2Error
function = exact
variable = u
[]
[L2v]
type = ElementL2Error
function = exact
variable = v
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/small_deform5.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
# Use 'cap' smoothing
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.9E-6*y*sin(t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 50
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningExponential
value_0 = 0
value_residual = 0.8726646 # 50deg
rate = 3000.0
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
tip_scheme = cap
mc_tip_smoother = 0
cap_start = 3
cap_rate = 0.8
mc_edge_smoother = 20
yield_function_tolerance = 1E-8
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 150
dt = 5
type = Transient
[]
[Outputs]
file_base = small_deform5
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/contact/test/tests/multiple_contact_pairs/multiple_pairs_mortar_friction.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[file]
type = FileMeshGenerator
file = multiple_pairs.e
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_xx'
block = '1 2 3'
[]
[]
[Materials]
[stiffStuff]
type = ComputeIsotropicElasticityTensor
block = '1 2 3'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[stiffStuff_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2 3'
[]
[]
[ICs]
[disp_y]
block = '2 3'
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Contact]
[first_pair]
primary = '20'
secondary = '10 '
model = coulomb
formulation = mortar
c_normal = 1e+04
c_tangential = 1.0e2
friction_coefficient = 0.2
tangential_lm_scaling = 1.0e-6
normal_lm_scaling = 1.0e-6
[]
[second_pair]
primary = '20'
secondary = '101'
model = coulomb
formulation = mortar
c_normal = 1e+04
c_tangential = 1.0e2
friction_coefficient = 0.2
tangential_lm_scaling = 1.0e-6
normal_lm_scaling = 1.0e-6
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
preset = false
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
preset = false
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = '30 301'
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = '50 501'
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
dt = 2.0
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
nl_abs_tol = 1e-7
line_search = 'none'
end_time = 18
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[]
[VectorPostprocessors]
[cont_press]
type = NodalValueSampler
variable = contact_pressure
boundary = '10 101'
sort_by = x
execute_on = NONLINEAR
[]
[]
(modules/solid_mechanics/test/tests/rate_independent_cyclic_hardening/nonlin_kinharden_nonsymmetric_strain_controlled.i)
# This simulation uses the piece-wise strain hardening model
# with the Finite strain formulation.
#
# This test applies a repeated displacement loading and unloading condition on
# the top in the y direction. The material deforms elastically until the
# loading reaches the initial yield point and then plastic deformation starts.
#
# The yield surface begins to translate as stress increases, but its size
# remains the same. The backstress evolves with plastic strain to capture
# this translation. Upon unloading, the stress reverses direction, and material
# first behaves elastically. However, due to the translation of the yield surface
# the yield point in the reverse direction is lower.
#
# If the reverse load is strong enough, the material will yield in the reverse
# direction, which models the Bauschinger effect(reduction in yield stress in
# the opposite direction).
#
# This test is based on the similar response obtained for a prescribed non symmetrical
# stress path in Besson, Jacques, et al. Non-linear mechanics of materials. Vol. 167.
# Springer Science & Business Media, 2009 pg. 89 fig. 3.6(b). This SolidMechanics code
# matches the SolidMechanics solution.
[Mesh]
file = 1x1x1cube.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[top_pull]
type = PiecewiseLinear
xy_data = '0 0
0.025 0.0025
0.05 0.005
0.1 0.01
0.15 0.005
0.2 0
0.25 0.005
0.3 0.01
0.35 0.005
0.45 0
0.5 0.005
0.55 0.01
0.65 0.005
0.7 0
0.75 0.005
0.8 0.01
0.85 0.005
0.9 0
0.95 0.005
1 0.01
1.05 0.005
1.1 0
1.15 0.005
1.2 0.01
1.25 0.005
1.3 0
1.35 0.005
1.4 0.01
1.45 0.005
1.5 0'
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'strain_yy stress_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
[]
[]
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.0
[]
[kinematic_plasticity]
type = CombinedNonlinearHardeningPlasticity
yield_stress = 100
isotropic_hardening_constant = 0
q = 0
b = 0
kinematic_hardening_modulus = 30000
gamma = 200
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'kinematic_plasticity'
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pctype'
petsc_options_value = '101 lu'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 0.55
dt = 0.005
dtmin = 0.001
[]
[Postprocessors]
[stress_yy]
type = ElementAverageValue
variable = stress_yy
[]
[strain_yy]
type = ElementAverageValue
variable = strain_yy
[]
[]
[Outputs]
csv = true
[]
(test/tests/multiapps/restart/sub2.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 1
nx = 10
[]
[Functions]
[./u_fn]
type = ParsedFunction
expression = t*x
[../]
[./ffn]
type = ParsedFunction
expression = x
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./td]
type = TimeDerivative
variable = u
[../]
[./fn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = right
function = u_fn
[../]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence/2D/dirichlet.i)
# Simple 2D plane strain test
[GlobalParams]
displacements = 'disp_x disp_y'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 2
nx = 4
ny = 4
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[]
[Functions]
[pullx]
type = ParsedFunction
expression = '0.5 * t'
[]
[pully]
type = ParsedFunction
expression = '-0.3 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[lefty]
type = DirichletBC
preset = true
boundary = left
variable = disp_y
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = pullx
preset = true
[]
[pull_y]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pully
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
start_time = 0.0
dt = 0.2
dtmin = 0.2
end_time = 1.0
[]
[Postprocessors]
[nonlin]
type = NumNonlinearIterations
[]
[]
[Outputs]
exodus = false
csv = true
[]
(test/tests/outputs/debug/show_execution_auxkernels.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Debug]
show_execution_order = 'ALWAYS'
[]
[AuxVariables]
[a]
initial_condition = 1
[]
[b]
initial_condition = 2
[]
[c]
initial_condition = 3
[]
[a_elem]
order = CONSTANT
family = MONOMIAL
initial_condition = 1
[]
[b_elem]
order = CONSTANT
family = MONOMIAL
initial_condition = 2
[]
[c_elem]
order = CONSTANT
family = MONOMIAL
initial_condition = 3
[]
[d_elem]
order = CONSTANT
family = MONOMIAL
initial_condition = 3
[]
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
[exact_fn]
type = ParsedFunction
expression = t
[]
[a_fn]
type = ParsedFunction
expression = t
[]
[b_fn]
type = ParsedFunction
expression = (4-t)/2
[]
[]
[AuxKernels]
# Nodal
# this one needs a and b set, should run last
[c_saux]
type = QuotientAux
variable = c
numerator = a
denominator = b
execute_on = 'initial timestep_end'
[]
# setting b requires a
[b_saux]
type = ProjectionAux
variable = b
v = a
execute_on = 'linear timestep_end'
[]
# Elements
# this one needs a and b set, should run last
[c_saux_elem]
type = QuotientAux
variable = c_elem
numerator = a_elem
denominator = b_elem
execute_on = 'initial timestep_end'
[]
# setting b requires a
[b_saux_elem]
type = ProjectionAux
variable = b_elem
v = a_elem
execute_on = 'linear timestep_end'
[]
# boundary auxkernel
[real_property]
type = MaterialRealAux
variable = d_elem
property = 3
boundary = 'top bottom'
[]
[]
[Kernels]
[ie]
type = TimeDerivative
variable = u
[]
[diff]
type = Diffusion
variable = u
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 1
dt = 1
[]
(python/peacock/tests/input_tab/InputTree/gold/transient.i)
# ##########################################################
# This is a simple test with a time-dependent problem
# demonstrating the use of a "Transient" Executioner.
#
# @Requirement F1.10
# ##########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
[InitialCondition]
type = ConstantIC
value = 0
[]
[]
[]
[Functions]
[forcing_fn]
# dudt = 3*t^2*(x^2 + y^2)
type = ParsedFunction
expression = '3*t*t*((x*x)+(y*y))-(4*t*t*t)'
[]
[exact_fn]
type = ParsedFunction
expression = 't*t*t*((x*x)+(y*y))'
[]
[]
[Kernels]
[ie]
type = TimeDerivative
variable = u
[]
[diff]
type = Diffusion
variable = u
[]
[ffn]
type = BodyForce
variable = u
function = forcing_fn
[]
[]
[BCs]
inactive = 'left right'
[all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[]
[left]
type = DirichletBC
variable = u
boundary = '3'
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = '1'
value = 1
[]
[]
[Postprocessors]
[l2_err]
type = ElementL2Error
variable = 'u'
function = exact_fn
[]
[dt]
type = TimestepSize
[]
[]
[Executioner]
# Preconditioned JFNK (default)
type = Transient
scheme = implicit-euler
solve_type = PJFNK
start_time = 0.0
num_steps = 5
dt = 0.1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_transient
exodus = true
[]
(modules/solid_mechanics/test/tests/drucker_prager/small_deform2_native.i)
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1.5E-6*x+2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./mc]
type = SolidMechanicsPlasticDruckerPragerHyperbolic
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
smoother = 4
mc_interpolation_scheme = native
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2_native
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/contact/test/tests/glued/glued_contact_mechanical_constraint_test.i)
# This is a mechanical constraint (contact formulation) version of glued_contact_mechanical_constraint.i
[Mesh]
file = glued_contact_test.e
[]
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./up]
type = PiecewiseLinear
x = '0 1'
y = '0 0.5001'
[../]
[./lateral]
type = PiecewiseLinear
x = '0 1 2 3'
y = '0 0 1 0'
scale_factor = 0.5
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[]
[Contact]
[./dummy_name]
primary = 2
secondary = 3
penalty = 1e6
model = glued
formulation = kinematic
[../]
[]
[BCs]
[./bottom_lateral]
type = FunctionDirichletBC
variable = disp_x
boundary = 1
function = lateral
[../]
[./bottom_up]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = up
[../]
[./bottom_out]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0.0
[../]
[./top]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[]
[Materials]
[./stiffStuff1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stiffStuff1_strain]
type= ComputeFiniteStrain
block = '1'
[../]
[./stiffStuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[../]
[./stiffStuff2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stiffStuff2_strain]
type= ComputeFiniteStrain
block = '2'
[../]
[./stiffStuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
#petsc_options_iname = '-pc_type -pc_hypre_type -snes_type -snes_ls -snes_linesearch_type -ksp_gmres_restart'
#petsc_options_value = 'hypre boomeramg ls basic basic 101'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'ilu 101'
line_search = 'none'
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 0.1
num_steps = 30
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Postprocessors]
active = ''
[./resid]
type = Residual
[../]
[./iters]
type = NumNonlinearIterations
[../]
[]
[Outputs]
file_base = mechanical_constraint_out
exodus = true
[]
(test/tests/auxkernels/time_integration/time_integration.i)
# This test covers the usage of the VariableTimeIntegrationAux
# kernel. Here we test three different schemes for integrating a field
# variable in time. Midpoint, Trapezoidal, and Simpson's rule are
# used. For this test, we use a manufactured solution and we compare
# the Trapezoidal and Simpson's rule, which must be exact for this
# exact solution, which is a linear function of time.
#
# The set up problem is
#
# du/dt - Laplacian(u) = Q
#
# with exact solution: u = t*(x*x+y*y).
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD9
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 10
ny = 10
[]
[Functions]
[./dts]
type = PiecewiseLinear
x = '0.01 0.1'
y = '0.005 0.05'
[../]
[]
[Variables]
[./u]
initial_condition = 0.0
family = LAGRANGE
order = SECOND
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./timederivative]
type = TimeDerivative
variable = u
[../]
[./sourceterm]
type = BodyForce
variable = u
function = Source
[../]
[]
[AuxVariables]
[./v_midpoint]
[../]
[./v_trapazoid]
[../]
[./v_simpson]
[../]
[]
[AuxKernels]
[./MidpointTimeIntegrator]
type = VariableTimeIntegrationAux
variable_to_integrate = u
variable = v_midpoint
order = 1
[../]
[./TrapazoidalTimeIntegrator]
type = VariableTimeIntegrationAux
variable_to_integrate = u
variable = v_trapazoid
order = 2
[../]
[./SimpsonsTimeIntegrator]
type = VariableTimeIntegrationAux
variable_to_integrate = u
variable = v_simpson
order = 3
[../]
[]
[BCs]
[./RightBC]
type = FunctionDirichletBC
variable = u
function = RightBC
boundary = 'right'
[../]
[./LeftBC]
type = FunctionDirichletBC
variable = u
function = LeftBC
boundary = 'left'
[../]
[./TopBC]
type = FunctionDirichletBC
variable = u
function = TopBC
boundary = 'top'
[../]
[./BottomBC]
type = FunctionDirichletBC
variable = u
function = BottomBC
boundary = 'bottom'
[../]
[]
[Functions]
[./Soln]
type = ParsedFunction
expression = 't*(x*x+y*y)'
[../]
[./Source]
type = ParsedFunction
expression = '(x*x + y*y) - 4*t'
[../]
[./TopBC]
type = ParsedFunction
expression = 't*(x*x+1)'
[../]
[./BottomBC]
type = ParsedFunction
expression = 't*x*x'
[../]
[./RightBC]
type = ParsedFunction
expression = 't*(y*y+1)'
[../]
[./LeftBC]
type = ParsedFunction
expression = 't*y*y'
[../]
[]
[Postprocessors]
[./l2_error]
type = NodalL2Error
variable = u
function = Soln
[../]
[]
[Executioner]
type = Transient
end_time = 0.1
# dt = 0.1
# num_steps = 10
[./TimeStepper]
type = FunctionDT
function = dts
[../]
nl_abs_tol = 1.e-15
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/contact/test/tests/mortar_tm/2drz/frictionless_second/finite.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD9
order = SECOND
name = 'finite'
[Problem]
coord_type = RZ
[]
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.6
ymin = 0
ymax = 10
nx = 2
ny = 33
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.61
xmax = 1.21
ymin = 9.2
ymax = 10.0
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[block]
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'block'
[]
[plank]
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'plank'
eigenstrain_names = 'swell'
[]
[]
[Contact]
[frictionless]
primary = plank_right
secondary = block_left
formulation = mortar
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
preset = false
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = block_right
value = 0
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = block_right
function = '-t'
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'plank block'
[]
[swell]
type = ComputeEigenstrain
block = 'plank'
eigenstrain_name = swell
eigen_base = '1 0 0 0 0 0 0 0 0'
prefactor = swell_mat
[]
[swell_mat]
type = GenericFunctionMaterial
prop_names = 'swell_mat'
prop_values = '7e-2*(1-cos(4*t))'
block = 'plank'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 3
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'contact'
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[]
[Outputs]
file_base = ${name}
[comp]
type = CSV
show = 'contact'
[]
[out]
type = CSV
file_base = '${name}_out'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/weak_plane_stress/convergence.i)
[GlobalParams]
displacements = 'disp_x disp_y'
large_kinematics = true
stabilize_strain = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[]
use_displaced_mesh = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[strain_zz]
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
out_of_plane_strain = strain_zz
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
out_of_plane_strain = strain_zz
component = 1
[]
[wps]
type = TotalLagrangianWeakPlaneStress
variable = strain_zz
[]
[]
[BCs]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'top bottom'
value = 0
[]
[fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[]
[disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[strain]
type = ComputeLagrangianWPSStrain
out_of_plane_strain = strain_zz
[]
[stress]
type = ComputeLagrangianLinearElasticStress
[]
[]
[Executioner]
type = Transient
dt = 0.01
end_time = 0.1
solve_type = 'newton'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
[]
(modules/solid_mechanics/test/tests/notched_plastic_block/cmc_smooth.i)
# Uses a multi-smoothed version of capped-Mohr-Coulomb (via CappedMohrCoulombStressUpdate and ComputeMultipleInelasticStress) to simulate the following problem.
# A cubical block is notched around its equator.
# All of its outer surfaces have roller BCs, but the notched region is free to move as needed
# The block is initialised with a high hydrostatic tensile stress
# Without the notch, the BCs do not allow contraction of the block, and this stress configuration is admissible
# With the notch, however, the interior parts of the block are free to move in order to relieve stress, and this causes plastic failure
# The top surface is then pulled upwards (the bottom is fixed because of the roller BCs)
# This causes more failure
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 9
ny = 9
nz = 9
xmin = 0
xmax = 0.1
ymin = 0
ymax = 0.1
zmin = 0
zmax = 0.1
[]
[block_to_remove_xmin]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 -0.01 0.045'
top_right = '0.01 0.11 0.055'
location = INSIDE
block_id = 1
input = generated_mesh
[]
[block_to_remove_xmax]
type = SubdomainBoundingBoxGenerator
bottom_left = '0.09 -0.01 0.045'
top_right = '0.11 0.11 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_xmin
[]
[block_to_remove_ymin]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 -0.01 0.045'
top_right = '0.11 0.01 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_xmax
[]
[block_to_remove_ymax]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 0.09 0.045'
top_right = '0.11 0.11 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_ymin
[]
[remove_block]
type = BlockDeletionGenerator
block = 1
input = block_to_remove_ymax
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_zz'
eigenstrain_names = ini_stress
[../]
[]
[Postprocessors]
[./uz]
type = PointValue
point = '0 0 0.1'
use_displaced_mesh = false
variable = disp_z
[../]
[./s_zz]
type = ElementAverageValue
use_displaced_mesh = false
variable = stress_zz
[../]
[./num_res]
type = NumResidualEvaluations
[../]
[./nr_its] # num_iters is the average number of NR iterations encountered per element in this timestep
type = ElementAverageValue
variable = num_iters
[../]
[./max_nr_its] # max_num_iters is the maximum number of NR iterations encountered in the element during the whole simulation
type = ElementExtremeValue
variable = max_num_iters
[../]
[./runtime]
type = PerfGraphData
data_type = TOTAL
section_name = 'Root'
[../]
[]
[BCs]
# back=zmin, front=zmax, bottom=ymin, top=ymax, left=xmin, right=xmax
[./xmin_xzero]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./xmax_xzero]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.0
[../]
[./ymin_yzero]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./ymax_yzero]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[../]
[./zmin_zzero]
type = DirichletBC
variable = disp_z
boundary = back
value = '0'
[../]
[./zmax_disp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '1E-6*max(t,0)'
[../]
[]
[AuxVariables]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./num_iters]
order = CONSTANT
family = MONOMIAL
[../]
[./max_num_iters]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./num_iters_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = num_iters
[../]
[./max_num_iters_auxk]
type = MaterialRealAux
property = max_plastic_NR_iterations
variable = max_num_iters
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 3E6
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E16
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 5E6
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 10
convert_to_radians = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 16E9
poissons_ratio = 0.25
[../]
[./mc]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
smoothing_tol = 0.2E6
yield_function_tol = 1E-5
perfect_guess = false # this is so we can observe some Newton-Raphson iterations, for comparison with other models, and it is not optimal in any real-life simulations
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[./strain_from_initial_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '2.5E6 0 0 0 2.5E6 0 0 0 2.5E6'
eigenstrain_name = ini_stress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
start_time = -1
end_time = 10
dt = 1
solve_type = NEWTON
type = Transient
l_tol = 1E-2
nl_abs_tol = 1E-5
nl_rel_tol = 1E-7
l_max_its = 200
nl_max_its = 400
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[]
[Outputs]
file_base = cmc_smooth
perf_graph = true
exodus = false
csv = true
[]
(modules/combined/test/tests/cavity_pressure/additional_volume.i)
#
# Cavity Pressure Test
#
# This test is designed to compute an internal pressure based on
# p = n * R * / (V_cavity / T_cavity + V_add / T_add)
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T_cavity is the temperature in the cavity
# T_add is the temperature of the additional volume
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7. An additional volume of 2 is added.
#
# The test adjusts n, T, and V in the following way:
# n => n0 + alpha * t
# T => T0 + beta * t
# V => V_cavity0 + gamma * t + V_add
# with
# alpha = n0
# beta = T0 / 2
# gamma = -(0.003322259...) * V0
# T0 = 240.54443866068704
# V_cavity0 = 7
# V_add = 2
# T_add = 100
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# An additional volume of 2 with a temperature of 100.0 is included.
#
# So, n0 = p0 * (V_cavity / T_cavity + V_add / T_add) / R
# = 100 * (7 / 240.544439 + 2 / 100) / 8.314472
# = 0.59054
#
# The parameters combined at t = 1 gives p = 249.647.
#
# This test sets the initial temperature to 500, but the CavityPressure
# is told that that initial temperature is T0. Thus, the final solution
# is unchanged.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = 3d.e
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[Functions]
[displ_positive]
type = PiecewiseLinear
x = '0 1'
y = '0 0.0029069767441859684'
[]
[displ_negative]
type = PiecewiseLinear
x = '0 1'
y = '0 -0.0029069767441859684'
[]
[temp1]
type = PiecewiseLinear
x = '0 1'
y = '1 1.5'
scale_factor = 240.54443866068704
[]
[material_input_function]
type = PiecewiseLinear
x = '0 1'
y = '0 0.59054'
[]
[additional_volume]
type = ConstantFunction
value = 2
[]
[temperature_of_additional_volume]
type = ConstantFunction
value = 100
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[temp]
initial_condition = 500
[]
[material_input]
[]
[]
[AuxVariables]
[pressure_residual_x]
[]
[pressure_residual_y]
[]
[pressure_residual_z]
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zx]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
[]
[heat]
type = Diffusion
variable = temp
use_displaced_mesh = true
[]
[material_input_dummy]
type = Diffusion
variable = material_input
use_displaced_mesh = true
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[]
[stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[]
[]
[BCs]
[no_x_exterior]
type = DirichletBC
variable = disp_x
boundary = '7 8'
value = 0.0
[]
[no_y_exterior]
type = DirichletBC
variable = disp_y
boundary = '9 10'
value = 0.0
[]
[no_z_exterior]
type = DirichletBC
variable = disp_z
boundary = '11 12'
value = 0.0
[]
[prescribed_left]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = displ_positive
[]
[prescribed_right]
type = FunctionDirichletBC
variable = disp_x
boundary = 14
function = displ_negative
[]
[no_y]
type = DirichletBC
variable = disp_y
boundary = '15 16'
value = 0.0
[]
[no_z]
type = DirichletBC
variable = disp_z
boundary = '17 18'
value = 0.0
[]
[no_x_interior]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[]
[no_y_interior]
type = DirichletBC
variable = disp_y
boundary = '3 4'
value = 0.0
[]
[no_z_interior]
type = DirichletBC
variable = disp_z
boundary = '5 6'
value = 0.0
[]
[temperatureInterior]
type = FunctionDirichletBC
boundary = 100
function = temp1
variable = temp
[]
[MaterialInput]
type = FunctionDirichletBC
boundary = '100 13 14 15 16'
function = material_input_function
variable = material_input
[]
[CavityPressure]
[1]
boundary = 100
initial_pressure = 100
material_input = materialInput
R = 8.314472
temperature = aveTempInterior
initial_temperature = 240.54443866068704
volume = internalVolume
startup_time = 0.5
output = ppress
save_in = 'pressure_residual_x pressure_residual_y pressure_residual_z'
additional_volumes = volume1
temperature_of_additional_volumes = temperature1
[]
[]
[]
[Materials]
[elast_tensor1]
type = ComputeElasticityTensor
C_ijkl = '0 5'
fill_method = symmetric_isotropic
block = 1
[]
[strain1]
type = ComputeFiniteStrain
block = 1
[]
[stress1]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elast_tensor2]
type = ComputeElasticityTensor
C_ijkl = '0 5'
fill_method = symmetric_isotropic
block = 2
[]
[strain2]
type = ComputeFiniteStrain
block = 2
[]
[stress2]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_rel_tol = 1e-12
l_tol = 1e-12
l_max_its = 20
dt = 0.5
end_time = 1.0
snesmf_reuse_base = false
use_pre_SMO_residual = true
[]
[Postprocessors]
[internalVolume]
type = InternalVolume
boundary = 100
execute_on = 'initial linear'
[]
[aveTempInterior]
type = SideAverageValue
boundary = 100
variable = temp
execute_on = 'initial linear'
[]
[materialInput]
type = SideAverageValue
boundary = '7 8 9 10 11 12'
variable = material_input
execute_on = linear
[]
[volume1]
type = FunctionValuePostprocessor
function = additional_volume
execute_on = 'initial linear'
[]
[temperature1]
type = FunctionValuePostprocessor
function = temperature_of_additional_volume
execute_on = 'initial linear'
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/volumetric_deform_grad/volumetric_strain_interface.i)
#This test has volumetric deformation gradient as identity
#Test the interface
#Results should match with elasticity
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[]
[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
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.01*t'
[../]
[]
[Materials]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./volumetric_strain]
type = ComputeVolumetricDeformGrad
pre_deform_grad_name = deformation_gradient
volumetric_deform_grad_name = volumetric_deformation_gradient
post_deform_grad_name = elastic_deformation_gradient
block = 0
[../]
[./elastic_stress]
type = ComputeDeformGradBasedStress
deform_grad_name = elastic_deformation_gradient
elasticity_tensor_name = elasticity_tensor
stress_name = elastic_stress
jacobian_name = elastic_jacobian
block = 0
[../]
[./corrected_stress]
type = VolumeDeformGradCorrectedStress
pre_stress_name = elastic_stress
deform_grad_name = volumetric_deformation_gradient
pre_jacobian_name = elastic_jacobian
stress_name = stress
jacobian_name = Jacobian_mult
block = 0
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
C_ijkl = '2.8e5 1.2e5 1.2e5 2.8e5 1.2e5 2.8e5 0.8e5 0.8e5 0.8e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.02
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 101'
dtmax = 10.0
nl_rel_tol = 1e-10
dtmin = 0.02
num_steps = 10
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/pull_push.i)
# A column of elements has its bottom pulled down, and then pushed up again.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 2
xmin = -10
xmax = 10
ymin = -10
ymax = 10
zmin = -100
zmax = 0
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
[../]
[]
[BCs]
[./no_x2]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.0
[../]
[./no_x1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./no_y1]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./no_y2]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[../]
[./topz]
type = DirichletBC
variable = disp_z
boundary = front
value = 0
[../]
[./bottomz]
type = FunctionDirichletBC
variable = disp_z
boundary = back
function = 'if(t>1,-2.0+t,-t)'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strainp_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xx
index_i = 0
index_j = 0
[../]
[./strainp_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xy
index_i = 0
index_j = 1
[../]
[./strainp_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xz
index_i = 0
index_j = 2
[../]
[./strainp_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yy
index_i = 1
index_j = 1
[../]
[./strainp_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yz
index_i = 1
index_j = 2
[../]
[./strainp_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zz
index_i = 2
index_j = 2
[../]
[./straint_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xx
index_i = 0
index_j = 0
[../]
[./straint_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xy
index_i = 0
index_j = 1
[../]
[./straint_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xz
index_i = 0
index_j = 2
[../]
[./straint_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yy
index_i = 1
index_j = 1
[../]
[./straint_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yz
index_i = 1
index_j = 2
[../]
[./straint_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zz
index_i = 2
index_j = 2
[../]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[UserObjects]
[./coh_irrelevant]
type = SolidMechanicsHardeningCubic
value_0 = 2E6
value_residual = 1E6
internal_limit = 0.01
[../]
[./tanphi]
type = SolidMechanicsHardeningCubic
value_0 = 0.5
value_residual = 0.2
internal_limit = 0.01
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.166666666667
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 2E6
[../]
[./c_strength]
type = SolidMechanicsHardeningCubic
value_0 = 1E8
value_residual = 0.0
internal_limit = 0.01
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
lambda = 6.4e9
shear_modulus = 6.4e9 # young 16MPa, Poisson 0.25
[../]
[./strain]
type = ComputeIncrementalStrain
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh_irrelevant
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
max_NR_iterations = 10
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-2
perfect_guess = false
min_step_size = 1
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[../]
[]
[Executioner]
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
line_search = bt
nl_abs_tol = 1E1
nl_rel_tol = 1e-5
l_tol = 1E-10
l_max_its = 100
nl_max_its = 100
end_time = 3.0
dt = 0.1
type = Transient
[]
[Outputs]
file_base = pull_push
exodus = true
csv = true
[]
(test/tests/bcs/bc_preset_nodal/bc_function_preset.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
nz = 0
zmin = 0
zmax = 0
elem_type = QUAD4
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./left]
type = ParsedFunction
expression = 'y'
[../]
[./right]
type = ParsedFunction
expression = '1+y'
[../]
[]
[Kernels]
active = 'diff'
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
active = 'left right'
[./left]
type = FunctionDirichletBC
variable = u
boundary = 3
function = left
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = 1
function = right
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
file_base = bc_func_out
exodus = true
[]
(modules/solid_mechanics/test/tests/multi/rock1.i)
# Plasticity models:
# Mohr-Coulomb with cohesion = 40MPa, friction angle = 35deg, dilation angle = 10deg
# Tensile with strength = 1MPa
# WeakPlaneShear with cohesion = 1MPa, friction angle = 25deg, dilation angle = 25deg
# WeakPlaneTensile with strength = 0.01MPa
#
# Lame lambda = 1GPa. Lame mu = 1.3GPa
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 1234
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 1234
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./f3]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[./int3]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./f3]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 3
variable = f3
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[./int3]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 3
variable = int3
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./raw_f0]
type = ElementExtremeValue
variable = f0
outputs = console
[../]
[./raw_f1]
type = ElementExtremeValue
variable = f1
outputs = console
[../]
[./raw_f2]
type = ElementExtremeValue
variable = f2
outputs = console
[../]
[./raw_f3]
type = ElementExtremeValue
variable = f3
outputs = console
[../]
[./iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./f0]
type = FunctionValuePostprocessor
function = should_be_zero0_fcn
[../]
[./f1]
type = FunctionValuePostprocessor
function = should_be_zero1_fcn
[../]
[./f2]
type = FunctionValuePostprocessor
function = should_be_zero2_fcn
[../]
[./f3]
type = FunctionValuePostprocessor
function = should_be_zero3_fcn
[../]
[]
[Functions]
[./should_be_zero0_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f0'
[../]
[./should_be_zero1_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f1'
[../]
[./should_be_zero2_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f2'
[../]
[./should_be_zero3_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f3'
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 4E7
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 10
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 4E6
yield_function_tolerance = 1.0E-1
internal_constraint_tolerance = 1.0E-7
[../]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./tensile]
type = SolidMechanicsPlasticTensile
tensile_strength = ts
tensile_tip_smoother = 1E5
yield_function_tolerance = 1.0E-1
internal_constraint_tolerance = 1.0E-7
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.46630766
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.46630766
[../]
[./wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
smoother = 1E5
yield_function_tolerance = 1.0E-1
internal_constraint_tolerance = 1.0E-7
[../]
[./str]
type = SolidMechanicsHardeningConstant
value = 0.01E6
[../]
[./wpt]
type = SolidMechanicsPlasticWeakPlaneTensile
tensile_strength = str
yield_function_tolerance = 1.0E-1
internal_constraint_tolerance = 1.0E-7
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1E9 1.3E9'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-7
plastic_models = 'mc tensile wps wpt'
deactivation_scheme = 'optimized_to_safe_to_dumb'
max_NR_iterations = 20
min_stepsize = 1E-4
max_stepsize_for_dumb = 1E-3
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1 1'
debug_jac_at_intnl = '1 1 1 1'
debug_stress_change = 1E1
debug_pm_change = '1E-6 1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = rock1
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/umat/analysis_steps/elastic_temperature_steps_uo_durations.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Functions]
[top_pull_step2]
type = ParsedFunction
expression = (t-5.0)/20
[]
# Forced evolution of temperature
[temperature_load]
type = ParsedFunction
expression = '273'
[]
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temperature_function]
type = FunctionAux
variable = temperature
function = temperature_load
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
[]
[]
[BCs]
[y_step1]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[]
[y_pull_function_step2]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull_step2
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Controls]
[step1]
type = AnalysisStepPeriod
enable_objects = 'BCs::y_step1'
disable_objects = 'BCs::y_pull_function_step2'
analysis_step_user_object = step_uo
step_number = 0
[]
[step2]
type = AnalysisStepPeriod
enable_objects = 'BCs::y_pull_function_step2'
disable_objects = 'BCs::y_step1'
analysis_step_user_object = step_uo
step_number = 1
[]
[]
[UserObjects]
[step_uo]
type = AnalysisStepUserObject
step_durations = '5'
[]
[]
[Materials]
[umat]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_temperature'
num_state_vars = 0
temperature = temperature
use_one_based_indexing = true
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 10
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(modules/stochastic_tools/test/tests/functions/drl_reward/drl_reward.i)
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmin = 0.0
xmax = 7.0
nx = 3
[]
[]
[Variables]
[temp]
initial_condition = 300
[]
[]
[Kernels]
[time]
type = CoefTimeDerivative
variable = temp
Coefficient = '${fparse 1.00630182*1.225}'
[]
[heat_conduc]
type = MatDiffusion
variable = temp
diffusivity = 'k'
[]
[]
[BCs]
[dirichlet]
type = FunctionDirichletBC
function = "200"
variable = temp
boundary = 'right'
[]
[]
[Functions]
[design_function]
type = ParsedFunction
value = 't/3600*297'
[]
[reward_function]
type = ScaledAbsDifferenceDRLRewardFunction
design_function = design_function
observed_value = center_temp_tend
c1 = 1
c2 = 10
[]
[]
[Materials]
[constant]
type = GenericConstantMaterial
prop_names = 'k'
prop_values = 26.53832364
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_rel_tol = 1e-8
start_time = 0.0
end_time = 3600
dt = 1800
[]
[Postprocessors]
[center_temp_tend]
type = PointValue
variable = temp
point = '3.5 0.0 0.0'
execute_on = 'INITIAL TIMESTEP_END'
[]
[reward]
type = FunctionValuePostprocessor
function = reward_function
execute_on = 'INITIAL TIMESTEP_END'
indirect_dependencies = 'center_temp_tend'
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/cohesive_zone_model/bilinear_mixed.i)
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 2
xmax = 1
ymax = 2
nx = 1
ny = 2
[]
[block1]
type = SubdomainBoundingBoxGenerator
input = 'msh'
bottom_left = '0 0 0'
top_right = '1 1 0'
block_id = 1
block_name = 'block1'
[]
[block2]
type = SubdomainBoundingBoxGenerator
input = 'block1'
bottom_left = '0 1 0'
top_right = '1 2 0'
block_id = 2
block_name = 'block2'
[]
[split]
type = BreakMeshByBlockGenerator
input = block2
[]
[top_node]
type = ExtraNodesetGenerator
coord = '0 2 0'
input = split
new_boundary = top_node
[]
[bottom_node]
type = ExtraNodesetGenerator
coord = '0 0 0'
input = top_node
new_boundary = bottom_node
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
generate_output = 'stress_yy'
[all]
strain = FINITE
add_variables = true
use_automatic_differentiation = true
decomposition_method = TaylorExpansion
[]
[]
[]
[]
[BCs]
[fix_x]
type = DirichletBC
preset = true
value = 0.0
boundary = bottom_node
variable = disp_x
[]
[fix_top]
type = DirichletBC
preset = true
boundary = top
variable = disp_x
value = 0
[]
[top]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = 'if(t<=0.3,t,if(t<=0.6,0.3-(t-0.3),0.6-t))'
preset = true
[]
[bottom]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0
preset = true
[]
[]
[Physics/SolidMechanics/CohesiveZone]
[czm_ik]
boundary = 'interface'
[]
[]
[Materials]
[stress]
type = ADComputeFiniteStrainElasticStress
[]
[elasticity_tensor]
type = ADComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
[]
[czm]
type = BiLinearMixedModeTraction
boundary = 'interface'
penalty_stiffness = 1e6
GI_c = 1e3
GII_c = 1e2
normal_strength = 1e4
shear_strength = 1e3
displacements = 'disp_x disp_y'
eta = 2.2
viscosity = 1e-3
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
l_max_its = 2
l_tol = 1e-14
nl_max_its = 30
nl_rel_tol = 1e-50
nl_abs_tol = 1e-15
start_time = 0.0
dt = 0.1
end_time = 1.0
dtmin = 0.1
[]
[Outputs]
exodus = true
[]
(test/tests/vectorpostprocessors/least_squares_fit_history/least_squares_fit_history.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[./v]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = right
function = 't'
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = left
function = 't'
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = right
value = 0
[../]
[]
[VectorPostprocessors]
[./line_sample]
type = LineValueSampler
variable = 'u v'
start_point = '0 0.5 0'
end_point = '1 0.5 0'
num_points = 11
sort_by = id
outputs = none
[../]
[./least_squares_fit_coeffs]
type = LeastSquaresFitHistory
vectorpostprocessor = line_sample
x_name = 'id'
y_name = 'u'
order = 1
[../]
[./shift_and_scale_x_least_squares_fit_coeffs]
type = LeastSquaresFitHistory
vectorpostprocessor = line_sample
x_name = 'id'
y_name = 'u'
x_shift = 1
x_scale = 10
order = 1
[../]
[./shift_and_scale_y_least_squares_fit_coeffs]
type = LeastSquaresFitHistory
vectorpostprocessor = line_sample
x_name = 'id'
y_name = 'u'
y_shift = 1
y_scale = 10
order = 1
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
num_steps = 3
dt = 1.0
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
file_base = out
execute_on = 'timestep_end'
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/rates/rotation.i)
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 2
nx = 1
ny = 1
[]
[bottom_left]
type = ExtraNodesetGenerator
input = msh
new_boundary = 'bottom_left'
coord = '0 0 0'
[]
[top_left]
type = ExtraNodesetGenerator
input = bottom_left
new_boundary = 'top_left'
coord = '0 1 0'
[]
[top_right]
type = ExtraNodesetGenerator
input = top_left
new_boundary = 'top_right'
coord = '1 1 0'
[]
[bottom_right]
type = ExtraNodesetGenerator
input = top_right
new_boundary = 'bottom_right'
coord = '1 0 0'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[AuxKernel]
type = RankTwoAux
rank_two_tensor = cauchy_stress
index_i = 0
index_j = 0
execute_on = TIMESTEP_END
[]
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[AuxKernel]
type = RankTwoAux
rank_two_tensor = cauchy_stress
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[]
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left'
value = 0
[]
[top_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'top_left'
function = 'theta:=if(t<1,0,t-1); -sin(theta)'
[]
[top_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top_left'
function = 'theta:=if(t<1,0,t-1); cos(theta)-1'
[]
[bottom_right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'bottom_right'
function = 'theta:=if(t<1,0,t-1); if(t<1,t,2*cos(theta)-1)'
[]
[bottom_right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'bottom_right'
function = 'theta:=if(t<1,0,t-1); if(t<1,0,2*sin(theta))'
[]
[top_right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'top_right'
function = 'theta:=if(t<1,0,t-1); phi:=theta+atan(0.5); if(t<1,t,sqrt(5)*cos(phi)-1)'
[]
[top_right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top_right'
function = 'theta:=if(t<1,0,t-1); phi:=theta+atan(0.5); if(t<1,0,sqrt(5)*sin(phi)-1)'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e5
poissons_ratio = 0
[]
[stress]
type = ComputeLagrangianLinearElasticStress
[]
[strain]
type = ComputeLagrangianStrain
[]
[]
[Postprocessors]
[sxx]
type = ElementAverageValue
variable = stress_xx
execute_on = 'INITIAL TIMESTEP_END'
[]
[syy]
type = ElementAverageValue
variable = stress_yy
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Executioner]
type = Transient
dt = 0.01
end_time = '${fparse pi/2+1}'
solve_type = NEWTON
line_search = none
petsc_options_iname = -pc_type
petsc_options_value = lu
automatic_scaling = true
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/mean_cap_TC/small_deform7.i)
# apply nonuniform stretch in x, y and z directions using
# Lame lambda = 0.7E7, Lame mu = 1.0E7,
# trial_stress(0, 0) = 2.9
# trial_stress(1, 1) = 10.9
# trial_stress(2, 2) = 14.9
# With tensile_strength = 2, decaying to zero at internal parameter = 4E-7
# via a Cubic, the algorithm should return to:
# internal parameter = 2.26829E-7
# trace(stress) = 0.799989 = tensile_strength
# stress(0, 0) = -6.4
# stress(1, 1) = 1.6
# stress(2, 2) = 5.6
# THEN apply a nonuniform compression in x, y, and z so that
# trial_stress(0, 0)
# With compressive_strength = -1, decaying to -0.5 at internal parameter 1E-8
# via a Cubic, the algorithm should return to
# trial_stress(0, 0) = -3.1
# trial_stress(1, 1) = -3.1
# trial_stress(2, 2) = 2.9
# the algorithm should return to trace(stress) = -0.5 = compressive_strength
# stress(0, 0) = -2.1667
# stress(1, 1) = -2.1667
# stress(2, 2) = 3.8333
# and internal parameter = 2.0406E-7
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = 'if(t<1.5,-1E-7*x,1E-7*x)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = 'if(t<1.5,3E-7*y,1E-7*y)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = 'if(t<1.5,5E-7*z,4E-7*z)'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[./intnl]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = intnl
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./tensile_strength]
type = SolidMechanicsHardeningCubic
value_0 = 2
value_residual = 0
internal_limit = 4E-7
[../]
[./compressive_strength]
type = SolidMechanicsHardeningCubic
value_0 = -1
value_residual = -0.5
internal_limit = 1E-8
[../]
[./cap]
type = SolidMechanicsPlasticMeanCapTC
tensile_strength = tensile_strength
compressive_strength = compressive_strength
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
use_custom_returnMap = true
use_custom_cto = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mean_cap]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-11
plastic_models = cap
[../]
[]
[Executioner]
end_time = 2
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform7
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/weak_plane_shear/large_deform2.i)
# large strain with weak-plane normal rotating with mesh
# First rotate mesh 45deg about x axis
# Then apply stretch in the y=z direction.
# This should create a pure tensile load (no shear), which
# should return to the yield surface.
#
# Since cohesion=1E6 and tan(friction_angle)=1, and
# wps_smoother = 0.5E6, the apex of the weak-plane cone is
# at normal_stress = 0.5E6. So, the result should be
# s_yy = s_yz = s_zz = 0.25E6
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_yz stress_zz'
[]
[BCs]
# rotate:
# ynew = c*y + s*z. znew = -s*y + c*z
[bottomx]
type = FunctionDirichletBC
variable = disp_x
boundary = back
function = '0'
[]
[bottomy]
type = FunctionDirichletBC
variable = disp_y
boundary = back
function = '0.70710678*y+0.70710678*z-y'
[]
[bottomz]
type = FunctionDirichletBC
variable = disp_z
boundary = back
function = '-0.70710678*y+0.70710678*z-z'
[]
[topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = '0'
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = '0.70710678*y+0.70710678*z-y+if(t>0,1,0)'
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '-0.70710678*y+0.70710678*z-z+if(t>0,1,0)'
[]
[]
[AuxVariables]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[]
[s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[]
[s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[]
[tanphi]
type = SolidMechanicsHardeningConstant
value = 1
[]
[tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.111107723
[]
[wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
smoother = 0.5E6
yield_function_tolerance = 1E-9
internal_constraint_tolerance = 1E-9
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wps
transverse_direction = '0 0 1'
ep_plastic_tolerance = 1E-8
debug_fspb = crash
[]
[]
[Executioner]
start_time = -1
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
exodus = true
[]
(modules/xfem/test/tests/solid_mechanics_basic/square_branch_tri_2d.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = TRI3
[]
[UserObjects]
[./line_seg_cut_uo0]
type = LineSegmentCutUserObject
cut_data = '-1.0000e-10 6.6340e-01 6.6340e-01 -1.0000e-10'
time_start_cut = 0.0
time_end_cut = 1.0
[../]
[./line_seg_cut_uo1]
type = LineSegmentCutUserObject
cut_data = '3.3120e-01 3.3200e-01 1.0001e+00 3.3200e-01'
time_start_cut = 1.0
time_end_cut = 2.0
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = SMALL
planar_formulation = PLANE_STRAIN
add_variables = true
[../]
[]
[Functions]
[./right_disp_x]
type = PiecewiseLinear
x = '0 1.0 2.0 3.0'
y = '0 0.005 0.01 0.01'
[../]
[./top_disp_y]
type = PiecewiseLinear
x = '0 1.0 2.0 3.0'
y = '0 0.005 0.01 0.01'
[../]
[]
[BCs]
[./right_x]
type = FunctionDirichletBC
boundary = 1
variable = disp_x
function = right_disp_x
[../]
[./top_y]
type = FunctionDirichletBC
boundary = 2
variable = disp_y
function = top_disp_y
[../]
[./bottom_y]
type = DirichletBC
boundary = 0
variable = disp_y
value = 0.0
[../]
[./left_x]
type = DirichletBC
boundary = 3
variable = disp_x
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-16
nl_abs_tol = 1e-10
# time control
start_time = 0.0
dt = 1.0
end_time = 2.2
num_steps = 5000
[]
[Outputs]
file_base = square_branch_tri_2d_out
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_fileread.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx=1
ny=1
nz=1
xmin=0.0
xmax=1.0
ymin=0.0
ymax=1.0
zmin=0.0
zmax=1.0
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[./disp_z]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = 'initial timestep_end'
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = 'initial timestep_end'
block = 0
[../]
[]
[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
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
slip_sys_res_prop_file_name = input_slip_sys_res.txt
slip_sys_flow_prop_file_name = input_slip_sys_flow_prop.txt
hprops = '1.0 541.5 60.8 109.8 2.5'
nss = 12
intvar_read_type = slip_sys_res_file
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
execute_on = 'initial timestep_end'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
execute_on = 'initial timestep_end'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
execute_on = 'initial timestep_end'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
execute_on = 'initial timestep_end'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.05
dtmax = 10.0
dtmin = 0.05
num_steps = 10
[]
[Outputs]
file_base = crysp_fileread_out
exodus = true
[]
(test/tests/geomsearch/2d_moving_penetration/restart2.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test1.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
dt = 0.05
end_time = 1.0
[]
[Outputs]
exodus = true
[]
[Problem]
restart_file_base = restart_out_cp/0010
[]
(modules/solid_mechanics/test/tests/isotropicSD_plasticity/isotropicSD.i)
# UserObject IsotropicSD test, with constant hardening.
# Linear strain is applied in the x and y direction.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.5
zmax = .5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = 'right'
function = '0.005*t'
[../]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = '0.005*t'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./zfix]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[./sdev]
order = CONSTANT
family = MONOMIAL
[../]
[./sdet]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./plastic_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_xx
index_i = 0
index_j = 0
[../]
[./plastic_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_xy
index_i = 0
index_j = 1
[../]
[./plastic_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_xz
index_i = 0
index_j = 2
[../]
[./plastic_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_yy
index_i = 1
index_j = 1
[../]
[./plastic_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_yz
index_i = 1
index_j = 2
[../]
[./plastic_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = intnl
[../]
[./sdev]
type = RankTwoScalarAux
variable = sdev
rank_two_tensor = stress
scalar_type = VonMisesStress
[../]
[]
[Postprocessors]
[./sdev]
type = PointValue
point = '0 0 0'
variable = sdev
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./p_xx]
type = PointValue
point = '0 0 0'
variable = plastic_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./p_xy]
type = PointValue
point = '0 0 0'
variable = plastic_xy
[../]
[./p_xz]
type = PointValue
point = '0 0 0'
variable = plastic_xz
[../]
[./p_yz]
type = PointValue
point = '0 0 0'
variable = plastic_yz
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./p_yy]
type = PointValue
point = '0 0 0'
variable = plastic_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./p_zz]
type = PointValue
point = '0 0 0'
variable = plastic_zz
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./str]
type = SolidMechanicsHardeningConstant
value = 300
[../]
[./IsotropicSD]
type = SolidMechanicsPlasticIsotropicSD
b = -0.2
c = -0.779422863
associative = true
yield_strength = str
yield_function_tolerance = 1e-5
internal_constraint_tolerance = 1e-9
use_custom_returnMap = false
use_custom_cto = false
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '121e3 80e3'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1e-9
plastic_models = IsotropicSD
debug_fspb = crash
tangent_operator = elastic
[../]
[]
[Executioner]
num_steps = 3
dt = .5
type = Transient
nl_rel_tol = 1e-6
nl_max_its = 10
l_tol = 1e-4
l_max_its = 50
solve_type = PJFNK
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Outputs]
perf_graph = false
csv = true
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
(modules/solid_mechanics/test/tests/weak_plane_shear/small_deform_harden1.i)
# apply repeated stretches to observe cohesion hardening
[GlobalParams]
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = 'stress_xz stress_zx stress_yz stress_zz'
[]
[BCs]
[bottomx]
type = DirichletBC
variable = x_disp
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = y_disp
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = z_disp
boundary = back
value = 0.0
[]
[topx]
type = FunctionDirichletBC
variable = x_disp
boundary = front
function = '0'
[]
[topy]
type = FunctionDirichletBC
variable = y_disp
boundary = front
function = '0'
[]
[topz]
type = FunctionDirichletBC
variable = z_disp
boundary = front
function = '2*t'
[]
[]
[AuxVariables]
[wps_internal]
order = CONSTANT
family = MONOMIAL
[]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[wps_internal_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = wps_internal
[]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[]
[s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[int]
type = PointValue
point = '0 0 0'
variable = wps_internal
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningExponential
value_0 = 1E3
value_residual = 2E3
rate = 4E4
[]
[tanphi]
type = SolidMechanicsHardeningConstant
value = 1.0
[]
[tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.01745506
[]
[wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
smoother = 500
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '1E9 0.5E9'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wps
transverse_direction = '0 0 1'
ep_plastic_tolerance = 1E-3
debug_fspb = crash
[]
[]
[Executioner]
end_time = 1E-6
dt = 1E-7
type = Transient
[]
[Outputs]
csv = true
[]
(modules/contact/test/tests/mortar_tm/2d/frictionless_first/small.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD4
order = FIRST
name = 'small'
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.3
xmax = 0.3
ymin = -10
ymax = 10
nx = 2
ny = 67
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.31
xmax = 0.91
ymin = 7.7
ymax = 8.5
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[action]
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'plank block'
[]
[]
[Contact]
[frictionless]
primary = plank_right
secondary = block_left
formulation = mortar
c_normal = 1e0
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = block_right
function = '-0.04*sin(4*(t+1.5))+0.02'
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = block_right
function = '-t'
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeLinearElasticStress
block = 'plank block'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 13.5
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'contact'
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[]
[Outputs]
file_base = ${name}
[comp]
type = CSV
show = 'contact'
[]
[out]
type = CSV
file_base = '${name}_out'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/uni_axial1.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
# back = zmin
# front = zmax
# bottom = ymin
# top = ymax
# left = xmin
# right = xmax
[./xmin_xzero]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = '0'
[../]
[./ymin_yzero]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = '0'
[../]
[./zmin_zzero]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = '0'
[../]
[./zmax_disp]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front'
function = '-1E-3*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./mc_int]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10E6
[../]
[./mc_phi]
type = SolidMechanicsHardeningExponential
value_0 = 0
value_residual = 0.6981317 # 40deg
rate = 10000
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 0
mc_edge_smoother = 25
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-10
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '5.77E10 3.85E10' # young = 100Gpa, poisson = 0.3
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-10
plastic_models = mc
max_NR_iterations = 1000
debug_fspb = crash
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
end_time = 0.5
dt = 0.05
solve_type = PJFNK # cannot use NEWTON because we are using ComputeFiniteStrain, and hence the Jacobian contributions will not be correct, even though ComputeMultiPlasticityStress will compute the correct consistent tangent operator for small strains
type = Transient
line_search = 'none'
nl_rel_tol = 1E-10
l_tol = 1E-3
l_max_its = 200
nl_max_its = 10
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[]
[Outputs]
file_base = uni_axial1
exodus = true
[./csv]
type = CSV
[../]
[]
(test/tests/outputs/variables/nemesis_hide.i)
# Solving for 2 variables, putting one into hide list and the other one into show list
# We should only see the variable that is in show list in the output.
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 2
ny = 2
elem_type = QUAD4
[]
# This should be the same as passing --distributed-mesh on the
# command line. You can verify this by looking at what MOOSE prints
# out for the "Mesh" information.
parallel_type = distributed
[./Partitioner]
type = LibmeshPartitioner
partitioner = linear
[../]
[]
[Functions]
[./fn_x]
type = ParsedFunction
expression = x
[../]
[./fn_y]
type = ParsedFunction
expression = y
[../]
[]
[Variables]
[./u]
[../]
[./v]
[../]
[]
[AuxVariables]
[./aux_u]
[../]
[./aux_v]
[../]
[./proc_id]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./diff_u]
type = Diffusion
variable = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[AuxKernels]
[./auxk_u]
type = FunctionAux
variable = aux_u
function = 'x*x+y*y'
[../]
[./auxk_v]
type = FunctionAux
variable = aux_v
function = '-(x*x+y*y)'
[../]
[./auxk_proc_id]
variable = proc_id
type = ProcessorIDAux
[../]
[]
[BCs]
[./u_bc]
type = FunctionDirichletBC
variable = u
boundary = '1 3'
function = fn_x
[../]
[./v_bc]
type = FunctionDirichletBC
variable = v
boundary = '0 2'
function = fn_y
[../]
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
[]
[Outputs]
console = true
[./out]
type = Nemesis
hide = 'u aux_v'
[../]
[]
(modules/solid_mechanics/test/tests/line_material_rank_two_sampler/rank_two_scalar_sampler.i)
[GlobalParams]
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 3
ny = 3
nz = 3
elem_type = HEX
[]
[Functions]
[./rampConstant]
type = PiecewiseLinear
x = '0. 1.'
y = '0. 1.'
scale_factor = 1e-6
[../]
[]
[Variables]
[./x_disp]
order = FIRST
family = LAGRANGE
[../]
[./y_disp]
order = FIRST
family = LAGRANGE
[../]
[./z_disp]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
[../]
[]
[VectorPostprocessors]
[./vonmises]
type = LineMaterialRankTwoScalarSampler
start = '0.1667 0.4 0.45'
end = '0.8333 0.6 0.55'
property = stress
scalar_type = VonMisesStress
sort_by = id
[../]
[]
[Kernels]
[SolidMechanics]
use_displaced_mesh = true
[../]
[]
[BCs]
[./front]
type = FunctionDirichletBC
variable = z_disp
boundary = 5
function = rampConstant
[../]
[./back_x]
type = DirichletBC
variable = x_disp
boundary = 0
value = 0.0
[../]
[./back_y]
type = DirichletBC
variable = y_disp
boundary = 0
value = 0.0
[../]
[./back_z]
type = DirichletBC
variable = z_disp
boundary = 0
value = 0.0
[../]
[]
[Materials]
[./elast_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = .3
[../]
[./strain]
type = ComputeSmallStrain
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_max_its = 100
start_time = 0.0
num_steps = 99999
end_time = 1.0
dt = 0.1
[]
[Outputs]
file_base = rank_two_scalar_sampler_out
csv = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/mms/supg/supg_adv_dominated_mms.i)
mu=1.5e-2
rho=2.5
[GlobalParams]
gravity = '0 0 0'
supg = true
convective_term = true
integrate_p_by_parts = false
transient_term = true
laplace = true
u = vel_x
v = vel_y
pressure = p
alpha = 1e0
order = SECOND
family = LAGRANGE
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1.0
ymin = 0
ymax = 1.0
elem_type = QUAD9
nx = 4
ny = 4
[]
[./corner_node]
type = ExtraNodesetGenerator
new_boundary = 'pinned_node'
nodes = '0'
input = gen
[../]
[]
[Variables]
[./vel_x]
[../]
[./vel_y]
[../]
[./p]
order = FIRST
[../]
[]
[Kernels]
# mass
[./mass]
type = INSMass
variable = p
[../]
[./x_time]
type = INSMomentumTimeDerivative
variable = vel_x
[../]
[./y_time]
type = INSMomentumTimeDerivative
variable = vel_y
[../]
# x-momentum, space
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
component = 0
forcing_func = vel_x_source_func
[../]
# y-momentum, space
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
component = 1
forcing_func = vel_y_source_func
[../]
[./p_source]
type = BodyForce
function = p_source_func
variable = p
[../]
[]
[BCs]
[./vel_x]
type = FunctionDirichletBC
boundary = 'left right top bottom'
function = vel_x_func
variable = vel_x
[../]
[./vel_y]
type = FunctionDirichletBC
boundary = 'left right top bottom'
function = vel_y_func
variable = vel_y
[../]
[./p]
type = FunctionDirichletBC
boundary = 'left right top bottom'
function = p_func
variable = p
[../]
[]
[Functions]
[./vel_x_source_func]
type = ParsedFunction
expression = '-${mu}*(-0.028*pi^2*x^2*sin(0.2*pi*x*y) - 0.028*pi^2*y^2*sin(0.2*pi*x*y) - 0.1*pi^2*sin(0.5*pi*x) - 0.4*pi^2*sin(pi*y)) + ${rho}*(0.14*pi*x*cos(0.2*pi*x*y) + 0.4*pi*cos(pi*y))*(0.6*sin(0.8*pi*x) + 0.3*sin(0.3*pi*y) + 0.2*sin(0.3*pi*x*y) + 0.3) + ${rho}*(0.14*pi*y*cos(0.2*pi*x*y) + 0.2*pi*cos(0.5*pi*x))*(0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5) + 0.1*pi*y*cos(0.2*pi*x*y) + 0.25*pi*cos(0.5*pi*x)'
[../]
[./vel_y_source_func]
type = ParsedFunction
expression = '-${mu}*(-0.018*pi^2*x^2*sin(0.3*pi*x*y) - 0.018*pi^2*y^2*sin(0.3*pi*x*y) - 0.384*pi^2*sin(0.8*pi*x) - 0.027*pi^2*sin(0.3*pi*y)) + ${rho}*(0.06*pi*x*cos(0.3*pi*x*y) + 0.09*pi*cos(0.3*pi*y))*(0.6*sin(0.8*pi*x) + 0.3*sin(0.3*pi*y) + 0.2*sin(0.3*pi*x*y) + 0.3) + ${rho}*(0.06*pi*y*cos(0.3*pi*x*y) + 0.48*pi*cos(0.8*pi*x))*(0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5) + 0.1*pi*x*cos(0.2*pi*x*y) + 0.3*pi*cos(0.3*pi*y)'
[../]
[./p_source_func]
type = ParsedFunction
expression = '-0.06*pi*x*cos(0.3*pi*x*y) - 0.14*pi*y*cos(0.2*pi*x*y) - 0.2*pi*cos(0.5*pi*x) - 0.09*pi*cos(0.3*pi*y)'
[../]
[./vel_x_func]
type = ParsedFunction
expression = '0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5'
[../]
[./vel_y_func]
type = ParsedFunction
expression = '0.6*sin(0.8*pi*x) + 0.3*sin(0.3*pi*y) + 0.2*sin(0.3*pi*x*y) + 0.3'
[../]
[./p_func]
type = ParsedFunction
expression = '0.5*sin(0.5*pi*x) + 1.0*sin(0.3*pi*y) + 0.5*sin(0.2*pi*x*y) + 0.5'
[../]
[./vxx_func]
type = ParsedFunction
expression = '0.14*pi*y*cos(0.2*pi*x*y) + 0.2*pi*cos(0.5*pi*x)'
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '${rho} ${mu}'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Transient
num_steps = 10
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = 'lu NONZERO'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-14
nl_max_its = 10
l_tol = 1e-6
l_max_its = 10
[./TimeStepper]
dt = .05
type = IterationAdaptiveDT
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Outputs]
execute_on = 'final'
[./exodus]
type = Exodus
[../]
[./csv]
type = CSV
[../]
[]
[Postprocessors]
[./L2vel_x]
type = ElementL2Error
variable = vel_x
function = vel_x_func
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2vel_y]
variable = vel_y
function = vel_y_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2p]
variable = p
function = p_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2vxx]
variable = vxx
function = vxx_func
type = ElementL2Error
outputs = 'console' execute_on = 'timestep_end'
[../]
[]
[AuxVariables]
[./vxx]
family = MONOMIAL
order = FIRST
[../]
[]
[AuxKernels]
[./vxx]
type = VariableGradientComponent
component = x
variable = vxx
gradient_variable = vel_x
[../]
[]
(modules/solid_mechanics/test/tests/rate_independent_cyclic_hardening/nonlin_kinharden_symmetric_strain_controlled.i)
# This simulation uses the piece-wise strain hardening model
# with the Finite strain formulation.
#
# This test applies a repeated displacement loading and unloading condition on
# the top in the y direction. The material deforms elastically until the
# loading reaches the initial yield point and then plastic deformation starts.
#
# This test captures isotropic hardening as well as kinematic hardening. Hence
# the yield surface begins to translate as well as grow as stress increases.
# The backstress and yield surface evolves with plastic strain to capture
# this translation and growth.
#
# If the reverse load is strong enough (more than yield point), the material
# will yield in the reverse direction, which takes into account the
# Bauschinger effect(reduction in yield stress in the opposite direction), which
# is dependent the value of kinematic hardening modulus.
#
# This test is based on the similar response obtained for a prescribed symmetrical
# stress path in Besson, Jacques, et al. Non-linear mechanics of materials. Vol. 167.
# Springer Science & Business Media, 2009 pg. 87 fig. 3.4(c). This SolidMechanics code
# matches the SolidMechanics solution.
[Mesh]
file = 1x1x1cube.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[top_pull]
type = PiecewiseLinear
xy_data = '0 0
0.025 0.0025
0.05 0.005
0.1 0.01
0.15 0.005
0.2 0
0.25 -0.005
0.3 -0.01
0.35 -0.005
0.45 0
0.5 0.005
0.55 0.01
0.65 0.005
0.7 0
0.75 -0.005
0.8 -0.01
0.85 -0.005
0.9 0
0.95 0.005
1 0.01
1.05 0.005
1.1 0
1.15 -0.005
1.2 -0.01
1.25 -0.005
1.3 0
1.35 0.005
1.4 0.01
1.45 0.005
1.5 0
1.55 -0.005
1.60 -0.01
1.65 -0.005
1.7 0
1.75 0.005
1.8 0.01
1.85 0.005
1.9 0
1.95 -0.005
2 -0.01
2.05 -0.005
2.10 0
2.15 0.005
2.2 0.01
2.25 0.005
2.3 0
2.35 -0.005
2.4 -0.01
2.45 -0.005
2.5 0'
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'strain_yy stress_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
[]
[]
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0
[]
[kinematic_plasticity]
type = CombinedNonlinearHardeningPlasticity
yield_stress = 100
isotropic_hardening_constant = 0
q = 0
b = 0
kinematic_hardening_modulus = 60000
gamma = 400
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'kinematic_plasticity'
[]
[]
[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 = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 0.55 # change end_time = 2.5 for more cycles of kinematic hardening
dt = 0.00125 # keep dt = 0.000125 for a finer non linear kinematic plot
dtmin = 0.0001
[]
[Postprocessors]
[stress_yy]
type = ElementAverageValue
variable = stress_yy
[]
[strain_yy]
type = ElementAverageValue
variable = strain_yy
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform25.i)
# Mohr-Coulomb only
# apply equal stretches in x, y and z directions, to observe return to the MC tip
# Because of smoothing, the expected result is around
# Smax = Smid = Smin = 12.9
# The result is not exact because the smoothing is assymetrical.
# This test also employs a very small dilation angle, which makes return
# to the tip quite numerically difficult, so max_NR_iterations has been increased to 100
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 6
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_max]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_mid]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_min]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 1E-4
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1E7
poissons_ratio = 0.3
[../]
[./mc]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = ts
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
smoothing_tol = 5
yield_function_tol = 1.0E-9
max_NR_iterations = 100
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform25
csv = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/patch_recovery.i)
[GlobalParams]
displacements = 'ux uy'
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
[]
[AuxVariables]
[stress_xx_recovered]
order = FIRST
family = LAGRANGE
[]
[stress_yy_recovered]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
[tdisp]
type = ParsedFunction
expression = 0.01*t
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
[]
[AuxKernels]
[stress_xx_recovered]
type = NodalPatchRecoveryAux
variable = stress_xx_recovered
nodal_patch_recovery_uo = stress_xx_patch
execute_on = 'TIMESTEP_END'
[]
[stress_yy_recovered]
type = NodalPatchRecoveryAux
variable = stress_yy_recovered
nodal_patch_recovery_uo = stress_yy_patch
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = uy
boundary = top
function = tdisp
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[]
[UserObjects]
[stress_xx_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '0 0'
execute_on = 'TIMESTEP_END'
[]
[stress_yy_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '1 1'
execute_on = 'TIMESTEP_END'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(test/tests/mortar/continuity-2d-conforming/conforming-2nd-order.i)
[Mesh]
[file]
type = FileMeshGenerator
file = 2blk-conf-2nd.e
[]
[secondary]
input = file
type = LowerDBlockFromSidesetGenerator
sidesets = '101'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = '100'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Problem]
kernel_coverage_check = false
[]
[Functions]
[./exact_sln]
type = ParsedFunction
expression= x*x+y*y
[../]
[./ffn]
type = ParsedFunction
expression= -4
[../]
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
block = '1 2'
[../]
[./lm]
order = SECOND
family = LAGRANGE
block = secondary_lower
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[Constraints]
[./ced]
type = EqualValueConstraint
variable = lm
secondary_variable = u
primary_boundary = 100
primary_subdomain = 10000
secondary_boundary = 101
secondary_subdomain = 10001
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1 2 3 4'
function = exact_sln
[../]
[]
[Postprocessors]
[./l2_error]
type = ElementL2Error
variable = u
function = exact_sln
block = '1 2'
execute_on = 'initial timestep_end'
[../]
[]
[Preconditioning]
[./fmp]
type = SMP
full = true
solve_type = 'NEWTON'
[../]
[]
[Executioner]
type = Steady
nl_rel_tol = 1e-14
l_tol = 1e-14
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/mortar_dynamics/block-dynamics.i)
starting_point = 2e-1
offset = -0.19
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[normal_lm]
block = 3
use_dual = true
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[DynamicTensorMechanics]
displacements = 'disp_x disp_y'
generate_output = 'stress_xx stress_yy'
strain = FINITE
block = '1 2'
stiffness_damping_coefficient = 1.0
hht_alpha = 0.0
[]
[inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[]
[Materials]
[elasticity_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elasticity_1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e8
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[strain]
type = ComputeFiniteStrain
block = '1 2'
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '7750'
[]
[]
[AuxVariables]
[vel_x]
block = '1 2'
[]
[accel_x]
block = '1 2'
[]
[vel_y]
block = '1 2'
[]
[accel_y]
block = '1 2'
[]
[vel_z]
block = '1 2'
[]
[accel_z]
block = '1 2'
[]
[]
[AuxKernels]
[accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = 'LINEAR timestep_end'
[]
[vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = 'LINEAR timestep_end'
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = 'LINEAR timestep_end'
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = 'LINEAR timestep_end'
[]
[]
# User object provides the contact force (e.g. LM)
# for the application of the generalized force
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable = normal_lm
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeDynamicWeightedGapLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
c = 1e4
capture_tolerance = 1.0e-5
newmark_beta = 0.25
newmark_gamma = 0.5
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 4 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 75
dt = 0.05
dtmin = .05
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err '
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
nl_max_its = 20
line_search = 'none'
snesmf_reuse_base = false
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
checkpoint = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(test/tests/postprocessors/element_integral_var_pps/initial_pps.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 3
ny = 3
elem_type = QUAD9
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 2.8
[../]
[../]
[./v]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 5.4
[../]
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
expression = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
expression = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
expression = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '1'
value = 0
[../]
[]
[Postprocessors]
[./initial_u]
type = ElementIntegralVariablePostprocessor
variable = u
execute_on = initial
[../]
[./initial_v]
type = ElementIntegralVariablePostprocessor
variable = v
execute_on = initial
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 0.3
[]
[Outputs]
file_base = out_initial_pps
exodus = true
[]
(modules/contact/test/tests/adaptivity/contact_initial_adaptivity.i)
# This is a test of the usage of initial adaptivity with contact.
# It ensures that contact is enforced on the new nodes that are
# created due to refinement on the secondary side of the interface.
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Mesh]
file = 2blocks.e
patch_size = 80
parallel_type = replicated
[]
[AuxVariables]
[./penetration]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./negramp]
type = ParsedFunction
expression = -t/10
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[]
[]
[AuxKernels]
[./penetration]
type = PenetrationAux
variable = penetration
boundary = 3
paired_boundary = 2
[../]
[]
[Postprocessors]
[./nonlinear_its]
type = NumNonlinearIterations
execute_on = timestep_end
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = negramp
[../]
[./right_y]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[]
[Materials]
[./stiffStuff1]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stiffStuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Contact]
[./leftright]
secondary = 3
primary = 2
model = frictionless
penalty = 1e+6
normal_smoothing_distance = 0.1
[../]
[]
[Adaptivity]
cycles_per_step = 0
marker = box
max_h_level = 2
initial_steps = 2
[./Markers]
[./box]
type = BoxMarker
bottom_left = '0.5 -2.0 0.0'
top_right = '0.75 2.0 0.0'
inside = refine
outside = do_nothing
[../]
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.2
end_time = 1.0
l_tol = 1e-6
nl_rel_tol = 1e-12
nl_abs_tol = 1e-9
[]
[Outputs]
exodus = true
console = true
[]
(modules/solid_mechanics/test/tests/elastic_patch/elastic_patch.i)
# Patch Test
# This test is designed to compute constant xx, yy, zz, xy, yz, and zx
# stress on a set of irregular hexes. The mesh is composed of one
# block with seven elements. The elements form a unit cube with one
# internal element. There is a nodeset for each exterior node.
# The cube is displaced by 1e-6 units in x, 2e-6 in y, and 3e-6 in z.
# The faces are sheared as well (1e-6, 2e-6, and 3e-6 for xy, yz, and
# zx). This gives a uniform strain/stress state for all six unique
# tensor components.
# With Young's modulus at 1e6 and Poisson's ratio at 0, the shear
# modulus is 5e5 (G=E/2/(1+nu)). Therefore,
#
# stress xx = 1e6 * 1e-6 = 1
# stress yy = 1e6 * 2e-6 = 2
# stress zz = 1e6 * 3e-6 = 3
# stress xy = 2 * 5e5 * 1e-6 / 2 = 0.5
# (2 * G * gamma_xy / 2 = 2 * G * epsilon_xy)
# stress yz = 2 * 5e5 * 2e-6 / 2 = 1
# stress zx = 2 * 5e5 * 3e-6 / 2 = 1.5
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
block = '1 2 3 4 5 6 7'
[]
[Mesh]#Comment
file = elastic_patch.e
[] # Mesh
[Functions]
[./rampConstant1]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 1e-6
[../]
[./rampConstant2]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 2e-6
[../]
[./rampConstant3]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 3e-6
[../]
[./rampConstant4]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 4e-6
[../]
[./rampConstant6]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 6e-6
[../]
[] # Functions
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[] # Variables
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_energy]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic]
order = CONSTANT
family = MONOMIAL
[../]
[./firstinv]
order = CONSTANT
family = MONOMIAL
[../]
[./secondinv]
order = CONSTANT
family = MONOMIAL
[../]
[./thirdinv]
order = CONSTANT
family = MONOMIAL
[../]
[./maxprincipal]
order = CONSTANT
family = MONOMIAL
[../]
[./midprincipal]
order = CONSTANT
family = MONOMIAL
[../]
[./minprincipal]
order = CONSTANT
family = MONOMIAL
[../]
[./direction]
order = CONSTANT
family = MONOMIAL
[../]
[./max_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./sint]
order = CONSTANT
family = MONOMIAL
[../]
[] # AuxVariables
[Kernels]
[SolidMechanics]
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./elastic_energy]
type = ElasticEnergyAux
variable = elastic_energy
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = vonmisesStress
[../]
[./hydrostatic]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic
scalar_type = hydrostatic
[../]
[./fi]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = firstinv
scalar_type = firstinvariant
[../]
[./si]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = secondinv
scalar_type = secondinvariant
[../]
[./ti]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = thirdinv
scalar_type = thirdinvariant
[../]
[./maxprincipal]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = maxprincipal
scalar_type = MaxPRiNCIpAl
[../]
[./midprincipal]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = midprincipal
scalar_type = MidPRiNCIpAl
[../]
[./minprincipal]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = minprincipal
scalar_type = MiNPRiNCIpAl
[../]
[./direction]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = direction
scalar_type = direction
direction = '1 1 1'
[../]
[./max_shear]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = max_shear
scalar_type = MaxShear
[../]
[./sint]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = sint
scalar_type = StressIntensity
[../]
[] # AuxKernels
[BCs]
[./node1_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./node1_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = rampConstant2
[../]
[./node1_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 1
function = rampConstant3
[../]
[./node2_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 2
function = rampConstant1
[../]
[./node2_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = rampConstant2
[../]
[./node2_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 2
function = rampConstant6
[../]
[./node3_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 3
function = rampConstant1
[../]
[./node3_y]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[../]
[./node3_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 3
function = rampConstant3
[../]
[./node4_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[../]
[./node4_y]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[./node4_z]
type = DirichletBC
variable = disp_z
boundary = 4
value = 0.0
[../]
[./node5_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 5
function = rampConstant1
[../]
[./node5_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = rampConstant4
[../]
[./node5_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 5
function = rampConstant3
[../]
[./node6_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 6
function = rampConstant2
[../]
[./node6_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 6
function = rampConstant4
[../]
[./node6_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 6
function = rampConstant6
[../]
[./node7_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 7
function = rampConstant2
[../]
[./node7_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 7
function = rampConstant2
[../]
[./node7_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 7
function = rampConstant3
[../]
[./node8_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 8
function = rampConstant1
[../]
[./node8_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 8
function = rampConstant2
[../]
[./node8_z]
type = DirichletBC
variable = disp_z
boundary = 8
value = 0.0
[../]
[] # BCs
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./strain]
type = ComputeFiniteStrain
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[] # Materials
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_abs_tol = 1e-10
l_max_its = 20
start_time = 0.0
dt = 1.0
num_steps = 2
end_time = 2.0
[] # Executioner
[Outputs]
exodus = true
[] # Outputs
(modules/combined/test/tests/phase_field_fracture/crack2d_vi_solver.i)
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 20
xmax = 1
ymax = 1
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = F
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./mech]
add_variables = true
strain = SMALL
additional_generate_output = 'stress_yy'
save_in = 'resid_x resid_y'
[../]
[../]
[../]
[]
[ICs]
[./c_ic]
type = FunctionIC
function = ic
variable = c
[../]
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 'if(x<0.5 & y < 0.55 & y > 0.45,1, 0)'
[../]
[]
[AuxVariables]
[./resid_x]
[../]
[./resid_y]
[../]
[./bounds_dummy]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = 'top bottom'
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.04 1e-4'
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
property_name = L
expression = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
property_name = kappa_op
expression = 'gc_prop * l'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
[../]
[./damage_stress]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'local_fracture_energy'
decomposition_type = strain_spectral
use_snes_vi_solver = true
[../]
[./degradation]
type = DerivativeParsedMaterial
property_name = degradation
coupled_variables = 'c'
expression = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '0.0'
derivative_order = 2
[../]
[./local_fracture_energy]
type = DerivativeParsedMaterial
property_name = local_fracture_energy
coupled_variables = 'c'
material_property_names = 'gc_prop l'
expression = 'c^2 * gc_prop / 2 / l'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
coupled_variables = c
sum_materials = 'elastic_energy local_fracture_energy'
derivative_order = 2
property_name = F
[../]
[]
[Postprocessors]
[./resid_x]
type = NodalSum
variable = resid_x
boundary = 2
[../]
[./resid_y]
type = NodalSum
variable = resid_y
boundary = 2
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Bounds]
[./c_upper_bound]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = c
bound_type = upper
bound_value = 1.0
[../]
[./c_lower_bound]
type = VariableOldValueBounds
variable = bounds_dummy
bounded_variable = c
bound_type = lower
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -snes_type'
petsc_options_value = 'lu vinewtonrsls'
nl_rel_tol = 1e-8
l_max_its = 10
nl_max_its = 10
dt = 1e-4
dtmin = 1e-4
num_steps = 2
[]
[Outputs]
exodus = true
[]
(modules/xfem/test/tests/nucleation_uo/nucleate_AllEdgeCracks.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[XFEM]
geometric_cut_userobjects = 'cut_mesh2'
qrule = volfrac
output_cut_plane = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 20
xmin = 0
xmax = 1.0
ymin = 0.0
ymax = 2.0
elem_type = QUAD4
[]
[top_left]
type = BoundingBoxNodeSetGenerator
new_boundary = pull_top_left
bottom_left = '-0.01 1.99 0'
top_right = '0.11 2.01 0'
input = gen
[]
[]
[DomainIntegral]
integrals = 'InteractionIntegralKI InteractionIntegralKII'
displacements = 'disp_x disp_y'
crack_front_points_provider = cut_mesh2
2d=true
number_points_from_provider = 0
crack_direction_method = CurvedCrackFront
radius_inner = '0.15'
radius_outer = '0.45'
poissons_ratio = 0.3
youngs_modulus = 207000
block = 0
incremental = true
[]
[UserObjects]
[nucleate]
type = MeshCut2DRankTwoTensorNucleation
tensor = stress
scalar_type = MaxPrincipal
nucleation_threshold = 180
initiate_on_boundary = 'left'
nucleation_radius = .21
edge_extension_factor = 2e-5
nucleation_length = 0.11
[]
[cut_mesh2]
type = MeshCut2DFractureUserObject
mesh_file = make_edge_crack_in.e
k_critical=500000 #Large so that cracks will not grow
growth_increment = 0.11
nucleate_uo = nucleate
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
planar_formulation = plane_strain
add_variables = true
generate_output = 'stress_xx stress_yy vonmises_stress max_principal_stress'
[]
[]
[Functions]
[bc_pull_top]
type = ParsedFunction
expression = 0.0005*t
[]
[]
[BCs]
[top_edges]
type = FunctionDirichletBC
boundary = 'pull_top_left'
variable = disp_y
function = bc_pull_top
[]
[bottom_x]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[]
[bottom_y]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 207000
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
l_max_its = 100
l_tol = 1e-2
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
start_time = 0.0
dt = 1.0
end_time = 5
max_xfem_update = 100
[]
[Outputs]
csv=true
execute_on = TIMESTEP_END
[]
(modules/solid_mechanics/test/tests/mean_cap_TC/small_deform4.i)
# apply nonuniform compression in x, y and z directions such that
# trial_stress(0, 0) = 2
# trial_stress(1, 1) = -8
# trial_stress(2, 2) = -10
# With compressive_strength = -1, the algorithm should return to trace(stress) = -1, or
# stress(0, 0) = 7
# stress(1, 1) = -3
# stress(2, 2) = -5
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-7*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-4E-7*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-5E-7*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[]
[UserObjects]
[./tensile_strength]
type = SolidMechanicsHardeningConstant
value = 2
[../]
[./compressive_strength]
type = SolidMechanicsHardeningConstant
value = -1
[../]
[./cap]
type = SolidMechanicsPlasticMeanCapTC
tensile_strength = tensile_strength
compressive_strength = compressive_strength
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
use_custom_returnMap = true
use_custom_cto = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mean_cap]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = cap
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform4
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/mean_cap_TC/random03.i)
# apply many random large deformations, checking that the algorithm returns correctly to
# the yield surface each time.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 125
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./max_yield_fcn]
type = ElementExtremeValue
variable = yield_fcn
outputs = 'console'
[../]
[./should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console'
[../]
[]
[Functions]
[./should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'max_yield_fcn'
[../]
[]
[UserObjects]
[./tensile_strength]
type = SolidMechanicsHardeningCubic
value_0 = 1
value_residual = 0.1
internal_limit = 0.1
[../]
[./compressive_strength]
type = SolidMechanicsHardeningCubic
value_0 = -1.5
value_residual = 0
internal_limit = 0.1
[../]
[./cap]
type = SolidMechanicsPlasticMeanCapTC
tensile_strength = tensile_strength
compressive_strength = compressive_strength
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
use_custom_returnMap = false
use_custom_cto = false
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
max_NR_iterations = 2
ep_plastic_tolerance = 1E-8
plastic_models = cap
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random03
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/karthik-eg-1.i)
[Mesh]
type = GeneratedMesh
elem_type = HEX8
dim = 3
nz = 10
xmax = 10
ymax = 10
zmax = 100
[]
[Variables]
[./x_disp]
block = 0
[../]
[./y_disp]
block = 0
[../]
[./z_disp]
block = 0
[../]
[]
[SolidMechanics]
[./solid]
# disp_x = x_disp
# disp_y = y_disp
# disp_z = z_disp
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Materials]
active = 'fcrysp'
[./felastic]
type = FiniteStrainElasticMaterial
block = 0
fill_method = symmetric9
disp_x = x_disp
disp_y = y_disp
disp_z = z_disp
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
[../]
[./fcrysp]
type = FiniteStrainCrystalPlasticity
block = 0
disp_y = y_disp
disp_x = x_disp
disp_z = z_disp
flowprops = '1 12 0.001 0.1'
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
nss = 12
hprops = '1.0 541.5 60.8 109.8'
gprops = '1 12 60.8'
fill_method = symmetric9
slip_sys_file_name = input_slip_sys.txt
[../]
[]
[Functions]
[./topdisp]
type = ParsedFunction
expression = 0.7*t
[../]
[./tpress]
type = ParsedFunction
expression = -200*t
[../]
[]
[BCs]
[./zbc]
type = DirichletBC
variable = z_disp
boundary = back
value = 0
[../]
[./ybc]
type = DirichletBC
variable = y_disp
boundary = bottom
value = 0
[../]
[./xbc]
type = DirichletBC
variable = x_disp
boundary = left
value = 0
[../]
[./zmove]
type = FunctionDirichletBC
variable = z_disp
boundary = front
function = topdisp
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 3
index_j = 3
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
rank_two_tensor = lage
variable = e_zz
index_i = 3
index_j = 3
execute_on = timestep_end
block = 0
[../]
[]
[Postprocessors]
[./szz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./ezz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
num_steps = 1000
end_time = 1
dt = 0.02
dtmax = 0.02
dtmin = 0.02
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-08
nl_rel_step_tol = 1e-08
nl_abs_step_tol = 1e-08
abort_on_solve_fail = true
n_startup_steps = 0.0
[]
[Outputs]
file_base = out
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/axisymmetric_cylindrical/total/patch/large.i)
[GlobalParams]
displacements = 'disp_r disp_z'
large_kinematics = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[]
[]
[Problem]
coord_type = RZ
[]
[Variables]
[disp_r]
[]
[disp_z]
[]
[]
[Kernels]
[sdr]
type = TotalLagrangianStressDivergenceAxisymmetricCylindrical
variable = disp_r
component = 0
[]
[sdz]
type = TotalLagrangianStressDivergenceAxisymmetricCylindrical
variable = disp_z
component = 1
[]
[]
[BCs]
[bottom]
type = DirichletBC
preset = false
variable = disp_z
boundary = bottom
value = 0.0
[]
[top]
type = FunctionDirichletBC
preset = false
variable = disp_z
boundary = top
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
output_properties = 'pk1_stress'
outputs = 'exodus'
[]
[compute_strain]
type = ComputeLagrangianStrainAxisymmetricCylindrical
output_properties = 'mechanical_strain'
outputs = 'exodus'
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dt = 0.1
num_steps = 10
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/materials/correctness/neohookean.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[Functions]
[strain]
type = ParsedFunction
expression = 't'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[boty]
type = DirichletBC
preset = true
boundary = bottom
variable = disp_y
value = 0.0
[]
[backz]
type = DirichletBC
preset = true
boundary = back
variable = disp_z
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = strain
[]
[]
[Materials]
[compute_stress]
type = ComputeNeoHookeanStress
lambda = 4000.0
mu = 6700.0
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[AuxVariables]
[s11]
family = MONOMIAL
order = CONSTANT
[]
[s21]
family = MONOMIAL
order = CONSTANT
[]
[s31]
family = MONOMIAL
order = CONSTANT
[]
[s12]
family = MONOMIAL
order = CONSTANT
[]
[s22]
family = MONOMIAL
order = CONSTANT
[]
[s32]
family = MONOMIAL
order = CONSTANT
[]
[s13]
family = MONOMIAL
order = CONSTANT
[]
[s23]
family = MONOMIAL
order = CONSTANT
[]
[s33]
family = MONOMIAL
order = CONSTANT
[]
[F11]
family = MONOMIAL
order = CONSTANT
[]
[F21]
family = MONOMIAL
order = CONSTANT
[]
[F31]
family = MONOMIAL
order = CONSTANT
[]
[F12]
family = MONOMIAL
order = CONSTANT
[]
[F22]
family = MONOMIAL
order = CONSTANT
[]
[F32]
family = MONOMIAL
order = CONSTANT
[]
[F13]
family = MONOMIAL
order = CONSTANT
[]
[F23]
family = MONOMIAL
order = CONSTANT
[]
[F33]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[s11]
type = RankTwoAux
variable = s11
rank_two_tensor = pk1_stress
index_i = 0
index_j = 0
[]
[s21]
type = RankTwoAux
variable = s21
rank_two_tensor = pk1_stress
index_i = 1
index_j = 0
[]
[s31]
type = RankTwoAux
variable = s31
rank_two_tensor = pk1_stress
index_i = 2
index_j = 0
[]
[s12]
type = RankTwoAux
variable = s12
rank_two_tensor = pk1_stress
index_i = 0
index_j = 1
[]
[s22]
type = RankTwoAux
variable = s22
rank_two_tensor = pk1_stress
index_i = 1
index_j = 1
[]
[s32]
type = RankTwoAux
variable = s32
rank_two_tensor = pk1_stress
index_i = 2
index_j = 1
[]
[s13]
type = RankTwoAux
variable = s13
rank_two_tensor = pk1_stress
index_i = 0
index_j = 2
[]
[s23]
type = RankTwoAux
variable = s23
rank_two_tensor = pk1_stress
index_i = 1
index_j = 2
[]
[s33]
type = RankTwoAux
variable = s33
rank_two_tensor = pk1_stress
index_i = 2
index_j = 2
[]
[F11]
type = RankTwoAux
variable = F11
rank_two_tensor = deformation_gradient
index_i = 0
index_j = 0
[]
[F21]
type = RankTwoAux
variable = F21
rank_two_tensor = deformation_gradient
index_i = 1
index_j = 0
[]
[F31]
type = RankTwoAux
variable = F31
rank_two_tensor = deformation_gradient
index_i = 2
index_j = 0
[]
[F12]
type = RankTwoAux
variable = F12
rank_two_tensor = deformation_gradient
index_i = 0
index_j = 1
[]
[F22]
type = RankTwoAux
variable = F22
rank_two_tensor = deformation_gradient
index_i = 1
index_j = 1
[]
[F32]
type = RankTwoAux
variable = F32
rank_two_tensor = deformation_gradient
index_i = 2
index_j = 1
[]
[F13]
type = RankTwoAux
variable = F13
rank_two_tensor = deformation_gradient
index_i = 0
index_j = 2
[]
[F23]
type = RankTwoAux
variable = F23
rank_two_tensor = deformation_gradient
index_i = 1
index_j = 2
[]
[F33]
type = RankTwoAux
variable = F33
rank_two_tensor = deformation_gradient
index_i = 2
index_j = 2
[]
[]
[Postprocessors]
[s11]
type = ElementAverageValue
variable = s11
execute_on = 'initial timestep_end'
[]
[s21]
type = ElementAverageValue
variable = s21
execute_on = 'initial timestep_end'
[]
[s31]
type = ElementAverageValue
variable = s31
execute_on = 'initial timestep_end'
[]
[s12]
type = ElementAverageValue
variable = s12
execute_on = 'initial timestep_end'
[]
[s22]
type = ElementAverageValue
variable = s22
execute_on = 'initial timestep_end'
[]
[s32]
type = ElementAverageValue
variable = s32
execute_on = 'initial timestep_end'
[]
[s13]
type = ElementAverageValue
variable = s13
execute_on = 'initial timestep_end'
[]
[s23]
type = ElementAverageValue
variable = s23
execute_on = 'initial timestep_end'
[]
[s33]
type = ElementAverageValue
variable = s33
execute_on = 'initial timestep_end'
[]
[F11]
type = ElementAverageValue
variable = F11
execute_on = 'initial timestep_end'
[]
[F21]
type = ElementAverageValue
variable = F21
execute_on = 'initial timestep_end'
[]
[F31]
type = ElementAverageValue
variable = F31
execute_on = 'initial timestep_end'
[]
[F12]
type = ElementAverageValue
variable = F12
execute_on = 'initial timestep_end'
[]
[F22]
type = ElementAverageValue
variable = F22
execute_on = 'initial timestep_end'
[]
[F32]
type = ElementAverageValue
variable = F32
execute_on = 'initial timestep_end'
[]
[F13]
type = ElementAverageValue
variable = F13
execute_on = 'initial timestep_end'
[]
[F23]
type = ElementAverageValue
variable = F23
execute_on = 'initial timestep_end'
[]
[F33]
type = ElementAverageValue
variable = F33
execute_on = 'initial timestep_end'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 10
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
dtmin = 1.0
end_time = 1.0
[]
[Outputs]
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/isotropicSD_plasticity/powerRuleHardening.i)
# UserObject IsotropicSD test, with power rule hardening with rate 1e2.
# Linear strain is applied in the x and y direction.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.5
zmax = .5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = 'right'
function = '0.005*t'
[../]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = '0.005*t'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
#boundary = 'bottom top'
boundary = 'bottom'
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./zfix]
type = DirichletBC
variable = disp_z
#boundary = 'front back'
boundary = 'back'
value = 0
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[./sdev]
order = CONSTANT
family = MONOMIAL
[../]
[./sdet]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./plastic_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_xx
index_i = 0
index_j = 0
[../]
[./plastic_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_xy
index_i = 0
index_j = 1
[../]
[./plastic_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_xz
index_i = 0
index_j = 2
[../]
[./plastic_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_yy
index_i = 1
index_j = 1
[../]
[./plastic_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_yz
index_i = 1
index_j = 2
[../]
[./plastic_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = intnl
[../]
[./sdev]
type = RankTwoScalarAux
variable = sdev
rank_two_tensor = stress
scalar_type = VonMisesStress
[../]
[]
[Postprocessors]
[./sdev]
type = PointValue
point = '0 0 0'
variable = sdev
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./p_xx]
type = PointValue
point = '0 0 0'
variable = plastic_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./p_xy]
type = PointValue
point = '0 0 0'
variable = plastic_xy
[../]
[./p_xz]
type = PointValue
point = '0 0 0'
variable = plastic_xz
[../]
[./p_yz]
type = PointValue
point = '0 0 0'
variable = plastic_yz
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./p_yy]
type = PointValue
point = '0 0 0'
variable = plastic_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./p_zz]
type = PointValue
point = '0 0 0'
variable = plastic_zz
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./str]
type = SolidMechanicsHardeningPowerRule
value_0 = 300
epsilon0 = 1
exponent = 1e2
[../]
[./IsotropicSD]
type = SolidMechanicsPlasticIsotropicSD
b = -0.2
c = -0.779422863
associative = true
yield_strength = str
yield_function_tolerance = 1e-5
internal_constraint_tolerance = 1e-9
use_custom_returnMap = false
use_custom_cto = false
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '121e3 80e3'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1e-9
plastic_models = IsotropicSD
debug_fspb = crash
tangent_operator = elastic
[../]
[]
[Executioner]
num_steps = 3
dt = .5
type = Transient
nl_rel_tol = 1e-6
nl_max_its = 10
l_tol = 1e-4
l_max_its = 50
solve_type = PJFNK
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Outputs]
perf_graph = false
csv = true
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
(modules/solid_mechanics/test/tests/neml2/crystal_plasticity/approx_kinematics.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = true
[]
[]
[]
[]
[NEML2]
input = 'approx_kinematics_neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL POSTPROCESSOR POSTPROCESSOR MATERIAL MATERIAL MATERIAL'
moose_inputs = ' spatial_velocity_increment time time elastic_strain orientation slip_hardening'
neml2_inputs = ' forces/spatial_velocity_increment forces/t old_forces/t old_state/elastic_strain old_state/orientation old_state/internal/slip_hardening'
moose_output_types = 'MATERIAL MATERIAL MATERIAL MATERIAL'
moose_outputs = ' neml2_cauchy_stress elastic_strain orientation slip_hardening'
neml2_outputs = ' state/internal/full_cauchy_stress state/elastic_strain state/orientation state/internal/slip_hardening'
moose_derivative_types = 'MATERIAL'
moose_derivatives = ' neml2_cauchy_jacobian'
neml2_derivatives = ' state/internal/full_cauchy_stress forces/spatial_velocity_increment'
initialize_outputs = ' orientation'
initialize_output_values = 'initial_orientation'
[]
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[copy]
type = ComputeLagrangianCauchyCustomStress
custom_cauchy_stress = 'neml2_cauchy_stress'
custom_cauchy_jacobian = 'neml2_cauchy_jacobian'
large_kinematics = true
[]
[initial_orientation]
type = GenericConstantRealVectorValue
vector_name = 'initial_orientation'
vector_values = '-0.54412095 -0.34931944 0.12600655'
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
preset = false
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 5e-3
dtmin = 1e-3
num_steps = 5
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
[]
(modules/xfem/test/tests/moment_fitting/solid_mechanics_moment_fitting.i)
# Test for a mechanics problem which uses four points moment_fitting approach.
# See this paper (https://doi.org/10.1007/s00466-018-1544-2) for more details about moment_fitting approach.
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[XFEM]
qrule = moment_fitting
output_cut_plane = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[UserObjects]
[./line_seg_cut_uo0]
type = LineSegmentCutUserObject
cut_data = '0.0000e+00 6.3330e-01 3.9000e-01 6.3330e-01'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[./line_seg_cut_uo1]
type = LineSegmentCutUserObject
cut_data = '3.9000e-01 6.3330e-01 6.8000e-01 6.3330e-01'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = SMALL
[../]
[]
[Functions]
[./right_trac_x]
type = ParsedFunction
expression = '-(t*M*y)/I'
symbol_names = 'M E I'
symbol_values = '2e4 1e6 0.666666667'
[../]
[./bottom_disp_y]
type = ParsedFunction
expression = '((t*M)/(2*E*I))*(1-nu*nu)*(x*x-0.25*l*l)'
symbol_names = 'M E I l nu'
symbol_values = '2e4 1e6 0.666666667 2.0 0.3'
[../]
[./soln_x]
type = ParsedFunction
expression = '-(M/(E*I))*(1-nu*nu)*x*y'
symbol_names = 'M E I nu'
symbol_values = '2e4 1e6 0.666666667 0.3'
[../]
[./soln_y]
type = ParsedFunction
expression = '(M/(2*E*I))*(1-nu*nu)*(x*x-0.25*l*l+(nu/(1-nu))*y*y)'
symbol_names = 'M E I l nu'
symbol_values = '2e4 1e6 0.666666667 2.0 0.3'
[../]
[]
[BCs]
[./right_x]
type = FunctionNeumannBC
boundary = 1
variable = disp_x
function = right_trac_x
[../]
[./bottom_y]
type = FunctionDirichletBC
boundary = 0
variable = disp_y
function = bottom_disp_y
[../]
[./left_x]
type = DirichletBC
boundary = 3
variable = disp_x
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
# [./Quadrature]
# order = FOURTH
# type = MONOMIAL
# [../]
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-16
nl_abs_tol = 1e-10
# time control
start_time = 0.0
dt = 0.5
end_time = 1.0
num_steps = 5000
[]
[Postprocessors]
[./numel]
type = NumElements
execute_on = timestep_end
[../]
[./integral]
type = ElementVectorL2Error
var_x = disp_x
var_y = disp_y
function_x = soln_x
function_y = soln_y
execute_on = timestep_end
[../]
[]
[Outputs]
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/combined/test/tests/j2_plasticity_vs_LSH/necking/j2_hard1_neckingRZ.i)
#
[Mesh]
file = necking_quad4.e
[]
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Problem]
coord_type = RZ
[]
[Variables]
[./disp_r]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./AxisymmetricRZ]
use_displaced_mesh = true
# save_in_disp_r = force_r
save_in_disp_z = force_z
[../]
[]
[AuxVariables]
[./stress_rr]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_rr]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
# [./force_r]
# order = FIRST
# family = LAGRANGE
# [../]
[./force_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./stress_rr]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_rr
index_i = 0
index_j = 0
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 1
index_j = 1
[../]
[./strain_rr]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_rr
index_i = 0
index_j = 0
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 1
index_j = 1
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_r
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = top
function = 't/5'
[../]
[]
[UserObjects]
[./str]
type = TensorMechanicsHardeningConstant
value = 2.4e2
[../]
[./j2]
type = TensorMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 1
fill_method = symmetric_isotropic
#with E = 2.1e5 and nu = 0.3
#changed to SM values using E-nu to Lambda-G
C_ijkl = '121154 80769.2'
[../]
[./strain]
type = ComputeAxisymmetricRZFiniteStrain
block = 1
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 1
ep_plastic_tolerance = 1E-9
plastic_models = j2
[../]
[]
[Executioner]
end_time = 0.1
dt = 0.005
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 = 100
nl_max_its = 100
nl_rel_tol = 1e-6
nl_abs_tol = 1e-15
l_tol = 1e-9
[]
[Postprocessors]
[./stress_rr]
type = ElementAverageValue
variable = stress_rr
[../]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./strain_rr]
type = ElementAverageValue
variable = strain_rr
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
[../]
[./disp_z]
type = NodalSum
variable = disp_z
boundary = top
[../]
[./force_z]
type = NodalSum
variable = force_z
boundary = top
[../]
[]
[Outputs]
exodus = true
csv = true
print_linear_residuals = false
perf_graph = true
[]
(python/mms/test/mms_spatial.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 8
ny = 8
[]
[Variables]
[u][]
[]
[Kernels]
[diff]
type = ADDiffusion
variable = u
[]
[force]
type = BodyForce
variable = u
function = force
[]
[]
[Functions]
[exact]
type = ParsedFunction
expression = 'sin(2*pi*x)*sin(2*pi*y)'
[]
[force]
type = ParsedFunction
expression = '8*pi^2*sin(2*x*pi)*sin(2*y*pi)'
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
function = exact
boundary = 'left right top bottom'
[]
[]
[Postprocessors]
[error]
type = ElementL2Error
function = exact
variable = u
[]
[h]
type = AverageElementSize
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/user_object_011orientation.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[./pk2]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./lagrangian_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./lagrangian_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[./slip_increment]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[./pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = pk2
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./lagrangian_strain_zz]
type = RankTwoAux
variable = lagrangian_strain_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./lagrangian_strain_yy]
type = RankTwoAux
rank_two_tensor = lage
variable = lagrangian_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_rate_gss
index = 0
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[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
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.01*t'
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
euler_angle_1 = 120.0
euler_angle_2 = 125.264
euler_angle_3 = 45.0
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./pk2]
type = ElementAverageValue
variable = pk2
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./lagrangian_strain_yy]
type = ElementAverageValue
variable = lagrangian_strain_yy
[../]
[./lagrangian_strain_zz]
type = ElementAverageValue
variable = lagrangian_strain_zz
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[./slip_increment]
type = ElementAverageValue
variable = slip_increment
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
dtmin = 0.05
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
csv = true
[]
(test/tests/utils/spline_interpolation/bicubic_spline_interpolation_y_normal.i)
[Mesh]
type = GeneratedMesh
dim = 3
ny = 1 # needed to ensure Z is the problem dimension
nx = 4
nz = 4
xmax = 4
zmax = 4
[]
[Functions]
[./yx1]
type = ParsedFunction
expression = '3*z^2'
[../]
[./yx2]
type = ParsedFunction
expression = '6*x^2'
[../]
[./spline_fn]
type = BicubicSplineFunction
normal_component = y
x1 = '0 2 4'
x2 = '0 2 4 6'
y = '0 16 128 432 8 24 136 440 64 80 192 496'
yx11 = '0 0 0 0'
yx1n = '48 48 48 48'
yx21 = '0 0 0'
yx2n = '216 216 216'
yx1 = 'yx1'
yx2 = 'yx2'
[../]
[./u_func]
type = ParsedFunction
expression = 'z^3 + 2*x^3'
[../]
[./u2_forcing_func]
type = ParsedFunction
expression = '-6*z - 12*x'
[../]
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./bi_func_value]
order = FIRST
family = LAGRANGE
[../]
[./x_deriv]
order = FIRST
family = LAGRANGE
[../]
[./z_deriv]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./bi_func_value]
type = FunctionAux
variable = bi_func_value
function = spline_fn
[../]
[./deriv_1]
type = FunctionDerivativeAux
function = spline_fn
variable = z_deriv
component = z
[../]
[./deriv_2]
type = FunctionDerivativeAux
function = spline_fn
variable = x_deriv
component = x
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./body_force]
type = BodyForce
variable = u
function = u2_forcing_func
[../]
[]
[BCs]
[./sides]
type = FunctionDirichletBC
variable = u
boundary = 'left right front back'
function = u_func
[../]
[]
[Postprocessors]
[./nodal_l2_err_spline]
type = NodalL2Error
variable = u
function = spline_fn
execute_on = 'initial timestep_end'
[../]
[./nodal_l2_err_analytic]
type = NodalL2Error
variable = u
function = u_func
execute_on = 'initial timestep_end'
[../]
[./x_deriv_err_analytic]
type = NodalL2Error
variable = x_deriv
function = yx2
execute_on = 'initial timestep_end'
[../]
[./z_deriv_err_analytic]
type = NodalL2Error
variable = z_deriv
function = yx1
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
nl_rel_tol = 1e-12
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test3.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test3.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1.e-10
l_max_its = 10
start_time = 0.0
dt = 0.0125
end_time = 1.0
[]
[Outputs]
file_base = pl_test3_out
exodus = true
[]
(tutorials/darcy_thermo_mech/step09_mechanics/problems/step9.i)
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 200
ymax = 0.304 # Length of test chamber
xmax = 0.0257 # Test chamber radius
[]
[bottom]
type = SubdomainBoundingBoxGenerator
input = gmg
location = inside
bottom_left = '0 0 0'
top_right = '0.01285 0.304 0'
block_id = 1
[]
coord_type = RZ
[]
[Variables]
[pressure]
[]
[temperature]
initial_condition = 300 # Start at room temperature
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
# This block adds all of the proper Kernels, strain calculators, and Variables
# for SolidMechanics in the correct coordinate system (autodetected)
add_variables = true
strain = FINITE
eigenstrain_names = eigenstrain
use_automatic_differentiation = true
generate_output = 'vonmises_stress elastic_strain_xx elastic_strain_yy strain_xx strain_yy'
[]
[]
[Kernels]
[darcy_pressure]
type = DarcyPressure
variable = pressure
[]
[heat_conduction]
type = ADHeatConduction
variable = temperature
[]
[heat_conduction_time_derivative]
type = ADHeatConductionTimeDerivative
variable = temperature
[]
[heat_convection]
type = DarcyAdvection
variable = temperature
pressure = pressure
[]
[]
[BCs]
[inlet_temperature]
type = FunctionDirichletBC
variable = temperature
boundary = bottom
function = 'if(t<0,350+50*t,350)'
[]
[outlet_temperature]
type = HeatConductionOutflow
variable = temperature
boundary = top
[]
[inlet]
type = DirichletBC
variable = pressure
boundary = bottom
value = 4000 # (Pa) From Figure 2 from paper. First data point for 1mm spheres.
[]
[outlet]
type = DirichletBC
variable = pressure
boundary = top
value = 0 # (Pa) Gives the correct pressure drop from Figure 2 for 1mm spheres
[]
[hold_inlet]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0
[]
[hold_center]
type = DirichletBC
variable = disp_r
boundary = left
value = 0
[]
[hold_outside]
type = DirichletBC
variable = disp_r
boundary = right
value = 0
[]
[]
[Materials]
viscosity_file = data/water_viscosity.csv
density_file = data/water_density.csv
thermal_conductivity_file = data/water_thermal_conductivity.csv
specific_heat_file = data/water_specific_heat.csv
thermal_expansion_file = data/water_thermal_expansion.csv
[column_top]
type = PackedColumn
block = 0
temperature = temperature
radius = 1.15
fluid_viscosity_file = ${viscosity_file}
fluid_density_file = ${density_file}
fluid_thermal_conductivity_file = ${thermal_conductivity_file}
fluid_specific_heat_file = ${specific_heat_file}
fluid_thermal_expansion_file = ${thermal_expansion_file}
[]
[column_bottom]
type = PackedColumn
block = 1
temperature = temperature
radius = 1
fluid_viscosity_file = ${viscosity_file}
fluid_density_file = ${density_file}
fluid_thermal_conductivity_file = ${thermal_conductivity_file}
fluid_specific_heat_file = ${specific_heat_file}
fluid_thermal_expansion_file = ${thermal_expansion_file}
[]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 200e9 # (Pa) from wikipedia
poissons_ratio = .3 # from wikipedia
[]
[elastic_stress]
type = ADComputeFiniteStrainElasticStress
[]
[thermal_strain]
type = ADComputeThermalExpansionEigenstrain
stress_free_temperature = 300
eigenstrain_name = eigenstrain
temperature = temperature
thermal_expansion_coeff = 1e-5
[]
[]
[Postprocessors/average_temperature]
type = ElementAverageValue
variable = temperature
[]
[AuxVariables/velocity]
order = CONSTANT
family = MONOMIAL_VEC
[]
[AuxKernels/velocity]
type = DarcyVelocity
variable = velocity
execute_on = timestep_end
pressure = pressure
[]
[Problem]
type = FEProblem
[]
[Executioner]
type = Transient
end_time = 200
dt = 0.25
start_time = -1
solve_type = PJFNK
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = none
automatic_scaling = true
compute_scaling_once = false
steady_state_tolerance = 1e-7
steady_state_detection = true
[TimeStepper]
type = FunctionDT
function = 'if(t<0,0.1,0.25)'
[]
[]
[Outputs/out]
type = Exodus
elemental_as_nodal = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/action/no_action_L.i)
[Mesh]
type = FileMesh
file = 'L.exo'
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
stabilize_strain = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Functions]
[pfn]
type = PiecewiseLinear
x = '0 1 2'
y = '0.00 0.3 0.5'
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[sdy]
type = UpdatedLagrangianStressDivergence
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[sdz]
type = UpdatedLagrangianStressDivergence
variable = disp_z
component = 2
use_displaced_mesh = true
[]
[]
[BCs]
[left]
type = DirichletBC
preset = true
variable = disp_x
boundary = fix
value = 0.0
[]
[bottom]
type = DirichletBC
preset = true
variable = disp_y
boundary = fix
value = 0.0
[]
[back]
type = DirichletBC
preset = true
variable = disp_z
boundary = fix
value = 0.0
[]
[front]
type = FunctionDirichletBC
variable = disp_z
boundary = pull
function = pfn
preset = true
[]
[]
[AuxVariables]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[strain_xz]
order = CONSTANT
family = MONOMIAL
[]
[strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[cauchy_stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[cauchy_stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[cauchy_stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[cauchy_stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[cauchy_stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[cauchy_stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[cauchy_stress_xx]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = cauchy_stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[cauchy_stress_yy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = cauchy_stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[cauchy_stress_zz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = cauchy_stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[cauchy_stress_xy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = cauchy_stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[cauchy_stress_xz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = cauchy_stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[cauchy_stress_yz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = cauchy_stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[strain_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
petsc_options_iname = -pc_type
petsc_options_value = lu
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
end_time = 1.0
dtmin = 0.5
dt = 0.5
[]
[Outputs]
exodus = true
csv = false
[]
(modules/solid_mechanics/test/tests/tensile/planar6.i)
# A single unit element is stretched by (0.5, 0.4, 0.3)E-6m
# with Lame lambda = 0.6E6 and Lame mu (shear) = 1E6
# stress_xx = 1.72 Pa
# stress_yy = 1.52 Pa
# stress_zz = 1.32 Pa
# tensile_strength is set to 0.5Pa with cubic hardening to 1Pa at intnl=1E-6
#
# The return should be to the tip with, according to mathematica
# sum(plastic_multiplier) = 5.67923989317E-7
# stress_xx = stress_yy = stress_zz = 0.80062961323
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.5E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.4E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.3E-6*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./hard]
type = SolidMechanicsHardeningCubic
value_0 = 0.5
value_residual = 1
internal_limit = 1E-6
[../]
[./tens]
type = SolidMechanicsPlasticTensileMulti
tensile_strength = hard
shift = 1E-6
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.6E6 1E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
plastic_models = tens
debug_fspb = none
debug_jac_at_stress = '1 2 3 2 -4 -5 3 -5 10'
debug_jac_at_pm = '0.1 0.2 0.3'
debug_jac_at_intnl = 1E-6
debug_stress_change = 1E-6
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = planar6
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/temperature_dependent_hardening/temp_dep_hardening.i)
#
# This is a test of the piece-wise linear strain hardening model using the
# small strain formulation. This test exercises the temperature-dependent
# hardening curve capability.
#
# Test procedure:
# 1. The element is pulled to and then beyond the yield stress for a given
# temperature.
# 2. The displacement is then constant while the temperature increases and
# the yield stress decreases. This results in a lower stress with more
# plastic strain.
# 3. The temperature decreases beyond its original value giving a higher
# yield stress. The displacement increases, causing increases stress to
# the new yield stress.
# 4. The temperature and yield stress are constant with increasing
# displacement giving a constant stress and more plastic strain.
#
# Plotting total_strain_yy on the x axis and stress_yy on the y axis shows
# the stress history in a clear way.
#
# s |
# t | *****
# r | *
# e | ***** *
# s | * * *
# s | * *
# |*
# +------------------
# total strain
#
# The exact same problem was run in Abaqus with exactly the same result.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
# This test uses ElementalVariableValue postprocessors on specific
# elements, so element numbering needs to stay unchanged
allow_renumbering = false
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 500.0
[../]
[]
[AuxKernels]
[./temp_aux]
type = FunctionAux
variable = temp
function = temp_hist
[../]
[]
[Functions]
[./top_pull]
type = PiecewiseLinear
x = '0 1 2 4 5 6'
y = '0 0.025 0.05 0.05 0.06 0.085'
[../]
[./hf1]
type = PiecewiseLinear
x = '0.0 0.01 0.02 0.03 0.1'
y = '5000 5030 5060 5090 5300'
[../]
[./hf2]
type = PiecewiseLinear
x = '0.0 0.01 0.02 0.03 0.1'
y = '4000 4020 4040 4060 4200'
[../]
[./temp_hist]
type = PiecewiseLinear
x = '0 1 2 3 4'
y = '500 500 500 600 400'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'stress_yy strain_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
[../]
[]
[BCs]
[./y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = 3
function = top_pull
[../]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[]
[Postprocessors]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.3
[../]
[./temp_dep_hardening]
type = TemperatureDependentHardeningStressUpdate
hardening_functions = 'hf1 hf2'
temperatures = '300.0 800.0'
relative_tolerance = 1e-25
absolute_tolerance = 1e-5
temperature = temp
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'temp_dep_hardening'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 6
dt = 0.1
[]
[Outputs]
[./out]
type = Exodus
[../]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/uni_axial2.i)
[Mesh]
type = FileMesh
file = quarter_hole.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./zmin_zzero]
type = DirichletBC
variable = disp_z
boundary = 'zmin'
value = '0'
[../]
[./xmin_xzero]
type = DirichletBC
variable = disp_x
boundary = 'xmin'
value = '0'
[../]
[./ymin_yzero]
type = DirichletBC
variable = disp_y
boundary = 'ymin'
value = '0'
[../]
[./ymax_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'ymax'
function = '-1E-4*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0.005 0.02 0.002'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0.005 0.02 0.002'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10E6
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 2
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 2
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 0.01E6
mc_edge_smoother = 29
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 1
fill_method = symmetric_isotropic
C_ijkl = '0 5E9' # young = 10Gpa, poisson = 0.0
[../]
[./strain]
type = ComputeIncrementalStrain
block = 1
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 1
ep_plastic_tolerance = 1E-11
plastic_models = mc
max_NR_iterations = 1000
debug_fspb = crash
[../]
[]
# Preconditioning and Executioner options kindly provided by Andrea
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
end_time = 0.5
dt = 0.1
solve_type = NEWTON
type = Transient
l_tol = 1E-2
nl_abs_tol = 1E-9
nl_rel_tol = 1E-11
l_max_its = 200
nl_max_its = 400
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[]
[Outputs]
file_base = uni_axial2
exodus = true
[./csv]
type = CSV
[../]
[]
(test/tests/outputs/postprocessor/show_hide.i)
# Having 2 postprocessors, putting one into hide list and the other one into show list
# We should only see the PPS that is in the show list in the output.
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
# This test uses ElementalVariableValue postprocessors on specific
# elements, so element numbering needs to stay unchanged
allow_renumbering = false
[]
[Functions]
[./bc_fn]
type = ParsedFunction
expression = x
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1 3'
function = bc_fn
[../]
[]
[Postprocessors]
[./elem_56]
type = ElementalVariableValue
variable = u
elementid = 56
[../]
[./elem_12]
type = ElementalVariableValue
variable = u
elementid = 12
[../]
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
[]
[Outputs]
[./console]
type = Console
show = 'elem_56'
hide = 'elem_12'
[../]
[./out]
type = CSV
show = 'elem_56'
hide = 'elem_12'
[../]
[]
(test/tests/postprocessors/pps_interval/pps_out_interval.i)
[Mesh]
file = square-2x2-nodeids.e
# This test can only be run with renumering disabled, so the
# NodalVariableValue postprocessor's node id is well-defined.
allow_renumbering = false
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[../]
[./v]
order = SECOND
family = LAGRANGE
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
expression = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
expression = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
expression = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '2'
value = 0
[../]
[]
[Postprocessors]
active = 'l2 node1 node4'
[./l2]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./node1]
type = NodalVariableValue
variable = u
nodeid = 15
[../]
[./node4]
type = NodalVariableValue
variable = v
nodeid = 10
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 1
[]
[Outputs]
file_base = pps_out_interval
time_step_interval = 2
exodus = true
[./console]
type = Console
time_step_interval = 1
[../]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/exception.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
[../]
[./uy]
[../]
[./uz]
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./pk2]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[./slip_increment]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.1*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = pk2
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[./slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_rate_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8'
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
block = 0
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./pk2]
type = ElementAverageValue
variable = pk2
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[./slip_increment]
type = ElementAverageValue
variable = slip_increment
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.01
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/planar_hard4.i)
# apply repeated stretches in x direction, and smaller stretches along the y and z directions,
# so that sigma_II = sigma_III,
# which means that lode angle = -30deg.
# Both return to the edge (at lode_angle=-30deg, ie 000101) and tip are experienced.
#
# It is checked that the yield functions are less than their tolerance values
# It is checked that the cohesion hardens correctly
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.05E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.05E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[Functions]
[./should_be_zero_fcn]
type = ParsedFunction
expression = 'if((a<1E-5)&(b<1E-5)&(c<1E-5)&(d<1E-5)&(g<1E-5)&(h<1E-5),0,abs(a)+abs(b)+abs(c)+abs(d)+abs(g)+abs(h))'
symbol_names = 'a b c d g h'
symbol_values = 'f0 f1 f2 f3 f4 f5'
[../]
[./coh_analytic]
type = ParsedFunction
expression = '20-10*exp(-1E5*intnl)'
symbol_names = intnl
symbol_values = internal
[../]
[./coh_from_yieldfcns]
type = ParsedFunction
expression = '(f0+f1-(sxx+syy)*sin(phi))/(-2)/cos(phi)'
symbol_names = 'f0 f1 sxx syy phi'
symbol_values = 'f0 f1 s_xx s_yy 0.8726646'
[../]
[./should_be_zero_coh]
type = ParsedFunction
expression = 'if(abs(a-b)<1E-6,0,1E6*abs(a-b))'
symbol_names = 'a b'
symbol_values = 'Coh_analytic Coh_moose'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn0]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn1]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn2]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn3]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn4]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn5]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn0]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn0
[../]
[./yield_fcn1]
type = MaterialStdVectorAux
index = 1
property = plastic_yield_function
variable = yield_fcn1
[../]
[./yield_fcn2]
type = MaterialStdVectorAux
index = 2
property = plastic_yield_function
variable = yield_fcn2
[../]
[./yield_fcn3]
type = MaterialStdVectorAux
index = 3
property = plastic_yield_function
variable = yield_fcn3
[../]
[./yield_fcn4]
type = MaterialStdVectorAux
index = 4
property = plastic_yield_function
variable = yield_fcn4
[../]
[./yield_fcn5]
type = MaterialStdVectorAux
index = 5
property = plastic_yield_function
variable = yield_fcn5
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = yield_fcn2
[../]
[./f3]
type = PointValue
point = '0 0 0'
variable = yield_fcn3
[../]
[./f4]
type = PointValue
point = '0 0 0'
variable = yield_fcn4
[../]
[./f5]
type = PointValue
point = '0 0 0'
variable = yield_fcn5
[../]
[./yfcns_should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[../]
[./Coh_analytic]
type = FunctionValuePostprocessor
function = coh_analytic
[../]
[./Coh_moose]
type = FunctionValuePostprocessor
function = coh_from_yieldfcns
[../]
[./cohesion_difference_should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_coh
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningExponential
value_0 = 10
value_residual = 20
rate = 1E5
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 0.8726646
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 1 #0.8726646 # 50deg
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
use_custom_returnMap = true
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = mc
[../]
[]
[Executioner]
end_time = 10
dt = 2
type = Transient
[]
[Outputs]
file_base = planar_hard4
exodus = false
[./csv]
type = CSV
hide = 'f0 f1 f2 f3 f4 f5 s_xy s_xz s_yz Coh_analytic Coh_moose'
execute_on = 'timestep_end'
[../]
[]
(test/tests/postprocessors/pps_interval/pps_interval_mismatch.i)
[Mesh]
file = square-2x2-nodeids.e
# This test can only be run with renumering disabled, so the
# NodalVariableValue postprocessor's node id is well-defined.
allow_renumbering = false
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[../]
[./v]
order = SECOND
family = LAGRANGE
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
expression = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
expression = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
expression = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '2'
value = 0
[../]
[]
[Postprocessors]
active = 'l2 node1 node4'
[./l2]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./node1]
type = NodalVariableValue
variable = u
nodeid = 15
[../]
[./node4]
type = NodalVariableValue
variable = v
nodeid = 10
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 1
[]
[Outputs]
time_step_interval = 4
exodus = true
[./console]
type = Console
time_step_interval = 3
[../]
[]
(modules/contact/examples/2d_indenter/indenter_rz_fine.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
patch_update_strategy = auto
patch_size = 2
partitioner = centroid
centroid_partitioner_direction = y
[simple_mesh]
type = FileMeshGenerator
file = indenter_rz_fine_bigsideset.e
[]
# For NodalVariableValue to work with distributed mesh
allow_renumbering = false
[]
[Functions]
[disp_y]
type = PiecewiseLinear
x = '0. 1.0 2.0 2.6 3.0'
y = '0. -4.5 -5.7 -5.7 -4.0'
[]
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
block = '1 2'
[]
[disp_y]
order = FIRST
family = LAGRANGE
block = '1 2'
[]
[]
[AuxVariables]
[saved_x]
[]
[saved_y]
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
save_in = 'saved_x saved_y'
[]
[]
[BCs]
# Symmetries of the Problem
[symm_x_indenter]
type = DirichletBC
variable = disp_x
boundary = 5
value = 0.0
[]
[symm_x_material]
type = DirichletBC
variable = disp_x
boundary = 9
value = 0.0
[]
# Material should not fly away
[material_base_y]
type = DirichletBC
variable = disp_y
boundary = 8
value = 0.0
[]
# Drive indenter motion
[disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = disp_y
[]
[]
[Contact]
[contact]
secondary = 4
primary = 6
model = frictionless
# Investigate von Mises stress at the edge
correct_edge_dropping = true
formulation = mortar
c_normal = 1e+2
[]
[]
[UserObjects]
[slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 48
slip_sys_file_name = input_slip_sys_bcc48.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 48 0.0001 0.01'
uo_state_var_name = state_var_gss
slip_incr_tol = 10.0
block = 2
[]
[slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 48
uo_state_var_name = state_var_gss
block = 2
[]
[state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 48
groups = '0 24 48'
group_values = '900 1000' #120
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
block = 2
[]
[state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 48
hprops = '1.4 1000 1200 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
block = 2
[]
[]
[Materials]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e7
poissons_ratio = 0.25
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[crysp]
type = FiniteStrainUObasedCP
block = 2
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
maximum_substep_iteration = 20
[]
[elasticity_tensor]
type = ComputeElasticityTensorCP
block = 2
C_ijkl = '265190 113650 113650 265190 113650 265190 75769 75769 75760'
fill_method = symmetric9
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type '
'-pc_factor_shift_amount'
petsc_options_value = 'lu basic NONZERO 1e-15'
line_search = 'none'
automatic_scaling = true
nl_abs_tol = 2.0e-07
nl_rel_tol = 2.0e-07
l_max_its = 40
l_abs_tol = 1e-08
l_tol = 1e-08
start_time = 0.0
dt = 0.01
end_time = 3.0 # Executioner
[]
[Postprocessors]
[maxdisp]
type = NodalVariableValue
nodeid = 39
variable = disp_y
[]
[resid_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[]
[Outputs]
[out]
type = Exodus
elemental_as_nodal = true
[]
perf_graph = true
csv = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_inclined5.i)
# Plastic deformation, shear failure, with inclined normal direction = (1, 0, 0)
# With Young = 10, poisson=0.25 (Lame lambda=4, mu=4)
# applying the following
# deformation to the xmax surface of a unit cube:
# disp_x = 5*t/6
# disp_y = 6*t
# disp_z = 8*t
# should yield trial stress:
# stress_xx = 10*t
# stress_xz = 32*t
# stress_xy = 24*t (so q_trial = 40*t)
# Use tan(friction_angle) = 0.5 and tan(dilation_angle) = 1/6, and cohesion=20,
# the system should return to p=0, q=20, ie stress_xx=0, stress_zx=16,
# stress_yx=12 on the first time step (t=1)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = 5*t/6
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = right
function = 6*t
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = right
function = 8*t
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 20
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.166666666667
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 100
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 100
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '4 4'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakInclinedPlaneStressUpdate
normal_vector = '1 0 0'
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-5
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_inclined5
csv = true
[]
(modules/solid_mechanics/test/tests/recompute_radial_return/cp_affine_plasticity.i)
# Affine Plasticity Test for Transient Stress Eigenvalues with Stationary Eigenvectors
# This test is taken from K. Jamojjala, R. Brannon, A. Sadeghirad, J. Guilkey,
# "Verification tests in solid mechanics," Engineering with Computers, Vol 31.,
# p. 193-213.
# The test involves applying particular strains and expecting particular stresses.
# The material properties are:
# Yield in shear 165 MPa
# Shear modulus 79 GPa
# Poisson's ratio 1/3
# The strains are:
# Time e11 e22 e33
# 0 0 0 0
# 1 -0.003 -0.003 0.006
# 2 -0.0103923 0 0.0103923
# The expected stresses are:
# sigma11:
# -474*t 0 < t <= 0.201
# -95.26 0.201 < t <= 1
# (189.4+0.1704*sqrt(a)-0.003242*a)
# --------------------------------- 1 < t <= 2
# 1+0.00001712*a
# -189.4 t > 2 (paper erroneously gives a positive value)
#
# sigma22:
# -474*t 0 < t <= 0.201
# -95.26 0.201 < t <= 1
# -(76.87+1.443*sqrt(a)-0.001316*a)
# --------------------------------- 1 < t <= 2 (paper gives opposite sign)
# 1+0.00001712*a
# 76.87 t > 2
#
# sigma33:
# 948*t 0 < t <= 0.201
# 190.5 0.201 < t <= 1
# -(112.5-1.272*sqrt(a)-0.001926*a)
# --------------------------------- 1 < t <= 2 (paper has two sign errors here)
# 1+0.00001712*a
# 112.5 t > 2
#
# where a = exp(12.33*t).
#
# Note: If planning to run this case with strain type ComputeFiniteStrain, the
# displacement function must be adjusted. Instead of
# strain = (l - l0)/l0 = (u+l0 - l0)/l0 = u/l0
# with l0=1.0, we would have
# strain = log(l/l0) = log((u+l0)/l0)
# with l0=1.0. So, for strain = -0.003,
# -0.003 = log((u+l0)/l0) ->
# u = exp(-0.003)*l0 - l0 = -0.0029955044966269995.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
block = '0'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
# This test uses ElementalVariableValue postprocessors on specific
# elements, so element numbering needs to stay unchanged
allow_renumbering = false
[]
[Functions]
[disp_x]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. -0.003 -0.0103923'
[]
[disp_y]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. -0.003 0.'
[]
[disp_z]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 0.006 0.0103923'
[]
[stress_xx]
type = ParsedFunction
# The paper gives 0.201 as the time at initial yield, but 0.20097635952803425 is the exact value.
# The paper gives -95.26 MPa as the stress at yield, but -95.26279441628823 is the exact value.
# The paper gives 12.33 as the factor in the exponential, but 12.332921390339125 is the exact value.
# 189.409039923814000, 0.170423791206825, -0.003242011311945, 1.711645501845780E-05 - exact values
symbol_names = 'timeAtYield stressAtYield expFac a b c d'
symbol_values = '0.20097635952803425 -95.26279441628823 12.332921390339125 189.409039923814000 0.170423791206825 -0.003242011311945 1.711645501845780E-05'
value = '1e6*
if(t<=timeAtYield, -474*t,
if(t<=1, stressAtYield,
(a+b*sqrt(exp(expFac*t))+c*exp(expFac*t))/(1.0+d*exp(expFac*t))))' # tends to -a
[]
[stress_yy]
type = ParsedFunction
# The paper gives 0.201 as the time at initial yield, but 0.20097635952803425 is the exact value.
# the paper gives -95.26 MPa as the stress at yield, but -95.26279441628823 is the exact value.
# The paper gives 12.33 as the factor in the exponential, but 12.332921390339125 is the exact value.
# -76.867432297315000, -1.442488120272900, 0.001315697947301, 1.711645501845780E-05 - exact values
symbol_names = 'timeAtYield stressAtYield expFac a b c d'
symbol_values = '0.20097635952803425 -95.26279441628823 12.332921390339125 -76.867432297315000 -1.442488120272900 0.001315697947301 1.711645501845780E-05'
value = '1e6*
if(t<=timeAtYield, -474*t,
if(t<=1, stressAtYield,
(a+b*sqrt(exp(expFac*t))+c*exp(expFac*t))/(1.0+d*exp(expFac*t))))' # tends to -a
[]
[stress_zz]
type = ParsedFunction
# The paper gives 0.201 as the time at initial yield, but 0.20097635952803425 is the exact value.
# the paper gives 190.5 MPa as the stress at yield, but 190.52558883257645 is the exact value.
# The paper gives 12.33 as the factor in the exponential, but 12.332921390339125 is the exact value.
# -112.541607626499000, 1.272064329066080, 0.001926313364644, 1.711645501845780E-05 - exact values
symbol_names = 'timeAtYield stressAtYield expFac a b c d'
symbol_values = '0.20097635952803425 190.52558883257645 12.332921390339125 -112.541607626499000 1.272064329066080 0.001926313364644 1.711645501845780E-05'
value = '1e6*
if(t<=timeAtYield, 948*t,
if(t<=1, stressAtYield,
(a+b*sqrt(exp(expFac*t))+c*exp(expFac*t))/(1.0+d*exp(expFac*t))))' # tends to -a
[]
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[disp_z]
order = FIRST
family = LAGRANGE
[]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[SolidMechanics]
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = vonmisesStress
execute_on = 'timestep_end'
[../]
[./plastic_strain_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_strain_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./plastic_strain_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_strain_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./plastic_strain_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_strain_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[]
[BCs]
[fixed_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[fixed_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[fixed_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
[disp_x]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = disp_x
[]
[disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = disp_y
[]
[disp_z]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = disp_z
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 210666666666.666667
poissons_ratio = 0.3333333333333333
[../]
[./strain]
type = ComputeIncrementalStrain
[../]
[creep]
type = PowerLawCreepStressUpdate
coefficient = 0
n_exponent = 1
m_exponent = 1
activation_energy = 0
temperature = 1
[]
[isotropic_plasticity]
type = IsotropicPlasticityStressUpdate
yield_stress = 285788383.2488647 # = sqrt(3)*165e6 = sqrt(3) * yield in shear
hardening_constant = 0.0
[]
[radial_return_stress]
type = ComputeCreepPlasticityStress
tangent_operator = elastic
creep_model = creep
plasticity_model = isotropic_plasticity
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-10
l_max_its = 20
start_time = 0.0
dt = 0.01 # use 0.0001 for a nearly exact match
end_time = 2.0
[]
[Postprocessors]
[analytic_xx]
type = FunctionValuePostprocessor
function = stress_xx
[]
[analytic_yy]
type = FunctionValuePostprocessor
function = stress_yy
[]
[analytic_zz]
type = FunctionValuePostprocessor
function = stress_zz
[]
[stress_xx]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[]
[stress_yy]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[]
[stress_zz]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[]
[stress_xx_l2_error]
type = ElementL2Error
variable = stress_xx
function = stress_xx
[]
[stress_yy_l2_error]
type = ElementL2Error
variable = stress_yy
function = stress_yy
[]
[stress_zz_l2_error]
type = ElementL2Error
variable = stress_zz
function = stress_zz
[]
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/verification/patch_tests/single_pnt_2d/single_point_2d.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
file = single_point_2d.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./penetration]
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./appl_disp]
type = PiecewiseLinear
x = '0 0.001 0.101'
y = '0 0.0 -0.10'
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
save_in = 'saved_x saved_y'
[../]
[]
[AuxKernels]
[./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
[../]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = appl_disp
[../]
[./topy]
type = DirichletBC
variable = disp_y
boundary = 4
value = -0.002001
[../]
[]
[Materials]
[./bot_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e9
poissons_ratio = 0.3
[../]
[./bot_strain]
type = ComputePlaneFiniteStrain
block = '1'
[../]
[./bot_stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[../]
[./top_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./top_strain]
type = ComputePlaneFiniteStrain
block = '2'
[../]
[./top_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[../]
[./disp_x]
type = NodalVariableValue
nodeid = 5
variable = disp_x
[../]
[./disp_y]
type = NodalVariableValue
nodeid = 5
variable = disp_y
[../]
[./inc_slip_x]
type = NodalVariableValue
nodeid = 5
variable = inc_slip_x
[../]
[./inc_slip_y]
type = NodalVariableValue
nodeid = 5
variable = inc_slip_y
[../]
[./accum_slip_x]
type = NodalVariableValue
nodeid = 5
variable = accum_slip_x
[../]
[./accum_slip_y]
type = NodalVariableValue
nodeid = 5
variable = accum_slip_y
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -mat_superlu_dist_iterrefine'
petsc_options_value = 'lu superlu_dist 1'
line_search = 'none'
l_max_its = 100
nl_max_its = 200
dt = 0.001
end_time = 0.001
num_steps = 10000
nl_rel_tol = 1e-6
nl_abs_tol = 1e-8
dtmin = 0.001
l_tol = 1e-3
[]
[Outputs]
file_base = single_point_2d_out_glued_kin
print_linear_residuals = true
perf_graph = true
csv = true
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
primary = 2
secondary = 3
model = glued
formulation = kinematic
penalty = 1e12
normalize_penalty = true
tangential_tolerance = 1e-3
[../]
[]
(modules/contact/test/tests/sliding_block/in_and_out/frictionless_kinematic.i)
# This is a benchmark test that checks constraint based frictionless
# contact using the kinematic method. In this test a sinusoidal
# displacement is applied in the horizontal direction to simulate
# a small block come in and out of contact as it slides down a larger block.
#
# The sinusoid is of the form 0.4sin(4t)+0.2. The gold file is run
# on one processor and the benchmark
# case is run on a minimum of 4 processors to ensure no parallel variability
# in the contact pressure and penetration results. Further documentation can
# found in moose/modules/contact/doc/sliding_block/
#
[Mesh]
file = sliding_elastic_blocks_2d.e
patch_size = 80
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[./horizontal_movement]
type = ParsedFunction
expression = -0.04*sin(4*t)+0.02
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[../]
[]
[AuxKernels]
[./zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./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
[../]
[]
[Postprocessors]
[./nonlinear_its]
type = NumNonlinearIterations
execute_on = timestep_end
[../]
[./penetration]
type = NodalVariableValue
variable = penetration
nodeid = 222
[../]
[./contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 222
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = horizontal_movement
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
constant_on = SUBDOMAIN
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 20 101'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.1
end_time = 15
num_steps = 1000
l_tol = 1e-6
nl_rel_tol = 1e-10
nl_abs_tol = 1e-6
dtmin = 0.01
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
time_step_interval = 10
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
secondary = 3
primary = 2
model = frictionless
penalty = 1e+6
normal_smoothing_distance = 0.1
[../]
[]
(modules/solid_mechanics/test/tests/neml2/viscoplasticity/chaboche.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = true
[]
[]
[]
[]
[NEML2]
input = 'chaboche_neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL MATERIAL POSTPROCESSOR POSTPROCESSOR MATERIAL MATERIAL MATERIAL MATERIAL'
moose_inputs = ' neml2_strain neml2_strain time time neml2_stress equivalent_plastic_strain back_stress_1 back_stress_2'
neml2_inputs = ' forces/E old_forces/E forces/t old_forces/t old_state/S old_state/internal/ep old_state/internal/X1 old_state/internal/X2'
moose_output_types = 'MATERIAL MATERIAL MATERIAL MATERIAL'
moose_outputs = ' neml2_stress equivalent_plastic_strain back_stress_1 back_stress_2'
neml2_outputs = ' state/S state/internal/ep state/internal/X1 state/internal/X2'
moose_derivative_types = 'MATERIAL'
moose_derivatives = 'neml2_jacobian'
neml2_derivatives = 'state/S forces/E'
[]
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[convert_strain]
type = RankTwoTensorToSymmetricRankTwoTensor
from = 'mechanical_strain'
to = 'neml2_strain'
[]
[stress]
type = ComputeLagrangianObjectiveCustomSymmetricStress
custom_small_stress = 'neml2_stress'
custom_small_jacobian = 'neml2_jacobian'
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
preset = false
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 1e-3
dtmin = 1e-3
num_steps = 5
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
[]
(modules/xfem/test/tests/moving_interface/cut_mesh_2d.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
[]
[XFEM]
geometric_cut_userobjects = 'cut_mesh'
qrule = volfrac
output_cut_plane = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 11
ny = 11
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[block1]
type = SubdomainBoundingBoxGenerator
block_id = 1
bottom_left = '0 0 0'
top_right = '0.5 1 0'
input = gen
[]
[block2]
type = SubdomainBoundingBoxGenerator
block_id = 2
bottom_left = '0.5 0 0'
top_right = '1 1 0'
input = block1
[]
[]
[AuxVariables]
[u]
[]
[]
[UserObjects]
[cut_mesh]
type = InterfaceMeshCut2DUserObject
mesh_file = circle_surface.e
interface_velocity_function = vel_func
heal_always = true
block = 2
[]
[]
[Functions]
[vel_func]
type = ConstantFunction
value = 0.011
[]
[]
[Physics/SolidMechanics/QuasiStatic]
displacements = 'disp_x disp_y'
[all]
strain = SMALL
add_variables = true
incremental = false
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
displacements = 'disp_x disp_y'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 207000
poissons_ratio = 0.3
[]
[stress]
type = ComputeLinearElasticStress
[]
[]
[AuxVariables]
[ls]
[]
[]
[AuxKernels]
[ls]
type = MeshCutLevelSetAux
mesh_cut_user_object = cut_mesh
variable = ls
[]
[]
[BCs]
[box1_x]
type = DirichletBC
variable = disp_x
value = 0
boundary = left
[]
[box1_y]
type = DirichletBC
variable = disp_y
value = 0
boundary = left
[]
[box2_x]
type = FunctionDirichletBC
variable = disp_x
function = '0.01*t'
boundary = right
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 20
l_tol = 1e-3
nl_max_its = 15
nl_abs_tol = 1e-10
nl_rel_tol = 1e-12
start_time = 0.0
dt = 2
end_time = 2
max_xfem_update = 1
[]
[Outputs]
exodus = true
[]
(test/tests/postprocessors/element_time_derivative/element_time_derivative_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
# dudt = 3*t^2*(x^2 + y^2)
type = ParsedFunction
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[./forcing_fn2]
# dudt = 3*t^2*(x^2 + y^2)
type = ParsedFunction
expression = t*x*y
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn2
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 1
value = 1
[../]
[]
[Postprocessors]
[./elementAvgTimeDerivative]
type = ElementAverageTimeDerivative
variable = u
[../]
[./elementAvgValue]
type = ElementAverageValue
variable = u
[../]
[]
[Executioner]
type = Transient
scheme = implicit-euler
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
dt = 0.1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_elm_time_deriv
csv = true
[]
(modules/solid_mechanics/test/tests/notched_plastic_block/cmc_planar.i)
# Uses an unsmoothed version of capped-Mohr-Coulomb (via ComputeMultiPlasticityStress with SolidMechanicsPlasticTensileMulti and SolidMechanicsPlasticMohrCoulombMulti) to simulate the following problem.
# A cubical block is notched around its equator.
# All of its outer surfaces have roller BCs, but the notched region is free to move as needed
# The block is initialised with a high hydrostatic tensile stress
# Without the notch, the BCs do not allow contraction of the block, and this stress configuration is admissible
# With the notch, however, the interior parts of the block are free to move in order to relieve stress, and this causes plastic failure
# The top surface is then pulled upwards (the bottom is fixed because of the roller BCs)
# This causes more failure
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 9
ny = 9
nz = 9
xmin = 0
xmax = 0.1
ymin = 0
ymax = 0.1
zmin = 0
zmax = 0.1
[]
[block_to_remove_xmin]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 -0.01 0.045'
top_right = '0.01 0.11 0.055'
location = INSIDE
block_id = 1
input = generated_mesh
[]
[block_to_remove_xmax]
type = SubdomainBoundingBoxGenerator
bottom_left = '0.09 -0.01 0.045'
top_right = '0.11 0.11 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_xmin
[]
[block_to_remove_ymin]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 -0.01 0.045'
top_right = '0.11 0.01 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_xmax
[]
[block_to_remove_ymax]
type = SubdomainBoundingBoxGenerator
bottom_left = '-0.01 0.09 0.045'
top_right = '0.11 0.11 0.055'
location = INSIDE
block_id = 1
input = block_to_remove_ymin
[]
[remove_block]
type = BlockDeletionGenerator
block = 1
input = block_to_remove_ymax
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_zz'
eigenstrain_names = ini_stress
[../]
[]
[Postprocessors]
[./uz]
type = PointValue
point = '0 0 0.1'
use_displaced_mesh = false
variable = disp_z
[../]
[./s_zz]
type = ElementAverageValue
use_displaced_mesh = false
variable = stress_zz
[../]
[./num_res]
type = NumResidualEvaluations
[../]
[./nr_its]
type = ElementAverageValue
variable = num_iters
[../]
[./max_nr_its]
type = ElementExtremeValue
variable = num_iters
[../]
[./runtime]
type = PerfGraphData
data_type = TOTAL
section_name = 'Root'
[../]
[]
[BCs]
# back=zmin, front=zmax, bottom=ymin, top=ymax, left=xmin, right=xmax
[./xmin_xzero]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./xmax_xzero]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.0
[../]
[./ymin_yzero]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./ymax_yzero]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[../]
[./zmin_zzero]
type = DirichletBC
variable = disp_z
boundary = back
value = '0'
[../]
[./zmax_disp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '1E-6*max(t,0)'
[../]
[]
[AuxVariables]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[./num_iters]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./plastic_strain_aux]
type = MaterialRankTwoTensorAux
i = 2
j = 2
property = plastic_strain
variable = plastic_strain
[../]
[./num_iters_auxk] # cannot use plastic_NR_iterations directly as this is zero, since no NR iterations are actually used, since we use a custom algorithm to do the return
type = ParsedAux
coupled_variables = plastic_strain
expression = 'if(plastic_strain>0,1,0)'
variable = num_iters
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 3E6
[../]
[./tensile]
type = SolidMechanicsPlasticTensileMulti
tensile_strength = ts
yield_function_tolerance = 1
internal_constraint_tolerance = 1.0E-6
#shift = 1
use_custom_returnMap = false
use_custom_cto = false
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 5E6
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 10
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
use_custom_returnMap = false
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 16E9
poissons_ratio = 0.25
[../]
[./mc]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1E-6
plastic_models = 'tensile mc'
max_NR_iterations = 50
specialIC = rock
deactivation_scheme = safe_to_dumb
debug_fspb = crash
[../]
[./strain_from_initial_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '2.5E6 0 0 0 2.5E6 0 0 0 2.5E6'
eigenstrain_name = ini_stress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
start_time = -1
end_time = 10
dt = 1
solve_type = NEWTON
type = Transient
l_tol = 1E-2
nl_abs_tol = 1E-5
nl_rel_tol = 1E-7
l_max_its = 200
nl_max_its = 400
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[]
[Outputs]
file_base = cmc_planar
perf_graph = true
exodus = false
csv = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/linesearch.i)
[GlobalParams]
displacements = 'ux uy uz'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[gss]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[tdisp]
type = ParsedFunction
expression = 0.01*t
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[gss1]
type = MaterialStdVectorAux
variable = gss
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
maximum_substep_iteration = 200
use_line_search = true
min_line_search_step_size = 0.01
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
resistance_tol = 0.01
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[gss]
type = ElementAverageValue
variable = gss
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.02
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(test/tests/variables/fe_monomial_const/monomial-const-2d.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 100
ny = 100
elem_type = QUAD4
[]
[Functions]
[./bc_fn]
type=ParsedFunction
expression=0
[../]
[./bc_fnt]
type = ParsedFunction
expression = 0
[../]
[./bc_fnb]
type = ParsedFunction
expression = 0
[../]
[./bc_fnl]
type = ParsedFunction
expression = 0
[../]
[./bc_fnr]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
# type = ParsedFunction
# expression = 0
type = MTPiecewiseConst2D
[../]
[./solution]
type = MTPiecewiseConst2D
[../]
[]
[Variables]
[./u]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
active = 'diff forcing reaction'
[./diff]
type = Diffusion
variable = u
[../]
[./reaction]
type = Reaction
variable = u
[../]
[./forcing]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
# Note: MOOSE's DirichletBCs do not work properly with shape functions that do not
# have DOFs at the element edges. This test works because the solution
# has been designed to be zero at the boundary which is satisfied by the IC
# Ticket #1352
active = ''
[./bc_all]
type=FunctionDirichletBC
variable = u
boundary = 'top bottom left right'
function = bc_fn
[../]
[./bc_top]
type = FunctionNeumannBC
variable = u
boundary = 'top'
function = bc_fnt
[../]
[./bc_bottom]
type = FunctionNeumannBC
variable = u
boundary = 'bottom'
function = bc_fnb
[../]
[./bc_left]
type = FunctionNeumannBC
variable = u
boundary = 'left'
function = bc_fnl
[../]
[./bc_right]
type = FunctionNeumannBC
variable = u
boundary = 'right'
function = bc_fnr
[../]
[]
[Postprocessors]
[./dofs]
type = NumDOFs
[../]
[./h]
type = AverageElementSize
[../]
[./L2error]
type = ElementL2Error
variable = u
function = solution
[../]
[./H1error]
type = ElementH1Error
variable = u
function = solution
[../]
[./H1Semierror]
type = ElementH1SemiError
variable = u
function = solution
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1.e-10
[./Adaptivity]
[../]
[]
[Outputs]
execute_on = 'timestep_end'
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
(test/tests/postprocessors/nodal_var_value/nodal_var_value.i)
[Mesh]
file = square-2x2-nodeids.e
# NodalVariableValue is not safe on renumbered meshes
allow_renumbering = false
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[../]
[./v]
order = SECOND
family = LAGRANGE
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
expression = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
expression = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
expression = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '2'
value = 0
[../]
[]
[Postprocessors]
active = 'l2 scalednode1 node1 node4'
[./l2]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./node1]
type = NodalVariableValue
variable = u
nodeid = 15
[../]
[./scalednode1]
type = NodalVariableValue
variable = u
nodeid = 15
scale_factor = 2
[../]
[./node4]
type = NodalVariableValue
variable = v
nodeid = 10
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_nodal_var_value
exodus = true
[]
(test/tests/postprocessors/pps_interval/pps_bad_interval2.i)
[Mesh]
file = square-2x2-nodeids.e
# This test can only be run with renumering disabled, so the
# NodalVariableValue postprocessor's node id is well-defined.
allow_renumbering = false
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[../]
[./v]
order = SECOND
family = LAGRANGE
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
expression = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
expression = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
expression = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '2'
value = 0
[../]
[]
[Postprocessors]
active = 'l2 node1 node4'
[./l2]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./node1]
type = NodalVariableValue
variable = u
nodeid = 15
[../]
[./node4]
type = NodalVariableValue
variable = v
nodeid = 10
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 1
[]
[Outputs]
file_base = ignore_bad
exodus = true
[./console]
type = Console
time_step_interval = 2
[../]
[]
(modules/solid_mechanics/test/tests/stickyBC/push_up.i)
# Testing StickyBC
#
# Push the bottom of an element upward until the top hits an (invisible) obstruction.
# 10 timesteps are used. In each timestep disp_y is increased by 0.1. The
# StickyBC has a max_value of 0.49, so at timestep 5 this bound will be violated
# and the top boundary will be fixed forever after.
#
# This test also illustrates that StickyBC is only ever meant to be used in
# special situations:
# - if, after the simulation ends, the bottom is moved downward again, the StickyBC
# will keep the top fixed. Ie, the StickyBC is truly "sticky".
# - setting max_value = 0.5 in this test illustrates the "approximate" nature
# of StickyBC, in that some nodes will be fixed at disp_y=0.5, while others
# will be fixed at disp_y=0.6, due to the timestepping and roundoff errors
# in MOOSE's solution.
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
[../]
[]
[BCs]
[./obstruction]
type = StickyBC
variable = disp_y
boundary = top
max_value = 0.49
[../]
[./bottom]
type = FunctionDirichletBC
variable = disp_y
boundary = bottom
function = t
[../]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./front]
type = DirichletBC
variable = disp_z
boundary = front
value = 0
[../]
[]
[Materials]
[./stress]
type = ComputeLinearElasticStress
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.0
poissons_ratio = 0.2
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = Linear
dt = 0.1
end_time = 1.0
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/bouncing-block-contact/frictionless-penalty-weighted-gap-action.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
scaling = 1e0
preset = false
[]
[Mesh]
[mesh_file]
type = FileMeshGenerator
file = long-bottom-block-1elem-blocks.e
[]
[remove_blocks]
type = BlockDeletionGenerator
input = mesh_file
block = '3 4'
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[]
[Contact]
[weighted_gap]
formulation = mortar_penalty
model = frictionless
secondary = 10
primary = 20
penalty = 1e0
use_dual = false
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
snesmf_reuse_base = true
abort_on_solve_fail = true
nl_rel_tol = 1e-13
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform17.i)
# Using CappedMohrCoulomb with compressive failure only
# A single element is incrementally compressed
# This causes the return direction to be along the hypersurface sigma_II = sigma_III
# and the resulting stresses are checked to lie on the expected yield surface
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-2*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-2*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-0.4*z*(t+2*t*t)'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 3
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 2.0'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.5
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 0.1
type = Transient
[]
[Outputs]
file_base = small_deform17
csv = true
[]
(modules/solid_mechanics/examples/coal_mining/cosserat_wp_only.i)
# Strata deformation and fracturing around a coal mine
#
# A 2D geometry is used that simulates a transverse section of
# the coal mine. The model is actually 3D, but the "x"
# dimension is only 10m long, meshed with 1 element, and
# there is no "x" displacement. The mine is 300m deep
# and just the roof is studied (0<=z<=300). The model sits
# between 0<=y<=450. The excavation sits in 0<=y<=150. This
# is a "half model": the boundary conditions are such that
# the model simulates an excavation sitting in -150<=y<=150
# inside a model of the region -450<=y<=450. The
# excavation height is 3m (ie, the excavation lies within
# 0<=z<=3). Mining is simulated by moving the excavation's
# roof down, until disp_z=-3 at t=1.
# Time is meaningless in this example
# as quasi-static solutions are sought at each timestep, but
# the number of timesteps controls the resolution of the
# process.
#
# The boundary conditions are:
# - disp_x = 0 everywhere
# - disp_y = 0 at y=0 and y=450
# - disp_z = 0 for y>150
# - disp_z = -3 at maximum, for 0<=y<=150. See excav function.
# That is, rollers on the sides, free at top, and prescribed at bottom.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa. The initial stress is consistent with
# the weight force from density 2500 kg/m^3, ie, stress_zz = -0.025*(300-z) MPa
# where gravity = 10 m.s^-2 = 1E-5 MPa m^2/kg. The maximum and minimum
# principal horizontal stresses are assumed to be equal to 0.8*stress_zz.
#
# Below you will see Drucker-Prager parameters and AuxVariables, etc.
# These are not actally used in this example.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# Weak-plane cohesion = 0.1 MPa
# Weak-plane friction angle = 20 deg
# Weak-plane dilation angle = 10 deg
# Weak-plane tensile strength = 0.1 MPa
# Weak-plane compressive strength = 100 MPa, varying down to 1 MPa when tensile strain = 1
#
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
xmin = -5
xmax = 5
nz = 40
zmin = 0
zmax = 400
bias_z = 1.1
ny = 30 # make this a multiple of 3, so y=150 is at a node
ymin = 0
ymax = 450
[]
[left]
type = SideSetsAroundSubdomainGenerator
new_boundary = 11
normal = '0 -1 0'
input = generated_mesh
[]
[right]
type = SideSetsAroundSubdomainGenerator
new_boundary = 12
normal = '0 1 0'
input = left
[]
[front]
type = SideSetsAroundSubdomainGenerator
new_boundary = 13
normal = '-1 0 0'
input = right
[]
[back]
type = SideSetsAroundSubdomainGenerator
new_boundary = 14
normal = '1 0 0'
input = front
[]
[top]
type = SideSetsAroundSubdomainGenerator
new_boundary = 15
normal = '0 0 1'
input = back
[]
[bottom]
type = SideSetsAroundSubdomainGenerator
new_boundary = 16
normal = '0 0 -1'
input = top
[]
[excav]
type = SubdomainBoundingBoxGenerator
block_id = 1
bottom_left = '-5 0 0'
top_right = '5 150 3'
input = bottom
[]
[roof]
type = SideSetsBetweenSubdomainsGenerator
new_boundary = 21
primary_block = 0
paired_block = 1
input = excav
[]
[hole]
type = BlockDeletionGenerator
block = 1
input = roof
[]
[]
[GlobalParams]
block = 0
perform_finite_strain_rotations = false
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[]
[Kernels]
[./cy_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_x
component = 0
[../]
[./gravity]
type = Gravity
use_displaced_mesh = false
variable = disp_z
value = -10E-6
[../]
[]
[AuxVariables]
[./disp_x]
[../]
[./wc_y]
[../]
[./wc_z]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./dp_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./dp_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[./dp_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./dp_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./dp_shear]
type = MaterialStdVectorAux
index = 0
property = dp_plastic_internal_parameter
variable = dp_shear
[../]
[./dp_tensile]
type = MaterialStdVectorAux
index = 1
property = dp_plastic_internal_parameter
variable = dp_tensile
[../]
[./wp_shear]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_internal_parameter
variable = wp_shear
[../]
[./wp_tensile]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_internal_parameter
variable = wp_tensile
[../]
[./dp_shear_f]
type = MaterialStdVectorAux
index = 0
property = dp_plastic_yield_function
variable = dp_shear_f
[../]
[./dp_tensile_f]
type = MaterialStdVectorAux
index = 1
property = dp_plastic_yield_function
variable = dp_tensile_f
[../]
[./wp_shear_f]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_yield_function
variable = wp_shear_f
[../]
[./wp_tensile_f]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_yield_function
variable = wp_tensile_f
[../]
[]
[BCs]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = '11 12 16 21' # note addition of 16 and 21
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = '16'
value = 0.0
[../]
[./no_wc_x]
type = DirichletBC
variable = wc_x
boundary = '11 12'
value = 0.0
[../]
[./roof]
type = FunctionDirichletBC
variable = disp_z
boundary = 21
function = excav_sideways
[../]
[]
[Functions]
[./ini_xx]
type = ParsedFunction
expression = '-0.8*2500*10E-6*(400-z)'
[../]
[./ini_zz]
type = ParsedFunction
expression = '-2500*10E-6*(400-z)'
[../]
[./excav_sideways]
type = ParsedFunction
symbol_names = 'end_t ymin ymax e_h closure_dist'
symbol_values = '1.0 0 150.0 -3.0 15.0'
expression = 'e_h*max(min((t/end_t*(ymax-ymin)+ymin-y)/closure_dist,1),0)'
[../]
[./excav_downwards]
type = ParsedFunction
symbol_names = 'end_t ymin ymax e_h closure_dist'
symbol_values = '1.0 0 150.0 -3.0 15.0'
expression = 'e_h*t/end_t*max(min(((ymax-ymin)+ymin-y)/closure_dist,1),0)'
[../]
[]
[UserObjects]
[./dp_coh_strong_harden]
type = SolidMechanicsHardeningExponential
value_0 = 2.9 # MPa
value_residual = 3.1 # MPa
rate = 1.0
[../]
[./dp_fric]
type = SolidMechanicsHardeningConstant
value = 0.65 # 37deg
[../]
[./dp_dil]
type = SolidMechanicsHardeningConstant
value = 0.65
[../]
[./dp_tensile_str_strong_harden]
type = SolidMechanicsHardeningExponential
value_0 = 1.0 # MPa
value_residual = 1.4 # MPa
rate = 1.0
[../]
[./dp_compressive_str]
type = SolidMechanicsHardeningConstant
value = 1.0E3 # Large!
[../]
[./drucker_prager_model]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = dp_coh_strong_harden
mc_friction_angle = dp_fric
mc_dilation_angle = dp_dil
internal_constraint_tolerance = 1 # irrelevant here
yield_function_tolerance = 1 # irrelevant here
[../]
[./wp_coh_harden]
type = SolidMechanicsHardeningCubic
value_0 = 0.1
value_residual = 0.1
internal_limit = 10
[../]
[./wp_tan_fric]
type = SolidMechanicsHardeningConstant
value = 0.36 # 20deg
[../]
[./wp_tan_dil]
type = SolidMechanicsHardeningConstant
value = 0.18 # 10deg
[../]
[./wp_tensile_str_harden]
type = SolidMechanicsHardeningCubic
value_0 = 0.1
value_residual = 0.1
internal_limit = 10
[../]
[./wp_compressive_str_soften]
type = SolidMechanicsHardeningCubic
value_0 = 100
value_residual = 1.0
internal_limit = 1.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
eigenstrain_names = ini_stress
[../]
[./ini_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = 'ini_xx 0 0 0 ini_xx 0 0 0 ini_zz'
eigenstrain_name = ini_stress
[../]
[./stress]
type = ComputeMultipleInelasticCosseratStress
block = 0
inelastic_models = 'wp'
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./dp]
type = CappedDruckerPragerCosseratStressUpdate
block = 0
warn_about_precision_loss = false
host_youngs_modulus = 8E3
host_poissons_ratio = 0.25
base_name = dp
DP_model = drucker_prager_model
tensile_strength = dp_tensile_str_strong_harden
compressive_strength = dp_compressive_str
max_NR_iterations = 100000
tip_smoother = 0.1E1
smoothing_tol = 0.1E1 # MPa # Must be linked to cohesion
yield_function_tol = 1E-11 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0
[../]
[./wp]
type = CappedWeakPlaneCosseratStressUpdate
block = 0
warn_about_precision_loss = false
base_name = wp
cohesion = wp_coh_harden
tan_friction_angle = wp_tan_fric
tan_dilation_angle = wp_tan_dil
tensile_strength = wp_tensile_str_harden
compressive_strength = wp_compressive_str_soften
max_NR_iterations = 10000
tip_smoother = 0.1
smoothing_tol = 0.1 # MPa # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
yield_function_tol = 1E-11 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0E-3
[../]
[./density]
type = GenericConstantMaterial
prop_names = density
prop_values = 2500
[../]
[]
[Postprocessors]
[./subsidence]
type = PointValue
point = '0 0 400'
variable = disp_z
use_displaced_mesh = false
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
line_search = bt
nl_abs_tol = 1e-3
nl_rel_tol = 1e-5
l_max_its = 30
nl_max_its = 1000
start_time = 0.0
dt = 0.2
end_time = 0.2
[]
[Outputs]
file_base = cosserat_wp_only
time_step_interval = 1
print_linear_residuals = false
csv = true
exodus = true
[./console]
type = Console
output_linear = false
[../]
[]
(modules/combined/test/tests/j2_plasticity_vs_LSH/j2_hard1_mod.i)
# Test designed to compare results and active time between SH/LinearStrainHardening
# material vs TM j2 plastic user object. As number of elements increases, TM
# active time increases at a much higher rate than SM. Testing at 4x4x4
# (64 elements).
#
# plot vm_stress vs intnl to see constant hardening
#
# Original test located at:
# solid_mechanics/tests/j2_plasticity/hard1.i
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 4
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_zz vonmises_stress effective_plastic_strain'
[]
[]
[AuxVariables]
[intnl]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[intnl]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = intnl
[]
[]
[BCs]
[left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
[z]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 't/60'
[]
[]
[UserObjects]
[str]
type = TensorMechanicsHardeningConstant
value = 2.4e2
[]
[j2]
type = TensorMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
#with E = 2.1e5 and nu = 0.3
#Hooke's law: E-nu to Lambda-G
C_ijkl = '121154 80769.2'
[]
[mc]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1E-9
plastic_models = j2
tangent_operator = elastic
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
l_tol = 1e-4
start_time = 0.0
end_time = 0.5
dt = 0.01
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[intnl]
type = ElementAverageValue
variable = intnl
[]
[eq_pl_strain]
type = PointValue
point = '0 0 0'
variable = effective_plastic_strain
[]
[vm_stress]
type = PointValue
point = '0 0 0'
variable = vonmises_stress
[]
[]
[Outputs]
csv = true
print_linear_residuals = false
perf_graph = true
[]
(modules/solid_mechanics/test/tests/auxkernels/ranktwoscalaraux.i)
[Mesh]
displacements = 'disp_x disp_y disp_z'
[generated_mesh]
type = GeneratedMeshGenerator
elem_type = HEX8
dim = 3
nx = 1
ny = 1
nz = 1
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
zmin = 0.0
zmax = 1.0
[]
[node]
type = ExtraNodesetGenerator
coord = '0.0 0.0 0.0'
new_boundary = 6
input = generated_mesh
[]
[snode]
type = ExtraNodesetGenerator
coord = '1.0 0.0 0.0'
new_boundary = 7
input = node
[]
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Materials]
[./fplastic]
type = FiniteStrainPlasticMaterial
block = 0
yield_stress='0. 445. 0.05 610. 0.1 680. 0.38 810. 0.95 920. 2. 950.'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
C_ijkl = '2.827e5 1.21e5 1.21e5 2.827e5 1.21e5 2.827e5 0.808e5 0.808e5 0.808e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Functions]
[./topfunc]
type = ParsedFunction
expression = 't'
[../]
[]
[BCs]
[./bottom3]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_z
boundary = 5
function = topfunc
[../]
[./corner1]
type = DirichletBC
variable = disp_x
boundary = 6
value = 0.0
[../]
[./corner2]
type = DirichletBC
variable = disp_y
boundary = 6
value = 0.0
[../]
[./corner3]
type = DirichletBC
variable = disp_z
boundary = 6
value = 0.0
[../]
[./side1]
type = DirichletBC
variable = disp_y
boundary = 7
value = 0.0
[../]
[./side2]
type = DirichletBC
variable = disp_z
boundary = 7
value = 0.0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic]
order = CONSTANT
family = MONOMIAL
[../]
[./L2norm]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
[../]
[./hydrostatic]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hydrostatic
scalar_type = Hydrostatic
[../]
[./L2norm]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = L2norm
scalar_type = L2norm
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./vonmises]
type = ElementAverageValue
variable = vonmises
[../]
[./hydrostatic]
type = ElementAverageValue
variable = hydrostatic
[../]
[./L2norm]
type = ElementAverageValue
variable = L2norm
[../]
[]
[Executioner]
type = Transient
dt=0.1
dtmin=0.1
dtmax=1
end_time=1.0
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(tutorials/darcy_thermo_mech/step08_postprocessors/problems/step8.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 3
xmax = 0.304 # Length of test chamber
ymax = 0.0257 # Test chamber radius
[]
coord_type = RZ
rz_coord_axis = X
uniform_refine = 2
[]
[Variables]
[pressure]
[]
[temperature]
initial_condition = 300 # Start at room temperature
[]
[]
[Kernels]
[darcy_pressure]
type = DarcyPressure
variable = pressure
[]
[heat_conduction]
type = ADHeatConduction
variable = temperature
[]
[heat_conduction_time_derivative]
type = ADHeatConductionTimeDerivative
variable = temperature
[]
[heat_convection]
type = DarcyAdvection
variable = temperature
pressure = pressure
[]
[]
[BCs]
[inlet_temperature]
type = FunctionDirichletBC
variable = temperature
boundary = left
function = 'if(t<0,350+50*t,350)'
[]
[outlet_temperature]
type = HeatConductionOutflow
variable = temperature
boundary = right
[]
[inlet]
type = DirichletBC
variable = pressure
boundary = left
value = 4000 # (Pa) From Figure 2 from paper. First data point for 1mm spheres.
[]
[outlet]
type = DirichletBC
variable = pressure
boundary = right
value = 0 # (Pa) Gives the correct pressure drop from Figure 2 for 1mm spheres
[]
[]
[Materials/column]
type = PackedColumn
temperature = temperature
radius = 1
porosity = '0.25952 + 0.7*y/0.0257'
[]
[Postprocessors]
[average_temperature]
type = ElementAverageValue
variable = temperature
[]
[outlet_heat_flux]
type = ADSideDiffusiveFluxIntegral
variable = temperature
boundary = right
diffusivity = thermal_conductivity
[]
[]
[VectorPostprocessors/temperature_sample]
type = LineValueSampler
num_points = 500
start_point = '0.1 0 0'
end_point = '0.1 0.0257 0'
variable = temperature
sort_by = y
[]
[AuxVariables/velocity]
order = CONSTANT
family = MONOMIAL_VEC
[]
[AuxKernels/velocity]
type = DarcyVelocity
variable = velocity
execute_on = timestep_end
pressure = pressure
[]
[Problem]
type = FEProblem
[]
[Executioner]
type = Transient
end_time = 100
dt = 0.25
start_time = -1
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
steady_state_tolerance = 1e-5
steady_state_detection = true
[TimeStepper]
type = FunctionDT
function = 'if(t<0,0.1,0.25)'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/tensile/random_planar.i)
# Plasticity models:
# Planar tensile with strength = 1MPa
#
# Lame lambda = 1GPa. Lame mu = 1.3GPa
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 1250
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 1250
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./tot_iters]
type = ElementIntegralMaterialProperty
mat_prop = plastic_NR_iterations
outputs = console
[../]
[./raw_f0]
type = ElementExtremeValue
variable = f0
outputs = console
[../]
[./raw_f1]
type = ElementExtremeValue
variable = f1
outputs = console
[../]
[./raw_f2]
type = ElementExtremeValue
variable = f2
outputs = console
[../]
[./iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./f0]
type = FunctionValuePostprocessor
function = should_be_zero0_fcn
[../]
[./f1]
type = FunctionValuePostprocessor
function = should_be_zero1_fcn
[../]
[./f2]
type = FunctionValuePostprocessor
function = should_be_zero2_fcn
[../]
[]
[Functions]
[./should_be_zero0_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f0'
[../]
[./should_be_zero1_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f1'
[../]
[./should_be_zero2_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f2'
[../]
[]
[UserObjects]
[./hard]
type = SolidMechanicsHardeningCubic
value_0 = 1E6
value_residual = 0
internal_limit = 1
[../]
[./tensile]
type = SolidMechanicsPlasticTensileMulti
tensile_strength = hard
yield_function_tolerance = 1.0E-1
shift = 1.0E-1
internal_constraint_tolerance = 1.0E-7
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1E9 1.3E9'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
deactivation_scheme = 'safe_to_dumb'
ep_plastic_tolerance = 1E-7
plastic_models = 'tensile'
max_NR_iterations = 5
min_stepsize = 1E-3
max_stepsize_for_dumb = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1'
debug_jac_at_intnl = '1 1 1'
debug_stress_change = 1E1
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random_planar
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = hertz_cyl_finer.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 = AugmentedLagrangianContactFEProblem
extra_tag_vectors = 'ref'
[]
[AuxVariables]
[penalty_normal_pressure]
[]
[accumulated_slip_one]
[]
[tangential_vel_one]
[]
[normal_gap]
[]
[normal_lm]
[]
[saved_x]
[]
[saved_y]
[]
[active]
[]
[]
[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'
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
save_in = 'saved_x saved_y'
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
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = friction_uo
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
variable = normal_gap
user_object = friction_uo
contact_quantity = normal_gap
boundary = 3
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_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
[]
[active_set_size]
type = NodalSum
variable = active
[]
[]
[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 = 1e8
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 = 'NEWTON'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = -pc_type
petsc_options_value = lu
line_search = 'none'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
nl_max_its = 1300
l_tol = 1e-05
l_abs_tol = 1e-13
start_time = 0.0
end_time = 0.2 # 3.5
dt = 0.1
dtmin = 0.001
[Predictor]
type = SimplePredictor
scale = 1.0
[]
automatic_scaling = true
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[VectorPostprocessors]
[surface]
type = NodalValueSampler
use_displaced_mesh = false
variable = 'disp_x disp_y penalty_normal_pressure normal_gap'
boundary = '3'
sort_by = id
[]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
exodus = true
csv = false
[vectorpp_output]
type = CSV
create_final_symlink = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
[]
[UserObjects]
[friction_uo]
type = PenaltyWeightedGapUserObject
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
disp_x = disp_x
disp_y = disp_y
penalty = 1e7
penetration_tolerance = 1e-12
use_physical_gap = true
[]
[]
[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
[]
[]
(modules/solid_mechanics/test/tests/smeared_cracking/cracking_rotation.i)
# This test is to ensure that the smeared cracking model correctly handles finite
# rotation of cracked elements.
# This consists of a single element that is first subjected to tensile loading
# in the y-direction via a prescribed displacement. This loading is sufficiently
# high to crack the material in that direction, but not completely unload. The
# prescribed displacement is then reversed so that the element is returned to its
# original configuration.
# In the next phase of the analysis, this element is then rotated 90 degrees by
# prescribing the displacement of the bottom of the element. The prescribed
# displacement BC used to crack the element in the first phase is deactivated.
# Once the element is fully rotated, a new BC is activated on what was originally
# the top surface (but is now the surface on the right hand side) to pull in
# the x-direction.
# If everything is working correctly, the model should re-load on the original
# crack (which should be rotated along with the elemnent) up to the peak stress
# in the first phase of the analysis, and then continue the unloading process
# as the crack strains continue to increase. Throughout this analysis, there should
# only be a single crack, as manifested in the crack_flags variables.
[Mesh]
file = cracking_test.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[../]
[]
[AuxVariables]
[./crack_flags1]
order = CONSTANT
family = MONOMIAL
[../]
[./crack_flags2]
order = CONSTANT
family = MONOMIAL
[../]
[./crack_flags3]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./crack_flags1]
type = MaterialRealVectorValueAux
property = crack_flags
variable = crack_flags1
component = 0
[../]
[./crack_flags2]
type = MaterialRealVectorValueAux
property = crack_flags
variable = crack_flags2
component = 1
[../]
[./crack_flags3]
type = MaterialRealVectorValueAux
property = crack_flags
variable = crack_flags3
component = 2
[../]
[]
[BCs]
[./x_pin]
type = DirichletBC
variable = disp_x
boundary = '15 16'
value = 0.0
[../]
[./y_pin]
type = DirichletBC
variable = disp_y
boundary = '15 16'
value = 0.0
[../]
[./z_all]
type = DirichletBC
variable = disp_z
boundary = '11 12 13 14 15 16 17 18'
value = 0.0
[../]
[./x_lb]
type = FunctionDirichletBC
variable = disp_x
boundary = '11 12'
function = 'if(t<10,0,if(t>=100,1,1-cos((t-10)*pi/180)))'
[../]
[./y_lb]
type = FunctionDirichletBC
variable = disp_y
boundary = '11 12'
function = 'if(t<10,0,if(t>=100,1,sin((t-10)*pi/180)))'
[../]
[./x_lt]
type = FunctionDirichletBC
variable = disp_x
boundary = '13 14'
function = '2+(t-100)*0.01'
[../]
[./x_rt]
type = FunctionDirichletBC
variable = disp_x
boundary = '17 18'
function = '1+(t-100)*0.01'
[../]
[./top_pull]
type = FunctionDirichletBC
variable = disp_y
boundary = '13 14 17 18'
function = 'if(t<5,t*0.01,0.05-(t-5)*0.01)'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100.e9
poissons_ratio = 0.
[../]
[./cracking_stress]
type = ComputeSmearedCrackingStress
shear_retention_factor = 0.1
cracking_stress = 3.e9
cracked_elasticity_type = FULL
softening_models = exponential_softening
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type'
petsc_options_value = '101 lu'
line_search = 'none'
l_max_its = 100
l_tol = 1e-5
nl_max_its = 100
nl_abs_tol = 1e-5
nl_rel_tol = 1e-12
start_time = 0
end_time = 110
dt = 1
[]
[Controls]
[./p1]
type = TimePeriod
start_time = 0.0
end_time = 10.0
disable_objects = 'BCs/x_lt BCs/x_rt'
enable_objects = 'BCs/top_pull'
reverse_on_false = false
execute_on = 'initial timestep_begin'
[../]
[./p2]
type = TimePeriod
start_time = 10.0
end_time = 101.0
disable_objects = 'BCs/x_lt BCs/x_rt BCs/top_pull'
reverse_on_false = false
execute_on = 'initial timestep_begin'
[../]
[./p3]
type = TimePeriod
start_time = 101.0
end_time = 110.0
enable_objects = 'BCs/x_lt BCs/x_rt'
disable_objects = 'BCs/top_pull'
reverse_on_false = false
execute_on = 'initial timestep_begin'
[../]
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/simple_contact/two_block_compress/two_equal_blocks_compress_2d.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 2
xmin = -1.0
xmax = 0.0
ymin = -0.5
ymax = 0.5
nx = 4
ny = 4
elem_type = QUAD4
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3'
new_boundary = '10 11 12 13'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sidesets
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.0
xmax = 1.0
ymin = -0.5
ymax = 0.5
nx = 5
ny = 5
elem_type = QUAD4
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3'
new_boundary = '20 21 22 23'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sidesets
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[left_lower]
type = LowerDBlockFromSidesetGenerator
input = combined_mesh
sidesets = '11'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[right_lower]
type = LowerDBlockFromSidesetGenerator
input = left_lower
sidesets = '23'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = PiecewiseLinear
x = '0 1.0'
y = '0 0.4'
[]
[vertical_movement]
type = PiecewiseLinear
x = '0 1.0'
y = '0 0'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = horizontal_movement
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 21
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 21
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 13
function = vertical_movement
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
correct_edge_dropping = true
lm_variable = normal_lm
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[normal_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type '
'-pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist nonzero 1e-10'
line_search = 'none'
dt = 0.1
dtmin = 0.01
end_time = 1.0
l_max_its = 20
nl_max_its = 20
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
[Postprocessors]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = 'secondary_lower'
[]
[normal_lm]
type = ElementAverageValue
variable = normal_lm
block = 'secondary_lower'
[]
[avg_disp_x]
type = ElementAverageValue
variable = disp_x
block = '1 2'
[]
[avg_disp_y]
type = ElementAverageValue
variable = disp_y
block = '1 2'
[]
[max_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
[]
[max_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
[]
[min_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
value_type = min
[]
[min_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
value_type = min
[]
[]
(modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_BPD.i)
# Test for bond-based peridynamic formulation
# for irregular grid from file mesh with varying bond constants
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = square.e
[../]
[./gpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1001
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1004
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1002
function = '-0.001*t'
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = BOND
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.33
[../]
[./force_density]
type = ComputeSmallStrainVariableHorizonMaterialBPD
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
end_time = 1
[]
[Outputs]
file_base = 2D_irregularD_variableH_BPD
exodus = true
[]
(modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_newmark.i)
# Wave propogation in 1D using Newmark time integration
#
# The test is for an 1D bar element of length 4m fixed on one end
# with a sinusoidal pulse dirichlet boundary condition applied to the other end.
# beta and gamma are Newmark time integration parameters
# The equation of motion in terms of matrices is:
#
# M*accel + K*disp = 0
#
# Here M is the mass matrix, K is the stiffness matrix
#
# This equation is equivalent to:
#
# density*accel + Div Stress= 0
#
# The first term on the left is evaluated using the Inertial force kernel
# The last term on the left is evaluated using StressDivergenceTensors
#
# The displacement at the second, third and fourth node at t = 0.1 are
# -8.021501116638234119e-02, 2.073994362053969628e-02 and -5.045094181261772920e-03, respectively
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 4
nz = 1
xmin = 0.0
xmax = 0.1
ymin = 0.0
ymax = 4.0
zmin = 0.0
zmax = 0.1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.3025
gamma = 0.6
eta=0.0
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.3025
gamma = 0.6
eta=0.0
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
velocity = vel_z
acceleration = accel_z
beta = 0.3025
gamma = 0.6
eta = 0.0
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.3025
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.6
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.3025
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.6
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.3025
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.6
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 0
index_j = 1
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 0
index_j = 1
[../]
[]
[BCs]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = top
value=0.0
[../]
[./top_x]
type = DirichletBC
variable = disp_x
boundary = top
value=0.0
[../]
[./top_z]
type = DirichletBC
variable = disp_z
boundary = top
value=0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = right
value=0.0
[../]
[./right_z]
type = DirichletBC
variable = disp_z
boundary = right
value=0.0
[../]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = left
value=0.0
[../]
[./left_z]
type = DirichletBC
variable = disp_z
boundary = left
value=0.0
[../]
[./front_x]
type = DirichletBC
variable = disp_x
boundary = front
value=0.0
[../]
[./front_z]
type = DirichletBC
variable = disp_z
boundary = front
value=0.0
[../]
[./back_x]
type = DirichletBC
variable = disp_x
boundary = back
value=0.0
[../]
[./back_z]
type = DirichletBC
variable = disp_z
boundary = back
value=0.0
[../]
[./bottom_x]
type = DirichletBC
variable = disp_x
boundary = bottom
value=0.0
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value=0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = bottom
function = displacement_bc
[../]
[]
[Materials]
[./Elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1 0'
[../]
[./strain]
type = ComputeSmallStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeLinearElasticStress
block = 0
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = 'density'
prop_values = '1'
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 6.0
l_tol = 1e-12
nl_rel_tol = 1e-12
dt = 0.1
[]
[Functions]
[./displacement_bc]
type = PiecewiseLinear
data_file = 'sine_wave.csv'
format = columns
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
[./disp_1]
type = NodalVariableValue
nodeid = 1
variable = disp_y
[../]
[./disp_2]
type = NodalVariableValue
nodeid = 3
variable = disp_y
[../]
[./disp_3]
type = NodalVariableValue
nodeid = 10
variable = disp_y
[../]
[./disp_4]
type = NodalVariableValue
nodeid = 14
variable = disp_y
[../]
[]
[Outputs]
exodus = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/convergence-auto/2D/dirichlet.i)
# Simple 2D plane strain test
[GlobalParams]
displacements = 'disp_x disp_y'
large_kinematics = true
stabilize_strain = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 2
nx = 4
ny = 4
[]
[]
[ICs]
[disp_x]
type = RandomIC
variable = disp_x
min = -0.01
max = 0.01
[]
[disp_y]
type = RandomIC
variable = disp_y
min = -0.01
max = 0.01
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[sdy]
type = UpdatedLagrangianStressDivergence
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[]
[Functions]
[pullx]
type = ParsedFunction
expression = '0.5 * t'
[]
[pully]
type = ParsedFunction
expression = '-0.3 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = left
variable = disp_x
value = 0.0
[]
[lefty]
type = DirichletBC
preset = true
boundary = left
variable = disp_y
value = 0.0
[]
[pull_x]
type = FunctionDirichletBC
boundary = right
variable = disp_x
function = pullx
preset = true
[]
[pull_y]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pully
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
start_time = 0.0
dt = 0.2
dtmin = 0.2
end_time = 0.2
[]
(modules/solid_mechanics/test/tests/mean_cap_TC/small_deform3.i)
# apply nonuniform compression in x, y and z directions such that
# trial_stress(0, 0) = 2
# trial_stress(1, 1) = -8
# trial_stress(2, 2) = -10
# With compressive_strength = -1, the algorithm should return to trace(stress) = -1, or
# stress(0, 0) = 7
# stress(1, 1) = -3
# stress(2, 2) = -5
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-7*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-4E-7*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-5E-7*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[]
[UserObjects]
[./tensile_strength]
type = SolidMechanicsHardeningConstant
value = 2
[../]
[./compressive_strength]
type = SolidMechanicsHardeningConstant
value = -1
[../]
[./cap]
type = SolidMechanicsPlasticMeanCapTC
tensile_strength = tensile_strength
compressive_strength = compressive_strength
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
use_custom_returnMap = false
use_custom_cto = false
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mean_cap]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = cap
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/contact/test/tests/nodal_area/nodal_area_Hex20.i)
[Mesh]
file = nodal_area_Hex20.e
[]
[GlobalParams]
order = SECOND
displacements = 'displ_x displ_y displ_z'
[]
[Functions]
[./disp]
type = PiecewiseLinear
x = '0 1'
y = '0 20e-6'
[../]
[]
[Variables]
[./displ_x]
[../]
[./displ_y]
[../]
[./displ_z]
[../]
[]
[AuxVariables]
[./react_x]
[../]
[./react_y]
[../]
[./react_z]
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
incremental = true
save_in = 'react_x react_y react_z'
add_variables = true
strain = FINITE
generate_output = 'stress_xx'
[../]
[]
[BCs]
[./move_right]
type = FunctionDirichletBC
boundary = '1'
variable = displ_x
function = disp
[../]
[./fixed_x]
type = DirichletBC
boundary = '3 4'
variable = displ_x
value = 0
[../]
[./fixed_y]
type = DirichletBC
boundary = 10
variable = displ_y
value = 0
[../]
[./fixed_z]
type = DirichletBC
boundary = 11
variable = displ_z
value = 0
[../]
[]
[Contact]
[./dummy_name]
primary = 3
secondary = 2
penalty = 1e7
tangential_tolerance = 1e-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-9
l_tol = 1e-4
l_max_its = 40
start_time = 0.0
dt = 1.0
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Postprocessors]
[./react_x]
type = NodalSum
variable = react_x
boundary = 1
execute_on = 'initial timestep_end'
[../]
[./total_area]
type = NodalSum
variable = nodal_area
boundary = 2
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/3d-mortar-contact/frictionless-mortar-3d-action.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[disp_z]
block = '1 2'
[]
[]
[ICs]
[disp_z]
block = 1
variable = disp_z
value = '${fparse offset}'
type = ConstantIC
[]
[disp_x]
block = 1
variable = disp_x
value = 0
type = ConstantIC
[]
[disp_y]
block = 1
variable = disp_y
value = 0
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[disp_z]
type = MatDiffusion
variable = disp_z
[]
[]
[Contact]
[mortar]
primary = 'bottom_top'
secondary = 'top_bottom'
formulation = mortar
model = frictionless
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = 1
dt = .5
dtmin = .01
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor'
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'
l_max_its = 100
nl_max_its = 30
nl_abs_tol = 1e-12
nl_rel_tol = 1e-9
line_search = 'none'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'mortar_secondary_subdomain'
execute_on = 'nonlinear timestep_end'
[]
[lambda]
type = ElementAverageValue
variable = mortar_normal_lm
block = 'mortar_secondary_subdomain'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = mortar_secondary_subdomain
variable = mortar_normal_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test3q.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test3q.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1.e-10
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test3q_out
exodus = true
[]
(modules/contact/test/tests/sliding_block/sliding/frictional_04_penalty.i)
# This is a benchmark test that checks constraint based frictional
# contact using the penalty method. In this test a constant
# displacement is applied in the horizontal direction to simulate
# a small block come sliding down a larger block.
#
# A friction coefficient of 0.4 is used. The gold file is run on one processor
# and the benchmark case is run on a minimum of 4 processors to ensure no
# parallel variability in the contact pressure and penetration results.
#
[Mesh]
file = sliding_elastic_blocks_2d.e
patch_size = 80
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[penetration]
[]
[inc_slip_x]
[]
[inc_slip_y]
[]
[accum_slip_x]
[]
[accum_slip_y]
[]
[]
[Functions]
[vertical_movement]
type = ParsedFunction
expression = -t
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
[]
[]
[AuxKernels]
[zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[]
[zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[]
[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
[]
[]
[Postprocessors]
[nonlinear_its]
type = NumNonlinearIterations
execute_on = timestep_end
[]
[penetration]
type = NodalVariableValue
variable = penetration
nodeid = 222
[]
[contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 222
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[right_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = -0.02
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[]
[]
[Materials]
[left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.1
end_time = 14.99999
num_steps = 1000
l_tol = 1e-6
nl_rel_tol = 1e-10
nl_abs_tol = 1e-6
dtmin = 0.01
[Predictor]
type = SimplePredictor
scale = 1.0
[]
[]
[Outputs]
time_step_interval = 10
[out]
type = Exodus
elemental_as_nodal = true
[]
[console]
type = Console
max_rows = 5
[]
[]
[Contact]
[leftright]
secondary = 3
primary = 2
model = coulomb
penalty = 1e+6
friction_coefficient = 0.4
formulation = penalty
normal_smoothing_distance = 0.1
[]
[]
(modules/navier_stokes/test/tests/auxkernels/reynolds-number-functor-aux/fe.i)
rho=1
mu=1
[GlobalParams]
gravity = '0 0 0'
pspg = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
[]
[corner_node]
type = ExtraNodesetGenerator
new_boundary = 'pinned_node'
nodes = '0'
input = gen
[]
[]
[AuxVariables]
[Reynolds]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[Reynolds]
type = ReynoldsNumberFunctorAux
variable = Reynolds
speed = speed
rho = ${rho}
mu = ${mu}
[]
[]
[Variables]
[vel_x]
[]
[vel_y]
[]
[p]
[]
[]
[Kernels]
# mass
[mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[]
# x-momentum, space
[x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[]
# y-momentum, space
[y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[]
[]
[BCs]
[x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'bottom right left'
value = 0.0
[]
[lid]
type = FunctionDirichletBC
variable = vel_x
boundary = 'top'
function = 'lid_function'
[]
[y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'bottom right top left'
value = 0.0
[]
[pressure_pin]
type = DirichletBC
variable = p
boundary = 'pinned_node'
value = 0
[]
[]
[Materials]
[const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '${rho} ${mu}'
[]
[speed]
type = ADVectorMagnitudeFunctorMaterial
x_functor = vel_x
y_functor = vel_y
vector_magnitude_name = speed
[]
[]
[Functions]
[lid_function]
# We pick a function that is exactly represented in the velocity
# space so that the Dirichlet conditions are the same regardless
# of the mesh spacing.
type = ParsedFunction
expression = '4*x*(1-x)'
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
solve_type = 'NEWTON'
[]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type'
petsc_options_value = 'asm 2 lu'
line_search = 'none'
nl_rel_tol = 1e-12
[]
[Outputs]
exodus = true
[]
(test/tests/time_steppers/timesequence_stepper/timesequence_failed_solve.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[ICs]
[./u_var]
type = FunctionIC
variable = u
function = exact_fn
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
# This timestepper does not use dt to set the timestep, it uses the time_sequence.
# dt = 250
dtmin=250
end_time = 3000.0
[./TimeStepper]
type = TimeSequenceStepperFailTest
time_sequence = '0 1000.0 2000.0'
[../]
nl_rel_tol=1.e-10
[]
[Outputs]
file_base = timesequence_failed_solve
exodus = true
[]
(modules/solid_mechanics/test/tests/drucker_prager/random_hyperbolic.i)
# drucker-prager hyperbolic.
# apply many random large deformations, checking that the algorithm returns correctly to
# the yield surface each time.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 100
ny = 125
nz = 1
xmin = 0
xmax = 100
ymin = 0
ymax = 125
zmin = 0
zmax = 1
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./yield_fcn_at_zero]
type = PointValue
point = '0 0 0'
variable = yield_fcn
outputs = 'console'
[../]
[./should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[../]
[./av_iter]
type = ElementAverageValue
variable = iter
outputs = 'console'
[../]
[]
[Functions]
[./should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'yield_fcn_at_zero'
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 1E3
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 30
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPragerHyperbolic
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
smoother = 0.1E3
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-6
use_custom_returnMap = true
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.7E7 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./dp]
type = ComputeMultiPlasticityStress
block = 0
max_NR_iterations = 1000
ep_plastic_tolerance = 1E-6
min_stepsize = 1E-3
plastic_models = dp
debug_fspb = crash
deactivation_scheme = safe
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random_hyperbolic
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/scaling/up-to-date-scale-factors/up-to-date-scale-factors.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 3
[]
[Variables]
[u][]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[]
[BCs]
[left]
type = FunctionDirichletBC
variable = u
function = '2 * t'
boundary = left
[]
[right]
type = DirichletBC
variable = u
value = 0
boundary = right
[]
[]
[Executioner]
type = Transient
num_steps = 2
automatic_scaling = true
compute_scaling_once = false
solve_type = NEWTON
resid_vs_jac_scaling_param = 1 # Pure residual scaling
verbose = true
[]
[Outputs]
exodus = true
[]
(test/tests/userobjects/coupling_to_kernel/user_object_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 5
ny = 5
elem_type = QUAD4
[]
[UserObjects]
[./ud]
type = MTUserObject
scalar = 2
vector = '9 7 5'
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = -2
[../]
[./exact_fn]
type = ParsedFunction
expression = x*x
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = FIRST
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
# this kernel will user user data object from above
[./ffn]
type = UserObjectKernel
variable = u
user_object = ud
[]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
function = exact_fn
boundary = '0 1 2 3'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out
exodus = true
[]
(modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_plane_strain_incremental.i)
#
# This test checks elastic stress calculations with mechanical and thermal
# strain using incremental small strain formulation. Young's modulus is 3600, and Poisson's ratio is 0.2.
# The axisymmetric, plane strain 1D mesh is pulled with 1e-6 strain. Thus,
# the strain is [1e-6, 0, 1e-6] (xx, yy, zz). This gives stress of
# [5e-3, 2e-3, 5e-3]. After a temperature increase of 100 with alpha of
# 1e-8, the stress becomes [-1e-3, -4e-3, -1e-3].
#
[GlobalParams]
displacements = disp_x
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = line.e
[]
[Variables]
[./disp_x]
[../]
[]
[AuxVariables]
[./temp]
initial_condition = 580.0
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '580 580 680'
[../]
[./disp_x]
type = PiecewiseLinear
x = '0 1'
y = '0 2e-6'
[../]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[./ps]
planar_formulation = PLANE_STRAIN
strain = SMALL
incremental = true
generate_output = 'strain_xx strain_zz stress_xx stress_yy stress_zz'
eigenstrain_names = eigenstrain
[../]
[../]
[../]
[]
[AuxKernels]
[./temp]
type = FunctionAux
variable = temp
function = temp
execute_on = 'timestep_begin'
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
boundary = 1
value = 0
variable = disp_x
[../]
[./disp_x]
type = FunctionDirichletBC
boundary = 2
function = disp_x
variable = disp_x
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 3600
poissons_ratio = 0.2
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-8
temperature = temp
stress_free_temperature = 580
eigenstrain_name = eigenstrain
[../]
[./stress]
type = ComputeStrainIncrementBasedStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_max_its = 50
l_tol = 1e-6
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0
end_time = 2
num_steps = 2
[]
[Outputs]
exodus = true
console = true
[]
(modules/contact/test/tests/verification/patch_tests/automatic_patch_update/sliding_update.i)
[Mesh]
file = sliding_update.e
displacements = 'disp_x disp_y'
patch_size = 5
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Kernels]
[TensorMechanics]
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.3
[]
[strain]
type = ComputeIncrementalStrain
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[Contact]
[leftright]
secondary = 3
primary = 2
normalize_penalty = true
tangential_tolerance = 1e-3
penalty = 1e+4
model = frictionless
formulation = penalty
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0
end_time = 10.0
l_tol = 1e-8
nl_rel_tol = 1e-6
nl_abs_tol = 1e-4
dt = 2.0
line_search = 'none'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
timestep_tolerance = 1e-1
[]
[BCs]
[fixed_1_2x]
type = DirichletBC
boundary = '1'
value = 0.0
variable = disp_x
[]
[fixed_1_2y]
type = DirichletBC
boundary = '1'
value = 0.0
variable = disp_y
[]
[sliding_1]
type = FunctionDirichletBC
function = sliding_fn
variable = disp_x
boundary = '4'
[]
[normal_y]
type = DirichletBC
variable = disp_y
boundary = '4'
value = -0.01
[]
# [./Pressure]
# [./normal_pressure]
# disp_x = disp_x
# disp_y = disp_y
# factor = 100.0
# boundary = 4
# [../]
# [../]
[]
[Functions]
[sliding_fn]
type = ParsedFunction
expression = 't'
[]
[]
[Outputs]
exodus = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform8.i)
# Using CappedMohrCoulomb with tensile failure only
# A single unit element is stretched by 1E-6m in z direction.
# with Lame lambda = 0.6E6 and Lame mu (shear) = 1E6
# stress_zz = 2.6 Pa
# stress_xx = 0.6 Pa
# stress_yy = 0.6 Pa
# tensile_strength is set to 0.5Pa
#
# stress_zz = 0.5
# plastic multiplier = 2.1/2.6 E-6
# stress_xx = 0.6 - (2.1/2.6*0.6) = 0.115
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.0E-6*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0.6E6 1E6'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.0
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform8
csv = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface15.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 3
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 3.0E-6m in y direction and 3E-6 in z direction.
# trial stress_yy = 3.0 and stress_zz = 3
#
# A complicated return will follow, with various contraints being
# deactivated, kuhn-tucker failing, line-searching, etc, but
# the result should be
# stress_yy=1=stress_zz, and internal0=2 internal1=2
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '3.0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '3.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 3
yield_function_tolerance = 1.0E-6
internal_constraint_tolerance = 1.0E-6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 4
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1'
debug_jac_at_intnl = '1 1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface15
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/contact/test/tests/mortar_tm/2drz/frictionless_first/small.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD4
order = FIRST
name = 'small'
[Problem]
coord_type = RZ
[]
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.6
ymin = -10
ymax = 10
nx = 2
ny = 67
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.61
xmax = 1.21
ymin = 9.2
ymax = 10.0
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[block]
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'block'
[]
[plank]
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'plank'
eigenstrain_names = 'swell'
[]
[]
[Contact]
[frictionless]
primary = plank_right
secondary = block_left
formulation = mortar
c_normal = 1.0e0
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = DirichletBC
variable = disp_x
boundary = block_right
value = 0
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = block_right
function = '-t'
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeLinearElasticStress
block = 'plank block'
[]
[swell]
type = ComputeEigenstrain
block = 'plank'
eigenstrain_name = swell
eigen_base = '1 0 0 0 0 0 0 0 0'
prefactor = swell_mat
[]
[swell_mat]
type = GenericFunctionMaterial
prop_names = 'swell_mat'
prop_values = '7e-2*(1-cos(4*t))'
block = 'plank'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 10
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'contact'
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[]
[Outputs]
file_base = ${name}
[comp]
type = CSV
show = 'contact'
[]
[out]
type = CSV
file_base = '${name}_out'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/contact/test/tests/bouncing-block-contact/variational-frictional.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
correct_edge_dropping = true
[]
[Mesh]
[file_mesh]
type = FileMeshGenerator
file = long-bottom-block-1elem-blocks-coarse.e
[]
[]
[Variables]
[disp_x]
block = '1 2'
scaling = 1e1
[]
[disp_y]
block = '1 2'
scaling = 1e1
[]
[contact_action_normal_lm]
block = 4
scaling = 1e3
[]
[contact_action_tangential_lm]
block = 4
scaling = 1e2
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[]
[AuxVariables]
[procid]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[procid]
type = ProcessorIDAux
variable = procid
[]
[]
[UserObjects]
[weighted_velocities_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 10
secondary_boundary = 20
primary_subdomain = 3
secondary_subdomain = 4
lm_variable_normal = contact_action_normal_lm
lm_variable_tangential_one = contact_action_tangential_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
correct_edge_dropping = true
[]
[]
[Constraints]
[frictional_normal_lm]
type = ComputeFrictionalForceLMMechanicalContact
primary_boundary = 10
secondary_boundary = 20
primary_subdomain = 3
secondary_subdomain = 4
variable = contact_action_normal_lm
friction_lm = contact_action_tangential_lm
disp_x = disp_x
disp_y = disp_y
mu = 0.1
normalize_c = true
c = 1.0e-2
c_t = 1.0e-1
correct_edge_dropping = true
weighted_velocities_uo = weighted_velocities_uo
weighted_gap_uo = weighted_velocities_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 10
secondary_boundary = 20
primary_subdomain = 3
secondary_subdomain = 4
variable = contact_action_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_velocities_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 10
secondary_boundary = 20
primary_subdomain = 3
secondary_subdomain = 4
variable = contact_action_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_velocities_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 10
secondary_boundary = 20
primary_subdomain = 3
secondary_subdomain = 4
variable = contact_action_tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_velocities_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 10
secondary_boundary = 20
primary_subdomain = 3
secondary_subdomain = 4
variable = contact_action_tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_velocities_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu NONZERO 1e-15'
l_max_its = 30
nl_max_its = 25
line_search = 'none'
nl_rel_tol = 1e-12
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
hide = procid
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
(test/tests/time_steppers/function_dt/function_dt_no_interpolation.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[../]
[./dts]
type = PiecewiseConstant
x = '0 4 8 12 20'
y = '0 1 2 4 8'
direction = right
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[ICs]
[./u_var]
type = FunctionIC
variable = u
function = exact_fn
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 20
[./TimeStepper]
type = FunctionDT
function = dts
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/special/objective_shear.i)
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[AuxVariables]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[strain_xz]
order = CONSTANT
family = MONOMIAL
[]
[strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[strain_xx]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[strain_yy]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[strain_zz]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[strain_xy]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[strain_xz]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[strain_yz]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[]
[Functions]
[shearme]
type = PiecewiseLinear
x = '0 1'
y = '0 2'
[]
[]
[BCs]
[back]
type = DirichletBC
preset = true
variable = disp_z
boundary = back
value = 0.0
[]
[bottom_y]
type = DirichletBC
preset = true
variable = disp_y
boundary = bottom
value = 0.0
[]
[bottom_x]
type = DirichletBC
preset = true
variable = disp_x
boundary = bottom
value = 0.0
[]
[shear]
type = FunctionDirichletBC
variable = disp_x
boundary = top
function = shearme
preset = true
[]
[hmm]
type = DirichletBC
preset = true
variable = disp_y
boundary = top
value = 0.0
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
dt = 0.01
solve_type = 'newton'
petsc_options_iname = -pc_type
petsc_options_value = lu
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
end_time = 1
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/weak_plane_shear/small_deform_harden2.i)
# apply a pure tension, then some shear with compression
# the BCs are designed to map out the yield function, showing
# the affect of the hardening
[GlobalParams]
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = 'stress_xz stress_zx stress_yz stress_zz'
[]
[BCs]
[bottomx]
type = DirichletBC
variable = x_disp
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = y_disp
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = z_disp
boundary = back
value = 0.0
[]
[topx]
type = FunctionDirichletBC
variable = x_disp
boundary = front
function = 'if(t<1E-6,0,3*t)'
[]
[topy]
type = FunctionDirichletBC
variable = y_disp
boundary = front
function = 'if(t<1E-6,0,5*(t-0.01E-6))'
[]
[topz]
type = FunctionDirichletBC
variable = z_disp
boundary = front
function = 'if(t<1E-6,t,2E-6-t)'
[]
[]
[AuxVariables]
[wps_internal]
order = CONSTANT
family = MONOMIAL
[]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[wps_internal_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = wps_internal
[]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[]
[s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[int]
type = PointValue
point = '0 0 0'
variable = wps_internal
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningGaussian
value_0 = 1E3
value_residual = 700
rate = 2E16
[]
[tanphi]
type = SolidMechanicsHardeningGaussian
value_0 = 1
value_residual = 0.577350269
rate = 2E16
[]
[tanpsi]
type = SolidMechanicsHardeningGaussian
value_0 = 0.0874886635
value_residual = 0.01745506
rate = 2E16
[]
[wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
smoother = 500
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '1E9 0.5E9'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wps
transverse_direction = '0 0 1'
ep_plastic_tolerance = 1E-3
max_NR_iterations = 100
min_stepsize = 1
debug_fspb = crash
[]
[]
[Executioner]
end_time = 2E-6
dt = 1E-7
type = Transient
[]
[Outputs]
csv = true
[]
(test/tests/executioners/executioner/steady_state_check_test.i)
#
# Run transient simulation into steady state
#
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[Variables]
active = 'u'
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
# dudt = 3*t^2*(x^2 + y^2)
# expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
expression = -4
[../]
[./exact_fn]
type = ParsedFunction
# expression = t*t*t*((x*x)+(y*y))
expression = ((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
solve_type = 'PJFNK'
nl_abs_tol = 1e-14
start_time = 0.0
num_steps = 12
dt = 1
steady_state_detection = true
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_ss_check
exodus = true
[]
(modules/thermal_hydraulics/test/tests/components/hs_boundary_external_app_temperature/phy.parent.i)
# This tests a transfer of temperature values computed by master app and used by a child app
# as a heat structure boundary condition
[Mesh]
type = GeneratedMesh
dim = 1
xmax = 1
nx = 10
[]
[Functions]
[T_bc_fn]
type = ParsedFunction
expression = '300+t*x*10'
[]
[T_ffn]
type = ParsedFunction
expression = 'x*10'
[]
[]
[Variables]
[T]
[]
[]
[ICs]
[T_ic]
type = ConstantIC
variable = T
value = 300
[]
[]
[Kernels]
[td]
type = ADTimeDerivative
variable = T
[]
[diff]
type = ADDiffusion
variable = T
[]
[ffn]
type = BodyForce
variable = T
function = T_ffn
[]
[]
[BCs]
[left]
type = FunctionDirichletBC
variable = T
boundary = 'left right'
function = T_bc_fn
[]
[]
[Executioner]
type = Transient
dt = 0.1
num_steps = 2
nl_abs_tol = 1e-10
abort_on_solve_fail = true
solve_type = NEWTON
[]
[MultiApps]
[thm]
type = TransientMultiApp
app_type = ThermalHydraulicsApp
input_files = phy.child.i
execute_on = 'initial timestep_end'
[]
[]
[Transfers]
[T_to_thm]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = thm
source_variable = T
variable = T_ext
to_boundaries = 'hs:outer'
[]
[]
[Outputs]
exodus = true
show = 'T'
[]
(test/tests/time_integrators/actually_explicit_euler_verification/ee-1d-linear.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = -1
xmax = 1
nx = 200
elem_type = EDGE2
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = x
[../]
[./exact_fn]
type = ParsedFunction
expression = t*x
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = ic
[../]
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
lumping = true
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
preset = false
boundary = '0 1'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
num_steps = 20
dt = 0.00005
[./TimeIntegrator]
type = ActuallyExplicitEuler
[../]
[]
[Outputs]
exodus = true
[./console]
type = Console
max_rows = 10
[../]
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform7.i)
# Plastic deformation, tensile with hardening
# With Lame lambda=0 and Lame mu=1, applying the following
# deformation to the zmax surface of a unit cube:
# disp_z = t
# should yield trial stress:
# stress_zz = 2*t
# The tensile strength varies as a cubic between 1 (at intnl=0)
# and 2 (at intnl=1). The equation to solve is
# 2 - Ezzzz * ga = -2 * (ga - 1/2)^3 + (3/2) (ga - 1/2) + 3/2
# where the left-hand side comes from p = p_trial - ga * Ezzzz
# and the right-hand side is the cubic tensile strength
# The solution is ga = 0.355416 ( = intnl[1]), and the cubic
# is 1.289168 ( = p) at that point
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 0
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = t
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 20
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1
[../]
[./t_strength]
type = SolidMechanicsHardeningCubic
value_0 = 1
value_residual = 2
internal_limit = 1
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 100
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
max_NR_iterations = 20
tip_smoother = 5
smoothing_tol = 5
yield_function_tol = 1E-10
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform7
csv = true
[]
(modules/combined/test/tests/inelastic_strain/creep/creep_nl1.i)
#
# Test for effective strain calculation.
# Boundary conditions from NAFEMS test NL1
#
# This is not a verification test. This is the creep analog of the same test
# in the elas_plas directory. Instead of using the IsotropicPlasticity
# material model this test uses the PowerLawCreep material model.
#
[GlobalParams]
temperature = temp
order = FIRST
family = LAGRANGE
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
file = one_elem2.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
initial_condition = 600.0
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./creep_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./eff_creep_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
decomposition_method = EigenSolution
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./pressure]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = pressure
scalar_type = Hydrostatic
execute_on = timestep_end
[../]
[./elastic_strain_xx]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./elastic_strain_yy]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./elastic_strain_zz]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./creep_strain_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./creep_strain_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./tot_strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_xx
index_i = 0
index_j = 0
[../]
[./tot_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_yy
index_i = 1
index_j = 1
[../]
[./tot_strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_zz
index_i = 2
index_j = 2
[../]
[./eff_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = eff_creep_strain
[../]
[]
[Functions]
[./appl_dispy]
type = PiecewiseLinear
x = '0 1.0 2.0'
y = '0.0 0.25e-4 0.50e-4'
[../]
[]
[BCs]
[./side_x]
type = DirichletBC
variable = disp_x
boundary = 101
value = 0.0
[../]
[./origin_x]
type = DirichletBC
variable = disp_x
boundary = 103
value = 0.0
[../]
[./bot_y]
type = DirichletBC
variable = disp_y
boundary = 102
value = 0.0
[../]
[./origin_y]
type = DirichletBC
variable = disp_y
boundary = 103
value = 0.0
[../]
[./top_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = appl_dispy
[../]
[./temp_fix]
type = DirichletBC
variable = temp
boundary = '1 2'
value = 600.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 250e9
poissons_ratio = 0.25
[../]
[./strain]
type = ComputePlaneFiniteStrain
block = 1
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
block = 1
inelastic_models = 'powerlawcrp'
[../]
[./powerlawcrp]
type = PowerLawCreepStressUpdate
block = 1
coefficient = 3.125e-14
n_exponent = 5.0
m_exponent = 0.0
activation_energy = 0.0
[../]
[./thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 100.
[../]
[./density]
type = Density
block = 1
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
l_tol = 1e-6
l_max_its = 100
nl_max_its = 20
dt = 1.0
start_time = 0.0
num_steps = 100
end_time = 2.0
[]
[Postprocessors]
[./stress_xx]
type = ElementAverageValue
variable = stress_xx
[../]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./stress_xy]
type = ElementAverageValue
variable = stress_xy
[../]
[./vonmises]
type = ElementAverageValue
variable = vonmises
[../]
[./pressure]
type = ElementAverageValue
variable = pressure
[../]
[./el_strain_xx]
type = ElementAverageValue
variable = elastic_strain_xx
[../]
[./el_strain_yy]
type = ElementAverageValue
variable = elastic_strain_yy
[../]
[./el_strain_zz]
type = ElementAverageValue
variable = elastic_strain_zz
[../]
[./crp_strain_xx]
type = ElementAverageValue
variable = creep_strain_xx
[../]
[./crp_strain_yy]
type = ElementAverageValue
variable = creep_strain_yy
[../]
[./crp_strain_zz]
type = ElementAverageValue
variable = creep_strain_zz
[../]
[./eff_creep_strain]
type = ElementAverageValue
variable = eff_creep_strain
[../]
[./tot_strain_xx]
type = ElementAverageValue
variable = tot_strain_xx
[../]
[./tot_strain_yy]
type = ElementAverageValue
variable = tot_strain_yy
[../]
[./tot_strain_zz]
type = ElementAverageValue
variable = tot_strain_zz
[../]
[./disp_x1]
type = NodalVariableValue
nodeid = 0
variable = disp_x
[../]
[./disp_x4]
type = NodalVariableValue
nodeid = 3
variable = disp_x
[../]
[./disp_y1]
type = NodalVariableValue
nodeid = 0
variable = disp_y
[../]
[./disp_y4]
type = NodalVariableValue
nodeid = 3
variable = disp_y
[../]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/combined/test/tests/reference_residual/reference_residual_perfgraph.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 4
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./saved_x]
[../]
[./saved_y]
[../]
[./saved_z]
[../]
[./saved_t]
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
volumetric_locking_correction = true
incremental = true
save_in = 'saved_x saved_y saved_z'
eigenstrain_names = thermal_expansion
strain = FINITE
decomposition_method = EigenSolution
extra_vector_tags = 'ref'
temperature = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
save_in = saved_t
extra_vector_tags = 'ref'
[../]
[]
[Functions]
[./pull]
type = PiecewiseLinear
x = '0 1 2'
y = '0 1 1'
scale_factor = 0.1
[../]
[]
[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_x]
type = DirichletBC
variable = disp_x
boundary = top
value = 0.0
[../]
[./top_y]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = pull
[../]
[./top_z]
type = DirichletBC
variable = disp_z
boundary = top
value = 0.0
[../]
[./bottom_temp]
type = DirichletBC
variable = temp
boundary = bottom
value = 10.0
[../]
[./top_temp]
type = DirichletBC
variable = temp
boundary = top
value = 20.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 0
youngs_modulus = 1.0
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 0
eigenstrain_name = thermal_expansion
temperature = temp
thermal_expansion_coeff = 1e-5
stress_free_temperature = 0.0
[../]
[./heat1]
type = HeatConductionMaterial
block = 0
specific_heat = 1.0
thermal_conductivity = 1e-3 #Tuned to give temperature reference resid close to that of solidmech
[../]
[./density]
type = Density
block = 0
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_rel_tol = 1e-10
l_tol = 1e-3
l_max_its = 100
dt = 1.0
end_time = 2.0
[]
[Postprocessors]
[./res_calls]
type = PerfGraphData
section_name = "ReferenceResidualProblem::computeResidualInternal"
data_type = calls
[../]
[./elapsed]
type = PerfGraphData
section_name = "Root"
data_type = total
[../]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/action/no_action_1D.i)
# Simple 1D plane strain test
[GlobalParams]
displacements = 'disp_x'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 1
nx = 10
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[]
[Functions]
[pull]
type = ParsedFunction
expression = '0.06 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = right
variable = disp_x
value = 0.0
[]
[pull]
type = FunctionDirichletBC
boundary = left
variable = disp_x
function = pull
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[stress_base]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
dtmin = 1.0
end_time = 5.0
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/creep_tangent_operator/creep.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
second_order = true
[]
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Functions]
[./pull]
type = PiecewiseLinear
x = '0 10'
y = '0 1e-3'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
use_finite_deform_jacobian = true
generate_output = 'hydrostatic_stress'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e10
poissons_ratio = 0.3
[../]
[./elastic_strain]
type = ComputeMultipleInelasticStress
# inelastic_models = ''
tangent_operator = nonlinear
[../]
[./creep_ten]
type = PowerLawCreepStressUpdate
coefficient = 10e-24
n_exponent = 4
activation_energy = 0
base_name = creep_ten
[../]
[./creep_ten2]
type = PowerLawCreepStressUpdate
coefficient = 10e-24
n_exponent = 4
activation_energy = 0
base_name = creep_ten2
[../]
[./creep_one]
type = PowerLawCreepStressUpdate
coefficient = 1e-24
n_exponent = 4
activation_energy = 0
base_name = creep_one
[../]
[./creep_nine]
type = PowerLawCreepStressUpdate
coefficient = 9e-24
n_exponent = 4
activation_energy = 0
base_name = creep_nine
[../]
[./creep_zero]
type = PowerLawCreepStressUpdate
coefficient = 0e-24
n_exponent = 4
activation_energy = 0
base_name = creep_zero
[../]
[]
[BCs]
[./no_disp_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./no_disp_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./pull_disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = pull
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-5
num_steps = 5
dt = 1e-1
[]
[Postprocessors]
[./max_disp_x]
type = ElementExtremeValue
variable = disp_x
[../]
[./max_disp_y]
type = ElementExtremeValue
variable = disp_y
[../]
[./max_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
[../]
[./dt]
type = TimestepSize
[../]
[./num_lin]
type = NumLinearIterations
outputs = console
[../]
[./num_nonlin]
type = NumNonlinearIterations
outputs = console
[../]
[]
[Outputs]
csv = true
perf_graph = true
[]
[Debug]
show_var_residual_norms = true
[]
(modules/contact/test/tests/mortar_tm/2d/frictionless_second/finite_rr.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD9
order = SECOND
name = 'finite_rr'
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.3
xmax = 0.3
ymin = -10
ymax = 10
nx = 2
ny = 67
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.31
xmax = 0.91
ymin = 7.7
ymax = 8.5
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[action]
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'plank block'
extra_vector_tags = 'ref'
[]
[]
[Contact]
[frictionless]
primary = plank_right
secondary = block_left
formulation = mortar
c_normal = 1e0
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
preset = false
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = block_right
function = '-0.04*sin(4*(t+1.5))+0.02'
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = block_right
function = '-t'
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'plank block'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 5.0
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'contact'
nl_abs_tol = 1e-7
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[]
[Outputs]
file_base = ${name}
[comp]
type = CSV
show = 'contact'
[]
[out]
type = CSV
file_base = '${name}_out'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_OSPD.i)
# Test for ordinary state-based peridynamic formulation
# for irregular grid from file mesh with varying bond constants
# partial Jacobian
# Jacobian from bond-based formulation is used for preconditioning
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = square.e
[../]
[./gpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1001
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1004
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1002
function = '-0.001 * t'
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = ORDINARY_STATE
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.0
[../]
[./force_density]
type = ComputeSmallStrainVariableHorizonMaterialOSPD
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
end_time = 1
[]
[Outputs]
file_base = 2D_irregularD_variableH_OSPD
exodus = true
[]
(modules/combined/test/tests/inelastic_strain/elas_plas/elas_plas_nl1.i)
#
# Test for effective strain calculation.
# Boundary conditions from NAFEMS test NL1
#
# This is not a verification test. The boundary conditions are applied such
# that the first step generates only elastic stresses. The second and third
# steps generate plastic deformation and the effective strain should be
# increasing throughout the run.
#
[GlobalParams]
order = FIRST
family = LAGRANGE
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
file = one_elem2.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./eff_plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./pressure]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = pressure
scalar_type = Hydrostatic
execute_on = timestep_end
[../]
[./elastic_strain_xx]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./elastic_strain_yy]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./elastic_strain_zz]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./plastic_strain_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./plastic_strain_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./plastic_strain_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./tot_strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./tot_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./tot_strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./eff_plastic_strain]
type = MaterialRealAux
property = effective_plastic_strain
variable = eff_plastic_strain
[../]
[]
[Functions]
[./appl_dispy]
type = PiecewiseLinear
x = '0 1.0 2.0 3.0'
y = '0.0 0.208e-4 0.50e-4 1.00e-4'
[../]
[]
[BCs]
[./side_x]
type = DirichletBC
variable = disp_x
boundary = 101
value = 0.0
[../]
[./origin_x]
type = DirichletBC
variable = disp_x
boundary = 103
value = 0.0
[../]
[./bot_y]
type = DirichletBC
variable = disp_y
boundary = 102
value = 0.0
[../]
[./origin_y]
type = DirichletBC
variable = disp_y
boundary = 103
value = 0.0
[../]
[./top_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = appl_dispy
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 250e9
poissons_ratio = 0.25
[../]
[./strain]
type = ComputePlaneFiniteStrain
block = 1
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'isoplas'
block = 1
[../]
[./isoplas]
type = IsotropicPlasticityStressUpdate
yield_stress = 5e6
hardening_constant = 0.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
l_tol = 1e-4
l_max_its = 100
nl_max_its = 20
dt = 1.0
start_time = 0.0
num_steps = 100
end_time = 3.0
[] # Executioner
[Postprocessors]
[./stress_xx]
type = ElementAverageValue
variable = stress_xx
[../]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./stress_xy]
type = ElementAverageValue
variable = stress_xy
[../]
[./vonmises]
type = ElementAverageValue
variable = vonmises
[../]
[./pressure]
type = ElementAverageValue
variable = pressure
[../]
[./el_strain_xx]
type = ElementAverageValue
variable = elastic_strain_xx
[../]
[./el_strain_yy]
type = ElementAverageValue
variable = elastic_strain_yy
[../]
[./el_strain_zz]
type = ElementAverageValue
variable = elastic_strain_zz
[../]
[./pl_strain_xx]
type = ElementAverageValue
variable = plastic_strain_xx
[../]
[./pl_strain_yy]
type = ElementAverageValue
variable = plastic_strain_yy
[../]
[./pl_strain_zz]
type = ElementAverageValue
variable = plastic_strain_zz
[../]
[./eff_plastic_strain]
type = ElementAverageValue
variable = eff_plastic_strain
[../]
[./tot_strain_xx]
type = ElementAverageValue
variable = tot_strain_xx
[../]
[./tot_strain_yy]
type = ElementAverageValue
variable = tot_strain_yy
[../]
[./tot_strain_zz]
type = ElementAverageValue
variable = tot_strain_zz
[../]
[./disp_x1]
type = NodalVariableValue
nodeid = 0
variable = disp_x
[../]
[./disp_x4]
type = NodalVariableValue
nodeid = 3
variable = disp_x
[../]
[./disp_y1]
type = NodalVariableValue
nodeid = 0
variable = disp_y
[../]
[./disp_y4]
type = NodalVariableValue
nodeid = 3
variable = disp_y
[../]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
exodus = true
[./console]
type = Console
output_linear = true
[../]
[] # Outputs
(modules/heat_transfer/test/tests/heat_conduction_patch/heat_conduction_patch_rz.i)
#
# This problem is taken from the Abaqus verification manual:
# "1.5.8 Patch test for heat transfer elements"
#
# The temperature on the exterior nodes is -2e5+200x+100y.
#
# This gives a constant flux at all Gauss points.
#
# In addition, the temperature at all nodes follows the same formula.
#
# Node x y Temperature
# 1 1e3 0 0
# 2 1.00024e3 0 48
# 3 1.00018e3 3e-2 39
# 4 1.00004e3 2e-2 10
# 5 1.00008e3 8e-2 24
# 6 1e3 1.2e-1 12
# 7 1.00016e3 8e-2 40
# 8 1.00024e3 1.2e-1 60
[Problem]
coord_type = RZ
[]
[Mesh]#Comment
file = heat_conduction_patch_rz.e
[] # Mesh
[Functions]
[./temps]
type = ParsedFunction
expression ='-2e5+200*x+100*y'
[../]
[] # Functions
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[] # Variables
[Kernels]
[./heat_r]
type = HeatConduction
variable = temp
[../]
[] # Kernels
[BCs]
[./temps]
type = FunctionDirichletBC
variable = temp
boundary = 10
function = temps
[../]
[] # BCs
[Materials]
[./heat]
type = HeatConductionMaterial
block = 1
specific_heat = 0.116
thermal_conductivity = 4.85e-4
[../]
[] # Materials
[Executioner]
type = Steady
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_abs_tol = 1e-11
nl_rel_tol = 1e-10
l_max_its = 20
[] # Executioner
[Outputs]
exodus = true
[] # Outputs
(test/tests/kernels/ad_mat_diffusion/2d_steady_state.i)
# This test solves a 2D steady state heat equation
# The error is found by comparing to the analytical solution
# Note that the thermal conductivity, specific heat, and density in this problem
# Are set to 1, and need to be changed to the constants of the material being
# Analyzed
[Mesh]
type = GeneratedMesh
dim = 2
nx = 30
ny = 30
xmax = 2
ymax = 2
[]
[Variables]
[./T]
[../]
[]
[Kernels]
[./diff]
type = MatDiffusion
variable = T
diffusivity = 1
[../]
[]
[BCs]
[./zero]
type = DirichletBC
variable = T
boundary = 'left right bottom'
value = 0
[../]
[./top]
type = FunctionDirichletBC
variable = T
boundary = top
function = '10*sin(pi*x*0.5)'
[../]
[]
[Postprocessors]
[./nodal_error]
type = NodalL2Error
function = '10/(sinh(pi))*sin(pi*x*0.5)*sinh(pi*y*0.5)'
variable = T
outputs = console
[../]
[./elemental_error]
type = ElementL2Error
function = '10/(sinh(pi))*sin(pi*x*0.5)*sinh(pi*y*0.5)'
variable = T
outputs = console
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/strain_energy_density/rate_incr_model_elas_plas.i)
# Single element test to check the strain energy density calculation
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 2
[]
[AuxVariables]
[./SED]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./rampConstantUp]
type = PiecewiseLinear
x = '0. 1.'
y = '0. 1.'
scale_factor = -100
[../]
[./ramp_disp_y]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 6.8e-6 1.36e-5'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./master]
strain = SMALL
add_variables = true
incremental = true
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress elastic_strain_xx elastic_strain_yy elastic_strain_zz plastic_strain_xx plastic_strain_yy plastic_strain_zz strain_xx strain_yy strain_zz'
planar_formulation = PLANE_STRAIN
[../]
[]
[AuxKernels]
[./SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 'left'
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 'bottom'
value = 0.0
[../]
[./top_disp]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 'top'
function = ramp_disp_y
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 30e+6
poissons_ratio = 0.3
[../]
[./elastic_stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'isoplas'
[../]
[./isoplas]
type = IsotropicPlasticityStressUpdate
yield_stress = 1e2
hardening_constant = 0.0
[../]
[./strain_energy_density]
type = StrainEnergyDensity
incremental = true
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
l_max_its = 50
nl_max_its = 20
nl_abs_tol = 3e-7
nl_rel_tol = 1e-12
l_tol = 1e-2
start_time = 0.0
dt = 1
end_time = 2
num_steps = 2
[]
[Postprocessors]
[./epxx]
type = ElementalVariableValue
variable = elastic_strain_xx
elementid = 0
[../]
[./epyy]
type = ElementalVariableValue
variable = elastic_strain_yy
elementid = 0
[../]
[./epzz]
type = ElementalVariableValue
variable = elastic_strain_zz
elementid = 0
[../]
[./eplxx]
type = ElementalVariableValue
variable = plastic_strain_xx
elementid = 0
[../]
[./eplyy]
type = ElementalVariableValue
variable = plastic_strain_yy
elementid = 0
[../]
[./eplzz]
type = ElementalVariableValue
variable = plastic_strain_zz
elementid = 0
[../]
[./etxx]
type = ElementalVariableValue
variable = strain_xx
elementid = 0
[../]
[./etyy]
type = ElementalVariableValue
variable = strain_yy
elementid = 0
[../]
[./etzz]
type = ElementalVariableValue
variable = strain_zz
elementid = 0
[../]
[./sigxx]
type = ElementAverageValue
variable = stress_xx
[../]
[./sigyy]
type = ElementAverageValue
variable = stress_yy
[../]
[./sigzz]
type = ElementAverageValue
variable = stress_zz
[../]
[./SED]
type = ElementAverageValue
variable = SED
[../]
[]
[Outputs]
csv = true
[]
(test/tests/time_integrators/multi_stage_time_integrator/unconverged_1st_stage.i)
# This test is designed to check that a time step solve should stop if *any*
# time integrator solve stage fails, not just the *last* stage. If a time
# integrator does not check convergence per stage, then a time step proceeds
# past intermediate stages without checking nonlinear convergence. This test
# is designed to check that the 2nd stage is never even entered by making it
# impossible for the first stage to converge.
[Mesh]
type = GeneratedMesh
dim = 1
xmin = -1
xmax = 1
nx = 5
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = x
[../]
[./exact_fn]
type = ParsedFunction
expression = t*x
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./time]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./body]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[ICs]
[./u_ic]
type = FunctionIC
variable = u
function = ic
[../]
[]
[BCs]
[./bcs]
type = FunctionDirichletBC
variable = u
boundary = '0 1'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
[./TimeIntegrator]
type = LStableDirk2
[../]
num_steps = 1
abort_on_solve_fail = true
solve_type = NEWTON
nl_max_its = 0
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/fileread.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
[../]
[./uy]
[../]
[./uz]
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./gss]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
[../]
[./gss]
type = MaterialStdVectorAux
variable = gss
property = state_var_gss
index = 0
execute_on = timestep_end
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
intvar_read_type = file_input
state_variable_file_name = input_state_variable.txt
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'ux uy uz'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
[../]
[./gss]
type = ElementAverageValue
variable = gss
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.05
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/truss/truss_3d_action.i)
[Mesh]
type = FileMesh
file = truss_3d.e
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./e_over_l]
order = CONSTANT
family = MONOMIAL
[../]
[./area]
order = CONSTANT
family = MONOMIAL
[../]
[./react_x]
order = FIRST
family = LAGRANGE
[../]
[./react_y]
order = FIRST
family = LAGRANGE
[../]
[./react_z]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./x2]
type = PiecewiseLinear
x = '0 1 2 3'
y = '0 .5 1 1'
[../]
[./y2]
type = PiecewiseLinear
x = '0 1 2 3'
y = '0 0 .5 1'
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0.0
[../]
[./fixx2]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = 2
function = x2
[../]
[./fixx3]
type = DirichletBC
variable = disp_x
preset = false
boundary = 3
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./fixy2]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = y2
[../]
[./fixy3]
type = DirichletBC
variable = disp_y
preset = false
boundary = 3
value = 0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./fixz2]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[./fixz3]
type = DirichletBC
variable = disp_z
preset = false
boundary = 3
value = 0
[../]
[]
[AuxKernels]
[./axial_stress]
type = MaterialRealAux
block = '1 2'
property = axial_stress
variable = axial_stress
[../]
[./e_over_l]
type = MaterialRealAux
block = '1 2'
property = e_over_l
variable = e_over_l
[../]
[./area]
type = ConstantAux
block = '1 2'
variable = area
value = 1.0
execute_on = 'initial timestep_begin'
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'jacobi 101'
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
dt = 1
num_steps = 3
end_time = 3
[]
[Physics/SolidMechanics/LineElement/QuasiStatic]
[./block]
truss = true
add_variables = true
displacements = 'disp_x disp_y disp_z'
area = area
block = '1 2'
save_in = 'react_x react_y react_z'
[../]
[]
[Materials]
[./linelast]
type = LinearElasticTruss
block = '1 2'
youngs_modulus = 1e6
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Outputs]
file_base = 'truss_3d_out'
exodus = true
[]
(framework/contrib/hit/test/rules.i)
[ReplacementRules]
[./function_dirichlet_to_preset]
[./Match]
[./BCs]
[./<name>]
type = FunctionDirichletBC
variable = <var>
function = <func>
boundary = <boundary>
[../]
[../]
[../]
[./Replace]
[./BCs]
[./<name>]
type = FunctionPresetBC
variable = <var>
function = <func>
boundary = <boundary>
[../]
[../]
[../]
[../]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform3.i)
# Using CappedMohrCoulomb with tensile failure only
# checking for small deformation
# A single element is stretched by "ep" in the z and x directions
# This causes the return direction to be along the hypersurface sigma_I = sigma_II
# where sigma_I = (E_2222 + E_2200) * ep
# tensile_strength is set to 1Pa, smoothing_tol = 0.1Pa
# The smoothed yield function is
# yf = sigma_I + ismoother(0) - tensile_strength
# = sigma_I + (0.5 * smoothing_tol - smoothing_tol / Pi) - tensile_strength
# = sigma_I - 0.98183
#
# With zero Poisson's ratio, the return stress will be
# stress_00 = stress_22 = 0.98183
# with all other stress components being zero
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.25E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.25E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = ts
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.1
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3
csv = true
[]
(modules/peridynamics/test/tests/simple_tests/2D_regularD_variableH_BPD.i)
# Test for bond-based peridynamic formulation
# for regular grid from generated mesh with varying bond constants
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 4
ny = 4
[../]
[./gpd]
type = MeshGeneratorPD
input = gmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1002
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1000
function = '-0.001*t'
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = BOND
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.33
[../]
[./force_density]
type = ComputeSmallStrainVariableHorizonMaterialBPD
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
end_time = 1
[]
[Outputs]
file_base = 2D_regularD_variableH_BPD
exodus = true
[]
(modules/porous_flow/examples/tidal/atm_tides.i)
# A 10m x 10m "column" of height 100m is subjected to cyclic pressure at its top
# Assumptions:
# the boundaries are impermeable, except the top boundary
# only vertical displacement is allowed
# the atmospheric pressure sets the total stress at the top of the model
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 10
xmin = 0
xmax = 10
ymin = 0
ymax = 10
zmin = -100
zmax = 0
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
biot_coefficient = 0.6
multiply_by_density = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[porepressure]
scaling = 1E11
[]
[]
[ICs]
[porepressure]
type = FunctionIC
variable = porepressure
function = '-10000*z' # approximately correct
[]
[]
[Functions]
[ini_stress_zz]
type = ParsedFunction
expression = '(25000 - 0.6*10000)*z' # remember this is effective stress
[]
[cyclic_porepressure]
type = ParsedFunction
expression = 'if(t>0,5000 * sin(2 * pi * t / 3600.0 / 24.0),0)'
[]
[neg_cyclic_porepressure]
type = ParsedFunction
expression = '-if(t>0,5000 * sin(2 * pi * t / 3600.0 / 24.0),0)'
[]
[]
[BCs]
# zmin is called 'back'
# zmax is called 'front'
# ymin is called 'bottom'
# ymax is called 'top'
# xmin is called 'left'
# xmax is called 'right'
[no_x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'bottom top' # because of 1-element meshing, this fixes u_x=0 everywhere
[]
[no_y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom top' # because of 1-element meshing, this fixes u_y=0 everywhere
[]
[no_z_disp_at_bottom]
type = DirichletBC
variable = disp_z
value = 0
boundary = back
[]
[pp]
type = FunctionDirichletBC
variable = porepressure
function = cyclic_porepressure
boundary = front
[]
[total_stress_at_top]
type = FunctionNeumannBC
variable = disp_z
function = neg_cyclic_porepressure
boundary = front
[]
[]
[FluidProperties]
[the_simple_fluid]
type = SimpleFluidProperties
thermal_expansion = 0.0
bulk_modulus = 2E9
viscosity = 1E-3
density0 = 1000.0
[]
[]
[PorousFlowBasicTHM]
coupling_type = HydroMechanical
displacements = 'disp_x disp_y disp_z'
porepressure = porepressure
gravity = '0 0 -10'
fp = the_simple_fluid
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
bulk_modulus = 10.0E9 # drained bulk modulus
poissons_ratio = 0.25
[]
[strain]
type = ComputeSmallStrain
eigenstrain_names = ini_stress
[]
[stress]
type = ComputeLinearElasticStress
[]
[ini_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '0 0 0 0 0 0 0 0 ini_stress_zz'
eigenstrain_name = ini_stress
[]
[porosity]
type = PorousFlowPorosityConst # only the initial value of this is ever used
porosity = 0.1
[]
[biot_modulus]
type = PorousFlowConstantBiotModulus
solid_bulk_compliance = 1E-10
fluid_bulk_modulus = 2E9
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-12 0 0 0 1E-12 0 0 0 1E-14'
[]
[density]
type = GenericConstantMaterial
prop_names = density
prop_values = 2500.0
[]
[]
[Postprocessors]
[p0]
type = PointValue
outputs = csv
point = '0 0 0'
variable = porepressure
[]
[uz0]
type = PointValue
outputs = csv
point = '0 0 0'
variable = disp_z
[]
[p100]
type = PointValue
outputs = csv
point = '0 0 -100'
variable = porepressure
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = -3600 # so postprocessors get recorded correctly at t=0
dt = 3600
end_time = 360000
nl_abs_tol = 5E-7
nl_rel_tol = 1E-10
[]
[Outputs]
csv = true
[]
(modules/contact/test/tests/verification/hertz_cyl/half_symm_q8/hertz_cyl_half_1deg_template3.i)
[GlobalParams]
order = SECOND
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Mesh]
file = hertz_cyl_half_1deg.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
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[./tang_force_x]
[../]
[./tang_force_y]
[../]
[]
[Functions]
[./disp_ramp_vert]
type = PiecewiseLinear
x = '0. 1. 11.'
y = '0. -0.0020 -0.0020'
[../]
[./disp_ramp_horz]
type = PiecewiseLinear
x = '0. 1. 11.'
y = '0. 0.0 0.0014'
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./inc_slip_x]
type = PenetrationAux
variable = inc_slip_x
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./inc_slip_y]
type = PenetrationAux
variable = inc_slip_y
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./accum_slip_x]
type = PenetrationAux
variable = accum_slip_x
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./accum_slip_y]
type = PenetrationAux
variable = accum_slip_y
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./tang_force_x]
type = PenetrationAux
variable = tang_force_x
quantity = tangential_force_x
boundary = 3
paired_boundary = 2
[../]
[./tang_force_y]
type = PenetrationAux
variable = tang_force_y
quantity = tangential_force_y
boundary = 3
paired_boundary = 2
[../]
[./penetration]
type = PenetrationAux
variable = penetration
boundary = 3
paired_boundary = 2
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[../]
[./disp_x639]
type = NodalVariableValue
nodeid = 638
variable = disp_x
[../]
[./disp_y639]
type = NodalVariableValue
nodeid = 638
variable = disp_y
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[]
[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'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff2_strain]
type = ComputeFiniteStrain
block = '2'
[../]
[./stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[../]
[./stuff3_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '3'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff3_strain]
type = ComputeFiniteStrain
block = '3'
[../]
[./stuff3_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[../]
[./stuff4_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '4'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff4_strain]
type = ComputeFiniteStrain
block = '4'
[../]
[./stuff4_stress]
type = ComputeFiniteStrainElasticStress
block = '4'
[../]
[./stuff5_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '5'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff5_strain]
type = ComputeFiniteStrain
block = '5'
[../]
[./stuff5_stress]
type = ComputeFiniteStrainElasticStress
block = '5'
[../]
[./stuff6_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '6'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff6_strain]
type = ComputeFiniteStrain
block = '6'
[../]
[./stuff6_stress]
type = ComputeFiniteStrainElasticStress
block = '6'
[../]
[./stuff7_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '7'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff7_strain]
type = ComputeFiniteStrain
block = '7'
[../]
[./stuff7_stress]
type = ComputeFiniteStrainElasticStress
block = '7'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-7
nl_rel_tol = 1e-6
l_max_its = 100
nl_max_its = 200
start_time = 0.0
end_time = 2.0
l_tol = 5e-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
[../]
[./cont_press]
type = NodalValueSampler
variable = contact_pressure
boundary = '3'
sort_by = id
[../]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[./chkfile]
type = CSV
show = 'x_disp y_disp cont_press'
start_time = 0.9
execute_vector_postprocessors_on = timestep_end
[../]
[./chkfile2]
type = CSV
show = 'bot_react_x bot_react_y disp_x639 disp_y639 top_react_x top_react_y'
start_time = 0.9
execute_vector_postprocessors_on = timestep_end
[../]
[./outfile]
type = CSV
delimiter = ' '
execute_vector_postprocessors_on = none
[../]
[]
[Contact]
[./interface]
primary = 2
secondary = 3
model = coulomb
friction_coefficient = 0.0
formulation = penalty
normalize_penalty = true
tangential_tolerance = 1e-3
penalty = 1e+9
[../]
[]
[Dampers]
[./contact_slip]
type = ContactSlipDamper
primary = '2'
secondary = '3'
[../]
[]
(modules/contact/test/tests/tension_release/4ElemTensionRelease.i)
[Mesh]
file = 4ElemTensionRelease.e
[]
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[Functions]
[./up]
type = PiecewiseLinear
x = '0 1 2 3'
y = '0 0.0001 0 -.0001'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[]
[]
[Contact]
[./dummy_name]
primary = 2
secondary = 3
penalty = 1e6
model = frictionless
tangential_tolerance = 0.01
[../]
[]
[BCs]
[./lateral]
type = DirichletBC
variable = disp_x
boundary = '1 4'
value = 0
[../]
[./bottom_up]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = up
[../]
[./top]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[]
[Materials]
[./stiffStuff1]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[./stiffStuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 101'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 0.2
dtmin = 0.2
end_time = 3
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
exodus = true
[]
(test/tests/ics/from_exodus_solution/nodal_part2.i)
# Use the exodus file for restarting the problem:
# - restart one variable
# - and have one extra variable with IC
#
[Mesh]
file = out_nodal_part1.e
[]
[Functions]
[exact_fn]
type = ParsedFunction
expression = ((x*x)+(y*y))
[]
[forcing_fn]
type = ParsedFunction
expression = -4
[]
[]
[Variables]
active = 'u v'
[u]
order = FIRST
family = LAGRANGE
initial_from_file_var = u
initial_from_file_timestep = 6
[]
[v]
order = FIRST
family = LAGRANGE
[InitialCondition]
type = BoundingBoxIC
x1 = 0.0
x2 = 1.0
y1 = 0.0
y2 = 1.0
inside = 3.0
outside = 1.0
[]
[]
[]
[Problem]
allow_initial_conditions_with_restart = true
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[ffn]
type = BodyForce
variable = u
function = forcing_fn
[]
[diff_v]
type = Diffusion
variable = v
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[]
[left_v]
type = DirichletBC
variable = v
boundary = '3'
value = 0
[]
[right_v]
type = DirichletBC
variable = v
boundary = '1'
value = 1
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
file_base = out_nodal_var_restart
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test1qtt.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test1qtt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.1
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.1
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.06
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test1qtt_out
exodus = true
[]
(tutorials/darcy_thermo_mech/step07_adaptivity/problems/step7c_adapt.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 30
ny = 3
xmax = 0.304 # Length of test chamber
ymax = 0.0257 # Test chamber radius
[]
coord_type = RZ
rz_coord_axis = X
uniform_refine = 3
[]
[Variables]
[pressure]
[]
[temperature]
initial_condition = 300 # Start at room temperature
[]
[]
[Kernels]
[darcy_pressure]
type = DarcyPressure
variable = pressure
[]
[heat_conduction]
type = ADHeatConduction
variable = temperature
[]
[heat_conduction_time_derivative]
type = ADHeatConductionTimeDerivative
variable = temperature
[]
[heat_convection]
type = DarcyAdvection
variable = temperature
pressure = pressure
[]
[]
[BCs]
[inlet_temperature]
type = FunctionDirichletBC
variable = temperature
boundary = left
function = 'if(t<0,350+50*t,350)'
[]
[outlet_temperature]
type = HeatConductionOutflow
variable = temperature
boundary = right
[]
[inlet]
type = DirichletBC
variable = pressure
boundary = left
value = 4000 # (Pa) From Figure 2 from paper. First data point for 1mm spheres.
[]
[outlet]
type = DirichletBC
variable = pressure
boundary = right
value = 0 # (Pa) Gives the correct pressure drop from Figure 2 for 1mm spheres
[]
[]
[Materials/column]
type = PackedColumn
temperature = temperature
radius = 1
[]
[AuxVariables/velocity]
order = CONSTANT
family = MONOMIAL_VEC
[]
[AuxKernels/velocity]
type = DarcyVelocity
variable = velocity
execute_on = timestep_end
pressure = pressure
[]
[Problem]
type = FEProblem
[]
[Executioner]
type = Transient
end_time = 100
dt = 0.25
start_time = -1
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
steady_state_tolerance = 1e-5
steady_state_detection = true
[TimeStepper]
type = FunctionDT
function = 'if(t<0,0.1,0.25)'
[]
[]
[Outputs]
exodus = true
[]
[Adaptivity]
marker = error_frac
max_h_level = 3
[Indicators/temperature_jump]
type = GradientJumpIndicator
variable = temperature
scale_by_flux_faces = true
[]
[Markers/error_frac]
type = ErrorFractionMarker
coarsen = 0.15
indicator = temperature_jump
refine = 0.7
[]
[]
(modules/solid_mechanics/test/tests/postprocessors/sideset_reaction/sideset_reaction.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Problem]
extra_tag_vectors = 'ref'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[]
[Postprocessors]
[./react_x]
type = SidesetReaction
direction = '1 0 0'
stress_tensor = stress
boundary = right
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[plane_strain]
strain = FINITE
extra_vector_tags = 'ref'
add_variables = true
[]
[]
[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
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/contact/test/tests/mortar_aux_kernels/pressure-aux-frictionless-3d.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
diffusivity = 1e0
scaling = 1e0
[]
[Problem]
# error_on_jacobian_nonzero_reallocation = true
[]
[Mesh]
second_order = false
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[disp_z]
block = '1 2'
[]
[lm_x]
block = 'secondary_lower'
use_dual = true
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
[]
[lm_z]
block = 'secondary_lower'
use_dual = true
[]
[]
[AuxVariables]
[normal_lm]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[normal_lm]
type = MortarPressureComponentAux
variable = normal_lm
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
lm_var_x = lm_x
lm_var_y = lm_y
lm_var_z = lm_z
component = 'NORMAL'
boundary = 'top_bottom'
[]
[]
[ICs]
[disp_z]
block = 1
variable = disp_z
value = '${fparse offset}'
type = ConstantIC
[]
[disp_x]
block = 1
variable = disp_x
value = 0
type = ConstantIC
[]
[disp_y]
block = 1
variable = disp_y
value = 0
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[disp_z]
type = MatDiffusion
variable = disp_z
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeWeightedGapCartesianLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_x = lm_x
lm_y = lm_y
lm_z = lm_z
variable = lm_x # This can be anything really
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
correct_edge_dropping = true
c = 1e+02
[]
[normal_x]
type = CartesianMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_y]
type = CartesianMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_z]
type = CartesianMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_z
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -mat_mffd_err -pc_factor_shift_type '
'-pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist 1e-5 NONZERO 1e-10'
end_time = 1
dt = .5
dtmin = .01
l_max_its = 100
nl_max_its = 30
# nl_rel_tol = 1e-6
nl_abs_tol = 1e-12
line_search = 'none'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = false
csv = true
execute_on = 'FINAL'
[]
[VectorPostprocessors]
[normal_lm]
type = NodalValueSampler
block = secondary_lower
variable = normal_lm
sort_by = 'id'
[]
[]
(modules/solid_mechanics/test/tests/shell/static/straintest.i)
# Test for the axial stress and strain output for single shell element
# for 2D planar shell with uniform mesh.
# A single shell 1 mm x 1 mm element having Young's Modulus of 5 N/mm^2
# and poissons ratio of 0 is fixed at the left end and
# an axial displacement of 0.2 mm is applied at the right.
# Theoretical value of axial stress and strain are 1 N/mm^2 and 0.2.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[disp_z]
order = FIRST
family = LAGRANGE
[]
[rot_x]
order = FIRST
family = LAGRANGE
[]
[rot_y]
order = FIRST
family = LAGRANGE
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
variable = stress_xx
rank_two_tensor = global_stress_t_points_1
index_i = 0
index_j = 0
[]
[strain_xx]
type = RankTwoAux
variable = strain_xx
rank_two_tensor = total_global_strain_t_points_1
index_i = 0
index_j = 0
[]
[]
[BCs]
[fixx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[fixy]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[]
[fixz]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[]
[fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[]
[fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[]
[disp]
type = FunctionDirichletBC
variable = disp_x
boundary = 'right'
function = displacement
[]
[]
[Functions]
[displacement]
type = PiecewiseLinear
x = '0.0 1.0'
y = '0.0 0.2'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
automatic_scaling = true
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-14
dt = 1
dtmin = 1
end_time = 1
[]
[Kernels]
[solid_disp_x]
type = ADStressDivergenceShell
block = '0'
component = 0
variable = disp_x
through_thickness_order = SECOND
[]
[solid_disp_y]
type = ADStressDivergenceShell
block = '0'
component = 1
variable = disp_y
through_thickness_order = SECOND
[]
[solid_disp_z]
type = ADStressDivergenceShell
block = '0'
component = 2
variable = disp_z
through_thickness_order = SECOND
[]
[solid_rot_x]
type = ADStressDivergenceShell
block = '0'
component = 3
variable = rot_x
through_thickness_order = SECOND
[]
[solid_rot_y]
type = ADStressDivergenceShell
block = '0'
component = 4
variable = rot_y
through_thickness_order = SECOND
[]
[]
[Materials]
[elasticity]
type = ADComputeIsotropicElasticityTensorShell
youngs_modulus = 5.0
poissons_ratio = 0.0
block = 0
through_thickness_order = SECOND
[]
[strain]
type = ADComputeIncrementalShellStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y'
thickness = 0.1
through_thickness_order = SECOND
[]
[stress]
type = ADComputeShellStress
block = 0
through_thickness_order = SECOND
[]
[]
[Postprocessors]
[disp_x]
type = PointValue
point = '0.5 0.0 0.0'
variable = disp_z
[]
[stress_xx_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_xx
[]
[strain_xx_el_0]
type = ElementalVariableValue
elementid = 0
variable = strain_xx
[]
[]
[Outputs]
exodus = true
[]
(modules/misc/test/tests/arrhenius_material_property/exact.i)
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[Variables]
[temp]
initial_condition = 1100
[]
[]
[Kernels]
[heat]
type = Diffusion
variable = temp
[]
[]
[BCs]
[temp]
type = FunctionDirichletBC
variable = temp
boundary = 'left right'
function = '100 * t + 100'
[]
[]
[Materials]
[D]
type = ArrheniusMaterialProperty
temperature = temp
activation_energy = '0.5 0.1'
frequency_factor = '5 3e-3'
gas_constant = 8.617e-5
property_name = D
outputs = all
[]
[D_exact]
type = ParsedMaterial
property_name = D_exact
coupled_variables = temp
constant_names = 'Q1 D01 Q2 D02 R'
constant_expressions = '0.5 5 0.1 3e-3 8.617e-5'
expression = 'D01 * exp(-Q1 / R / temp) + D02 * exp(-Q2 / R / temp)'
outputs = all
[]
[D_dT_exact]
type = ParsedMaterial
property_name = D_dT_exact
coupled_variables = temp
constant_names = 'Q1 D01 Q2 D02 R'
constant_expressions = '0.5 5 0.1 3e-3 8.617e-5'
expression = '(D01 * exp(-Q1 / R / temp) / temp / temp * Q1 / R) + (D02 * exp(-Q2 / R / temp) / temp / temp * Q2 / R)'
outputs = all
[]
[]
[Executioner]
type = Transient
num_steps = 10
[]
[Postprocessors]
[D]
type = ElementAverageValue
variable = D
[]
[D_dT]
type = ElementAverageValue
variable = D_dT
[]
[D_exact]
type = ElementAverageValue
variable = D_exact
[]
[D_dT_exact]
type = ElementAverageValue
variable = D_dT_exact
[]
[diff_D]
type = DifferencePostprocessor
value1 = 'D'
value2 = 'D_exact'
outputs = console
[]
[diff_D_dT]
type = DifferencePostprocessor
value1 = 'D_dT'
value2 = 'D_dT_exact'
outputs = console
[]
[]
[Outputs]
csv = true
[]
(test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test3ns.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test3.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
# [./element_id]
# [../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
# [./penetrate17]
# type = PenetrationAux
# variable = element_id
# boundary = 11
# paired_boundary = 12
# quantity = element_id
# [../]
#
# [./penetrate18]
# type = PenetrationAux
# variable = element_id
# boundary = 12
# paired_boundary = 11
# quantity = element_id
# [../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[]
[Outputs]
file_base = pl_test3ns_out
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test3qnstt.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test3qtt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
# [./element_id]
# [../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.09
normal_smoothing_distance = 0.2
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.09
normal_smoothing_distance = 0.2
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
# [./penetrate17]
# type = PenetrationAux
# variable = element_id
# boundary = 11
# paired_boundary = 12
# quantity = element_id
# [../]
#
# [./penetrate18]
# type = PenetrationAux
# variable = element_id
# boundary = 12
# paired_boundary = 11
# quantity = element_id
# [../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_abs_tol = 1e-7
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test3qnstt_out
exodus = true
[]
(modules/contact/test/tests/mortar_cartesian_lms/two_block_1st_order_constraint_lm_xy_friction.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
theta = 0
velocity = 0.1
refine = 3
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.35
xmax = -0.05
ymin = -1
ymax = 0
nx = 1
ny = 3
elem_type = QUAD4
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3'
new_boundary = '10 11 12 13'
[]
[left_block_sideset_names]
type = RenameBoundaryGenerator
input = left_block_sidesets
old_boundary = '10 11 12 13'
new_boundary = 'l_bottom l_right l_top l_left'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sideset_names
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.3
ymin = -1
ymax = 0
nx = 1
ny = 2
elem_type = QUAD4
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3'
new_boundary = '20 21 22 23'
[]
[right_block_sideset_names]
type = RenameBoundaryGenerator
input = right_block_sidesets
old_boundary = '20 21 22 23'
new_boundary = 'r_bottom r_right r_top r_left'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sideset_names
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[left_lower]
type = LowerDBlockFromSidesetGenerator
input = combined_mesh
sidesets = '11'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[right_lower]
type = LowerDBlockFromSidesetGenerator
input = left_lower
sidesets = '23'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[rotate_mesh]
type = TransformGenerator
input = right_lower
transform = ROTATE
vector_value = '0 0 ${theta}'
[]
uniform_refine = ${refine}
[]
[Variables]
[lm_x]
block = 'secondary_lower'
use_dual = true
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
[]
[]
[AuxVariables]
[normal_lm]
family = LAGRANGE
order = FIRST
[]
[tangent_lm]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[normal_lm]
type = MortarPressureComponentAux
variable = normal_lm
primary_boundary = '23'
secondary_boundary = '11'
lm_var_x = lm_x
lm_var_y = lm_y
component = 'NORMAL'
boundary = '11'
[]
[tangent_lm]
type = MortarPressureComponentAux
variable = tangent_lm
primary_boundary = '23'
secondary_boundary = '11'
lm_var_x = lm_x
lm_var_y = lm_y
component = 'tangent1'
boundary = '11'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = ParsedFunction
expression = '${velocity} * t * cos(${theta}/180*pi)'
[]
[vertical_movement]
type = ParsedFunction
expression = '${velocity} * t * sin(${theta}/180*pi)'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = horizontal_movement
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 21
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 21
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 13
function = vertical_movement
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e4
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e8
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeFrictionalForceCartesianLMMechanicalContact # ComputeCartesianLMFrictionMechanicalContact
# type = ComputeWeightedGapLMMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_x = lm_x
lm_y = lm_y
variable = lm_x # This can be anything really
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
correct_edge_dropping = true
mu = 1.0
c_t = 1.0e5
[]
[normal_x]
type = CartesianMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_y]
type = CartesianMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist NONZERO 1e-15'
line_search = none
dt = 0.1
dtmin = 0.1
end_time = 1.0
l_max_its = 100
nl_max_its = 20
nl_rel_tol = 1e-8
snesmf_reuse_base = false
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[avg_disp_x]
type = ElementAverageValue
variable = disp_x
block = '1 2'
[]
[avg_disp_y]
type = ElementAverageValue
variable = disp_y
block = '1 2'
[]
[max_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
[]
[max_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
[]
[min_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
value_type = min
[]
[min_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
value_type = min
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[]
[tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[max_norma_lm]
type = ElementExtremeValue
variable = normal_lm
[]
[min_norma_lm]
type = ElementExtremeValue
variable = normal_lm
value_type = min
[]
[]
[VectorPostprocessors]
[normal_lm]
type = NodalValueSampler
block = 'secondary_lower'
variable = normal_lm
sort_by = 'y'
[]
[tangent_lm]
type = NodalValueSampler
block = 'secondary_lower'
variable = tangent_lm
sort_by = 'y'
[]
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_by_parts_steady_nobcbc.i)
# This input file tests several different things:
# .) The axisymmetric (RZ) form of the governing equations.
# .) An open boundary.
# .) Not integrating the pressure by parts, thereby requiring a pressure pin.
# .) Natural boundary condition at the outlet.
[GlobalParams]
integrate_p_by_parts = true
laplace = true
gravity = '0 0 0'
[]
[Mesh]
file = '2d_cone.msh'
[]
[Problem]
coord_type = RZ
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = Newton
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'bjacobi ilu 4'
nl_rel_tol = 1e-12
nl_max_its = 6
[]
[Outputs]
console = true
[./out]
type = Exodus
[../]
[]
[Variables]
[./vel_x]
# Velocity in radial (r) direction
family = LAGRANGE
order = SECOND
[../]
[./vel_y]
# Velocity in axial (z) direction
family = LAGRANGE
order = SECOND
[../]
[./p]
family = LAGRANGE
order = FIRST
[../]
[]
[BCs]
[./u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[../]
[./v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[../]
[./u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[../]
[./v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[../]
[./u_out]
type = INSMomentumNoBCBCLaplaceForm
boundary = top
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./v_out]
type = INSMomentumNoBCBCLaplaceForm
boundary = top
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
# When the NoBCBC is applied on the outlet boundary then there is nothing
# constraining the pressure. Thus we must pin the pressure somewhere to ensure
# that the problem is not singular. If the below BC is not applied then
# -pc_type svd -pc_svd_monitor reveals a singular value
[p_corner]
type = DirichletBC
boundary = top_right
value = 0
variable = p
[]
[]
[Kernels]
[./mass]
type = INSMassRZ
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 'volume'
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[../]
[]
[Postprocessors]
[./flow_in]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'bottom'
execute_on = 'timestep_end'
[../]
[./flow_out]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'top'
execute_on = 'timestep_end'
[../]
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/pull_and_shear_1step.i)
# Part of the bottom (minimum z) is pulled down by a Preset displacement
# This causes tensile failure in the elements immediately above.
# Because only the bottom row of elements ever fail, and because these
# fail in the first nonlinear step, Moose correctly converges in
# 1 nonlinear step, despite this problem being inelastic.
# (If the problem had lower cohesion, then the top row would also
# fail, but in the second nonlinear step, and so the simulation
# would require at least two nonlinear steps.)
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 1
nz = 2
xmin = -10
xmax = 10
ymin = -10
ymax = 10
zmin = -100
zmax = 0
[]
[bottomz_middle]
type = BoundingBoxNodeSetGenerator
new_boundary = bottomz_middle
bottom_left = '-1 -15 -105'
top_right = '1 15 -95'
input = generated_mesh
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
[../]
[]
[BCs]
[./no_x2]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.0
[../]
[./no_x1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./no_y1]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./no_y2]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[../]
[./z_fixed_sides_xmin]
type = DirichletBC
variable = disp_z
boundary = left
value = 0
[../]
[./z_fixed_sides_xmax]
type = DirichletBC
variable = disp_z
boundary = right
value = 0
[../]
[./bottomz]
type = FunctionDirichletBC
variable = disp_z
boundary = bottomz_middle
function = -1
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strainp_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xx
index_i = 0
index_j = 0
[../]
[./strainp_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xy
index_i = 0
index_j = 1
[../]
[./strainp_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xz
index_i = 0
index_j = 2
[../]
[./strainp_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yy
index_i = 1
index_j = 1
[../]
[./strainp_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yz
index_i = 1
index_j = 2
[../]
[./strainp_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zz
index_i = 2
index_j = 2
[../]
[./straint_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xx
index_i = 0
index_j = 0
[../]
[./straint_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xy
index_i = 0
index_j = 1
[../]
[./straint_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xz
index_i = 0
index_j = 2
[../]
[./straint_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yy
index_i = 1
index_j = 1
[../]
[./straint_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yz
index_i = 1
index_j = 2
[../]
[./straint_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zz
index_i = 2
index_j = 2
[../]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[UserObjects]
[./coh_irrelevant]
type = SolidMechanicsHardeningCubic
value_0 = 1E60
value_residual = 1E60
internal_limit = 0.01E8
[../]
[./tanphi]
type = SolidMechanicsHardeningCubic
value_0 = 0.5
value_residual = 0.2
internal_limit = 0.01E8
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.166666666667
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./c_strength]
type = SolidMechanicsHardeningCubic
value_0 = 1E80
value_residual = 1E80
internal_limit = 0.01
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '6.4E9 6.4E9' # young 16MPa, Poisson 0.25
[../]
[./strain]
type = ComputeIncrementalStrain
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh_irrelevant
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
max_NR_iterations = 1
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-2
perfect_guess = true
min_step_size = 1
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options = '-snes_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
[../]
[]
[Executioner]
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
line_search = bt
nl_abs_tol = 1E1
nl_rel_tol = 1e-5
l_tol = 1E-10
l_max_its = 100
nl_max_its = 100
end_time = 1.0
dt = 1.0
type = Transient
[]
[Outputs]
file_base = pull_and_shear_1step
exodus = true
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_external_app_1phase/phy.T_wall_transfer_3eqn.parent.i)
# This tests a temperature transfer using the MultiApp system. Simple heat
# conduction problem is solved, then the temperature is picked up by the child
# side of the solve, child side solves and transfers its variables back to the
# master
[Mesh]
type = GeneratedMesh
dim = 1
xmax = 1
nx = 10
[]
[Functions]
[left_bc_fn]
type = PiecewiseLinear
x = '0 1'
y = '300 310'
[]
[]
[Variables]
[T]
[]
[]
[ICs]
[T_ic]
type = ConstantIC
variable = T
value = 300
[]
[]
[Kernels]
[td]
type = TimeDerivative
variable = T
[]
[diff]
type = Diffusion
variable = T
[]
[]
[BCs]
[left]
type = FunctionDirichletBC
variable = T
boundary = left
function = left_bc_fn
[]
[]
[Executioner]
type = Transient
dt = 0.5
end_time = 5
nl_abs_tol = 1e-10
abort_on_solve_fail = true
[]
[MultiApps]
[thm]
type = TransientMultiApp
app_type = ThermalHydraulicsApp
input_files = phy.T_wall_transfer_3eqn.child.i
execute_on = TIMESTEP_END
[]
[]
[Transfers]
[T_to_child]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = thm
source_variable = T
variable = T_wall
[]
[]
[Outputs]
exodus = true
[]
(test/tests/time_integrators/implicit-euler/ie_adapt.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 4
ny = 4
elem_type = QUAD4
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
# dudt = 3*t^2*(x^2 + y^2)
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 1
value = 1
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
dt = 0.25
[./Adaptivity]
refine_fraction = 0.2
coarsen_fraction = 0.3
max_h_level = 4
[../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/heat_transfer/test/tests/heat_conduction_patch/heat_conduction_patch_rz_quad8.i)
#
# This problem is taken from the Abaqus verification manual:
# "1.5.8 Patch test for heat transfer elements"
#
# The temperature on the exterior nodes is -2e5+200x+100y.
#
# This gives a constant flux at all Gauss points.
#
# In addition, the temperature at all nodes follows the same formula.
#
# Node x y Temperature
# 1 1e3 0 0
# 2 1.00024e3 0 48
# 3 1.00018e3 3e-2 39
# 4 1.00004e3 2e-2 10
# 9 1.00008e3 8e-2 24
# 10 1e3 1.2e-1 12
# 14 1.00016e3 8e-2 40
# 17 1.00024e3 1.2e-1 60
[Problem]
coord_type = RZ
[]
[Mesh]#Comment
file = heat_conduction_patch_rz_quad8.e
[] # Mesh
[Functions]
[./temps]
type = ParsedFunction
expression ='-2e5+200*x+100*y'
[../]
[] # Functions
[Variables]
[./temp]
order = SECOND
family = LAGRANGE
[../]
[] # Variables
[Kernels]
[./heat_r]
type = HeatConduction
variable = temp
[../]
[] # Kernels
[BCs]
[./temps]
type = FunctionDirichletBC
variable = temp
boundary = 10
function = temps
[../]
[] # BCs
[Materials]
[./heat]
type = HeatConductionMaterial
block = 1
specific_heat = 0.116
thermal_conductivity = 4.85e-4
[../]
[] # Materials
[Executioner]
type = Steady
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_abs_tol = 1e-11
nl_rel_tol = 1e-10
l_max_its = 20
[./Quadrature]
order = THIRD
[../]
[] # Executioner
[Outputs]
exodus = true
[] # Outputs
(test/tests/auxkernels/flux_average/flux_average.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./flux]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./bc_func]
type = ParsedFunction
expression = y+1
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[AuxKernels]
[./flux_average]
type = FluxAverageAux
variable = flux
coupled = u
diffusivity = 0.1
boundary = right
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = right
function = bc_func
[../]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_cosserat3.i)
# Plastic deformation. Layered Cosserat with parameters:
# Young = 10.0
# Poisson = 0.25
# layer_thickness = 10
# joint_normal_stiffness = 2.5
# joint_shear_stiffness = 2.0
# These give the following nonzero components of the elasticity tensor:
# E_0000 = E_1111 = 1.156756756757E+01
# E_0011 = E_1100 = 3.855855855856E+00
# E_2222 = E_pp = 8.108108108108E+00
# E_0022 = E_1122 = E_2200 = E_2211 = 2.702702702703E+00
# G = E_0101 = E_0110 = E_1001 = E_1010 = 4
# Gt = E_qq = E_0202 = E_0220 = E_2002 = E_1212 = E_1221 = E_2112 = 3.333333333333E+00
# E_2020 = E_2121 = 3.666666666667E+00
# They give the following nonzero components of the bending rigidity tensor:
# D = 8.888888888889E+02
# B_0101 = B_1010 = 8.080808080808E+00
# B_0110 = B_1001 = -2.020202020202E+00
#
# Applying the following deformation to the zmax surface of a unit cube:
# disp_x = 32*t/Gt
# disp_y = 24*t/Gt
# disp_z = 10*t/E_2222
# omega_x = omega_y = omega_z = 0
# yields the following strains:
# strain_xz = 32*t/Gt = 9.6*t
# strain_yz = 24*t/Gt = 7.2*t
# strain_zz = 10*t/E_2222 = 1.23333333*t
# and all other components, and the curvature, are zero.
# The nonzero components of stress are therefore:
# stress_xx = stress_yy = 3.33333*t
# stress_xz = stress_zx = 32*t
# stress_yz = stress_zy = 24*t
# stress_zz = 10*t
# The moment stress is zero.
# So q = 40*t and p = 10*t
#
# Use tan(friction_angle) = 0.5 and tan(dilation_angle) = E_qq/Epp/2, and cohesion=20,
# the system should return to p=0, q=20, ie stress_zz=0, stress_xz=16,
# stress_yz=12 on the first time step (t=1)
# and
# stress_xx = stress_yy = 0
# and
# stress_zx = 32, and stress_zy = 24.
# Although this has resulted in a non-symmetric stress tensor, the
# moments generated are cancelled by the boundary conditions on
# omega_x and omega_y. (Removing these boundary conditions results
# in a symmetric stress tensor, and some omega!=0 being generated.)
# No moment stresses are generated because omega=0=curvature.
#
# The total strains are given above (strain_xz = 9.6,
# strain_yz = 7.2 and strain_zz = 1.23333).
# Since q returned from 40 to 20, plastic_strain_xz = strain_xz/2 = 4.8
# and plastic_strain_yz = strain_yz/2 = 3.6.
# Since p returned to zero, all of the total strain_zz is
# plastic, ie plastic_strain_zz = 1.23333
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./bottom_wc_x]
type = DirichletBC
variable = wc_x
boundary = back
value = 0.0
[../]
[./bottom_wc_y]
type = DirichletBC
variable = wc_y
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 32*t/3.333333333333E+00
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 24*t/3.333333333333E+00
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 10*t/8.108108108108E+00
[../]
[./top_wc_x]
type = DirichletBC
variable = wc_x
boundary = front
value = 0.0
[../]
[./top_wc_y]
type = DirichletBC
variable = wc_y
boundary = front
value = 0.0
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./strainp_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./strainp_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zy]
order = CONSTANT
family = MONOMIAL
[../]
[./straint_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[./strainp_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xx
index_i = 0
index_j = 0
[../]
[./strainp_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xy
index_i = 0
index_j = 1
[../]
[./strainp_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_xz
index_i = 0
index_j = 2
[../]
[./strainp_yx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yx
index_i = 1
index_j = 0
[../]
[./strainp_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yy
index_i = 1
index_j = 1
[../]
[./strainp_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_yz
index_i = 1
index_j = 2
[../]
[./strainp_zx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zx
index_i = 2
index_j = 0
[../]
[./strainp_zy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zy
index_i = 2
index_j = 1
[../]
[./strainp_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = strainp_zz
index_i = 2
index_j = 2
[../]
[./straint_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xx
index_i = 0
index_j = 0
[../]
[./straint_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xy
index_i = 0
index_j = 1
[../]
[./straint_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_xz
index_i = 0
index_j = 2
[../]
[./straint_yx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yx
index_i = 1
index_j = 0
[../]
[./straint_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yy
index_i = 1
index_j = 1
[../]
[./straint_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_yz
index_i = 1
index_j = 2
[../]
[./straint_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zx
index_i = 2
index_j = 0
[../]
[./straint_zy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zy
index_i = 2
index_j = 1
[../]
[./straint_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = straint_zz
index_i = 2
index_j = 2
[../]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yx]
type = PointValue
point = '0 0 0'
variable = stress_yx
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zx]
type = PointValue
point = '0 0 0'
variable = stress_zx
[../]
[./s_zy]
type = PointValue
point = '0 0 0'
variable = stress_zy
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./c_s_xx]
type = PointValue
point = '0 0 0'
variable = couple_stress_xx
[../]
[./c_s_xy]
type = PointValue
point = '0 0 0'
variable = couple_stress_xy
[../]
[./c_s_xz]
type = PointValue
point = '0 0 0'
variable = couple_stress_xz
[../]
[./c_s_yx]
type = PointValue
point = '0 0 0'
variable = couple_stress_yx
[../]
[./c_s_yy]
type = PointValue
point = '0 0 0'
variable = couple_stress_yy
[../]
[./c_s_yz]
type = PointValue
point = '0 0 0'
variable = couple_stress_yz
[../]
[./c_s_zx]
type = PointValue
point = '0 0 0'
variable = couple_stress_zx
[../]
[./c_s_zy]
type = PointValue
point = '0 0 0'
variable = couple_stress_zy
[../]
[./c_s_zz]
type = PointValue
point = '0 0 0'
variable = couple_stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = strainp_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = strainp_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = strainp_xz
[../]
[./strainp_yx]
type = PointValue
point = '0 0 0'
variable = strainp_yx
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = strainp_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = strainp_yz
[../]
[./strainp_zx]
type = PointValue
point = '0 0 0'
variable = strainp_zx
[../]
[./strainp_zy]
type = PointValue
point = '0 0 0'
variable = strainp_zy
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = strainp_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = straint_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = straint_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = straint_xz
[../]
[./straint_yx]
type = PointValue
point = '0 0 0'
variable = straint_yx
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = straint_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = straint_yz
[../]
[./straint_zx]
type = PointValue
point = '0 0 0'
variable = straint_zx
[../]
[./straint_zy]
type = PointValue
point = '0 0 0'
variable = straint_zy
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = straint_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 20
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 2.055555555556E-01
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 100
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 100
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 10.0
poisson = 0.25
layer_thickness = 10.0
joint_normal_stiffness = 2.5
joint_shear_stiffness = 2.0
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
[../]
[./admissible]
type = ComputeMultipleInelasticCosseratStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneCosseratStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-5
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_cosserat3
csv = true
[]
(modules/solid_mechanics/test/tests/neml2/elasticity/elasticity.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = true
[]
[]
[]
[]
[NEML2]
input = 'elasticity_neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL'
moose_inputs = 'neml2_strain'
neml2_inputs = 'forces/E'
moose_output_types = 'MATERIAL'
moose_outputs = 'neml2_stress'
neml2_outputs = 'state/S'
moose_derivative_types = 'MATERIAL'
moose_derivatives = 'neml2_jacobian'
neml2_derivatives = 'state/S forces/E'
[]
[]
[Materials]
[convert_strain]
type = RankTwoTensorToSymmetricRankTwoTensor
from = 'mechanical_strain'
to = 'neml2_strain'
[]
[stress]
type = ComputeLagrangianObjectiveCustomSymmetricStress
custom_small_stress = 'neml2_stress'
custom_small_jacobian = 'neml2_jacobian'
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
preset = false
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 1e-3
dtmin = 1e-3
num_steps = 5
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
[]
(test/tests/misc/check_error/coupled_grad_without_declare.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[Functions]
[forcing_fnu]
type = ParsedFunction
expression = -5.8*(x+y)+x*x*x-x+y*y*y-y
[]
[forcing_fnv]
type = ParsedFunction
expression = -4
[]
[slnu]
type = ParsedGradFunction
expression = x*x*x-x+y*y*y-y
grad_x = 3*x*x-1
grad_y = 3*y*y-1
[]
[slnv]
type = ParsedGradFunction
expression = x*x+y*y
grad_x = 2*x
grad_y = 2*y
[]
#NeumannBC functions
[bc_fnut]
type = ParsedFunction
expression = 3*y*y-1
[]
[bc_fnub]
type = ParsedFunction
expression = -3*y*y+1
[]
[bc_fnul]
type = ParsedFunction
expression = -3*x*x+1
[]
[bc_fnur]
type = ParsedFunction
expression = 3*x*x-1
[]
[]
[Variables]
[u]
order = THIRD
family = HIERARCHIC
[]
[v]
order = SECOND
family = LAGRANGE
[]
[]
[Kernels]
active = 'diff1 diff2 test1 forceu forcev react'
[diff1]
type = Diffusion
variable = u
[]
[test1]
type = CoupledConvection
variable = u
velocity_vector = v
# Trigger the error in this class
test_coupling_declaration_error = true
[]
[diff2]
type = Diffusion
variable = v
[]
[react]
type = Reaction
variable = u
[]
[forceu]
type = BodyForce
variable = u
function = forcing_fnu
[]
[forcev]
type = BodyForce
variable = v
function = forcing_fnv
[]
[]
[BCs]
active = 'bc_u_tb bc_v bc_ul bc_ur bc_ut bc_ub'
[bc_u]
type = FunctionPenaltyDirichletBC
variable = u
function = slnu
boundary = 'left right top bottom'
penalty = 1e6
[]
[bc_v]
type = FunctionDirichletBC
variable = v
function = slnv
boundary = 'left right top bottom'
[]
[bc_u_lr]
type = FunctionPenaltyDirichletBC
variable = u
function = slnu
boundary = 'left right top bottom'
penalty = 1e6
[]
[bc_u_tb]
type = CoupledKernelGradBC
variable = u
var2 = v
vel = '0.1 0.1'
boundary = 'top bottom left right'
[]
[bc_ul]
type = FunctionNeumannBC
variable = u
function = bc_fnul
boundary = 'left'
[]
[bc_ur]
type = FunctionNeumannBC
variable = u
function = bc_fnur
boundary = 'right'
[]
[bc_ut]
type = FunctionNeumannBC
variable = u
function = bc_fnut
boundary = 'top'
[]
[bc_ub]
type = FunctionNeumannBC
variable = u
function = bc_fnub
boundary = 'bottom'
[]
[]
[Preconditioning]
active = ' '
[prec]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'L2u L2v'
[dofs]
type = NumDOFs
[]
[h]
type = AverageElementSize
[]
[L2u]
type = ElementL2Error
variable = u
function = slnu
[]
[L2v]
type = ElementL2Error
variable = v
function = slnv
[]
[H1error]
type = ElementH1Error
variable = u
function = solution
[]
[H1Semierror]
type = ElementH1SemiError
variable = u
function = solution
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1e-15
nl_abs_tol = 1e-13
[]
[Outputs]
execute_on = 'timestep_end'
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/restart/restart_subapp_not_parent/two_step_solve_sub.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[ICs]
[./u_var]
type = FunctionIC
variable = u
function = exact_fn
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Postprocessors]
[./average]
type = ElementAverageValue
variable = u
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
end_time = 2.0
dt = 1.0
[]
[Outputs]
[./checkpoint]
type = Checkpoint
num_files = 3
[../]
[]
(test/tests/time_steppers/function_dt/function_dt_min.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
expression = 2*t*(x*x+y*y)-4*t*t
[../]
[./dts]
type = PiecewiseLinear
x = '0 0.85 2'
y = '0.2 0.2 0.2'
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[ICs]
[./u_var]
type = FunctionIC
variable = u
function = exact_fn
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 10
[./TimeStepper]
type = FunctionDT
function = dts
min_dt = 0.1
[../]
[]
[Outputs]
exodus = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/scalar_adr/supg/2d_advection_error_testing.i)
ax=1
ay=1
[GlobalParams]
u = ${ax}
v = ${ay}
pressure = 0
tau_type = mod
transient_term = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
xmax = 1
ymax = 1
elem_type = QUAD9
[]
[Variables]
[./c]
family = LAGRANGE
order = SECOND
[../]
[]
[Kernels]
[./adv]
type = AdvectionSUPG
variable = c
forcing_func = 'ffn'
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = c
boundary = 'left right top bottom'
function = 'c_func'
[../]
[]
[Materials]
[./mat]
type = GenericConstantMaterial
prop_names = 'mu rho'
prop_values = '0 1'
[../]
[]
[Functions]
[./ffn]
type = ParsedFunction
expression = '${ax}*(0.14*pi*y*cos(0.2*pi*x*y) + 0.2*pi*cos(0.5*pi*x)) + ${ay}*(0.14*pi*x*cos(0.2*pi*x*y) + 0.4*pi*cos(pi*y))'
[../]
[./c_func]
type = ParsedFunction
expression = '0.4*sin(0.5*pi*x) + 0.4*sin(pi*y) + 0.7*sin(0.2*pi*x*y) + 0.5'
[../]
[./cx_func]
type = ParsedFunction
expression = '0.14*pi*y*cos(0.2*pi*x*y) + 0.2*pi*cos(0.5*pi*x)'
[../]
[]
# [Executioner]
# type = Steady
# petsc_options_iname = '-pc_type -pc_factor_shift_type'
# petsc_options_value = 'lu NONZERO'
# []
[Executioner]
type = Transient
num_steps = 10
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_view'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-12
nl_max_its = 10
l_tol = 1e-6
l_max_its = 10
[./TimeStepper]
dt = .05
type = IterationAdaptiveDT
cutback_factor = 0.4
growth_factor = 1.2
optimal_iterations = 20
[../]
[]
[Outputs]
[./exodus]
type = Exodus
[../]
[./csv]
type = CSV
[../]
[]
[Postprocessors]
[./L2c]
type = ElementL2Error
variable = c
function = c_func
outputs = 'console' execute_on = 'timestep_end'
[../]
[./L2cx]
type = ElementL2Error
variable = cx
function = cx_func
outputs = 'console' execute_on = 'timestep_end'
[../]
[]
[AuxVariables]
[./cx]
family = MONOMIAL
order = FIRST
[../]
[]
[AuxKernels]
[./cx_aux]
type = VariableGradientComponent
component = x
variable = cx
gradient_variable = c
[../]
[]
(modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian.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
[]
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
converge_on = 'disp_x disp_y'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[lm_x]
block = 'secondary_lower'
use_dual = true
scaling = 1.0e-5
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
scaling = 1.0e-5
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[saved_x]
[]
[saved_y]
[]
[diag_saved_x]
[]
[diag_saved_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'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
incremental = false
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
block = '1 2 3 4 5 6 7'
strain = SMALL
add_variables = false
[]
[]
[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'
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[]
[_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
[]
[stuff2_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2 3 4 5 6 7'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[stuff1_stress]
type = ComputeLinearElasticStress
block = '1'
[]
[stuff2_stress]
type = ComputeLinearElasticStress
block = '2 3 4 5 6 7'
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu NONZERO 1e-12'
line_search = 'none'
nl_abs_tol = 1e-7
l_max_its = 5
nl_rel_tol = 1e-09
start_time = -0.1
end_time = 0.3 # 3.5
l_tol = 1e-8
dt = 0.1
dtmin = 0.001
[]
[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
[]
[lm_x]
type = NodalValueSampler
variable = lm_x
boundary = '3'
sort_by = id
[]
[lm_y]
type = NodalValueSampler
variable = lm_y
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 lm_x lm_y'
file_base = cylinder_friction_check
create_final_symlink = true
execute_on = 'FINAL'
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeFrictionalForceCartesianLMMechanicalContact
primary_boundary = 2
secondary_boundary = 3
primary_subdomain = 10000
secondary_subdomain = 10001
lm_x = lm_x
lm_y = lm_y
variable = lm_x
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
correct_edge_dropping = false
mu = 0.4
c_t = 1.0e6
c = 1.0e6
[]
[x]
type = CartesianMortarMechanicalContact
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = false
[]
[y]
type = CartesianMortarMechanicalContact
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = false
[]
[]
(modules/contact/test/tests/bouncing-block-contact/frictionless-weighted-gap.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
scaling = 1e0
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[normal_lm]
block = 3
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable = normal_lm
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
c = 1
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
preset = false
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
preset = false
[]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
snesmf_reuse_base = true
nl_rel_tol = 1e-12
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(modules/contact/examples/2d_indenter/indenter_rz_nodeface_friction.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]#Comment
file = indenter_rz_fine.e
displacements = 'disp_x disp_y'
# For NodalVariableValue to work with distributed mesh
allow_renumbering = false
[] # Mesh
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0. 1.0 1.8 2. 3.0'
y = '0. -4.5 -5.4 -5.4 -4.0'
[../]
[] # Functions
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[] # Variables
[AuxVariables]
[saved_x]
[]
[saved_y]
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
save_in = 'saved_x saved_y'
[../]
[]
[AuxKernels]
[] # AuxKernels
[BCs]
# Symmetries of the Problem
[./symm_x_indenter]
type = DirichletBC
variable = disp_x
boundary = 5
value = 0.0
[../]
[./symm_x_material]
type = DirichletBC
variable = disp_x
boundary = 9
value = 0.0
[../]
# Material should not fly away
[./material_base_y]
type = DirichletBC
variable = disp_y
boundary = 8
value = 0.0
[../]
# Drive indenter motion
[./disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = disp_y
[../]
[] # BCs
[Contact]
[./dummy_name]
primary = 6
secondary = 4
model = coulomb
formulation = penalty
normalize_penalty = true
friction_coefficient = 0.5
penalty = 8e6
tangential_tolerance = 0.005
[../]
[]
[Dampers]
[./contact_slip]
type = ContactSlipDamper
secondary = 4
primary = 6
[../]
[]
[Materials]
[./tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e7
poissons_ratio = 0.25
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[../]
[./tensor_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./power_law_hardening]
type = IsotropicPowerLawHardeningStressUpdate
strength_coefficient = 1e5 #K
strain_hardening_exponent = 0.5 #n
block = '2'
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'power_law_hardening'
tangent_operator = elastic
block = '2'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu basic NONZERO 1e-15'
line_search = 'none'
automatic_scaling = true
nl_abs_tol = 1.5e-07
nl_rel_tol = 1.5e-07
l_max_its = 40
start_time = 0.0
dt = 0.025
end_time = 3.0
[]
[Postprocessors]
[./maxdisp]
type = NodalVariableValue
nodeid = 39 # 40-1 where 40 is the exodus node number
variable = disp_y
[../]
[resid_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
perf_graph = true
csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/centrosymmetric_spherical/total/action/action.i)
[GlobalParams]
displacements = 'disp_r'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
nx = 2
[]
[]
[Problem]
coord_type = RSPHERICAL
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
formulation = TOTAL
strain = FINITE
add_variables = true
new_system = true
volumetric_locking_correction = true
[]
[]
[]
[]
[BCs]
[bottom]
type = DirichletBC
preset = false
variable = disp_r
boundary = left
value = 0.0
[]
[top]
type = FunctionDirichletBC
preset = false
variable = disp_r
boundary = right
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
large_kinematics = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dt = 0.1
num_steps = 1
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/axisymmetric_2d3d_solution_function/3dy.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = 3dy.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./temp]
[../]
[./hoop_stress]
order = CONSTANT
family = MONOMIAL
[../]
[]
[UserObjects]
[./soln]
type = SolutionUserObject
mesh = 2d_out.e
system_variables = 'disp_x disp_y temp'
[../]
[]
[Functions]
[./soln_func_temp]
type = Axisymmetric2D3DSolutionFunction
solution = soln
from_variables = 'temp'
[../]
[./soln_func_disp_x]
type = Axisymmetric2D3DSolutionFunction
solution = soln
from_variables = 'disp_x disp_y'
component = 0
[../]
[./soln_func_disp_y]
type = Axisymmetric2D3DSolutionFunction
solution = soln
from_variables = 'disp_x disp_y'
component = 1
[../]
[./soln_func_disp_z]
type = Axisymmetric2D3DSolutionFunction
solution = soln
from_variables = 'disp_x disp_y'
component = 2
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
volumetric_locking_correction = true
add_variables = true
incremental = true
strain = FINITE
eigenstrain_names = thermal_expansion
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress'
[../]
[]
[AuxKernels]
[./t_soln_aux]
type = FunctionAux
variable = temp
block = '1 2'
function = soln_func_temp
[../]
[./hoop_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = hoop_stress
scalar_type = HoopStress
execute_on = timestep_end
[../]
[]
[BCs]
[./x_soln_bc]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = '1 2'
function = soln_func_disp_x
[../]
[./y_soln_bc]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = '1 2'
function = soln_func_disp_y
[../]
[./z_soln_bc]
type = FunctionDirichletBC
variable = disp_z
preset = false
boundary = '1 2'
function = soln_func_disp_z
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 193.05e9
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = '1 2'
thermal_expansion_coeff = 13e-6
stress_free_temperature = 295.00
temperature = temp
eigenstrain_name = thermal_expansion
[../]
[./density]
type = Density
block = '1'
density = 8000.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-ksp_snes_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = ' 201 hypre boomeramg 4'
line_search = 'none'
l_max_its = 25
nl_max_its = 20
nl_rel_tol = 1e-10
l_tol = 1e-2
start_time = 0.0
dt = 1
end_time = 1
dtmin = 1
[]
[Outputs]
file_base = 3dy_out
exodus = true
[./console]
type = Console
max_rows = 25
[../]
[]
(modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform2_native.i)
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1.5E-6*x+2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
mc_interpolation_scheme = native
internal_constraint_tolerance = 1 # irrelevant here
yield_function_tolerance = 1 # irrelevant here
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = cdp
perform_finite_strain_rotations = false
[../]
[./cdp]
type = CappedDruckerPragerStressUpdate
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-8
tip_smoother = 4
smoothing_tol = 1E-5
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2_native
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/jacobian_damper/cube_load.i)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
displacements = 'disp_x disp_y disp_z'
# This test uses ElementalVariableValue postprocessors on specific
# elements, so element numbering needs to stay unchanged
allow_renumbering = false
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./total_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./top_pull]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0.025 0.05'
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./total_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yy
index_i = 1
index_j = 1
[../]
[]
[BCs]
[./y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = 3
function = top_pull
[../]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[../]
[]
[Postprocessors]
[./stress_yy_el]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 2e5
[../]
[./strain]
type = ComputeFiniteStrain
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Dampers]
[./disp_x_damp]
type = ElementJacobianDamper
max_increment = 0.002
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 2
dt = 1
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test4nns.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test4.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_method = nodal_normal_based
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-10
l_max_its = 10
start_time = 0.0
dt = 0.0125
end_time = 1.0
[]
[Outputs]
file_base = pl_test4nns_out
exodus = true
[]
[NodalNormals]
boundary = 11
corner_boundary = 20
[]
(modules/combined/test/tests/generalized_plane_strain_tm_contact/generalized_plane_strain_tm_contact.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
scalar_out_of_plane_strain = scalar_strain_zz
temperature = temp
[]
[Mesh]
file = 2squares.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./temp]
[../]
[./scalar_strain_zz]
order = FIRST
family = SCALAR
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Postprocessors]
[./react_z]
type = MaterialTensorIntegral
rank_two_tensor = stress
index_i = 2
index_j = 2
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[Physics]
[./SolidMechanics]
[./GeneralizedPlaneStrain]
[./gps]
use_displaced_mesh = true
[../]
[../]
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xy
index_i = 0
index_j = 1
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[]
[Functions]
[./tempramp]
type = ParsedFunction
expression = 't'
[../]
[]
[BCs]
[./x]
type = DirichletBC
boundary = '4 6'
variable = disp_x
value = 0.0
[../]
[./y]
type = DirichletBC
boundary = '4 6'
variable = disp_y
value = 0.0
[../]
[./t]
type = DirichletBC
boundary = '4'
variable = temp
value = 0.0
[../]
[./tramp]
type = FunctionDirichletBC
variable = temp
boundary = '6'
function = tempramp
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'disp_x disp_y'
off_diag_column = 'disp_y disp_x'
[../]
[]
[Contact]
[./mech]
primary = 8
secondary = 2
penalty = 1e+10
normalize_penalty = true
tangential_tolerance = .1
normal_smoothing_distance = .1
model = frictionless
formulation = kinematic
[../]
[]
[ThermalContact]
[./thermal]
type = GapHeatTransfer
primary = 8
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
variable = temp
tangential_tolerance = .1
normal_smoothing_distance = .1
gap_conductivity = 0.01
min_gap = 0.001
quadrature = true
[../]
[]
[Materials]
[./elastic_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 1e6
block = '1 2'
[../]
[./strain]
type = ComputePlaneSmallStrain
eigenstrain_names = eigenstrain
block = '1 2'
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
temperature = temp
thermal_expansion_coeff = 0.02
stress_free_temperature = 0.0
eigenstrain_name = eigenstrain
block = '1 2'
[../]
[./stress]
type = ComputeLinearElasticStress
block = '1 2'
[../]
[./heatcond]
type = HeatConductionMaterial
thermal_conductivity = 3.0
specific_heat = 300.0
block = '1 2'
[../]
[./density]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = '1'
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
petsc_options_iname = '-pc_type -ps_sub_type -pc_factor_mat_solver_package'
petsc_options_value = 'asm lu superlu_dist'
# controls for linear iterations
l_max_its = 100
l_tol = 1e-4
# controls for nonlinear iterations
nl_max_its = 20
nl_rel_tol = 1e-9
nl_abs_tol = 1e-10
# time control
start_time = 0.0
dt = 0.2
dtmin = 0.2
end_time = 2.0
[]
[Outputs]
exodus = true
[]
(modules/navier_stokes/test/tests/auxkernels/peclet-number-functor-aux/fe-thermal.i)
rho = 1
mu = 1
k = 1
cp = 1
[GlobalParams]
gravity = '0 0 0'
pspg = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
[]
[corner_node]
type = ExtraNodesetGenerator
new_boundary = 'pinned_node'
nodes = '0'
input = gen
[]
[]
[AuxVariables]
[Pe]
family = MONOMIAL
order = FIRST
[]
[]
[AuxKernels]
[Pe]
type = PecletNumberFunctorAux
variable = Pe
speed = speed
thermal_diffusivity = 'thermal_diffusivity'
[]
[]
[Variables]
[vel_x][]
[vel_y][]
[p][]
[T][]
[]
[Kernels]
# mass
[mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[]
# x-momentum, space
[x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[]
# y-momentum, space
[y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[]
[temperature_space]
type = INSTemperature
variable = T
u = vel_x
v = vel_y
[]
[]
[BCs]
[x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'bottom right left'
value = 0.0
[]
[lid]
type = FunctionDirichletBC
variable = vel_x
boundary = 'top'
function = 'lid_function'
[]
[y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'bottom right top left'
value = 0.0
[]
[pressure_pin]
type = DirichletBC
variable = p
boundary = 'pinned_node'
value = 0
[]
[T_hot]
type = DirichletBC
variable = T
boundary = 'bottom'
value = 1
[]
[T_cold]
type = DirichletBC
variable = T
boundary = 'top'
value = 0
[]
[]
[Materials]
[const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu k cp'
prop_values = '${rho} ${mu} ${k} ${cp}'
[]
[speed]
type = ADVectorMagnitudeFunctorMaterial
x_functor = vel_x
y_functor = vel_y
vector_magnitude_name = speed
[]
[thermal_diffusivity]
type = ThermalDiffusivityFunctorMaterial
k = ${k}
rho = ${rho}
cp = ${cp}
[]
[]
[Functions]
[lid_function]
# We pick a function that is exactly represented in the velocity
# space so that the Dirichlet conditions are the same regardless
# of the mesh spacing.
type = ParsedFunction
expression = '4*x*(1-x)'
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
solve_type = 'NEWTON'
[]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type'
petsc_options_value = 'asm 2 lu'
line_search = 'none'
nl_rel_tol = 1e-12
[]
[Outputs]
exodus = true
[]
(modules/xfem/test/tests/bimaterials/inclusion_bimaterials_2d.i)
# This test is for a matrix-inclusion composite materials
# The global stress is determined by switching the stress based on level set values
# The inclusion geometry is marked by a level set function
# The matrix and inclusion are glued together
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./level_set_cut_uo]
type = LevelSetCutUserObject
level_set_var = ls
[../]
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 11
ny = 11
xmin = 0.0
xmax = 5.
ymin = 0.0
ymax = 5.
elem_type = QUAD4
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./ls]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./ls_function]
type = FunctionAux
variable = ls
function = ls_func
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Functions]
[./ls_func]
type = ParsedFunction
expression = 'sqrt((y-2.5)*(y-2.5) + (x-2.5)*(x-2.5)) - 1.5'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./a_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./a_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./a_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./b_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./b_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./b_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./a_strain_xx]
type = RankTwoAux
rank_two_tensor = A_total_strain
index_i = 0
index_j = 0
variable = a_strain_xx
[../]
[./a_strain_yy]
type = RankTwoAux
rank_two_tensor = A_total_strain
index_i = 1
index_j = 1
variable = a_strain_yy
[../]
[./a_strain_xy]
type = RankTwoAux
rank_two_tensor = A_total_strain
index_i = 0
index_j = 1
variable = a_strain_xy
[../]
[./b_strain_xx]
type = RankTwoAux
rank_two_tensor = B_total_strain
index_i = 0
index_j = 0
variable = b_strain_xx
[../]
[./b_strain_yy]
type = RankTwoAux
rank_two_tensor = B_total_strain
index_i = 1
index_j = 1
variable = b_strain_yy
[../]
[./b_strain_xy]
type = RankTwoAux
rank_two_tensor = B_total_strain
index_i = 0
index_j = 1
variable = b_strain_xy
[../]
[]
[Constraints]
[./dispx_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_x
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[../]
[./dispy_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_y
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[../]
[./bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
boundary = top
variable = disp_x
function = '0.03*t'
[../]
[./topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = '0.03*t'
[../]
[]
[Materials]
[./elasticity_tensor_A]
type = ComputeIsotropicElasticityTensor
base_name = A
youngs_modulus = 1e9
poissons_ratio = 0.3
[../]
[./strain_A]
type = ComputeSmallStrain
base_name = A
[../]
[./stress_A]
type = ComputeLinearElasticStress
base_name = A
[../]
[./elasticity_tensor_B]
type = ComputeIsotropicElasticityTensor
base_name = B
youngs_modulus = 1e5
poissons_ratio = 0.3
[../]
[./strain_B]
type = ComputeSmallStrain
base_name = B
[../]
[./stress_B]
type = ComputeLinearElasticStress
base_name = B
[../]
[./combined_stress]
type = LevelSetBiMaterialRankTwo
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = stress
[../]
[./combined_dstressdstrain]
type = LevelSetBiMaterialRankFour
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = Jacobian_mult
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
# controls for linear iterations
l_max_its = 20
l_tol = 1e-3
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-7
# time control
start_time = 0.0
dt = 0.5
end_time = 1.0
num_steps = 2
max_xfem_update = 1
[]
[Outputs]
exodus = true
execute_on = timestep_end
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/cohesive_zone_model/czm_patch_test_base.i)
# Patch test for cohesive zone modeling to check the jacobian of cohesive kernels and materials.
# One test of this kind should be included when adding a new traction separation law.
# To preperly check the cohesive zone Jacobian, the cohesive stiffness should be low compared to the bulk stiffness.
# Quadratic convergence is always expected.
[Mesh]
[./msh]
type = FileMeshGenerator
file = patch_mesh.e
[]
[./split]
type = BreakMeshByBlockGenerator
input = msh
[]
[./add_surfaces]
type = SideSetsFromNormalsGenerator
input = split
normals = '0 0 1
0 1 0
1 0 0
0 0 -1
0 -1 0
-1 0 0'
fixed_normal = true
new_boundary = 'z1 y1 x1 z0 y0 x0'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[./all]
strain = FINITE
add_variables = true
use_finite_deform_jacobian = true
use_automatic_differentiation = true
[../]
[../]
[../]
[]
[Functions]
[./stretch]
type = PiecewiseLinear
x = '0 0.05'
y = '0 0.1'
[../]
[]
[Constraints]
[x1]
type = EqualValueBoundaryConstraint
variable = disp_x
secondary = 'x1' # boundary
penalty = 1e6
[]
[y1]
type = EqualValueBoundaryConstraint
variable = disp_y
secondary = 'y1' # boundary
penalty = 1e6
[]
[]
[BCs]
[./fix_x]
type = DirichletBC
preset = true
value = 0.0
boundary = 'x0'
variable = disp_x
[../]
[./fix_y]
type = DirichletBC
preset = true
value = 0.0
boundary = 'y0'
variable = disp_y
[../]
[./fix_z]
type = DirichletBC
preset = true
value = 0.0
boundary = 'z0'
variable = disp_z
[../]
[./back_z]
type = FunctionDirichletBC
boundary = 'z1'
variable = disp_z
use_displaced_mesh = true
function = stretch
[../]
[./rotate_x]
type = DisplacementAboutAxis
boundary = 'x0 y0 z0 x1 y1 z1'
function = '90.'
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 1. 0.'
component = 0
variable = disp_x
angular_velocity = true
[../]
[./rotate_y]
type = DisplacementAboutAxis
boundary = 'x0 y0 z0 x1 y1 z1'
function = '90.'
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 1. 0.'
component = 1
variable = disp_y
angular_velocity = true
[../]
[./rotate_z]
type = DisplacementAboutAxis
boundary = 'x0 y0 z0 x1 y1 z1'
function = '90.'
angle_units = degrees
axis_origin = '0. 0. 0.'
axis_direction = '0. 1. 0.'
component = 2
variable = disp_z
angular_velocity = true
[../]
[]
[Controls]
[./c1]
type = TimePeriod
enable_objects = 'BCs::fix_x BCs::fix_y BCs::fix_z BCs::back_z Constraints::x1 Constraints::y1'
disable_objects = 'BCs::rotate_x BCs::rotate_y BCs::rotate_z'
start_time = '0'
end_time = '0.05'
[../]
[]
[Physics/SolidMechanics/CohesiveZone]
[./czm_ik]
boundary = 'interface'
[../]
[]
[Materials]
[./stress]
type = ADComputeFiniteStrainElasticStress
[../]
[./elasticity_tensor]
type = ADComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
[../]
[./czm_mat]
boundary = 'interface'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
dt = 0.025
end_time = 0.075
[]
[Postprocessors]
[./nonlin]
type = NumNonlinearIterations
[../]
[]
[Outputs]
csv = true
exodus = true
[]
(test/tests/actions/meta_action_multiple_tasks/circle_quads.i)
[Mesh]
file = circle-quads.e
[]
[Functions]
[./all_bc_fn]
type = ParsedFunction
expression = x*x+y*y
[../]
[./f_fn]
type = ParsedFunction
expression = -4
[../]
[./analytical_normal_x]
type = ParsedFunction
expression = x
[../]
[./analytical_normal_y]
type = ParsedFunction
expression = y
[../]
[]
# An Action that adds an Action that satisfies multiple tasks!
[MetaNodalNormals]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = f_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = 'all_bc_fn'
[../]
[]
[Postprocessors]
[./nx_pps]
type = NodalL2Error
variable = nodal_normal_x
boundary = '1'
function = analytical_normal_x
[../]
[./ny_pps]
type = NodalL2Error
variable = nodal_normal_y
boundary = '1'
function = analytical_normal_y
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1e-13
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/solid_mechanics/test/tests/tensile/small_deform6.i)
# checking for small deformation
# A single element is incrementally stretched in the in the z direction
# This causes the return direction to be along the hypersurface sigma_II = sigma_III,
# and the resulting stresses are checked to lie on the expected yield surface
#
# tensile_strength is set to 1Pa, tip_smoother = 0.5
# Lode angle = -30degrees
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.25E-6*z*t*t'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./mc]
type = SolidMechanicsPlasticTensile
tensile_strength = ts
yield_function_tolerance = 1E-6
tensile_tip_smoother = 0.5
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform6
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/variables/mixed_order_variables/mixed_order_variables_test.i)
# FIRST order nodal variables on SECOND order grid
#
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[Functions]
[./force_fn]
type = ParsedFunction
expression = -4
[../]
[./exact_fn]
type = ParsedFunction
expression = (x*x)+(y*y)
[../]
[./aux_fn]
type = ParsedFunction
expression = (1-x*x)*(1-y*y)
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = force_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
preset = false
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[AuxVariables]
[./aux1]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./ak1]
type = FunctionAux
variable = aux1
function = aux_fn
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
file_base = out
exodus = true
[]
(test/tests/mesh/mesh_generation/annulus_sector_deprecated.i)
# Generates a sector of an Annular Mesh between angle=Pi/4 and angle=3Pi/4
# Radius of inside circle=1
# Radius of outside circle=5
# Solves the diffusion equation with
# u=0 on inside
# u=log(5) on outside
# u=log(r) at angle=Pi/4 and angle=3Pi/4
[Mesh]
type = AnnularMesh
nr = 10
nt = 12
rmin = 1
rmax = 5
tmin = 0.785398163
tmax = 2.356194490
growth_r = 1.3
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./inner]
type = DirichletBC
variable = u
value = 0.0
boundary = rmin
[../]
[./outer]
type = FunctionDirichletBC
variable = u
function = log(5)
boundary = rmax
[../]
[./min_angle]
type = FunctionDirichletBC
variable = u
function = 'log(sqrt(x*x + y*y))'
boundary = 'tmin tmax'
[../]
[]
[Executioner]
type = Steady
solve_type = PJFNK
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform3_lode_zero.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-1.7E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E5
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E5
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
mc_interpolation_scheme = lode_zero
yield_function_tolerance = 1 # irrelevant here
internal_constraint_tolerance = 1 # irrelevant here
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = mc
perform_finite_strain_rotations = false
[../]
[./mc]
type = CappedDruckerPragerStressUpdate
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-8
tip_smoother = 8
smoothing_tol = 1E-7
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3_lode_zero
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/combined/test/tests/elastic_thermal_patch/elastic_thermal_patch.i)
# Patch Test
# This test is designed to compute constant xx, yy, zz, xy, yz, and zx
# stress on a set of irregular hexes. The mesh is composed of one
# block with seven elements. The elements form a unit cube with one
# internal element. There is a nodeset for each exterior node.
# The cube is displaced by 1e-6 units in x, 2e-6 in y, and 3e-6 in z.
# The faces are sheared as well (1e-6, 2e-6, and 3e-6 for xy, yz, and
# zx). This gives a uniform strain/stress state for all six unique
# tensor components.
# With Young's modulus at 1e6 and Poisson's ratio at 0, the shear
# modulus is 5e5 (G=E/2/(1+nu)). Therefore, for the mechanical strain,
#
# stress xx = 1e6 * 1e-6 = 1
# stress yy = 1e6 * 2e-6 = 2
# stress zz = 1e6 * 3e-6 = 3
# stress xy = 2 * 5e5 * 1e-6 / 2 = 0.5
# (2 * G * gamma_xy / 2 = 2 * G * epsilon_xy)
# stress yz = 2 * 5e5 * 2e-6 / 2 = 1
# stress zx = 2 * 5e5 * 3e-6 / 2 = 1.5
# However, we must also consider the thermal strain.
# The temperature moves 100 degrees, and the coefficient of thermal
# expansion is 1e-8. Therefore, the thermal strain (and the displacement
# since this is a unit cube) is 1e-6.
# Therefore, the overall effect is (at time 1, with a 50 degree delta):
#
# stress xx = 1e6 * (1e-6-0.5e-6) = 0.5
# stress yy = 1e6 * (2e-6-0.5e-6) = 1.5
# stress zz = 1e6 * (3e-6-0.5e-6) = 2.5
# stress xy = 2 * 5e5 * 1e-6 / 2 = 0.5
# (2 * G * gamma_xy / 2 = 2 * G * epsilon_xy)
# stress yz = 2 * 5e5 * 2e-6 / 2 = 1
# stress zx = 2 * 5e5 * 3e-6 / 2 = 1.5
#
# At time 2:
#
# stress xx = 1e6 * (1e-6-1e-6) = 0
# stress yy = 1e6 * (2e-6-1e-6) = 1
# stress zz = 1e6 * (3e-6-1e-6) = 2
# stress xy = 2 * 5e5 * 1e-6 / 2 = 0.5
# (2 * G * gamma_xy / 2 = 2 * G * epsilon_xy)
# stress yz = 2 * 5e5 * 2e-6 / 2 = 1
# stress zx = 2 * 5e5 * 3e-6 / 2 = 1.5
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
temperature = temp
[]
[Mesh]
file = elastic_thermal_patch_test.e
[]
[Functions]
[./rampConstant1]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 1e-6
[../]
[./rampConstant2]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 2e-6
[../]
[./rampConstant3]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 3e-6
[../]
[./rampConstant4]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 4e-6
[../]
[./rampConstant6]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 6e-6
[../]
[./tempFunc]
type = PiecewiseLinear
x = '0. 2.'
y = '117.56 217.56'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 117.56
[../]
[]
[Physics/SolidMechanics/QuasiStatic/All]
add_variables = true
strain = FINITE
eigenstrain_names = eigenstrain
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./node1_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./node1_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = rampConstant2
[../]
[./node1_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 1
function = rampConstant3
[../]
[./node2_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 2
function = rampConstant1
[../]
[./node2_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = rampConstant2
[../]
[./node2_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 2
function = rampConstant6
[../]
[./node3_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 3
function = rampConstant1
[../]
[./node3_y]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[../]
[./node3_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 3
function = rampConstant3
[../]
[./node4_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[../]
[./node4_y]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[./node4_z]
type = DirichletBC
variable = disp_z
boundary = 4
value = 0.0
[../]
[./node5_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 5
function = rampConstant1
[../]
[./node5_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = rampConstant4
[../]
[./node5_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 5
function = rampConstant3
[../]
[./node6_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 6
function = rampConstant2
[../]
[./node6_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 6
function = rampConstant4
[../]
[./node6_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 6
function = rampConstant6
[../]
[./node7_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 7
function = rampConstant2
[../]
[./node7_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 7
function = rampConstant2
[../]
[./node7_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 7
function = rampConstant3
[../]
[./node8_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 8
function = rampConstant1
[../]
[./node8_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 8
function = rampConstant2
[../]
[./node8_z]
type = DirichletBC
variable = disp_z
boundary = 8
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = '10 12'
function = tempFunc
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
bulk_modulus = 0.333333333333333e6
shear_modulus = 0.5e6
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 117.56
thermal_expansion_coeff = 1e-8
eigenstrain_name = eigenstrain
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[./heat]
type = HeatConductionMaterial
specific_heat = 1.0
thermal_conductivity = 1.0
[../]
[./density]
type = Density
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_rel_tol = 1e-12
l_max_its = 20
start_time = 0.0
dt = 1.0
num_steps = 2
end_time = 2.0
[]
[Outputs]
exodus = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_by_parts_steady_stabilized.i)
# This input file tests several different things:
# .) The axisymmetric (RZ) form of the governing equations.
# .) An open boundary.
# .) Not integrating the pressure by parts, thereby requiring a pressure pin.
# .) Natural boundary condition at the outlet.
[GlobalParams]
integrate_p_by_parts = true
laplace = true
gravity = '0 0 0'
supg = true
pspg = true
order = FIRST
[]
[Mesh]
file = '2d_cone.msh'
[]
[Problem]
coord_type = RZ
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = Newton
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'bjacobi ilu 4'
nl_rel_tol = 1e-12
nl_max_its = 6
[]
[Outputs]
console = true
[./out]
type = Exodus
[../]
[]
[Variables]
[./vel_x]
# Velocity in radial (r) direction
[../]
[./vel_y]
# Velocity in axial (z) direction
[../]
[./p]
[../]
[]
[BCs]
[./u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[../]
[./v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[../]
[./u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[../]
[./v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[../]
[]
[Kernels]
[./mass]
type = INSMassRZ
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 'volume'
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[../]
[]
[Postprocessors]
[./flow_in]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'bottom'
execute_on = 'timestep_end'
[../]
[./flow_out]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'top'
execute_on = 'timestep_end'
[../]
[]
(modules/solid_mechanics/test/tests/shell/static/tapered.i)
# Test for the stress and strain output for tapered shell elements.
# A tapered beam is represented with shell elements in XY plane
# having Young's Modulus of 210000 and poissons ratio of 0.3.
# The displacement in X direction is constrained in the left end and the
# displacement of center node of the left end is constrained in Y direction.
# A uniform displacement is applied at the right end.
# The problem is symmetric about Y-axis and the results are symmetric.
[Mesh]
[input]
type = FileMeshGenerator
file = taperedmesh.e
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[rot_x]
[]
[rot_y]
[]
[]
[AuxVariables]
[stress_00]
order = CONSTANT
family = MONOMIAL
[]
[stress_11]
order = CONSTANT
family = MONOMIAL
[]
[stress_22]
order = CONSTANT
family = MONOMIAL
[]
[stress_01]
order = CONSTANT
family = MONOMIAL
[]
[stress_10]
order = CONSTANT
family = MONOMIAL
[]
[stress_02]
order = CONSTANT
family = MONOMIAL
[]
[stress_20]
order = CONSTANT
family = MONOMIAL
[]
[stress_12]
order = CONSTANT
family = MONOMIAL
[]
[stress_21]
order = CONSTANT
family = MONOMIAL
[]
[strain_00]
order = CONSTANT
family = MONOMIAL
[]
[strain_11]
order = CONSTANT
family = MONOMIAL
[]
[strain_22]
order = CONSTANT
family = MONOMIAL
[]
[strain_01]
order = CONSTANT
family = MONOMIAL
[]
[strain_10]
order = CONSTANT
family = MONOMIAL
[]
[strain_02]
order = CONSTANT
family = MONOMIAL
[]
[strain_20]
order = CONSTANT
family = MONOMIAL
[]
[strain_12]
order = CONSTANT
family = MONOMIAL
[]
[strain_21]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[solid_disp_x]
type = ADStressDivergenceShell
block = 1
component = 0
variable = disp_x
through_thickness_order = SECOND
[]
[solid_disp_y]
type = ADStressDivergenceShell
block = 1
component = 1
variable = disp_y
through_thickness_order = SECOND
[]
[solid_disp_z]
type = ADStressDivergenceShell
block = 1
component = 2
variable = disp_z
through_thickness_order = SECOND
[]
[solid_rot_x]
type = ADStressDivergenceShell
block = 1
component = 3
variable = rot_x
through_thickness_order = SECOND
[]
[solid_rot_y]
type = ADStressDivergenceShell
block = 1
component = 4
variable = rot_y
through_thickness_order = SECOND
[]
[]
[AuxKernels]
[stress_00]
type = RankTwoAux
variable = stress_00
rank_two_tensor = global_stress_t_points_0
index_i = 0
index_j = 0
execute_on = TIMESTEP_END
[]
[strain_00]
type = RankTwoAux
variable = strain_00
rank_two_tensor = total_global_strain_t_points_0
index_i = 0
index_j = 0
execute_on = TIMESTEP_END
[]
[stress_11]
type = RankTwoAux
variable = stress_11
rank_two_tensor = global_stress_t_points_0
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[]
[strain_11]
type = RankTwoAux
variable = strain_11
rank_two_tensor = total_global_strain_t_points_0
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[]
[stress_22]
type = RankTwoAux
variable = stress_22
rank_two_tensor = global_stress_t_points_0
index_i = 2
index_j = 2
execute_on = TIMESTEP_END
[]
[strain_22]
type = RankTwoAux
variable = strain_22
rank_two_tensor = total_global_strain_t_points_0
index_i = 2
index_j = 2
execute_on = TIMESTEP_END
[]
[stress_01]
type = RankTwoAux
variable = stress_01
rank_two_tensor = global_stress_t_points_0
index_i = 0
index_j = 1
execute_on = TIMESTEP_END
[]
[strain_01]
type = RankTwoAux
variable = strain_01
rank_two_tensor = total_global_strain_t_points_0
index_i = 0
index_j = 1
execute_on = TIMESTEP_END
[]
[stress_10]
type = RankTwoAux
variable = stress_10
rank_two_tensor = global_stress_t_points_0
index_i = 1
index_j = 0
execute_on = TIMESTEP_END
[]
[strain_10]
type = RankTwoAux
variable = strain_10
rank_two_tensor = total_global_strain_t_points_0
index_i = 1
index_j = 0
execute_on = TIMESTEP_END
[]
[stress_02]
type = RankTwoAux
variable = stress_02
rank_two_tensor = global_stress_t_points_0
index_i = 0
index_j = 2
execute_on = TIMESTEP_END
[]
[strain_02]
type = RankTwoAux
variable = strain_02
rank_two_tensor = total_global_strain_t_points_0
index_i = 0
index_j = 2
execute_on = TIMESTEP_END
[]
[stress_20]
type = RankTwoAux
variable = stress_20
rank_two_tensor = global_stress_t_points_0
index_i = 2
index_j = 0
execute_on = TIMESTEP_END
[]
[strain_20]
type = RankTwoAux
variable = strain_20
rank_two_tensor = total_global_strain_t_points_0
index_i = 2
index_j = 0
execute_on = TIMESTEP_END
[]
[stress_12]
type = RankTwoAux
variable = stress_12
rank_two_tensor = global_stress_t_points_0
index_i = 1
index_j = 2
execute_on = TIMESTEP_END
[]
[strain_12]
type = RankTwoAux
variable = strain_12
rank_two_tensor = total_global_strain_t_points_0
index_i = 1
index_j = 2
execute_on = TIMESTEP_END
[]
[stress_21]
type = RankTwoAux
variable = stress_21
rank_two_tensor = global_stress_t_points_0
index_i = 2
index_j = 1
execute_on = TIMESTEP_END
[]
[strain_21]
type = RankTwoAux
variable = strain_21
rank_two_tensor = total_global_strain_t_points_0
index_i = 2
index_j = 1
execute_on = TIMESTEP_END
[]
[]
[BCs]
[BC_0]
type = ADDirichletBC
variable = disp_x
value = 0.0
boundary = '2' #left
[]
[BC_1]
type = ADDirichletBC
variable = disp_y
value = 0.0
boundary = 10 #left_side_mid
[]
[BC_2]
type = FunctionDirichletBC
variable = disp_x
boundary = '3'
function = displacement
[]
[]
[Functions]
[displacement]
type = PiecewiseLinear
x = '0.0 1.0'
y = '0.0 0.2'
[]
[]
[Materials]
[stress]
type = ADComputeShellStress
block = 1
through_thickness_order = SECOND
[]
[elasticity]
type = ADComputeIsotropicElasticityTensorShell
youngs_modulus = 210000
poissons_ratio = 0.3
block = 1
through_thickness_order = SECOND
[]
[strain]
type = ADComputeIncrementalShellStrain
block = 1
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y'
thickness = 0.1
through_thickness_order = SECOND
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
automatic_scaling = true
line_search = 'none'
nl_rel_tol = 1e-16
nl_abs_tol = 1e-16
dt = 1
dtmin = 1
end_time = 1
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/use_substep_dt.i)
[GlobalParams]
displacements = 'ux uy uz'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 4
elem_type = HEX8
displacements = 'ux uy uz'
[]
[AuxVariables]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[rotout]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[gss]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[gss]
type = MaterialStdVectorAux
variable = gss
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_increment
index = 0
execute_on = timestep_end
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[]
[pushy]
type = FunctionDirichletBC
variable = uy
boundary = top
function = '-0.1*t'
[]
[pullz]
type = FunctionDirichletBC
variable = uz
boundary = front
function = '0.1*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
maximum_substep_iteration = 1
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[gss]
type = ElementAverageValue
variable = gss
[]
[slip_increment]
type = ElementAverageValue
variable = slip_increment
[]
[uy_avg_top]
type = SideAverageValue
variable = uy
boundary = top
[]
[uz_avg_front]
type = SideAverageValue
variable = uz
boundary = front
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'NEWTON'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1.0
num_steps = 5
dtmin = 0.001
nl_abs_step_tol = 1e-10
[]
[Outputs]
csv = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_by_parts_steady.i)
# This input file tests several different things:
# .) The axisymmetric (RZ) form of the governing equations.
# .) An open boundary.
# .) Not integrating the pressure by parts, thereby requiring a pressure pin.
# .) Natural boundary condition at the outlet.
[GlobalParams]
integrate_p_by_parts = true
laplace = true
gravity = '0 0 0'
[]
[Mesh]
file = '2d_cone.msh'
[]
[Problem]
coord_type = RZ
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = Newton
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'bjacobi ilu 4'
nl_rel_tol = 1e-12
nl_max_its = 6
[]
[Outputs]
console = true
[./out]
type = Exodus
[../]
[]
[Variables]
[./vel_x]
# Velocity in radial (r) direction
family = LAGRANGE
order = SECOND
[../]
[./vel_y]
# Velocity in axial (z) direction
family = LAGRANGE
order = SECOND
[../]
[./p]
family = LAGRANGE
order = FIRST
[../]
[]
[BCs]
[./u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[../]
[./v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[../]
[./u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[../]
[./v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[../]
[]
[Kernels]
[./mass]
type = INSMassRZ
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 'volume'
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[../]
[]
[Postprocessors]
[./flow_in]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'bottom'
execute_on = 'timestep_end'
[../]
[./flow_out]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'top'
execute_on = 'timestep_end'
[../]
[]
(modules/contact/test/tests/mortar_aux_kernels/pressure-aux-frictionless.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.35
xmax = -0.05
ymin = -1
ymax = 0
nx = 1
ny = 3
elem_type = QUAD4
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3'
new_boundary = '10 11 12 13'
[]
[left_block_sideset_names]
type = RenameBoundaryGenerator
input = left_block_sidesets
old_boundary = '10 11 12 13'
new_boundary = 'l_bottom l_right l_top l_left'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sideset_names
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.3
ymin = -1
ymax = 0
nx = 1
ny = 2
elem_type = QUAD4
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3'
new_boundary = '20 21 22 23'
[]
[right_block_sideset_names]
type = RenameBoundaryGenerator
input = right_block_sidesets
old_boundary = '20 21 22 23'
new_boundary = 'r_bottom r_right r_top r_left'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sideset_names
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[left_lower]
type = LowerDBlockFromSidesetGenerator
input = combined_mesh
sidesets = '11'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[right_lower]
type = LowerDBlockFromSidesetGenerator
input = left_lower
sidesets = '23'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
uniform_refine = 1
[]
[Variables]
[lm_x]
block = 'secondary_lower'
use_dual = true
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
[]
[]
[AuxVariables]
[normal_lm]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[normal_lm]
type = MortarPressureComponentAux
variable = normal_lm
primary_boundary = '23'
secondary_boundary = '11'
lm_var_x = lm_x
lm_var_y = lm_y
component = 'NORMAL'
boundary = '11'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = ParsedFunction
expression = '0.1 * t'
[]
[vertical_movement]
type = ConstantFunction
value = '0.0'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = horizontal_movement
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 21
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 21
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 13
function = vertical_movement
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeWeightedGapCartesianLMMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_x = lm_x
lm_y = lm_y
variable = lm_x # This can be anything really
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
correct_edge_dropping = true
interpolate_normals = false
[]
[normal_x]
type = CartesianMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[normal_y]
type = CartesianMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -mat_mffd_err -pc_factor_shift_type '
'-pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist 1e-5 NONZERO 1e-10'
line_search = none
dt = 0.1
dtmin = 0.1
end_time = 1.0
l_max_its = 100
nl_max_its = 20
nl_rel_tol = 1e-6
snesmf_reuse_base = false
[]
[Outputs]
exodus = false
csv = true
execute_on = 'FINAL'
[]
[VectorPostprocessors]
[normal_lm]
type = NodalValueSampler
block = 'secondary_lower'
variable = normal_lm
sort_by = 'id'
[]
[]
(modules/porous_flow/test/tests/dirackernels/injection_with_plasticity.i)
# Example: Injection into a uniform aquifer 10 x 10 x 5 km
# Drucker-Prager deformation
# Darcy flow
gravity = -9.81
solid_density = 2350
fluid_density = 1000
porosity0 = 0.1
[Mesh]
type = GeneratedMesh
dim = 3
xmin = 0
xmax = 1e4
ymin = 0
ymax = 1e4
zmax = 0
zmin = -5e3
nx = 2
ny = 2
nz = 2
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 ${gravity}'
displacements = 'disp_x disp_y disp_z'
strain_at_nearest_qp = true
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
thermal_expansion = 0 # Not doing a thermal simulation
bulk_modulus = 2E9
density0 = ${fluid_density}
viscosity = 5E-4
[]
[]
[PorousFlowFullySaturated]
coupling_type = HydroMechanical
porepressure = pp
dictator_name = dictator
fp = simple_fluid
add_darcy_aux = false
add_stress_aux = false
stabilization = none
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[pp]
scaling = 1E6
[InitialCondition]
type = FunctionIC
function = ini_pp
[]
[]
[]
[Functions]
[ini_stress]
type = ParsedFunction
expression = '-${gravity} * z * (${solid_density} - ${fluid_density}) * (1.0 - ${porosity0})' # initial effective stress that should result from weight force
[]
[ini_pp]
type = ParsedFunction
expression = '${gravity} * z * ${fluid_density} + 1E5'
[]
[]
[BCs]
[p_top]
type = FunctionDirichletBC
variable = pp
boundary = front
function = ini_pp
[]
[x_roller]
type = DirichletBC
variable = disp_x
boundary = 'left right'
value = 0
[]
[y_roller]
type = DirichletBC
variable = disp_y
boundary = 'top bottom'
value = 0
[]
[z_confined]
type = DirichletBC
variable = disp_z
boundary = 'back front'
value = 0
[]
[]
[UserObjects]
[pls_total_outflow_mass]
type = PorousFlowSumQuantity
[]
# Cohesion
[mc_coh]
type = TensorMechanicsHardeningConstant
value = 6.0E6
[]
# Friction angle
[mc_phi]
type = TensorMechanicsHardeningConstant
value = 35.0
convert_to_radians = true
[]
# Dilation angle
[mc_psi]
type = TensorMechanicsHardeningConstant
value = 2
convert_to_radians = true
[]
# Drucker-Prager objects
[dp]
type = TensorMechanicsPlasticDruckerPragerHyperbolic
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-6
[]
# Tensile strength
[tens]
type = TensorMechanicsHardeningConstant
value = 3.0E6
[]
# Compressive strength (cap on yield envelope)
[compr_all]
type = TensorMechanicsHardeningConstant
value = 1E10
[]
[]
[Materials]
[strain]
type = ComputeIncrementalStrain
eigenstrain_names = eigenstrain_all
[]
[eigenstrain_all]
type = ComputeEigenstrainFromInitialStress
initial_stress = 'ini_stress 0 0 0 ini_stress 0 0 0 ini_stress'
eigenstrain_name = eigenstrain_all
[]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
bulk_modulus = 3.3333E9
shear_modulus = 2.5E9
[]
[dp_mat]
type = CappedDruckerPragerStressUpdate
DP_model = dp
tensile_strength = tens
compressive_strength = compr_all
smoothing_tol = 1E5
yield_function_tol = 1E-3
tip_smoother = 0
[]
[stress]
type = ComputeMultipleInelasticStress
inelastic_models = dp_mat
[]
# Permeability
[permeability]
type = PorousFlowPermeabilityConst
permeability = '1E-13 0 0 0 1E-13 0 0 0 1E-13'
[]
# Porosity
[porosity]
type = PorousFlowPorosity
porosity_zero = ${porosity0}
biot_coefficient = 1.0
solid_bulk = 1.0 # Required but irrelevant when biot_coefficient is unity
mechanical = true
fluid = true
[]
# Density of saturated rock
[density]
type = PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity
rho_s = ${solid_density}
[]
[]
[DiracKernels]
[pls]
type = PorousFlowPolyLineSink
variable = pp
SumQuantityUO = pls_total_outflow_mass
point_file = two_nodes.bh
function_of = pressure
fluid_phase = 0
p_or_t_vals = '0 1E7'
fluxes = '-1.59 -1.59'
[]
[]
[Preconditioning]
[usual]
type = SMP
full = true
[]
[]
[Executioner]
solve_type = Newton
type = Transient
dt = 1E6
end_time = 1E6
nl_rel_tol = 1E-7
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/umat/temperature/elastic_dtemperature.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Functions]
[top_pull]
type = ParsedFunction
expression = t/100
[]
# Forced evolution of temperature
[temperature_load]
type = ParsedFunction
expression = '273 + 10*t'
[]
# Factor to multiply the elasticity tensor in MOOSE
[elasticity_prefactor]
type = ParsedFunction
expression = '273/(273 + 10*t + 10)'
[]
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temperature_function]
type = FunctionAux
variable = temperature
function = temperature_load
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
[]
[]
[ICs]
[ic_temperature]
type = ConstantIC
value = 273
variable = temperature
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Materials]
# This input file is used to compare the MOOSE and UMAT models, activating
# specific ones with cli variable_names.
# 1. Active for umat calculation
[umat]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_dtemperature'
num_state_vars = 0
temperature = temperature
use_one_based_indexing = true
[]
# 2. Active for reference MOOSE computations
[elastic]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000
poissons_ratio = 0.3
elasticity_tensor_prefactor = 'elasticity_prefactor'
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 30
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/planar/weak_plane_stress/pull_2D.i)
[GlobalParams]
displacements = 'disp_x disp_y'
large_kinematics = true
stabilize_strain = true
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 1
ny = 1
[]
use_displaced_mesh = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[strain_zz]
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
out_of_plane_strain = strain_zz
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
out_of_plane_strain = strain_zz
component = 1
save_in = 'ry'
[]
[wps]
type = TotalLagrangianWeakPlaneStress
variable = strain_zz
[]
[]
[AuxVariables]
[ry]
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[strain]
type = ComputeLagrangianWPSStrain
out_of_plane_strain = strain_zz
[]
[stress]
type = ComputeLagrangianLinearElasticStress
[]
[]
[Executioner]
type = Transient
dt = 0.01
end_time = 0.1
solve_type = 'newton'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
[]
[Postprocessors]
[Ry]
type = NodalSum
variable = ry
boundary = top
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/orthotropic_plasticity/powerRuleHardening.i)
# UserObject Orthotropic test, with power rule hardening with rate 1e1.
# Linear strain is applied in the x direction.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.5
zmax = .5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz'
[../]
[]
[BCs]
[./xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = 'right'
function = '0.005*t'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
#boundary = 'bottom top'
boundary = 'bottom'
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[../]
[./zfix]
type = DirichletBC
variable = disp_z
#boundary = 'front back'
boundary = 'back'
value = 0
[../]
[]
[AuxVariables]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[./sdev]
order = CONSTANT
family = MONOMIAL
[../]
[./sdet]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./plastic_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_xx
index_i = 0
index_j = 0
[../]
[./plastic_xy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_xy
index_i = 0
index_j = 1
[../]
[./plastic_xz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_xz
index_i = 0
index_j = 2
[../]
[./plastic_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_yy
index_i = 1
index_j = 1
[../]
[./plastic_yz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_yz
index_i = 1
index_j = 2
[../]
[./plastic_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = intnl
[../]
[./sdev]
type = RankTwoScalarAux
variable = sdev
rank_two_tensor = stress
scalar_type = VonMisesStress
[../]
[]
[Postprocessors]
[./sdev]
type = PointValue
point = '0 0 0'
variable = sdev
[../]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./p_xx]
type = PointValue
point = '0 0 0'
variable = plastic_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./p_xy]
type = PointValue
point = '0 0 0'
variable = plastic_xy
[../]
[./p_xz]
type = PointValue
point = '0 0 0'
variable = plastic_xz
[../]
[./p_yz]
type = PointValue
point = '0 0 0'
variable = plastic_yz
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./p_yy]
type = PointValue
point = '0 0 0'
variable = plastic_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./p_zz]
type = PointValue
point = '0 0 0'
variable = plastic_zz
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./str]
type = SolidMechanicsHardeningPowerRule
value_0 = 300
epsilon0 = 1
exponent = 1e1
[../]
[./Orthotropic]
type = SolidMechanicsPlasticOrthotropic
b = -0.1
c1 = '1 1 1 1 1 1'
c2 = '1 1 1 1 1 1'
associative = true
yield_strength = str
yield_function_tolerance = 1e-5
internal_constraint_tolerance = 1e-9
use_custom_returnMap = false
use_custom_cto = false
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '121e3 80e3'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1e-9
plastic_models = Orthotropic
debug_fspb = crash
tangent_operator = elastic
[../]
[]
[Executioner]
type = Transient
num_steps = 3
dt = .25
nl_rel_tol = 1e-6
nl_max_its = 10
l_tol = 1e-4
l_max_its = 50
solve_type = PJFNK
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Outputs]
perf_graph = false
csv = true
[]
(test/tests/postprocessors/side_extreme_value/nonlinear_variable_proxy.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
second_order = true
[]
[Variables]
[u]
order = SECOND
[]
[v]
order = SECOND
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[diff_v]
type = Diffusion
variable = v
[]
[]
[BCs]
[top]
type = FunctionDirichletBC
variable = u
function = 'sin(x*2*pi)'
boundary = top
[]
[top_inverse]
type = FunctionDirichletBC
variable = v
function = '-sin(x*2*pi)'
boundary = top
[]
[]
[Postprocessors]
[max]
type = SideExtremeValue
variable = u
proxy_variable = v
boundary = top
[]
[min]
type = SideExtremeValue
variable = u
proxy_variable = v
boundary = top
value_type = min
[]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Outputs]
csv = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/rz_cone_no_parts_steady_stabilized_second_order.i)
# This input file tests several different things:
# .) The axisymmetric (RZ) form of the governing equations.
# .) An open boundary.
# .) Not integrating the pressure by parts, thereby requiring a pressure pin.
# .) Natural boundary condition at the outlet.
[GlobalParams]
integrate_p_by_parts = false
laplace = true
gravity = '0 0 0'
supg = true
pspg = true
order = SECOND
[]
[Mesh]
file = '2d_cone.msh'
[]
[Problem]
coord_type = RZ
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = Newton
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'bjacobi ilu 4'
nl_rel_tol = 1e-12
nl_max_its = 6
[]
[Outputs]
console = true
[./out]
type = Exodus
[../]
[]
[Variables]
[./vel_x]
# Velocity in radial (r) direction
[../]
[./vel_y]
# Velocity in axial (z) direction
[../]
[./p]
order = FIRST
[../]
[]
[BCs]
[./p_corner]
# This is required, because pressure term is *not* integrated by parts.
type = DirichletBC
boundary = top_right
value = 0
variable = p
[../]
[./u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[../]
[./v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[../]
[./u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[../]
[./v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[../]
[]
[Kernels]
[./mass]
type = INSMassRZ
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceFormRZ
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 'volume'
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[../]
[]
[Postprocessors]
[./flow_in]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'bottom'
execute_on = 'timestep_end'
[../]
[./flow_out]
type = VolumetricFlowRate
vel_x = vel_x
vel_y = vel_y
boundary = 'top'
execute_on = 'timestep_end'
[../]
[]
(modules/contact/test/tests/mortar_tm/2drz/frictionless_first/finite_rr.i)
E_block = 1e7
E_plank = 1e7
elem = QUAD4
order = FIRST
name = 'finite_rr'
[Problem]
coord_type = RZ
[]
[Mesh]
patch_size = 80
patch_update_strategy = auto
[plank]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.6
ymin = -10
ymax = 10
nx = 2
ny = 67
elem_type = ${elem}
boundary_name_prefix = plank
[]
[plank_id]
type = SubdomainIDGenerator
input = plank
subdomain_id = 1
[]
[block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.61
xmax = 1.21
ymin = 9.2
ymax = 10.0
nx = 3
ny = 4
elem_type = ${elem}
boundary_name_prefix = block
boundary_id_offset = 10
[]
[block_id]
type = SubdomainIDGenerator
input = block
subdomain_id = 2
[]
[combined]
type = MeshCollectionGenerator
inputs = 'plank_id block_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'plank block'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Variables]
[disp_x]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[disp_y]
order = ${order}
block = 'plank block'
scaling = '${fparse 2.0 / (E_plank + E_block)}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[block]
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'block'
extra_vector_tags = 'ref'
[]
[plank]
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress strain_xx '
'strain_yy strain_zz'
block = 'plank'
eigenstrain_names = 'swell'
extra_vector_tags = 'ref'
[]
[]
[Contact]
[frictionless]
primary = plank_right
secondary = block_left
formulation = mortar
c_normal = 1e0
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = plank_left
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = plank_bottom
value = 0.0
[]
[right_x]
type = DirichletBC
variable = disp_x
boundary = block_right
value = 0
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = block_right
function = '-t'
[]
[]
[Materials]
[plank]
type = ComputeIsotropicElasticityTensor
block = 'plank'
poissons_ratio = 0.3
youngs_modulus = ${E_plank}
[]
[block]
type = ComputeIsotropicElasticityTensor
block = 'block'
poissons_ratio = 0.3
youngs_modulus = ${E_block}
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'plank block'
[]
[swell]
type = ComputeEigenstrain
block = 'plank'
eigenstrain_name = swell
eigen_base = '1 0 0 0 0 0 0 0 0'
prefactor = swell_mat
[]
[swell_mat]
type = GenericFunctionMaterial
prop_names = 'swell_mat'
prop_values = '7e-2*(1-cos(4*t))'
block = 'plank'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu 1e-5 NONZERO 1e-15'
end_time = 5
dt = 0.1
dtmin = 0.1
timestep_tolerance = 1e-6
line_search = 'contact'
nl_abs_tol = 1e-12
[]
[Postprocessors]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[contact]
type = ContactDOFSetSize
variable = frictionless_normal_lm
subdomain = frictionless_secondary_subdomain
[]
[avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
block = 'block'
[]
[max_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
[]
[min_hydro]
type = ElementExtremeValue
variable = hydrostatic_stress
block = 'block'
value_type = min
[]
[avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 'block'
[]
[max_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
[]
[min_vonmises]
type = ElementExtremeValue
variable = vonmises_stress
block = 'block'
value_type = min
[]
[]
[Outputs]
file_base = ${name}
[comp]
type = CSV
show = 'contact'
[]
[out]
type = CSV
file_base = '${name}_out'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(modules/contact/test/tests/explicit_dynamics/first_test.i)
# One element test to test the central difference time integrator in 3D.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[block_one]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
xmin = 4.5
xmax = 5.5
ymin = 4.5
ymax = 5.5
zmin = 0.0001
zmax = 1.0001
boundary_name_prefix = 'ball'
[]
[block_two]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
xmin = 0.0
xmax = 10
ymin = 0.0
ymax = 10
zmin = -2
zmax = 0
boundary_name_prefix = 'base'
boundary_id_offset = 10
[]
[block_one_id]
type = SubdomainIDGenerator
input = block_one
subdomain_id = 1
[]
[block_two_id]
type = SubdomainIDGenerator
input = block_two
subdomain_id = 2
[]
[combine]
type = MeshCollectionGenerator
inputs = ' block_one_id block_two_id'
[]
allow_renumbering = false
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[AuxVariables]
[vel_x]
[]
[accel_x]
[]
[vel_y]
[]
[accel_y]
[]
[vel_z]
[]
[accel_z]
[]
[]
[AuxKernels]
[accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[]
[vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[]
[accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[]
[vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_x
[]
[accel_z]
type = TestNewmarkTI
variable = accel_z
displacement = disp_z
first = false
[]
[vel_z]
type = TestNewmarkTI
variable = vel_z
displacement = disp_z
[]
[]
[Kernels]
[DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
stiffness_damping_coefficient = 0.04
#generate_output = 'stress_zz strain_zz'
[]
[inertia_x]
type = InertialForce
variable = disp_x
[]
[inertia_y]
type = InertialForce
variable = disp_y
[]
[inertia_z]
type = InertialForce
variable = disp_z
[]
[]
[Functions]
[dispz]
type = ParsedFunction
expression = if(t<1.0e3,-0.01*t,0)
[]
[push]
type = ParsedFunction
expression = if(t<10.0,0.01*t,0.1)
[]
[]
[BCs]
[z_front]
type = FunctionDirichletBC
variable = disp_z
boundary = 'ball_front'
function = dispz
preset = false
[]
[x_front]
type = DirichletBC
variable = disp_x
boundary = 'ball_front'
preset = false
value = 0.0
[]
[y_front]
type = DirichletBC
variable = disp_y
boundary = 'ball_front'
preset = false
value = 0.0
[]
[x_fixed]
type = DirichletBC
variable = disp_x
boundary = 'base_back'
preset = false
value = 0.0
[]
[y_fixed]
type = DirichletBC
variable = disp_y
boundary = 'base_back'
preset = false
value = 0.0
[]
[z_fixed]
type = DirichletBC
variable = disp_z
boundary = 'base_back'
preset = false
value = 0.0
[]
[]
[ExplicitDynamicsContact]
[my_contact]
model = frictionless
primary = base_front
secondary = ball_back
penalty = 1.0e3
verbose = true
[]
[]
[Materials]
[elasticity_tensor_block_one]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e3
poissons_ratio = 0.0
block = 1
[]
[elasticity_tensor_block_two]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.0
block = 2
[]
[strain_block]
type = ComputeIncrementalStrain
displacements = 'disp_x disp_y disp_z'
implicit = false
[]
[stress_block]
type = ComputeFiniteStrainElasticStress
[]
[density]
type = GenericConstantMaterial
prop_names = density
prop_values = 1e4
[]
[wave_speed]
type = WaveSpeed
[]
[]
[Executioner]
type = Transient
start_time = -0.01
end_time = 0.25
dt = 0.005
timestep_tolerance = 1e-6
[TimeIntegrator]
type = CentralDifference
[]
[]
[Postprocessors]
[disp_58z]
type = NodalVariableValue
nodeid = 1
variable = disp_z
[]
[critical_time_step]
type = CriticalTimeStep
[]
[contact_pressure_max]
type = NodalExtremeValue
variable = contact_pressure
block = '1 2'
value_type = max
[]
[]
[Outputs]
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/multi/two_surface01.i)
# Plasticit models:
# SimpleTester with a = 0 and b = 1 and strength = 1
# SimpleTester with a = 1 and b = 1 and strength = 2
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 1.5E-6m in the z directions.
# stress_zz = 1.5
#
# Then only the first SimpleTester should activate, and the final stress
# should have have only nonzero component stress_zz = 1
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.5E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[]
[UserObjects]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 2
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = two_surface01
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/heat_transfer/tutorials/introduction/therm_step02.i)
#
# Single block thermal input with boundary conditions
# https://mooseframework.inl.gov/modules/heat_transfer/tutorials/introduction/therm_step02.html
#
[Mesh]
[generated]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 2
ymax = 1
[]
[]
[Variables]
[T]
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = T
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 45.0
[]
[]
[BCs]
[t_left]
type = DirichletBC
variable = T
value = 300
boundary = 'left'
[]
[t_right]
type = FunctionDirichletBC
variable = T
function = '300+5*t'
boundary = 'right'
[]
[]
[Executioner]
type = Transient
end_time = 5
dt = 1
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test3tt.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test3tt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.09
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.09
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[]
[Outputs]
file_base = pl_test3tt_out
exodus = true
[]
(modules/solid_mechanics/test/tests/umat/elastic_hardening/elastic.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Functions]
[top_pull]
type = ParsedFunction
expression = t/100
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Materials]
# this input file is used to compare the MOOSE and UMAT models, activating
# specific ones with cli variable_names.
# 1. active for umat calculation
[umat]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic'
num_state_vars = 0
use_one_based_indexing = true
[]
# 2. active for moose built-in finite strain elasticity reference
[elastic]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000
poissons_ratio = 0.3
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 30
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/recompute_radial_return/affine_plasticity.i)
# Affine Plasticity Test for Transient Stress Eigenvalues with Stationary Eigenvectors
# This test is taken from K. Jamojjala, R. Brannon, A. Sadeghirad, J. Guilkey,
# "Verification tests in solid mechanics," Engineering with Computers, Vol 31.,
# p. 193-213.
# The test involves applying particular strains and expecting particular stresses.
# The material properties are:
# Yield in shear 165 MPa
# Shear modulus 79 GPa
# Poisson's ratio 1/3
# The strains are:
# Time e11 e22 e33
# 0 0 0 0
# 1 -0.003 -0.003 0.006
# 2 -0.0103923 0 0.0103923
# The expected stresses are:
# sigma11:
# -474*t 0 < t <= 0.201
# -95.26 0.201 < t <= 1
# (189.4+0.1704*sqrt(a)-0.003242*a)
# --------------------------------- 1 < t <= 2
# 1+0.00001712*a
# -189.4 t > 2 (paper erroneously gives a positive value)
#
# sigma22:
# -474*t 0 < t <= 0.201
# -95.26 0.201 < t <= 1
# -(76.87+1.443*sqrt(a)-0.001316*a)
# --------------------------------- 1 < t <= 2 (paper gives opposite sign)
# 1+0.00001712*a
# 76.87 t > 2
#
# sigma33:
# 948*t 0 < t <= 0.201
# 190.5 0.201 < t <= 1
# -(112.5-1.272*sqrt(a)-0.001926*a)
# --------------------------------- 1 < t <= 2 (paper has two sign errors here)
# 1+0.00001712*a
# 112.5 t > 2
#
# where a = exp(12.33*t).
#
# Note: If planning to run this case with strain type ComputeFiniteStrain, the
# displacement function must be adjusted. Instead of
# strain = (l - l0)/l0 = (u+l0 - l0)/l0 = u/l0
# with l0=1.0, we would have
# strain = log(l/l0) = log((u+l0)/l0)
# with l0=1.0. So, for strain = -0.003,
# -0.003 = log((u+l0)/l0) ->
# u = exp(-0.003)*l0 - l0 = -0.0029955044966269995.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
block = '0'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
# This test uses ElementalVariableValue postprocessors on specific
# elements, so element numbering needs to stay unchanged
allow_renumbering = false
[]
[Functions]
[./disp_x]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. -0.003 -0.0103923'
[../]
[./disp_y]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. -0.003 0.'
[../]
[./disp_z]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 0.006 0.0103923'
[../]
[./stress_xx]
type = ParsedFunction
# The paper gives 0.201 as the time at initial yield, but 0.20097635952803425 is the exact value.
# The paper gives -95.26 MPa as the stress at yield, but -95.26279441628823 is the exact value.
# The paper gives 12.33 as the factor in the exponential, but 12.332921390339125 is the exact value.
# 189.409039923814000, 0.170423791206825, -0.003242011311945, 1.711645501845780E-05 - exact values
symbol_names = 'timeAtYield stressAtYield expFac a b c d'
symbol_values = '0.20097635952803425 -95.26279441628823 12.332921390339125 189.409039923814000 0.170423791206825 -0.003242011311945 1.711645501845780E-05'
value = '1e6*
if(t<=timeAtYield, -474*t,
if(t<=1, stressAtYield,
(a+b*sqrt(exp(expFac*t))+c*exp(expFac*t))/(1.0+d*exp(expFac*t))))' # tends to -a
[../]
[./stress_yy]
type = ParsedFunction
# The paper gives 0.201 as the time at initial yield, but 0.20097635952803425 is the exact value.
# the paper gives -95.26 MPa as the stress at yield, but -95.26279441628823 is the exact value.
# The paper gives 12.33 as the factor in the exponential, but 12.332921390339125 is the exact value.
# -76.867432297315000, -1.442488120272900, 0.001315697947301, 1.711645501845780E-05 - exact values
symbol_names = 'timeAtYield stressAtYield expFac a b c d'
symbol_values = '0.20097635952803425 -95.26279441628823 12.332921390339125 -76.867432297315000 -1.442488120272900 0.001315697947301 1.711645501845780E-05'
value = '1e6*
if(t<=timeAtYield, -474*t,
if(t<=1, stressAtYield,
(a+b*sqrt(exp(expFac*t))+c*exp(expFac*t))/(1.0+d*exp(expFac*t))))' # tends to -a
[../]
[./stress_zz]
type = ParsedFunction
# The paper gives 0.201 as the time at initial yield, but 0.20097635952803425 is the exact value.
# the paper gives 190.5 MPa as the stress at yield, but 190.52558883257645 is the exact value.
# The paper gives 12.33 as the factor in the exponential, but 12.332921390339125 is the exact value.
# -112.541607626499000, 1.272064329066080, 0.001926313364644, 1.711645501845780E-05 - exact values
symbol_names = 'timeAtYield stressAtYield expFac a b c d'
symbol_values = '0.20097635952803425 190.52558883257645 12.332921390339125 -112.541607626499000 1.272064329066080 0.001926313364644 1.711645501845780E-05'
value = '1e6*
if(t<=timeAtYield, 948*t,
if(t<=1, stressAtYield,
(a+b*sqrt(exp(expFac*t))+c*exp(expFac*t))/(1.0+d*exp(expFac*t))))' # tends to -a
[../]
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[SolidMechanics]
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = vonmisesStress
execute_on = 'timestep_end'
[../]
[./plastic_strain_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_strain_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./plastic_strain_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_strain_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./plastic_strain_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_strain_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[]
[BCs]
[./fixed_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./fixed_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./fixed_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./disp_x]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = disp_x
[../]
[./disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = disp_y
[../]
[./disp_z]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = disp_z
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 210666666666.666667
poissons_ratio = 0.3333333333333333
[../]
[./strain]
type = ComputeIncrementalStrain
[../]
[./isotropic_plasticity]
type = IsotropicPlasticityStressUpdate
yield_stress = 285788383.2488647 # = sqrt(3)*165e6 = sqrt(3) * yield in shear
hardening_constant = 0.0
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'isotropic_plasticity'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-10
l_max_its = 20
start_time = 0.0
dt = 0.01 # use 0.0001 for a nearly exact match
end_time = 2.0
[]
[Postprocessors]
[./analytic_xx]
type = FunctionValuePostprocessor
function = stress_xx
[../]
[./analytic_yy]
type = FunctionValuePostprocessor
function = stress_yy
[../]
[./analytic_zz]
type = FunctionValuePostprocessor
function = stress_zz
[../]
[./stress_xx]
type = ElementalVariableValue
variable = stress_xx
elementid = 0
[../]
[./stress_yy]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[../]
[./stress_zz]
type = ElementalVariableValue
variable = stress_zz
elementid = 0
[../]
[./stress_xx_l2_error]
type = ElementL2Error
variable = stress_xx
function = stress_xx
[../]
[./stress_yy_l2_error]
type = ElementL2Error
variable = stress_yy
function = stress_yy
[../]
[./stress_zz_l2_error]
type = ElementL2Error
variable = stress_zz
function = stress_zz
[../]
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/phase_field_fracture/crack2d_iso_with_pressure.i)
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = F
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./mech]
add_variables = true
strain = SMALL
additional_generate_output = 'stress_yy'
save_in = 'resid_x resid_y'
[../]
[../]
[../]
[]
[AuxVariables]
[./resid_x]
[../]
[./resid_y]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = top
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco fracture_pressure'
prop_values = '1e-3 0.04 1e-4 1e-3'
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
property_name = L
expression = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
property_name = kappa_op
expression = 'gc_prop * l'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
[../]
[./damage_stress]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
I_name = 'indicator_function'
F_name = 'local_fracture_energy'
decomposition_type = strain_spectral
[../]
[./degradation]
type = DerivativeParsedMaterial
property_name = degradation
coupled_variables = 'c'
expression = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '0.0'
derivative_order = 2
[../]
[./indicator_function]
type = DerivativeParsedMaterial
property_name = indicator_function
coupled_variables = 'c'
expression = 'c'
derivative_order = 2
[../]
[./local_fracture_energy]
type = DerivativeParsedMaterial
property_name = local_fracture_energy
coupled_variables = 'c'
material_property_names = 'gc_prop l'
expression = 'c^2 * gc_prop / 2 / l'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
coupled_variables = c
sum_materials = 'elastic_energy local_fracture_energy'
derivative_order = 2
property_name = F
[../]
[]
[Postprocessors]
[./resid_x]
type = NodalSum
variable = resid_x
boundary = 2
[../]
[./resid_y]
type = NodalSum
variable = resid_y
boundary = 2
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 preonly lu 1'
nl_rel_tol = 1e-8
l_max_its = 10
nl_max_its = 10
dt = 1e-4
dtmin = 1e-4
num_steps = 2
[]
[Outputs]
exodus = true
[]
(test/tests/utils/2d_linear_interpolation/2d_linear_interpolation_test.i)
# Test description - view this file in emacs and adjust the window size to view the file as it was created.
#
# This problem tests the MOOSE function PiecewiseBilinear and the MOOSE utility BilinearInterpolation, which are
# used to solve 2D linear interpolation problems.
#
# The problem is one element with node coordinate locations in x,y,z space as indicated in the ASCII art:
#
#
# ^
# |
# z
# |
#
# (1,1,2) (1,2,2)
# *--------------*
# / | / |
# / | (2,2,2) / |
# (2,1,2) *--------------* |
# | | | |
# | *---------|----* (1,2,1) --y-->
# | / (1,1,1) | /
# |/ |/
# *--------------*
# / (2,1,1) (2,2,1)
# /
# x
# /
# |_
#
# problem time ...0...1...2
#
#
# There are four variables and four functions of the same name, u,v,w, and A. The diffusion equation is solved
# for each of these variables with a boundary condition of type FunctionDirchletBC applied to a boundary
# (i.e. node set) that includes every node in the element. Each boundary condition uses a function of type
# PiecewiseBilinear that gets its value from a file named fred.csv.
#
# fred is a matrix of data whose first row and first column are vectors that can refer to either spacial positions
# corresponding to an axis or values of time. The remaining data are values of fred for a given row and column pair.
#
#
# Visualize fred like this:
#
# 0 1 3 where fred is a csv file that actually looks like this 0,1,3
# 0 0 0 0 0,0,0,0
# 1 0 1 3 1,0,1,3
# 3 0 5 7 3,0,5,7
#
# Another way to think of fred is:
#
# |0 1 3| - These values can be spacial positions corresponding to
# axis= 0,1, or 2, or time
#
#
# |0| |0 0 0|
# These values can be - |1| |0 1 3| - values of fred corresponding to row-column pairs
# time or spacial |3| |0 5 7|
# positions corresponding
# to axis= 0,1, or 2
#
#
# The parameters and possible values for the function PiecewiseBilinear are:
#
# data_file = fred.csv
# axis = 0, 1, or 2
# xaxis = 0, 1, or 2
# yaxis = 0, 1, or 2
# radial = true or false (false is default)
#
# where 0, 1, or 2 refer to the x, y, or z axis.
#
# If the parameter axis is defined, then the first row of fred are spacial position and the first column
# of fred are the values of time.
#
# If the parameter xaxis is defined, then the first row of fred are spacial positions and the first column
# of fred are the values of time ... just like defining the parameter axis.
#
# If the parameter yaxis is defined, then the first row of fred are time values and the first column of fred
# are spacial positions.
#
# If parameters axis AND EITHER xaxis or yaxis are defined together you'll get a moose error.
# i.e.
# axis = 0
# xaxis = 1
# results in an error. So, if you use the parameter axis, don't use xaxis or yaxis.
#
# If parameters xaxis and yaxis are defined (and radial is false), then the first row of fred are spacial positions corresponding to xaxis value,
# and the first column are spacial positions corresponding to the yaxis value.
#
# If xaxis and yaxis are defined and radial is true, the first row of fred contains values
# corresponding to the radius calculated from the coordinates of each point. Note that
# the definition of xaxis and yaxis define the "plane" of the radius. For example,
# xaxis = 0 and yaxis = 1 means that x and y components of the point are use to
# calculate the radius. xaxis = 1 and yaxis = 2 means that x and z components are used.
# The first column is for time in this case. xaxis and yaxis have to be specified and
# radial = true for this to work, otherwise a MOOSE error will result.
# This was developed so that an axisymmetric function could be defined for a 3D mesh.
#
[Mesh]
file = cube.e
# This problem only has 1 element, so using DistributedMesh in parallel
# isn't really an option, and we don't care that much about DistributedMesh
# in serial.
parallel_type = replicated
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[./w]
order = FIRST
family = LAGRANGE
[../]
[./A]
order = FIRST
family = LAGRANGE
[../]
[./scaled_u]
order = FIRST
family = LAGRANGE
[../]
[./R]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./u]
type = PiecewiseBilinear
data_file = fred.csv
axis = 0
[../]
#
# Example 1 - variable u
#
# In this example, the first variable is u and the parameter axis is given the value 0. For such a case, the first
# row of fred refers to nodal x-coordinate values and the first column of fred (after the first row) refers to the
# times 0, 1, and 3.
#
# So, at time = 0, the value of u at each node is 0, because that's the value of fred for all x-coordinate values at time=0.
#
# At time = 1, the value of u at nodes with x-coordinate = 1 is 1.
# , the value of u at nodes with x-coordinate = 2 is 2.
#
# You can check this value with your own 2D linear interpolation calculation. Go ahead and check all the examples!
#
# At time = 2, the value of u at nodes with x-coordinate = 1 is 3.
# , the value of u at nodes with x-coordinate = 2 is 4.
#
[./v]
type = PiecewiseBilinear
data_file = fred.csv
xaxis = 1
[../]
#
# Example 2 - variable v
#
# In this example, the variable is v and the parameter xaxis is given the value 1. For such a case, the first
# row of fred refers to nodal y-coordinate values and the first column of fred (after the first row) refers to the
# times 0, 1, and 3.
#
# At time = 0, the value of v at each node is 0, because that's the value of fred for all y-coordinate values at time=0.
#
# At time = 1, the value of v at nodes with y-coordinate = 1 is 1.
# , the value of v at nodes with y-coordinate = 2 is 2.
#
# At time = 2, the value of v at nodes with y-coordinate = 1 is 3.
# , the value of v at nodes with y-coordinate = 2 is 4.
#
[./w]
type = PiecewiseBilinear
data_file = fred.csv
yaxis = 2
[../]
#
# Example 3 - variable w
#
# In this example, the variable is w and the parameter yaxis is given the value 2. For such a case, the first
# row of fred refers to times 0, 1, and 3. The first column of fred (after the first row) refers to the nodal
# z-coordinate values.
#
# At time = 0, the value of w at each node is 0, because that's the value of fred for all z-coordinate values at time=0.
#
# At time = 1, the value of w at nodes with z-coordinate = 1 is 1.
# , the value of w at nodes with z-coordinate = 2 is 3.
#
# At time = 2, the value of w at nodes with z-coordinate = 1 is 2.
# , the value of w at nodes with z-coordinate = 2 is 4.
#
[./A]
type = PiecewiseBilinear
data_file = fred.csv
xaxis = 0
yaxis = 1
[../]
#
# Example 4 - variable A
#
# In this example, the variable is A and the parameters xaxis AND yaxis BOTH defined and given the values 0 and 1 respectivley.
# For such a case, the first row of fred refers to nodal x-coordinate values.
# The first column refers to nodal y-coordinate values.
#
# In this example the values are the same for every time (except time=0 where the values are undefined)
#
# For nodal coordinates with x=1, y=1 A = 1
# x=2, y=1 A = 2
# x=1, y=2 A = 3
# x=2, y=2 A = 4
#
# You can use this 2D linear interpolation function for anything (BC, Kernel, AuxKernel, Material) that has
# a function as one of its parameters. For example, this can be used to describe the fission peaking factors
# that vary in time and along the length of a fuel rod, or a fission rate distribution in metal fuel that varies
# as a function of x and y postion, but is constant in time.
#
#
[./scaled_u]
type = PiecewiseBilinear
data_file = fred.csv
axis = 0
scale_factor = 2
[../]
#
# Example 5 - variable scaled_u. This is just a scaled version of Example 1 to see if the scale_factor works
#
#
#
[./R]
type = PiecewiseBilinear
data_file = fred.csv
xaxis = 0
yaxis = 1
radial = true
[../]
#
# Example 6 - variable R
#
# In this example, the variable is R and the parameters xaxis and yaxis are defined and
# given the values 0 and 1 respectivley. The parameter radial is also defined and given
# the value true. In this case, the x and y components of each point are used to
# calculate a radius. This radius is used in the call to BilinearInterpolation.
# In fred.csv, the first row are the radius values. The first column is time.
#
# At time = 1, the value of R at nodes with coordinates (x = 1, y = 1, or r = 1.414) is 1.414.
# , the value of R at nodes with coordinates (x = 1, y = 2, or r = 2.236) is 2.236.
# , the value of R at nodes with coordinates (x = 2, y = 2, or r = 2.828) is 2.828.
#
# At time = 2, the value of R at nodes with coordinates (x = 1, y = 1, or r = 1.414) is 3.414.
# , the value of R at nodes with coordinates (x = 1, y = 2, or r = 2.236) is 4.236.
# , the value of R at nodes with coordinates (x = 2, y = 2, or r = 2.828) is 4.828.
#
# Note that the case of x = 2, y = 1 gives the same result as x = 1, y=2.
#
#
[] # End Functions
[Kernels]
[./diffu]
type = Diffusion
variable = u
[../]
[./diffv]
type = Diffusion
variable = v
[../]
[./diffw]
type = Diffusion
variable = w
[../]
[./diffA]
type = Diffusion
variable = A
[../]
[./diff_scaled_u]
type = Diffusion
variable = scaled_u
[../]
[./diffR]
type = Diffusion
variable = R
[../]
[]
[BCs]
[./u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = u
[../]
[./v]
type = FunctionDirichletBC
variable = v
boundary = '1'
function = v
[../]
[./w]
type = FunctionDirichletBC
variable = w
boundary = '1'
function = w
[../]
[./A]
type = FunctionDirichletBC
variable = A
boundary = '1'
function = A
[../]
[./scaled_u]
type = FunctionDirichletBC
variable = scaled_u
boundary = '1'
function = scaled_u
[../]
[./R]
type = FunctionDirichletBC
variable = R
boundary = '1'
function = R
[../]
[]
[Executioner]
type = Transient
dt = 1
end_time = 2
nl_rel_tol = 1e-12
[]
[Outputs]
file_base = out
exodus = true
[]
(test/tests/outputs/displacement/displacement_transient_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 5
ny = 5
elem_type = QUAD4
displacements = 'u v'
[]
[Functions]
[./right_u]
type = ParsedFunction
expression = 0.1*t
[../]
[./fn_v]
type = ParsedFunction
expression = (x+1)*y*0.1*t
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./td_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./td_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./left_u]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right_u]
type = FunctionDirichletBC
variable = u
boundary = 1
function = right_u
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '0 2'
function = fn_v
[../]
[]
[Executioner]
type = Transient
dt = 0.1
start_time = 0
num_steps = 10
solve_type = 'PJFNK'
[]
[Outputs]
[./out_displaced]
type = Exodus
use_displaced = true
[../]
[]
(modules/solid_mechanics/test/tests/tensile/planar5.i)
# A single unit element is stretched by 1E-6m in z direction.
# with Lame lambda = 0.6E6 and Lame mu (shear) = 1E6
# stress_zz = 2.6 Pa
# stress_xx = 0.6 Pa
# stress_yy = 0.6 Pa
# tensile_strength is set to 0.5Pa with cubic hardening to 1Pa at intnl=1E-6
#
# The return should be to a plane (but the algorithm
# will try tip-return first), with, according to mathematica
# plastic_multiplier = 6.655327991E-7
# stress_zz = 0.869613817289
# stress_xx = 0.20068032054
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.0E-6*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./hard]
type = SolidMechanicsHardeningCubic
value_0 = 0.5
value_residual = 1
internal_limit = 1E-6
[../]
[./tens]
type = SolidMechanicsPlasticTensileMulti
tensile_strength = hard
shift = 1E-6
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.6E6 1E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = tens
debug_fspb = none
debug_jac_at_stress = '1 2 3 2 -4 -5 3 -5 10'
debug_jac_at_pm = '0.1 0.2 0.3'
debug_jac_at_intnl = 1E-6
debug_stress_change = 1E-6
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = planar5
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/navier_stokes/test/tests/finite_element/ins/velocity_channel/velocity_inletBC_no_parts.i)
# This input file tests outflow boundary conditions for the incompressible NS equations.
[GlobalParams]
gravity = '0 0 0'
integrate_p_by_parts = false
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 3.0
ymin = 0
ymax = 1.0
nx = 30
ny = 10
elem_type = QUAD9
[]
[./corner_node]
type = ExtraNodesetGenerator
new_boundary = top_right
coord = '3 1'
input = gen
[../]
[]
[Variables]
[./vel_x]
order = SECOND
family = LAGRANGE
[../]
[./vel_y]
order = SECOND
family = LAGRANGE
[../]
[./p]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[BCs]
[./x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'top bottom'
value = 0.0
[../]
[./y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'left top bottom'
value = 0.0
[../]
[./x_inlet]
type = FunctionDirichletBC
variable = vel_x
boundary = 'left'
function = 'inlet_func'
[../]
[./p_corner]
# Since the pressure is not integrated by parts in this example,
# it is only specified up to a constant by the natural outflow BC.
# Therefore, we need to pin its value at a single location.
type = DirichletBC
boundary = top_right
value = 0
variable = p
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '1 1'
[../]
[]
[Preconditioning]
[./SMP_PJFNK]
type = SMP
full = true
solve_type = NEWTON
[../]
[]
[Executioner]
type = Steady
petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = '300 bjacobi ilu 4'
line_search = none
nl_rel_tol = 1e-12
nl_max_its = 6
l_tol = 1e-6
l_max_its = 300
[]
[Outputs]
[./out]
type = Exodus
[../]
[]
[Functions]
[./inlet_func]
type = ParsedFunction
expression = '-4 * (y - 0.5)^2 + 1'
[../]
[]
(modules/solid_mechanics/test/tests/weak_plane_tensile/small_deform_hard3.i)
# Checking evolution tensile strength
# A single element is stretched by 1E-6*t in z direction, and
# the yield-surface evolution is mapped out
[GlobalParams]
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = 'stress_zz'
[]
[BCs]
[bottomx]
type = DirichletBC
variable = x_disp
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = y_disp
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = z_disp
boundary = back
value = 0.0
[]
[topx]
type = DirichletBC
variable = x_disp
boundary = front
value = 0
[]
[topy]
type = DirichletBC
variable = y_disp
boundary = front
value = 0
[]
[topz]
type = FunctionDirichletBC
variable = z_disp
boundary = front
function = 1E-6*t
[]
[]
[AuxVariables]
[wpt_internal]
order = CONSTANT
family = MONOMIAL
[]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[wpt_internal]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = wpt_internal
[]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[wpt_internal]
type = PointValue
point = '0 0 0'
variable = wpt_internal
[]
[s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[]
[f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[]
[]
[UserObjects]
[str]
type = SolidMechanicsHardeningExponential
value_0 = 10
value_residual = 4
rate = 1E6
[]
[wpt]
type = SolidMechanicsPlasticWeakPlaneTensile
tensile_strength = str
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-11
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wpt
transverse_direction = '0 0 1'
ep_plastic_tolerance = 1E-11
[]
[]
[Executioner]
end_time = 4
dt = 0.5
type = Transient
[]
[Outputs]
csv = true
[]
(modules/xfem/test/tests/moment_fitting/diffusion_moment_fitting_six_points.i)
# Test for a diffusion problem which uses six points moment_fitting approach.
# To use six points rule, add Quadrature block with order = FOURTH and type = MONOMIAL.
# See this paper (https://doi.org/10.1007/s00466-018-1544-2) for more details about moment_fitting approach.
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 6
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[XFEM]
geometric_cut_userobjects = 'line_seg_cut_uo'
qrule = moment_fitting
output_cut_plane = true
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '0.5 1.0 0.5 0.5'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[]
[Variables]
[./u]
[../]
[]
[Functions]
[./u_left]
type = PiecewiseLinear
x = '0 2'
y = '0 0.1'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
# Define boundary conditions
[./left_u]
type = FunctionDirichletBC
variable = u
boundary = 3
function = u_left
[../]
[./right_u]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
line_search = 'none'
[./Quadrature]
order = FOURTH
type = MONOMIAL
[../]
l_tol = 1e-3
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
end_time = 2.0
[]
[Outputs]
time_step_interval = 1
execute_on = timestep_end
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/combined/test/tests/fdp_geometric_coupling/fdp_geometric_coupling.i)
[Mesh]
file = twoBlocksContactDiceSecondary2OffsetGap.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 100.0
[../]
[]
[Functions]
[./pressure]
type = PiecewiseLinear
x = '0 1 2'
y = '0 1 1'
scale_factor = 10.0
[../]
[./tempFunc]
type = PiecewiseLinear
x = '0. 3.'
y = '100.0 440.0'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./block1]
block = 1
volumetric_locking_correction = true
incremental = true
strain = FINITE
eigenstrain_names = 'thermal_expansion1'
decomposition_method = EigenSolution
temperature = temp
[../]
[./block2]
block = 2
volumetric_locking_correction = true
incremental = true
strain = FINITE
eigenstrain_names = 'thermal_expansion2'
decomposition_method = EigenSolution
temperature = temp
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./left_right_x]
type = DirichletBC
variable = disp_x
boundary = '1 4'
value = 0.0
[../]
[./left_right_y]
type = DirichletBC
variable = disp_y
boundary = '1 4'
value = 0.0
[../]
[./left_right_z]
type = DirichletBC
variable = disp_z
boundary = '1 4'
value = 0.0
[../]
[./temp]
type = FunctionDirichletBC
variable = temp
boundary = '2 3'
function = tempFunc
[../]
[]
[Contact]
[./dummy_name]
primary = 2
secondary = 3
penalty = 1e8
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./stress1]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[./thermal_expansion1]
type = ComputeThermalExpansionEigenstrain
block = 1
thermal_expansion_coeff = 1e-4
stress_free_temperature = 100.0
temperature = temp
eigenstrain_name = thermal_expansion1
[../]
[./thermal_expansion2]
type = ComputeThermalExpansionEigenstrain
block = 2
thermal_expansion_coeff = 1e-5
stress_free_temperature = 100.0
temperature = temp
eigenstrain_name = thermal_expansion2
[../]
[./heat]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1.0
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Preconditioning]
[./FDP]
type = FDP
full = true
implicit_geometric_coupling = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -mat_fd_coloring_err -mat_fd_type'
petsc_options_value = 'lu 1e-8 ds'
nl_rel_tol = 1e-10
l_max_its = 5
nl_max_its = 3
dt = 5.0e-1
num_steps = 2
[]
[Outputs]
file_base = fdp_geometric_coupling_out
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/convergence/1D/dirichlet.i)
# Simple 1D plane strain test
[GlobalParams]
displacements = 'disp_x'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 1
nx = 10
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[]
[Functions]
[pull]
type = ParsedFunction
expression = '0.06 * t'
[]
[]
[BCs]
[leftx]
type = DirichletBC
preset = true
boundary = right
variable = disp_x
value = 0.0
[]
[pull]
type = FunctionDirichletBC
boundary = left
variable = disp_x
function = pull
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.3
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
dtmin = 1.0
end_time = 5.0
[]
[Postprocessors]
[nonlin]
type = NumNonlinearIterations
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/solid_mechanics/examples/coal_mining/cosserat_mc_wp.i)
# Strata deformation and fracturing around a coal mine
#
# A 2D geometry is used that simulates a transverse section of
# the coal mine. The model is actually 3D, but the "x"
# dimension is only 10m long, meshed with 1 element, and
# there is no "x" displacement. The mine is 300m deep
# and just the roof is studied (0<=z<=300). The model sits
# between 0<=y<=450. The excavation sits in 0<=y<=150. This
# is a "half model": the boundary conditions are such that
# the model simulates an excavation sitting in -150<=y<=150
# inside a model of the region -450<=y<=450. The
# excavation height is 3m (ie, the excavation lies within
# 0<=z<=3). Mining is simulated by moving the excavation's
# roof down, until disp_z=-3 at t=1.
# Time is meaningless in this example
# as quasi-static solutions are sought at each timestep, but
# the number of timesteps controls the resolution of the
# process.
#
# The boundary conditions are:
# - disp_x = 0 everywhere
# - disp_y = 0 at y=0 and y=450
# - disp_z = 0 for y>150
# - disp_z = -3 at maximum, for 0<=y<=150. See excav function.
# That is, rollers on the sides, free at top, and prescribed at bottom.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa. The initial stress is consistent with
# the weight force from density 2500 kg/m^3, ie, stress_zz = -0.025*(300-z) MPa
# where gravity = 10 m.s^-2 = 1E-5 MPa m^2/kg. The maximum and minimum
# principal horizontal stresses are assumed to be equal to 0.8*stress_zz.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# MC cohesion = 3 MPa
# MC friction angle = 37 deg
# MC dilation angle = 8 deg
# MC tensile strength = 1 MPa
# MC compressive strength = 100 MPa, varying down to 1 MPa when tensile strain = 1
# WeakPlane cohesion = 0.1 MPa
# WeakPlane friction angle = 30 deg
# WeakPlane dilation angle = 10 deg
# WeakPlane tensile strength = 0.1 MPa
# WeakPlane compressive strength = 100 MPa softening to 1 MPa at strain = 1
#
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
xmin = -5
xmax = 5
nz = 40
zmin = 0
zmax = 400.0
bias_z = 1.1
ny = 30 # make this a multiple of 3, so y=150 is at a node
ymin = 0
ymax = 450
[]
[left]
type = SideSetsAroundSubdomainGenerator
new_boundary = 11
normal = '0 -1 0'
input = generated_mesh
[]
[right]
type = SideSetsAroundSubdomainGenerator
new_boundary = 12
normal = '0 1 0'
input = left
[]
[front]
type = SideSetsAroundSubdomainGenerator
new_boundary = 13
normal = '-1 0 0'
input = right
[]
[back]
type = SideSetsAroundSubdomainGenerator
new_boundary = 14
normal = '1 0 0'
input = front
[]
[top]
type = SideSetsAroundSubdomainGenerator
new_boundary = 15
normal = '0 0 1'
input = back
[]
[bottom]
type = SideSetsAroundSubdomainGenerator
new_boundary = 16
normal = '0 0 -1'
input = top
[]
[excav]
type = SubdomainBoundingBoxGenerator
block_id = 1
bottom_left = '-5 0 0'
top_right = '5 150 3'
input = bottom
[]
[roof]
type = SideSetsBetweenSubdomainsGenerator
new_boundary = 21
primary_block = 0
paired_block = 1
input = excav
[]
[hole]
type = BlockDeletionGenerator
block = 1
input = roof
[]
[]
[GlobalParams]
block = 0
perform_finite_strain_rotations = false
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[]
[Kernels]
[./cy_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_x
component = 0
[../]
[./gravity]
type = Gravity
use_displaced_mesh = false
variable = disp_z
value = -10E-6
[../]
[]
[AuxVariables]
[./disp_x]
[../]
[./wc_y]
[../]
[./wc_z]
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./wp_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_shear_f]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_tensile_f]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_shear]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_internal_parameter
variable = mc_shear
[../]
[./mc_tensile]
type = MaterialStdVectorAux
index = 1
property = mc_plastic_internal_parameter
variable = mc_tensile
[../]
[./wp_shear]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_internal_parameter
variable = wp_shear
[../]
[./wp_tensile]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_internal_parameter
variable = wp_tensile
[../]
[./mc_shear_f]
type = MaterialStdVectorAux
index = 6
property = mc_plastic_yield_function
variable = mc_shear_f
[../]
[./mc_tensile_f]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_yield_function
variable = mc_tensile_f
[../]
[./wp_shear_f]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_yield_function
variable = wp_shear_f
[../]
[./wp_tensile_f]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_yield_function
variable = wp_tensile_f
[../]
[]
[BCs]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = '11 12 16 21' # note addition of 16 and 21
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = '16'
value = 0.0
[../]
[./no_wc_x]
type = DirichletBC
variable = wc_x
boundary = '11 12'
value = 0.0
[../]
[./roof]
type = FunctionDirichletBC
variable = disp_z
boundary = 21
function = excav_sideways
[../]
[]
[Functions]
[./ini_xx]
type = ParsedFunction
expression = '-0.8*2500*10E-6*(400-z)'
[../]
[./ini_zz]
type = ParsedFunction
expression = '-2500*10E-6*(400-z)'
[../]
[./excav_sideways]
type = ParsedFunction
symbol_names = 'end_t ymin ymax e_h closure_dist'
symbol_values = '1.0 0 150.0 -3.0 15.0'
expression = 'e_h*max(min((min(t/end_t,1)*(ymax-ymin)+ymin-y)/closure_dist,1),0)'
[../]
[./excav_downwards]
type = ParsedFunction
symbol_names = 'end_t ymin ymax e_h closure_dist'
symbol_values = '1.0 0 150.0 -3.0 15.0'
expression = 'e_h*min(t/end_t,1)*max(min(((ymax-ymin)+ymin-y)/closure_dist,1),0)'
[../]
[]
[UserObjects]
[./mc_coh_strong_harden]
type = SolidMechanicsHardeningExponential
value_0 = 2.99 # MPa
value_residual = 3.01 # MPa
rate = 1.0
[../]
[./mc_fric]
type = SolidMechanicsHardeningConstant
value = 0.65 # 37deg
[../]
[./mc_dil]
type = SolidMechanicsHardeningConstant
value = 0.15 # 8deg
[../]
[./mc_tensile_str_strong_harden]
type = SolidMechanicsHardeningExponential
value_0 = 1.0 # MPa
value_residual = 1.0 # MPa
rate = 1.0
[../]
[./mc_compressive_str]
type = SolidMechanicsHardeningCubic
value_0 = 100 # Large!
value_residual = 100
internal_limit = 0.1
[../]
[./wp_coh_harden]
type = SolidMechanicsHardeningCubic
value_0 = 0.1
value_residual = 0.1
internal_limit = 10
[../]
[./wp_tan_fric]
type = SolidMechanicsHardeningConstant
value = 0.36 # 20deg
[../]
[./wp_tan_dil]
type = SolidMechanicsHardeningConstant
value = 0.18 # 10deg
[../]
[./wp_tensile_str_harden]
type = SolidMechanicsHardeningCubic
value_0 = 0.1
value_residual = 0.1
internal_limit = 10
[../]
[./wp_compressive_str_soften]
type = SolidMechanicsHardeningCubic
value_0 = 100
value_residual = 1
internal_limit = 1.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3
[../]
[./strain]
type = ComputeCosseratIncrementalSmallStrain
eigenstrain_names = ini_stress
[../]
[./ini_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = 'ini_xx 0 0 0 ini_xx 0 0 0 ini_zz'
eigenstrain_name = ini_stress
[../]
[./stress]
type = ComputeMultipleInelasticCosseratStress
block = 0
inelastic_models = 'mc wp'
cycle_models = true
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[../]
[./mc]
type = CappedMohrCoulombCosseratStressUpdate
block = 0
warn_about_precision_loss = false
host_youngs_modulus = 8E3
host_poissons_ratio = 0.25
base_name = mc
tensile_strength = mc_tensile_str_strong_harden
compressive_strength = mc_compressive_str
cohesion = mc_coh_strong_harden
friction_angle = mc_fric
dilation_angle = mc_dil
max_NR_iterations = 10000
smoothing_tol = 0.1 # MPa # Must be linked to cohesion
yield_function_tol = 1E-9 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0
[../]
[./wp]
type = CappedWeakPlaneCosseratStressUpdate
block = 0
warn_about_precision_loss = false
base_name = wp
cohesion = wp_coh_harden
tan_friction_angle = wp_tan_fric
tan_dilation_angle = wp_tan_dil
tensile_strength = wp_tensile_str_harden
compressive_strength = wp_compressive_str_soften
max_NR_iterations = 10000
tip_smoother = 0.1
smoothing_tol = 0.1 # MPa # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
yield_function_tol = 1E-11 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0
[../]
[./density]
type = GenericConstantMaterial
prop_names = density
prop_values = 2500
[../]
[]
[Postprocessors]
[./subsidence]
type = PointValue
point = '0 0 400'
variable = disp_z
use_displaced_mesh = false
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
line_search = bt
nl_abs_tol = 1e-3
nl_rel_tol = 1e-5
l_max_its = 30
nl_max_its = 1000
start_time = 0.0
dt = 0.2
end_time = 0.2
[]
[Outputs]
file_base = cosserat_mc_wp
time_step_interval = 1
print_linear_residuals = false
csv = true
exodus = true
[./console]
type = Console
output_linear = false
[../]
[]
(modules/solid_mechanics/test/tests/1D_axisymmetric/axisymmetric_gps_finite.i)
#
# This test checks the generalized plane strain using finite strain formulation.
# since we constrain all the nodes against movement and the applied thermal strain
# is very small, the results are the same as small and incremental small strain formulations
#
[GlobalParams]
displacements = disp_x
scalar_out_of_plane_strain = scalar_strain_yy
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = lines.e
[]
[Variables]
[disp_x]
[]
[temp]
initial_condition = 580.0
[]
[scalar_strain_yy]
order = FIRST
family = SCALAR
[]
[]
[Functions]
[temp100]
type = PiecewiseLinear
x = '0 1'
y = '580 680'
[]
[temp300]
type = PiecewiseLinear
x = '0 1'
y = '580 880'
[]
[]
[Kernels]
[heat]
type = Diffusion
variable = temp
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[gps]
planar_formulation = GENERALIZED_PLANE_STRAIN
scalar_out_of_plane_strain = scalar_strain_yy
strain = FINITE
generate_output = 'strain_xx strain_yy strain_zz stress_xx stress_yy stress_zz'
eigenstrain_names = eigenstrain
temperature = temp
[]
[]
[BCs]
[no_x]
type = DirichletBC
boundary = 1000
value = 0
variable = disp_x
[]
[temp100]
type = FunctionDirichletBC
variable = temp
function = temp100
boundary = 2
[]
[temp300]
type = FunctionDirichletBC
variable = temp
function = temp300
boundary = 3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 3600
poissons_ratio = 0.2
[]
[thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-8
temperature = temp
stress_free_temperature = 580
eigenstrain_name = eigenstrain
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_max_its = 50
l_tol = 1e-08
nl_max_its = 15
nl_abs_tol = 1e-10
start_time = 0
end_time = 1
num_steps = 1
[]
[Outputs]
exodus = true
console = true
[]
(modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-fretting-wear-test-projection_angle.i)
starting_point = 0.5e-1
offset = -0.045
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-1elem-blocks-multiple-projections-lowerd.e
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[normal_lm]
block = 3
use_dual = true
# scaling = 1.0e-5
[]
[frictional_lm]
block = 3
use_dual = true
# scaling = 1.0e-5
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[DynamicTensorMechanics]
displacements = 'disp_x disp_y'
generate_output = 'stress_xx stress_yy'
strain = FINITE
block = '1 2'
stiffness_damping_coefficient = 1.0
hht_alpha = 0.0
[]
[inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[]
[Materials]
[elasticity_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elasticity_1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e8
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[strain]
type = ComputeFiniteStrain
block = '1 2'
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '7750'
[]
[]
[AuxVariables]
[worn_depth]
block = '3'
[]
[gap_vel]
block = '3'
[]
[vel_x]
block = '1 2'
[]
[accel_x]
block = '1 2'
[]
[vel_y]
block = '1 2'
[]
[accel_y]
block = '1 2'
[]
[vel_z]
block = '1 2'
[]
[accel_z]
block = '1 2'
[]
[]
[AuxKernels]
[gap_vel]
type = WeightedGapVelAux
variable = gap_vel
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
disp_x = disp_x
disp_y = disp_y
debug_mesh = true
minimum_projection_angle = 0.0
[]
[worn_depth]
type = MortarArchardsLawAux
variable = worn_depth
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
displacements = 'disp_x disp_y'
friction_coefficient = 0.5
energy_wear_coefficient = 1.0e-6
normal_pressure = normal_lm
execute_on = 'TIMESTEP_END'
debug_mesh = true
minimum_projection_angle = 0.0
[]
[accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = 'linear timestep_end'
[]
[vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = 'linear timestep_end'
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = 'linear timestep_end'
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = 'linear timestep_end'
[]
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
secondary_variable = disp_x
lm_variable_normal = normal_lm
lm_variable_tangential_one = frictional_lm
disp_x = disp_x
disp_y = disp_y
debug_mesh = true
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeDynamicFrictionalForceLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
wear_depth = worn_depth
c = 1e6
c_t = 1e6
normalize_c = true
mu = 0.5
friction_lm = frictional_lm
capture_tolerance = 1.0e-5
newmark_beta = 0.25
newmark_gamma = 0.5
debug_mesh = true
minimum_projection_angle = 0.0
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
debug_mesh = true
minimum_projection_angle = 0.0
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
debug_mesh = true
minimum_projection_angle = 0.0
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
debug_mesh = true
minimum_projection_angle = 0.0
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = frictional_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
debug_mesh = true
minimum_projection_angle = 0.0
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(4.0 * pi / 4 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * (cos(32.0 * pi / 4 * t) - 1.0)'
[]
[]
[Executioner]
type = Transient
end_time = 0.0
dt = 0.05
dtmin = .002
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist NONZERO 1e-15'
nl_max_its = 40
l_max_its = 15
line_search = 'l2'
snesmf_reuse_base = true
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
checkpoint = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[]
(modules/heat_transfer/test/tests/gap_perfect_transfer/perfect_transfer_gap.i)
#
# 1-D Gap Perfect Heat Transfer
#
# The mesh consists of two element blocks containing one element each. Each
# element is a unit line. They sit next to one another with a unit between
# them.
#
# The temperature of the far left boundary is ramped from 100 to 200 over one
# second and then held fixed. The temperature of the far right boundary
# follows due to the perfect heat transfer.
#
[Mesh]
[left]
type = GeneratedMeshGenerator
dim = 1
boundary_name_prefix = left
[]
[right]
type = GeneratedMeshGenerator
dim = 1
xmin = 2
xmax = 3
boundary_name_prefix = right
boundary_id_offset = 2
[]
[right_block]
type = SubdomainIDGenerator
input = right
subdomain_id = 1
[]
[collect]
type = CombinerGenerator
inputs = 'left right_block'
[]
[]
[Functions]
[temperature]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 100
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[BCs]
[temp_far_left]
type = FunctionDirichletBC
boundary = 0
variable = temperature
function = temperature
[]
[]
[ThermalContact]
[thermal_contact_1]
type = GapPerfectConductance
penalty = 1e3
variable = temperature
primary = 1
secondary = 2
[]
[]
[Materials]
[heat1]
type = HeatConductionMaterial
block = 0
specific_heat = 1.0
thermal_conductivity = 1.0
[]
[heat2]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 10.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-8
nl_rel_tol = 1e-14
l_tol = 1e-3
l_max_its = 100
start_time = 0.0
dt = 1e-1
end_time = 2.0
num_steps = 50
[]
[Postprocessors]
[aveTempLeft]
type = SideAverageValue
boundary = 0
variable = temperature
execute_on = 'initial timestep_end'
[]
[aveTempRight]
type = SideAverageValue
boundary = 3
variable = temperature
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(modules/combined/test/tests/inelastic_strain/elas_plas/elas_plas_nl1_cycle.i)
#
# Test for effective strain calculation.
# Boundary conditions from NAFEMS test NL1
#
#
# This is not a verification test. The boundary conditions are applied such
# that the first step generates only elastic stresses. The rest of the load
# steps generate cycles of tension and compression in the axial (i.e., y-axis)
# direction. The axial stresses and strains also cycle, however the effective
# plastic strain increases in value throughout the analysis.
#
[GlobalParams]
order = FIRST
family = LAGRANGE
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
file = one_elem2.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./pressure]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./elastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./plastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./tot_strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./eff_plastic_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[../]
[./pressure]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = pressure
scalar_type = Hydrostatic
execute_on = timestep_end
[../]
[./elastic_strain_xx]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./elastic_strain_yy]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./elastic_strain_zz]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./plastic_strain_xx]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./plastic_strain_yy]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./plastic_strain_zz]
type = RankTwoAux
rank_two_tensor = plastic_strain
variable = plastic_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./tot_strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./tot_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./tot_strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = tot_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./eff_plastic_strain]
type = MaterialRealAux
property = effective_plastic_strain
variable = eff_plastic_strain
[../]
[]
[Functions]
[./appl_dispy]
type = PiecewiseLinear
x = '0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0'
y = '0.0 0.208e-4 0.50e-4 1.00e-4 0.784e-4 0.50e-4 0.0 0.216e-4 0.5e-4 1.0e-4 0.785e-4 0.50e-4 0.0'
[../]
[]
[BCs]
[./side_x]
type = DirichletBC
variable = disp_x
boundary = 101
value = 0.0
[../]
[./origin_x]
type = DirichletBC
variable = disp_x
boundary = 103
value = 0.0
[../]
[./bot_y]
type = DirichletBC
variable = disp_y
boundary = 102
value = 0.0
[../]
[./origin_y]
type = DirichletBC
variable = disp_y
boundary = 103
value = 0.0
[../]
[./top_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = appl_dispy
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 250e9
poissons_ratio = 0.25
[../]
[./strain]
type = ComputePlaneFiniteStrain
block = 1
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = 'isoplas'
block = 1
[../]
[./isoplas]
type = IsotropicPlasticityStressUpdate
yield_stress = 5e6
hardening_constant = 0.0
relative_tolerance = 1e-20
absolute_tolerance = 1e-8
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
l_tol = 1e-4
l_max_its = 100
nl_max_its = 20
dt = 1.0
start_time = 0.0
num_steps = 100
end_time = 12.0
[]
[Postprocessors]
[./stress_xx]
type = ElementAverageValue
variable = stress_xx
[../]
[./stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./stress_xy]
type = ElementAverageValue
variable = stress_xy
[../]
[./vonmises]
type = ElementAverageValue
variable = vonmises
[../]
[./pressure]
type = ElementAverageValue
variable = pressure
[../]
[./el_strain_xx]
type = ElementAverageValue
variable = elastic_strain_xx
[../]
[./el_strain_yy]
type = ElementAverageValue
variable = elastic_strain_yy
[../]
[./el_strain_zz]
type = ElementAverageValue
variable = elastic_strain_zz
[../]
[./pl_strain_xx]
type = ElementAverageValue
variable = plastic_strain_xx
[../]
[./pl_strain_yy]
type = ElementAverageValue
variable = plastic_strain_yy
[../]
[./pl_strain_zz]
type = ElementAverageValue
variable = plastic_strain_zz
[../]
[./eff_plastic_strain]
type = ElementAverageValue
variable = eff_plastic_strain
[../]
[./tot_strain_xx]
type = ElementAverageValue
variable = tot_strain_xx
[../]
[./tot_strain_yy]
type = ElementAverageValue
variable = tot_strain_yy
[../]
[./tot_strain_zz]
type = ElementAverageValue
variable = tot_strain_zz
[../]
[./disp_x1]
type = NodalVariableValue
nodeid = 0
variable = disp_x
[../]
[./disp_x4]
type = NodalVariableValue
nodeid = 3
variable = disp_x
[../]
[./disp_y1]
type = NodalVariableValue
nodeid = 0
variable = disp_y
[../]
[./disp_y4]
type = NodalVariableValue
nodeid = 3
variable = disp_y
[../]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/stickyBC/push_down.i)
# Testing StickyBC
#
# Push the top of an element downward until the bottom hits an (invisible) obstruction.
# 10 timesteps are used. In each timestep disp_y is decreased by 0.1. The
# StickyBC has a min_value of -0.49, so at timestep 5 this bound will be violated
# and the bottom boundary will be fixed forever after.
#
# This test also illustrates that StickyBC is only ever meant to be used in
# special situations:
# - if, after the simulation ends, the top is moved upward again, the StickyBC
# will keep the bottom fixed. Ie, the StickyBC is truly "sticky".
# - setting min_value = -0.5 in this test illustrates the "approximate" nature
# of StickyBC, in that some nodes will be fixed at disp_y=-0.5, while others
# will be fixed at disp_y=-0.6, due to the timestepping and roundoff errors
# in MOOSE's solution.
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
[../]
[]
[BCs]
[./obstruction]
type = StickyBC
variable = disp_y
boundary = bottom
min_value = -0.49
[../]
[./top]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = -t
[../]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./front]
type = DirichletBC
variable = disp_z
boundary = front
value = 0
[../]
[]
[Materials]
[./stress]
type = ComputeLinearElasticStress
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.0
poissons_ratio = 0.2
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = Linear
dt = 0.1
end_time = 1.0
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/nodal_patch_recovery/patch_recovery.i)
[GlobalParams]
displacements = 'ux uy'
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
[]
[UserObjects]
[stress_xx_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '0 0'
execute_on = 'TIMESTEP_END'
[]
[stress_yy_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '1 1'
execute_on = 'TIMESTEP_END'
[]
[]
[AuxVariables]
[stress_xx_recovered]
order = FIRST
family = LAGRANGE
[]
[stress_yy_recovered]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
[tdisp]
type = ParsedFunction
expression = 0.01*t
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
[]
[AuxKernels]
[stress_xx_recovered]
type = NodalPatchRecoveryAux
variable = stress_xx_recovered
nodal_patch_recovery_uo = stress_xx_patch
execute_on = 'TIMESTEP_END'
[]
[stress_yy_recovered]
type = NodalPatchRecoveryAux
variable = stress_yy_recovered
nodal_patch_recovery_uo = stress_yy_patch
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = uy
boundary = 'bottom'
value = 0
[]
[fix_x]
type = DirichletBC
variable = ux
boundary = 'top bottom'
value = 0
[]
[disp_y]
type = FunctionDirichletBC
variable = uy
boundary = 'top'
function = tdisp
preset = false
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 0.05
num_steps = 2
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
[]
[Outputs]
exodus = true
print_linear_residuals = false
[]
(modules/peridynamics/test/tests/failure_tests/2D_stress_failure_H1NOSPD.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
cracks_start = '0.25 0.5 0'
cracks_end = '0.75 0.5 0'
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 8
ny = 8
[../]
[./gpd]
type = MeshGeneratorPD
input = gmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./damage]
[../]
[./intact_bonds_num]
[../]
[./critical_stress]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./bond_status]
type = RankTwoBasedFailureCriteriaNOSPD
variable = bond_status
rank_two_tensor = stress
critical_variable = critical_stress
failure_criterion = VonMisesStress
[../]
[]
[UserObjects]
[./damage]
type = NodalDamageIndexPD
variable = damage
[../]
[./intact_bonds]
type = NodalNumIntactBondsPD
variable = intact_bonds_num
[../]
[]
[ICs]
[./critical_stretch]
type = ConstantIC
variable = critical_stress
value = 150
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1002
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1000
function = '-0.001*t'
[../]
[./rbm_x]
type = RBMPresetOldValuePD
variable = disp_x
boundary = 999
[../]
[./rbm_y]
type = RBMPresetOldValuePD
variable = disp_y
boundary = 999
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = NONORDINARY_STATE
stabilization = BOND_HORIZON_I
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.33
[../]
[./strain]
type = ComputePlaneSmallStrainNOSPD
stabilization = BOND_HORIZON_I
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
dt = 0.5
end_time = 1
[./Quadrature]
type = GAUSS_LOBATTO
order = FIRST
[../]
[]
[Outputs]
file_base = 2D_stress_failure_H1NOSPD
exodus = true
[]
(modules/solid_mechanics/test/tests/j2_plasticity/small_deform3.i)
# UserObject J2 test
# apply uniform compression in x direction to give
# trial stress_xx = -7, so sqrt(3*J2) = 7
# with zero Poisson's ratio, this should return to
# stress_xx = -3, stress_yy = -2 = stress_zz
# (note that stress_xx - stress_yy = stress_xx - stress_zz = -1, so sqrt(3*j2) = 1,
# and that the mean stress remains = -7/3)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-3.5E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[]
[UserObjects]
[./str]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./j2]
type = SolidMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = j2
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/neml2/plasticity/isokinharden.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = true
[]
[]
[]
[]
[NEML2]
input = 'isokinharden_neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL POSTPROCESSOR POSTPROCESSOR MATERIAL MATERIAL MATERIAL'
moose_inputs = ' neml2_strain time time plastic_strain equivalent_plastic_strain kinematic_plastic_strain'
neml2_inputs = ' forces/E forces/t old_forces/t old_state/internal/Ep old_state/internal/ep old_state/internal/Kp'
moose_output_types = 'MATERIAL MATERIAL MATERIAL MATERIAL'
moose_outputs = ' neml2_stress plastic_strain equivalent_plastic_strain kinematic_plastic_strain'
neml2_outputs = ' state/S state/internal/Ep state/internal/ep state/internal/Kp'
moose_derivative_types = 'MATERIAL'
moose_derivatives = 'neml2_jacobian'
neml2_derivatives = 'state/S forces/E'
[]
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[convert_strain]
type = RankTwoTensorToSymmetricRankTwoTensor
from = 'mechanical_strain'
to = 'neml2_strain'
[]
[stress]
type = ComputeLagrangianObjectiveCustomSymmetricStress
custom_small_stress = 'neml2_stress'
custom_small_jacobian = 'neml2_jacobian'
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
preset = false
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 1e-3
dtmin = 1e-3
num_steps = 5
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/bouncing-block-contact/ping-ponging/mortar-no-ping-pong_weighted.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[file]
type = FileMeshGenerator
file = long-bottom-block-no-lower-d.e
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = false
use_automatic_differentiation = true
strain = SMALL
[]
[]
[Materials]
[elasticity]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 1e0
poissons_ratio = 0.3
[]
[stress]
type = ADComputeLinearElasticStress
[]
[]
[Contact]
[leftright]
secondary = 10
primary = 20
model = frictionless
formulation = mortar
c_normal = 1e-1
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
num_steps = 40
end_time = 200
dt = 5
dtmin = 5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type'
petsc_options_value = 'lu 1e-5 NONZERO'
l_max_its = 30
nl_max_its = 20
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
line_search = 'none'
snesmf_reuse_base = true
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
[exo]
type = Exodus
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test2tt.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test2.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.1
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.1
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[]
[Outputs]
file_base = pl_test2tt_out
exodus = true
[]
(test/tests/multiapps/restart/parent.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
ymin = 0
xmax = 1
ymax = 1
nx = 10
ny = 10
[]
[Functions]
[v_fn]
type = ParsedFunction
expression = t*x
[]
[ffn]
type = ParsedFunction
expression = x
[]
[]
[AuxVariables]
[v]
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[td]
type = TimeDerivative
variable = u
[]
[ufn]
type = BodyForce
variable = u
function = ffn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = v_fn
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
checkpoint = true
[]
[MultiApps]
[sub_app]
app_type = MooseTestApp
type = TransientMultiApp
input_files = 'sub.i'
execute_on = timestep_end
positions = '0 -1 0'
[]
[]
[Transfers]
[from_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub_app
source_variable = u
variable = v
[]
[]
(modules/solid_mechanics/test/tests/smeared_cracking/cracking_function.i)
#
# Simple pull test for cracking. This tests the option to prescribe the
# cracking strength using an AuxVariable. In this case, an elemental
# AuxVariable is used, and a function is used to prescribe its value.
# One of the elements is weaker than the others, so the crack localizes
# in that element.
#
[Mesh]
file = plate.e
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./cracking_stress_fn]
order = CONSTANT
family = MONOMIAL
[../]
[./crack_flags2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./displ]
type = PiecewiseLinear
x = '0 0.1 0.2 0.3 0.4'
y = '0 0.001 0 -0.001 0'
[../]
[./fstress]
type = ParsedFunction
expression = 'if(x > 0.667, 1.1e6, 1.2e6)'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx strain_xx strain_yy strain_xy strain_yz'
[../]
[]
[AuxKernels]
[./cracking_stress_fn]
type = FunctionAux
variable = cracking_stress_fn
function = fstress
execute_on = initial
[../]
[./crack_flags2]
type = MaterialRealVectorValueAux
property = crack_flags
variable = crack_flags2
component = 2
[../]
[]
[BCs]
[./pull]
type = FunctionDirichletBC
variable = disp_x
boundary = '3 4'
function = displ
[../]
[./pin_x]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0
[../]
[./pin_y]
type = DirichletBC
variable = disp_y
boundary = '1 4'
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 200.0e7
poissons_ratio = 0.0
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
cracking_stress = cracking_stress_fn
cracked_elasticity_type = FULL
softening_models = abrupt_softening
[../]
[./abrupt_softening]
type = AbruptSoftening
residual_stress = 0.0
[../]
[]
[Postprocessors]
[./elem_stress_xx]
type = ElementalVariableValue
variable = stress_xx
elementid = 2
[../]
[./elem_strain_xx]
type = ElementalVariableValue
variable = strain_xx
elementid = 2
[../]
[./elem_crack_flags_x]
type = ElementalVariableValue
variable = crack_flags2
elementid = 2
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101 '
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
l_tol = 1e-5
start_time = 0.0
end_time = 0.2
dt = 0.0025
[]
[Outputs]
exodus = true
[]
(test/tests/auxkernels/element_var/element_var_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
# This test uses ElementalVariableValue postprocessors on specific
# elements, so element numbering needs to stay unchanged
allow_renumbering = false
[]
[Functions]
[./ffn]
type = ParsedFunction
expression = -4
[../]
[./exactfn]
type = ParsedFunction
expression = x*x+y*y
[../]
[./aux_exact_fn]
type = ParsedFunction
expression = t*(x*x+y*y)
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
#Coupling of nonlinear to Aux
[./force]
type = BodyForce
variable = u
function = ffn
[../]
[]
[AuxVariables]
[./aux_u]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./a]
type = FunctionAux
variable = aux_u
function = aux_exact_fn
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exactfn
[../]
[]
[Postprocessors]
[./elem_56]
type = ElementalVariableValue
variable = u
elementid = 56
[../]
[./aux_elem_99]
type = ElementalVariableValue
variable = aux_u
elementid = 99
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.01
start_time = 0
num_steps = 10
[]
[Outputs]
exodus = true
file_base = out
[]
(modules/xfem/test/tests/bimaterials/glued_bimaterials_2d.i)
# This test is for two layer materials with different youngs modulus
# The global stress is determined by switching the stress based on level set values
# The material interface is marked by a level set function
# The two layer materials are glued together
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./level_set_cut_uo]
type = LevelSetCutUserObject
level_set_var = ls
[../]
[]
[Mesh]
displacements = 'disp_x disp_y'
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
xmin = 0.0
xmax = 5.
ymin = 0.0
ymax = 5.
elem_type = QUAD4
[]
[./left_bottom]
type = ExtraNodesetGenerator
new_boundary = 'left_bottom'
coord = '0.0 0.0'
input = gen
[../]
[./left_top]
type = ExtraNodesetGenerator
new_boundary = 'left_top'
coord = '0.0 5.'
input = left_bottom
[../]
[]
[AuxVariables]
[./ls]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./ls_function]
type = FunctionAux
variable = ls
function = ls_func
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Functions]
[./ls_func]
type = ParsedFunction
expression = 'y-2.5'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./a_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./a_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./a_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./b_strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./b_strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./b_strain_xy]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./a_strain_xx]
type = RankTwoAux
rank_two_tensor = A_total_strain
index_i = 0
index_j = 0
variable = a_strain_xx
[../]
[./a_strain_yy]
type = RankTwoAux
rank_two_tensor = A_total_strain
index_i = 1
index_j = 1
variable = a_strain_yy
[../]
[./a_strain_xy]
type = RankTwoAux
rank_two_tensor = A_total_strain
index_i = 0
index_j = 1
variable = a_strain_xy
[../]
[./b_strain_xx]
type = RankTwoAux
rank_two_tensor = B_total_strain
index_i = 0
index_j = 0
variable = b_strain_xx
[../]
[./b_strain_yy]
type = RankTwoAux
rank_two_tensor = B_total_strain
index_i = 1
index_j = 1
variable = b_strain_yy
[../]
[./b_strain_xy]
type = RankTwoAux
rank_two_tensor = B_total_strain
index_i = 0
index_j = 1
variable = b_strain_xy
[../]
[]
[Constraints]
[./dispx_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_x
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[../]
[./dispy_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_y
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[../]
[./bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
boundary = top
variable = disp_x
function = 0.03*t
[../]
[./topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = '0.03*t'
[../]
[]
[Materials]
[./elasticity_tensor_A]
type = ComputeIsotropicElasticityTensor
base_name = A
youngs_modulus = 1e9
poissons_ratio = 0.3
[../]
[./strain_A]
type = ComputeSmallStrain
base_name = A
[../]
[./stress_A]
type = ComputeLinearElasticStress
base_name = A
[../]
[./elasticity_tensor_B]
type = ComputeIsotropicElasticityTensor
base_name = B
youngs_modulus = 1e5
poissons_ratio = 0.3
[../]
[./strain_B]
type = ComputeSmallStrain
base_name = B
[../]
[./stress_B]
type = ComputeLinearElasticStress
base_name = B
[../]
[./combined_stress]
type = LevelSetBiMaterialRankTwo
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = stress
[../]
[./combined_dstressdstrain]
type = LevelSetBiMaterialRankFour
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = Jacobian_mult
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'bt'
# controls for linear iterations
l_max_its = 20
l_tol = 1e-3
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-7
# time control
start_time = 0.0
dt = 0.1
num_steps = 2
max_xfem_update = 1
[]
[Outputs]
exodus = true
execute_on = timestep_end
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/neml2/viscoplasticity/perfect.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = true
[]
[]
[]
[]
[NEML2]
input = 'perfect_neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL MATERIAL POSTPROCESSOR POSTPROCESSOR MATERIAL'
moose_inputs = ' neml2_strain neml2_strain time time neml2_stress'
neml2_inputs = ' forces/E old_forces/E forces/t old_forces/t old_state/S'
moose_output_types = 'MATERIAL'
moose_outputs = ' neml2_stress'
neml2_outputs = ' state/S'
moose_derivative_types = 'MATERIAL'
moose_derivatives = 'neml2_jacobian'
neml2_derivatives = 'state/S forces/E'
[]
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[convert_strain]
type = RankTwoTensorToSymmetricRankTwoTensor
from = 'mechanical_strain'
to = 'neml2_strain'
[]
[stress]
type = ComputeLagrangianObjectiveCustomSymmetricStress
custom_small_stress = 'neml2_stress'
custom_small_jacobian = 'neml2_jacobian'
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
preset = false
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 1e-3
dtmin = 1e-3
num_steps = 5
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/twinning/upper_twin_fraction_limit.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
elem_type = HEX8
[]
[]
[AuxVariables]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[total_twin_volume_fraction]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_4]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_10]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_4]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_10]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
[]
[AuxKernels]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[total_twin_volume_fraction]
type = MaterialRealAux
variable = total_twin_volume_fraction
property = total_volume_fraction_twins
execute_on = timestep_end
[]
[slip_increment_4]
type = MaterialStdVectorAux
variable = slip_increment_4
property = slip_increment
index = 4
execute_on = timestep_end
[]
[slip_increment_10]
type = MaterialStdVectorAux
variable = slip_increment_10
property = slip_increment
index = 10
execute_on = timestep_end
[]
[twin_volume_fraction_4]
type = MaterialStdVectorAux
variable = twin_volume_fraction_4
property = twin_system_volume_fraction
index = 4
execute_on = timestep_end
[]
[twin_volume_fraction_10]
type = MaterialStdVectorAux
variable = twin_volume_fraction_10
property = twin_system_volume_fraction
index = 10
execute_on = timestep_end
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'bottom'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '5.0e-4*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.08e5 6.034e4 6.034e4 1.08e5 6.03e4 1.08e5 2.86e4 2.86e4 2.86e4' #Tallon and Wolfenden. J. Phys. Chem. Solids (1979)
fill_method = symmetric9
euler_angle_1 = 54.74
euler_angle_2 = 45.0
euler_angle_3 = 270.0
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'twin_only_xtalpl'
tan_mod_type = exact
[]
[twin_only_xtalpl]
type = CrystalPlasticityTwinningKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = 'fcc_input_twinning_systems.txt'
initial_twin_lattice_friction = 1.5
upper_limit_twin_volume_fraction = 1e-7
stol = 0.01
print_state_variable_convergence_error_messages = true
[]
[]
[Postprocessors]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[total_twin_volume_fraction]
type = ElementAverageValue
variable = total_twin_volume_fraction
[]
[slip_increment_4]
type = ElementAverageValue
variable = slip_increment_4
[]
[slip_increment_10]
type = ElementAverageValue
variable = slip_increment_10
[]
[twin_volume_fraction_4]
type = ElementAverageValue
variable = twin_volume_fraction_4
[]
[twin_volume_fraction_10]
type = ElementAverageValue
variable = twin_volume_fraction_10
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.05
dtmin = 1e-5
end_time = 0.18
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/combined/test/tests/phase_field_fracture/crack2d_computeCrackedStress_finitestrain_elastic.i)
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 40
ny = 20
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./All]
add_variables = true
strain = FINITE
planar_formulation = PLANE_STRAIN
additional_generate_output = 'stress_yy'
strain_base_name = uncracked
[../]
[../]
[../]
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = E_el
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[./off_disp]
type = AllenCahnElasticEnergyOffDiag
variable = c
displacements = 'disp_x disp_y'
mob_name = L
[../]
[]
[AuxKernels]
[./strain_yy]
type = RankTwoAux
variable = strain_yy
rank_two_tensor = uncracked_mechanical_strain
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.05 1e-4'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
base_name = uncracked
[../]
[./elastic]
type = ComputeFiniteStrainElasticStress
base_name = uncracked
[../]
[./cracked_stress]
type = ComputeCrackedStress
c = c
kdamage = 1e-5
F_name = E_el
use_current_history_variable = true
uncracked_base_name = uncracked
finite_strain_model = true
[../]
[]
[Postprocessors]
[./av_stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./av_strain_yy]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solving_package'
petsc_options_value = 'lu superlu_dist'
nl_rel_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 3e-5
num_steps = 2
[]
[Outputs]
exodus = true
[]
(test/tests/executioners/executioner/steady-adapt.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 3
ny = 3
elem_type = QUAD4
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = -4
[../]
[./exact_fn]
type = ParsedFunction
expression = ((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ffn'
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[./Adaptivity]
steps = 3
coarsen_fraction = 0.1
refine_fraction = 0.2
max_h_level = 5
[../]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_steady_adapt
exodus = true
print_mesh_changed_info = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl2D_yz.i)
#
# 2D Cylindrical Gap Heat Transfer Test.
#
# This test exercises 2D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid cylinder of radius = 1 unit, and outer
# hollow cylinder with an inner radius of 2 in the y-z plane. In other words,
# the gap between them is 1 radial unit in length.
#
# The calculated results are the same as for the cyl2D.i case in the x-y plane.
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
[file]
type = FileMeshGenerator
file = cyl2D.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 90 90'
input = file
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
gap_conductivity = 1
quadrature = true
gap_geometry_type = CYLINDER
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '1 0 0'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test4.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test4.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-10
l_max_its = 10
start_time = 0.0
dt = 0.0125
end_time = 1.0
[]
[Outputs]
file_base = pl_test4_out
exodus = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/throw_test.i)
# Illustrates throwing an Exception from a Material. In this case we
# don't actually recover from the segfault (so it is a RunException
# test) but in practice one could do so. The purpose of this test is
# to ensure that exceptions can be thrown from Materials with stateful
# material properties without reading/writing to/from uninitialized
# memory.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 0
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = t
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 20
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1
[../]
[./t_strength]
type = SolidMechanicsHardeningCubic
value_0 = 1
value_residual = 2
internal_limit = 1
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 100
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
max_NR_iterations = 1
tip_smoother = 5
smoothing_tol = 5
yield_function_tol = 1E-10
[../]
[]
[Executioner]
end_time = 1
dt = 1
dtmin = 1
type = Transient
[]
[Outputs]
file_base = SEGFAULT
csv = true
[]
(test/tests/multiapps/picard_catch_up/sub.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
[]
[Variables]
[./v]
[../]
[]
[AuxVariables]
[./u]
[../]
[]
[Kernels]
[./diff_v]
type = Diffusion
variable = v
[../]
[./force_v]
type = CoupledForce
variable = v
v = u
[../]
[./nan]
type = NanAtCountKernel
variable = v
count = 32
[../]
[]
[BCs]
[./left_v]
type = DirichletBC
variable = v
preset = false
boundary = left
value = 1
[../]
[./right_v]
type = FunctionDirichletBC
variable = v
preset = false
boundary = right
function = 't + 1'
[../]
[]
[Executioner]
type = Transient
num_steps = 2
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu mumps'
nl_abs_tol = 1e-10
snesmf_reuse_base = false
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/j2_plasticity_vs_LSH/j2_hard1_mod_small_strain.i)
# Test designed to compare results and active time between SH/LinearStrainHardening
# material vs TM j2 plastic user object. As number of elements increases, TM
# active time increases at a much higher rate than SM. Testing at 4x4x4
# (64 elements).
#
# plot vm_stress vs intnl to see constant hardening
#
# Original test located at:
# solid_mechanics/tests/j2_plasticity/hard1.i
[Mesh]
type = GeneratedMesh
dim = 3
nx = 4
ny = 4
nz = 4
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[disp_z]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[TensorMechanics]
displacements = 'disp_x disp_y disp_z'
[]
[]
[AuxVariables]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[intnl]
order = CONSTANT
family = MONOMIAL
[]
[vm_stress]
order = CONSTANT
family = MONOMIAL
[]
[eq_pl_strain]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[]
[intnl]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = intnl
[]
[eq_pl_strain]
type = RankTwoScalarAux
rank_two_tensor = plastic_strain
scalar_type = EffectiveStrain
variable = eq_pl_strain
[]
[vm_stress]
type = RankTwoScalarAux
rank_two_tensor = stress
scalar_type = VonMisesStress
variable = vm_stress
[]
[]
[BCs]
[left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
[z]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 't/60'
[]
[]
[UserObjects]
[str]
type = TensorMechanicsHardeningConstant
value = 2.4e2
[]
[j2]
type = TensorMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
#with E = 2.1e5 and nu = 0.3
#Hooke's law: E-nu to Lambda-G
C_ijkl = '121154 80769.2'
[]
[strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[]
[mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = j2
tangent_operator = elastic
perform_finite_strain_rotations = false
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
l_tol = 1e-4
start_time = 0.0
end_time = 0.5
dt = 0.01
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[intnl]
type = ElementAverageValue
variable = intnl
[]
[eq_pl_strain]
type = PointValue
point = '0 0 0'
variable = eq_pl_strain
[]
[vm_stress]
type = PointValue
point = '0 0 0'
variable = vm_stress
[]
[]
[Outputs]
csv = true
print_linear_residuals = false
perf_graph = true
[]
(test/tests/predictors/simple/predictor_reference_residual_test.i)
# The purpose of this test is to ensure the SimplePredictor resets the std::precision
[Mesh]
type = GeneratedMesh
dim = 2
nx = 3
ny = 3
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff_u]
type = Diffusion
variable = u
extra_vector_tags = 'ref'
[../]
[]
[BCs]
[./bot]
type = DirichletBC
variable = u
boundary = bottom
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = u
boundary = top
function = 't'
[../]
[]
[Executioner]
type = Transient
start_time = 0.0
dt = 0.5
end_time = 1.0
[./Predictor]
type = SimplePredictor
scale = 1.0e-10
[../]
[]
(modules/solid_mechanics/test/tests/tensile/random_update.i)
# Plasticity models:
# Planar tensile with strength = 1MPa
#
# Lame lambda = 1GPa. Lame mu = 1.3GPa
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 1234
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 1234
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./tot_iters]
type = ElementIntegralMaterialProperty
mat_prop = plastic_NR_iterations
outputs = console
[../]
[./raw_f0]
type = ElementExtremeValue
variable = f0
outputs = console
[../]
[./raw_f1]
type = ElementExtremeValue
variable = f1
outputs = console
[../]
[./raw_f2]
type = ElementExtremeValue
variable = f2
outputs = console
[../]
[./iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./f0]
type = FunctionValuePostprocessor
function = should_be_zero0_fcn
[../]
[./f1]
type = FunctionValuePostprocessor
function = should_be_zero1_fcn
[../]
[./f2]
type = FunctionValuePostprocessor
function = should_be_zero2_fcn
[../]
[]
[Functions]
[./should_be_zero0_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f0'
[../]
[./should_be_zero1_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f1'
[../]
[./should_be_zero2_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f2'
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningCubic
value_0 = 1E6
value_residual = 0
internal_limit = 1
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '1E9 1.3E9'
[../]
[./tensile]
type = TensileStressUpdate
tensile_strength = ts
smoothing_tol = 1E5
max_NR_iterations = 100
yield_function_tol = 1.0E-1
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random_update
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test3tt.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test3.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.1
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.1
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-10
l_max_its = 10
start_time = 0.0
dt = 0.0125
end_time = 1.0
[]
[Outputs]
file_base = pl_test3tt_out
exodus = true
[]
(test/tests/bcs/nodal_normals/circle_quads.i)
[Mesh]
file = circle-quads.e
[]
[Functions]
[./all_bc_fn]
type = ParsedFunction
expression = x*x+y*y
[../]
[./f_fn]
type = ParsedFunction
expression = -4
[../]
[./analytical_normal_x]
type = ParsedFunction
expression = x
[../]
[./analytical_normal_y]
type = ParsedFunction
expression = y
[../]
[]
[NodalNormals]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = f_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = 'all_bc_fn'
[../]
[]
[Postprocessors]
[./nx_pps]
type = NodalL2Error
variable = nodal_normal_x
boundary = '1'
function = analytical_normal_x
[../]
[./ny_pps]
type = NodalL2Error
variable = nodal_normal_y
boundary = '1'
function = analytical_normal_y
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1e-13
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/planar_yz.i)
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks in the y-z plane. Each element block
# is a square. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far bottom boundary
# is ramped from 100 to 200 over one time unit. The temperature of the far top
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
# The heat flux across the gap at time = 1 is then:
#
# Flux = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors. These results
# are the same as for the unit 1-D gap heat transfer between two unit cubes.
[Mesh]
[file]
type = FileMeshGenerator
file = simple_2D.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 90 90'
input = file
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_bottom]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_top]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-12
l_tol = 1e-3
l_max_its = 100
dt = 1e-1
end_time = 1.0
[]
[Postprocessors]
[./temp_bottom]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_top]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_bottom]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_top]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
[]
(tutorials/darcy_thermo_mech/step06_coupled_darcy_heat_conduction/problems/step6a_coupled.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 200
ny = 10
xmax = 0.304 # Length of test chamber
ymax = 0.0257 # Test chamber radius
[]
coord_type = RZ
rz_coord_axis = X
[]
[Variables]
[pressure]
[]
[temperature]
initial_condition = 300 # Start at room temperature
[]
[]
[Kernels]
[darcy_pressure]
type = DarcyPressure
variable = pressure
[]
[heat_conduction]
type = ADHeatConduction
variable = temperature
[]
[heat_conduction_time_derivative]
type = ADHeatConductionTimeDerivative
variable = temperature
[]
[heat_convection]
type = DarcyAdvection
variable = temperature
pressure = pressure
[]
[]
[BCs]
[inlet_temperature]
type = FunctionDirichletBC
variable = temperature
boundary = left
function = 'if(t<0,350+50*t,350)'
[]
[outlet_temperature]
type = HeatConductionOutflow
variable = temperature
boundary = right
[]
[inlet]
type = DirichletBC
variable = pressure
boundary = left
value = 4000 # (Pa) From Figure 2 from paper. First data point for 1mm spheres.
[]
[outlet]
type = DirichletBC
variable = pressure
boundary = right
value = 0 # (Pa) Gives the correct pressure drop from Figure 2 for 1mm spheres
[]
[]
[Materials/column]
type = PackedColumn
temperature = temperature
radius = 1
[]
[AuxVariables/velocity]
order = CONSTANT
family = MONOMIAL_VEC
[]
[AuxKernels/velocity]
type = DarcyVelocity
variable = velocity
execute_on = timestep_end
pressure = pressure
[]
[Problem]
type = FEProblem
[]
[Executioner]
type = Transient
end_time = 100
dt = 0.25
start_time = -1
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
steady_state_tolerance = 1e-5
steady_state_detection = true
[TimeStepper]
type = FunctionDT
function = 'if(t<0,0.1,0.25)'
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_linesearch.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
rtol = 1e-6
abs_tol = 1e-8
gtol = 1e-2
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
use_line_search = true
min_line_search_step_size = 0.01
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.025
dtmax = 10.0
dtmin = 0.02
num_steps = 10
[]
[Outputs]
file_base = crysp_lsearch_out
exodus = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/except3.i)
# checking for exception error messages on the edge smoothing
# here edge_smoother=5deg, which means the friction_angle must be <= 35.747
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 36
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 1
mc_edge_smoother = 5
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1
debug_stress_change = 1E-5
debug_pm_change = 1E-6
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = except3
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/combined/test/tests/gap_heat_transfer_convex/gap_heat_transfer_convex.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
temperature = temp
[]
[Mesh]
file = gap_heat_transfer_convex.e
[]
[Functions]
[./disp]
type = PiecewiseLinear
x = '0 2.0'
y = '0 1.0'
[../]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '200 200'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 100
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 2
secondary = 3
emissivity_primary = 0
emissivity_secondary = 0
[../]
[]
[Physics/SolidMechanics/QuasiStatic/All]
volumetric_locking_correction = true
strain = FINITE
eigenstrain_names = eigenstrain
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./move_right]
type = FunctionDirichletBC
boundary = '3'
variable = disp_x
function = disp
[../]
[./fixed_x]
type = DirichletBC
boundary = '1'
variable = disp_x
value = 0
[../]
[./fixed_y]
type = DirichletBC
boundary = '1 2 3 4'
variable = disp_y
value = 0
[../]
[./fixed_z]
type = DirichletBC
boundary = '1 2 3 4'
variable = disp_z
value = 0
[../]
[./temp_bottom]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_top]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 100
thermal_expansion_coeff = 0
eigenstrain_name = eigenstrain
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[./heat1]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 1.0
[../]
[./heat2]
type = HeatConductionMaterial
block = 2
specific_heat = 1.0
thermal_conductivity = 1.0
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
dt = 0.1
end_time = 2.0
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/bouncing-block-contact/ping-ponging/ranfs-ping-pong.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-no-lower-d.e
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[ICs]
[./disp_y]
block = 2
variable = disp_y
value = ${fparse starting_point + offset}
type = ConstantIC
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = false
use_automatic_differentiation = true
strain = SMALL
[]
[]
[Materials]
[elasticity]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 1e0
poissons_ratio = 0.3
[]
[stress]
type = ADComputeLinearElasticStress
[]
[]
[Constraints]
[./disp_x]
type = RANFSNormalMechanicalContact
secondary = 10
primary = 20
variable = disp_x
primary_variable = disp_x
component = x
[../]
[./disp_y]
type = RANFSNormalMechanicalContact
secondary = 10
primary = 20
variable = disp_y
primary_variable = disp_y
component = y
[../]
[]
[BCs]
[./botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[../]
[./boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[../]
[./leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[../]
[]
[Executioner]
type = Transient
num_steps = 19
end_time = 200
dt = 5
dtmin = 5
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_hypre_type -mat_mffd_err'
petsc_options_value = 'hypre boomeramg 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
[exo]
type = Exodus
[]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
(modules/contact/test/tests/bouncing-block-contact/frictionless-penalty-weighted-gap.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
diffusivity = 1e0
scaling = 1e0
preset = false
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[disp_x]
type = MatDiffusion
variable = disp_x
[]
[disp_y]
type = MatDiffusion
variable = disp_y
[]
[]
[UserObjects]
[weighted_gap_uo]
type = PenaltyWeightedGapUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
disp_x = disp_x
disp_y = disp_y
penalty = 1e0
use_physical_gap = true
[]
[]
[Constraints]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 50
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
end_time = 200
dt = 5
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
line_search = 'none'
snesmf_reuse_base = true
abort_on_solve_fail = true
nl_rel_tol = 1e-13
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/user_object_based/orthotropic_rotation_Cijkl.i)
# This test is designed to test the correct application of the Euler angle
# rotations to the elasticity tensor. The test uses values for the nine C_ijkl
# entries that correspond to the engineering notation placement:
# e.g. C11 = 11e3, c12 = 12e3, c13 = 13e3, c22 = 22e3 ..... c66 = 66e3
#
# A rotation of (0, 90, 0) is applied to the 1x1x1 cube, such that the values of
# c12 and c13 switch, c22 and c33 switch, and c55 and c66 switch. Postprocessors
# are used to verify this switch (made simple with the value convention above)
# and to verify that the unrotated components along the x-axis remain constant.
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./lage_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./lage_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./pk2_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./lage_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./fp_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./c11]
order = CONSTANT
family = MONOMIAL
[../]
[./c12]
order = CONSTANT
family = MONOMIAL
[../]
[./c13]
order = CONSTANT
family = MONOMIAL
[../]
[./c22]
order = CONSTANT
family = MONOMIAL
[../]
[./c23]
order = CONSTANT
family = MONOMIAL
[../]
[./c33]
order = CONSTANT
family = MONOMIAL
[../]
[./c44]
order = CONSTANT
family = MONOMIAL
[../]
[./c55]
order = CONSTANT
family = MONOMIAL
[../]
[./c66]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
[../]
[]
[AuxKernels]
[./lage_xx]
type = RankTwoAux
rank_two_tensor = lage
variable = lage_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./lage_yy]
type = RankTwoAux
rank_two_tensor = lage
variable = lage_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./pk2_yy]
type = RankTwoAux
variable = pk2_yy
rank_two_tensor = pk2
index_j = 1
index_i = 1
execute_on = timestep_end
[../]
[./lage_zz]
type = RankTwoAux
rank_two_tensor = lage
variable = lage_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./fp_yy]
type = RankTwoAux
variable = fp_yy
rank_two_tensor = fp
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./c11]
type = RankFourAux
variable = c11
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 0
index_l = 0
execute_on = timestep_end
[../]
[./c12]
type = RankFourAux
variable = c12
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 1
index_l = 1
execute_on = timestep_end
[../]
[./c13]
type = RankFourAux
variable = c13
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 0
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c22]
type = RankFourAux
variable = c22
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 1
index_k = 1
index_l = 1
execute_on = timestep_end
[../]
[./c23]
type = RankFourAux
variable = c23
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 1
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c33]
type = RankFourAux
variable = c33
rank_four_tensor = elasticity_tensor
index_i = 2
index_j = 2
index_k = 2
index_l = 2
execute_on = timestep_end
[../]
[./c44]
type = RankFourAux
variable = c44
rank_four_tensor = elasticity_tensor
index_i = 1
index_j = 2
index_k = 1
index_l = 2
execute_on = timestep_end
[../]
[./c55]
type = RankFourAux
variable = c55
rank_four_tensor = elasticity_tensor
index_i = 2
index_j = 0
index_k = 2
index_l = 0
execute_on = timestep_end
[../]
[./c66]
type = RankFourAux
variable = c66
rank_four_tensor = elasticity_tensor
index_i = 0
index_j = 1
index_k = 0
index_l = 1
execute_on = timestep_end
[../]
[]
[BCs]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainUObasedCP
stol = 1e-2
tan_mod_type = exact
uo_slip_rates = 'slip_rate_gss'
uo_slip_resistances = 'slip_resistance_gss'
uo_state_vars = 'state_var_gss'
uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '11e3 12e3 13e3 22e3 23e3 33e3 44e3 55e3 66e3'
fill_method = symmetric9
euler_angle_1 = 0.0
euler_angle_2 = 45.0
euler_angle_3 = 45.0
[../]
[]
[UserObjects]
[./slip_rate_gss]
type = CrystalPlasticitySlipRateGSS
variable_size = 12
slip_sys_file_name = input_slip_sys.txt
num_slip_sys_flowrate_props = 2
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
uo_state_var_name = state_var_gss
[../]
[./slip_resistance_gss]
type = CrystalPlasticitySlipResistanceGSS
variable_size = 12
uo_state_var_name = state_var_gss
[../]
[./state_var_gss]
type = CrystalPlasticityStateVariable
variable_size = 12
groups = '0 4 8 12'
group_values = '60.8 60.8 60.8' #strength units in MPa
uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
scale_factor = 1.0
[../]
[./state_var_evol_rate_comp_gss]
type = CrystalPlasticityStateVarRateComponentGSS
variable_size = 12
hprops = '1.0 541.5 109.8 2.5'
uo_slip_rate_name = slip_rate_gss
uo_state_var_name = state_var_gss
[../]
[]
[Postprocessors]
[./lage_xx]
type = ElementAverageValue
variable = lage_xx
[../]
[./pk2_yy]
type = ElementAverageValue
variable = pk2_yy
[../]
[./lage_yy]
type = ElementAverageValue
variable = lage_yy
[../]
[./lage_zz]
type = ElementAverageValue
variable = lage_zz
[../]
[./fp_yy]
type = ElementAverageValue
variable = fp_yy
[../]
[./c11]
type = ElementAverageValue
variable = c11
[../]
[./c12]
type = ElementAverageValue
variable = c12
[../]
[./c13]
type = ElementAverageValue
variable = c13
[../]
[./c22]
type = ElementAverageValue
variable = c22
[../]
[./c23]
type = ElementAverageValue
variable = c23
[../]
[./c33]
type = ElementAverageValue
variable = c33
[../]
[./c44]
type = ElementAverageValue
variable = c44
[../]
[./c55]
type = ElementAverageValue
variable = c55
[../]
[./c66]
type = ElementAverageValue
variable = c66
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_tol = 1e-3
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 1 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dtmax = 0.1
dtmin = 1.0e-3
dt = 0.05
end_time = 0.5
[]
[Outputs]
exodus = false
csv = true
[]
(test/tests/multiapps/restart_subapp_ic/parent.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
ymin = 0
xmax = 1
ymax = 1
nx = 10
ny = 10
[]
[Functions]
[v_fn]
type = ParsedFunction
expression = t*x
[]
[ffn]
type = ParsedFunction
expression = x
[]
[]
[AuxVariables]
[v]
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[td]
type = TimeDerivative
variable = u
[]
[ufn]
type = BodyForce
variable = u
function = ffn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = v_fn
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
checkpoint = true
[]
[MultiApps]
[sub_app]
app_type = MooseTestApp
type = TransientMultiApp
input_files = 'sub.i'
execute_on = timestep_end
positions = '0 -1 0'
[]
[]
[Transfers]
[from_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub_app
source_variable = u
variable = v
[]
[]
(modules/combined/test/tests/elastic_patch/elastic_patch_rz.i)
#
# This problem is taken from the Abaqus verification manual:
# "1.5.4 Patch test for axisymmetric elements"
# The stress solution is given as:
# xx = yy = zz = 2000
# xy = 400
#
# Since the strain is 1e-3 in all three directions, the new density should be
# new_density = original_density * V_0 / V
# new_density = 0.283 / (1 + 1e-3 + 1e-3 + 1e-3) = 0.282153
[GlobalParams]
displacements = 'disp_x disp_y'
temperature = temp
[]
[Mesh]
file = elastic_patch_rz.e
coord_type = RZ
[]
[Variables]
[temp]
initial_condition = 117.56
[]
[]
[Physics/SolidMechanics/QuasiStatic/All]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[]
[Kernels]
[body]
type = BodyForce
variable = disp_y
value = 1
function = '-400/x'
[]
[heat]
type = TimeDerivative
variable = temp
[]
[]
[BCs]
[ur]
type = FunctionDirichletBC
variable = disp_x
boundary = 10
function = '1e-3*x'
[]
[uz]
type = FunctionDirichletBC
variable = disp_y
boundary = 10
function = '1e-3*(x+y)'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
[]
[stress]
type = ComputeStrainIncrementBasedStress
[]
[density]
type = Density
density = 0.283
outputs = all
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
end_time = 1.0
[]
[Outputs]
[out]
type = Exodus
elemental_as_nodal = true
[]
[]
(modules/porous_flow/test/tests/poro_elasticity/mandel_fully_saturated_volume.i)
# Mandel's problem of consolodation of a drained medium
# Using the FullySaturatedDarcyBase and FullySaturatedFullySaturatedMassTimeDerivative kernels
# with multiply_by_density = false, so that this problem becomes linear
#
# A sample is in plane strain.
# -a <= x <= a
# -b <= y <= b
# It is squashed with constant force by impermeable, frictionless plattens on its top and bottom surfaces (at y=+/-b)
# Fluid is allowed to leak out from its sides (at x=+/-a)
# The porepressure within the sample is monitored.
#
# As is common in the literature, this is simulated by
# considering the quarter-sample, 0<=x<=a and 0<=y<=b, with
# impermeable, roller BCs at x=0 and y=0 and y=b.
# Porepressure is fixed at zero on x=a.
# Porepressure and displacement are initialised to zero.
# Then the top (y=b) is moved downwards with prescribed velocity,
# so that the total force that is inducing this downwards velocity
# is fixed. The velocity is worked out by solving Mandel's problem
# analytically, and the total force is monitored in the simulation
# to check that it indeed remains constant.
#
# Here are the problem's parameters, and their values:
# Soil width. a = 1
# Soil height. b = 0.1
# Soil's Lame lambda. la = 0.5
# Soil's Lame mu, which is also the Soil's shear modulus. mu = G = 0.75
# Soil bulk modulus. K = la + 2*mu/3 = 1
# Drained Poisson ratio. nu = (3K - 2G)/(6K + 2G) = 0.2
# Soil bulk compliance. 1/K = 1
# Fluid bulk modulus. Kf = 8
# Fluid bulk compliance. 1/Kf = 0.125
# Soil initial porosity. phi0 = 0.1
# Biot coefficient. alpha = 0.6
# Biot modulus. M = 1/(phi0/Kf + (alpha - phi0)(1 - alpha)/K) = 4.705882
# Undrained bulk modulus. Ku = K + alpha^2*M = 2.694118
# Undrained Poisson ratio. nuu = (3Ku - 2G)/(6Ku + 2G) = 0.372627
# Skempton coefficient. B = alpha*M/Ku = 1.048035
# Fluid mobility (soil permeability/fluid viscosity). k = 1.5
# Consolidation coefficient. c = 2*k*B^2*G*(1-nu)*(1+nuu)^2/9/(1-nuu)/(nuu-nu) = 3.821656
# Normal stress on top. F = 1
#
# The solution for porepressure and displacements is given in
# AHD Cheng and E Detournay "A direct boundary element method for plane strain poroelasticity" International Journal of Numerical and Analytical Methods in Geomechanics 12 (1988) 551-572.
# The solution involves complicated infinite series, so I shall not write it here
[Mesh]
type = GeneratedMesh
dim = 3
nx = 10
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 0.1
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
PorousFlowDictator = dictator
block = 0
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_x disp_y disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[porepressure]
[]
[]
[BCs]
[roller_xmin]
type = DirichletBC
variable = disp_x
value = 0
boundary = 'left'
[]
[roller_ymin]
type = DirichletBC
variable = disp_y
value = 0
boundary = 'bottom'
[]
[plane_strain]
type = DirichletBC
variable = disp_z
value = 0
boundary = 'back front'
[]
[xmax_drained]
type = DirichletBC
variable = porepressure
value = 0
boundary = right
[]
[top_velocity]
type = FunctionDirichletBC
variable = disp_y
function = top_velocity
boundary = top
[]
[]
[Functions]
[top_velocity]
type = PiecewiseLinear
x = '0 0.002 0.006 0.014 0.03 0.046 0.062 0.078 0.094 0.11 0.126 0.142 0.158 0.174 0.19 0.206 0.222 0.238 0.254 0.27 0.286 0.302 0.318 0.334 0.35 0.366 0.382 0.398 0.414 0.43 0.446 0.462 0.478 0.494 0.51 0.526 0.542 0.558 0.574 0.59 0.606 0.622 0.638 0.654 0.67 0.686 0.702'
y = '-0.041824842 -0.042730269 -0.043412712 -0.04428867 -0.045509181 -0.04645965 -0.047268246 -0.047974749 -0.048597109 -0.0491467 -0.049632388 -0.050061697 -0.050441198 -0.050776675 -0.051073238 -0.0513354 -0.051567152 -0.051772022 -0.051953128 -0.052113227 -0.052254754 -0.052379865 -0.052490464 -0.052588233 -0.052674662 -0.052751065 -0.052818606 -0.052878312 -0.052931093 -0.052977751 -0.053018997 -0.053055459 -0.053087691 -0.053116185 -0.053141373 -0.05316364 -0.053183324 -0.053200724 -0.053216106 -0.053229704 -0.053241725 -0.053252351 -0.053261745 -0.053270049 -0.053277389 -0.053283879 -0.053289615'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[tot_force]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[tot_force]
type = ParsedAux
coupled_variables = 'stress_yy porepressure'
execute_on = timestep_end
variable = tot_force
expression = '-stress_yy+0.6*porepressure'
[]
[]
[Kernels]
[grad_stress_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[]
[grad_stress_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[]
[grad_stress_z]
type = StressDivergenceTensors
variable = disp_z
component = 2
[]
[poro_x]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_x
component = 0
[]
[poro_y]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
variable = disp_y
component = 1
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.6
component = 2
variable = disp_z
[]
[mass0]
type = PorousFlowFullySaturatedMassTimeDerivative
biot_coefficient = 0.6
multiply_by_density = false
coupling_type = HydroMechanical
variable = porepressure
[]
[flux]
type = PorousFlowFullySaturatedDarcyBase
multiply_by_density = false
variable = porepressure
gravity = '0 0 0'
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 8
density0 = 1
thermal_expansion = 0
viscosity = 1
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '0.5 0.75'
# bulk modulus is lambda + 2*mu/3 = 0.5 + 2*0.75/3 = 1
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[eff_fluid_pressure_qp]
type = PorousFlowEffectiveFluidPressure
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[ppss]
type = PorousFlow1PhaseFullySaturated
porepressure = porepressure
[]
[massfrac]
type = PorousFlowMassFraction
[]
[simple_fluid_qp]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[porosity]
type = PorousFlowPorosityConst # only the initial value of this is ever used
porosity = 0.1
[]
[biot_modulus]
type = PorousFlowConstantBiotModulus
biot_coefficient = 0.6
solid_bulk_compliance = 1
fluid_bulk_modulus = 8
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '1.5 0 0 0 1.5 0 0 0 1.5'
[]
[]
[Postprocessors]
[p0]
type = PointValue
outputs = csv
point = '0.0 0 0'
variable = porepressure
[]
[p1]
type = PointValue
outputs = csv
point = '0.1 0 0'
variable = porepressure
[]
[p2]
type = PointValue
outputs = csv
point = '0.2 0 0'
variable = porepressure
[]
[p3]
type = PointValue
outputs = csv
point = '0.3 0 0'
variable = porepressure
[]
[p4]
type = PointValue
outputs = csv
point = '0.4 0 0'
variable = porepressure
[]
[p5]
type = PointValue
outputs = csv
point = '0.5 0 0'
variable = porepressure
[]
[p6]
type = PointValue
outputs = csv
point = '0.6 0 0'
variable = porepressure
[]
[p7]
type = PointValue
outputs = csv
point = '0.7 0 0'
variable = porepressure
[]
[p8]
type = PointValue
outputs = csv
point = '0.8 0 0'
variable = porepressure
[]
[p9]
type = PointValue
outputs = csv
point = '0.9 0 0'
variable = porepressure
[]
[p99]
type = PointValue
outputs = csv
point = '1 0 0'
variable = porepressure
[]
[xdisp]
type = PointValue
outputs = csv
point = '1 0.1 0'
variable = disp_x
[]
[ydisp]
type = PointValue
outputs = csv
point = '1 0.1 0'
variable = disp_y
[]
[total_downwards_force]
type = ElementAverageValue
outputs = csv
variable = tot_force
[]
[dt]
type = FunctionValuePostprocessor
outputs = console
function = if(0.15*t<0.01,0.15*t,0.01)
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'gmres asm lu 1E-14 1E-10 10000'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 0.7
[TimeStepper]
type = PostprocessorDT
postprocessor = dt
dt = 0.001
[]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = mandel_fully_saturated_volume
[csv]
time_step_interval = 3
type = CSV
[]
[]
(modules/porous_flow/test/tests/poro_elasticity/vol_expansion_poroperm.i)
# Apply an increasing porepressure, with zero mechanical forces,
# and observe the corresponding volumetric expansion and porosity increase.
# Check that permeability is calculated correctly from porosity.
#
# P = t
# With the Biot coefficient being 1, the effective stresses should be
# stress_xx = stress_yy = stress_zz = t
# With bulk modulus = 1 then should have
# vol_strain = strain_xx + strain_yy + strain_zz = t.
#
# With the biot coefficient being 1, the porosity (phi) # at time t is:
# phi = 1 - (1 - phi0) / exp(vol_strain)
# where phi0 is the porosity at t = 0 and P = 0.
#
# The permeability (k) is
# k = k_anisotropic * f * d^2 * phi^n / (1-phi)^m
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 1
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
block = 0
PorousFlowDictator = dictator
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[p]
[]
[]
[BCs]
[p]
type = FunctionDirichletBC
boundary = 'bottom top'
variable = p
function = t
[]
[xmin]
type = DirichletBC
boundary = left
variable = disp_x
value = 0
[]
[ymin]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0
[]
[zmin]
type = DirichletBC
boundary = back
variable = disp_z
value = 0
[]
[]
[Kernels]
[p_does_not_really_diffuse]
type = Diffusion
variable = p
[]
[TensorMechanics]
displacements = 'disp_x disp_y disp_z'
[]
[poro_x]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 1
variable = disp_x
component = 0
[]
[poro_y]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 1
variable = disp_y
component = 1
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 1
variable = disp_z
component = 2
[]
[]
[AuxVariables]
[poro]
order = CONSTANT
family = MONOMIAL
[]
[perm_x]
order = CONSTANT
family = MONOMIAL
[]
[perm_y]
order = CONSTANT
family = MONOMIAL
[]
[perm_z]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[poro]
type = PorousFlowPropertyAux
property = porosity
variable = poro
[]
[perm_x]
type = PorousFlowPropertyAux
property = permeability
variable = perm_x
row = 0
column = 0
[]
[perm_y]
type = PorousFlowPropertyAux
property = permeability
variable = perm_y
row = 1
column = 1
[]
[perm_z]
type = PorousFlowPropertyAux
property = permeability
variable = perm_z
row = 2
column = 2
[]
[]
[Postprocessors]
[poro]
type = PointValue
variable = poro
point = '0 0 0'
[]
[perm_x]
type = PointValue
variable = perm_x
point = '0 0 0'
[]
[perm_y]
type = PointValue
variable = perm_y
point = '0 0 0'
[]
[perm_z]
type = PointValue
variable = perm_z
point = '0 0 0'
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'p'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
bulk_modulus = 1
shear_modulus = 1
[]
[strain]
type = ComputeSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = p
capillary_pressure = pc
[]
[p_eff]
type = PorousFlowEffectiveFluidPressure
[]
[porosity]
type = PorousFlowPorosity
fluid = true
mechanical = true
porosity_zero = 0.1
solid_bulk = 1
biot_coefficient = 1
[]
[permeability]
type = PorousFlowPermeabilityKozenyCarman
k_anisotropy = '1 0 0 0 2 0 0 0 0.1'
poroperm_function = kozeny_carman_fd2
f = 0.1
d = 5
m = 2
n = 7
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol'
petsc_options_value = 'gmres bjacobi 1E-10 1E-10 10 1E-15 1E-10'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
dt = 0.1
end_time = 1
[]
[Outputs]
file_base = vol_expansion_poroperm
csv = true
execute_on = 'timestep_end'
[]
(modules/solid_mechanics/test/tests/weak_plane_shear/large_deform_harden3.i)
# apply a number of "random" configurations and
# check that the algorithm returns to the yield surface
#
# must be careful here - we cannot put in arbitrary values of C_ijkl, otherwise the condition
# df/dsigma * C * flow_dirn < 0 for some stresses
# The important features that must be obeyed are:
# 0 = C_0222 = C_1222 (holds for transversely isotropic, for instance)
# C_0212 < C_0202 = C_1212 (holds for transversely isotropic)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
[]
[BCs]
[bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[]
[bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[]
[bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
# the following are "random" deformations
# each is O(1E-5) to keep deformations small
[topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = '(sin(0.1*t)+x)/1E1'
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = '(cos(t)+x*y)/1E1'
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 'sin(0.4321*t)*x*y*z/1E1'
[]
[]
[AuxVariables]
[wps_internal]
order = CONSTANT
family = MONOMIAL
[]
[yield_fcn]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[wps_internal_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = wps_internal
[]
[yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[]
[]
[Postprocessors]
[int]
type = PointValue
point = '0 0 0'
variable = wps_internal
outputs = 'console'
[]
[yield_fcn_at_zero]
type = PointValue
point = '0 0 0'
variable = yield_fcn
outputs = 'console'
[]
[should_be_zero]
type = FunctionValuePostprocessor
function = should_be_zero_fcn
[]
[]
[Functions]
[should_be_zero_fcn]
type = ParsedFunction
expression = 'if(a<1E-3,0,a)'
symbol_names = 'a'
symbol_values = 'yield_fcn_at_zero'
[]
[]
[UserObjects]
[coh]
type = SolidMechanicsHardeningExponential
value_0 = 1E3
value_residual = 0
rate = 0.01
[]
[tanphi]
type = SolidMechanicsHardeningExponential
value_0 = 1
value_residual = 0.577350269
rate = 0.01
[]
[tanpsi]
type = SolidMechanicsHardeningExponential
value_0 = 0.08748866
value_residual = 0.03492077
rate = 0.01
[]
[wps]
type = SolidMechanicsPlasticWeakPlaneShear
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
smoother = 100
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
# the following is transversely isotropic, i think.
fill_method = symmetric9
C_ijkl = '3E9 1E9 3E9 3E9 3E9 6E9 1E9 1E9 9E9'
[]
[mc]
type = ComputeMultiPlasticityStress
plastic_models = wps
transverse_direction = '0 0 1'
max_NR_iterations = 1000
ep_plastic_tolerance = 1E-3
debug_fspb = crash
[]
[]
[Executioner]
end_time = 1E4
dt = 1
type = Transient
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/umat/analysis_steps/elastic_temperature_steps_uo.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Functions]
[top_pull_step2]
type = ParsedFunction
expression = (t-5.0)/20
[]
# Forced evolution of temperature
[temperature_load]
type = ParsedFunction
expression = '273'
[]
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temperature_function]
type = FunctionAux
variable = temperature
function = temperature_load
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
[]
[]
[BCs]
[y_step1]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[]
[y_pull_function_step2]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull_step2
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Controls]
[step1]
type = AnalysisStepPeriod
enable_objects = 'BCs::y_step1'
disable_objects = 'BCs::y_pull_function_step2'
analysis_step_user_object = step_uo
step_number = 0
[]
[step2]
type = AnalysisStepPeriod
enable_objects = 'BCs::y_pull_function_step2'
disable_objects = 'BCs::y_step1'
analysis_step_user_object = step_uo
step_number = 1
[]
[]
[UserObjects]
[step_uo]
type = AnalysisStepUserObject
step_start_times = '0 5'
[]
[]
[Materials]
[umat]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_temperature'
num_state_vars = 0
temperature = temperature
use_one_based_indexing = true
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 10
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(test/tests/predictors/simple/predictor_test_skip_after_failed_tstep.i)
# The purpose of this test is to test the simple predictor.
# The test is adjusted to produce a failed time step.
# The predictor option 'skip_after_failed_timestep' should suppress a prediction
# after the failed time step.
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 3
ny = 3
[]
[Functions]
[ramp1]
type = PiecewiseLinear
x = '0 0.5 1'
y = '0 1 4'
[]
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[diff_u]
type = Diffusion
variable = u
[]
[]
[BCs]
[bot]
type = DirichletBC
variable = u
boundary = bottom
value = 0.0
[]
[ss2_x]
type = FunctionDirichletBC
variable = u
boundary = top
function = ramp1
[]
[]
[Problem]
type = FailingProblem
fail_steps = '6'
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-14
l_tol = 1e-14
start_time = 0.0
end_time = 1.0
[TimeStepper]
type = ConstantDT
dt = 0.1
cutback_factor_at_failure = 0.5
[]
[Predictor]
type = SimplePredictor
scale = 1.0
skip_after_failed_timestep = true
[]
[]
[Postprocessors]
[final_residual]
type = Residual
residual_type = FINAL
[]
[initial_residual]
type = Residual
residual_type = INITIAL
[]
[]
[Outputs]
csv = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_syntax.i)
#
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks containing one element each. Each
# element is a unit cube. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far left boundary
# is ramped from 100 to 200 over one time unit. The temperature of the far right
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
#
# The heat flux across the gap at time = 1 is then:
#
# Flux(2) = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors
#
# This test has been augmented with a second scalar field that solves nearly
# the same problem. The conductivity has been changed to 10. Thus, the
# flux for the second field is 1000.
#
[Mesh]
file = gap_heat_transfer_htonly_test.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[Modules/HeatTransfer/ThermalContact/BC]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
[../]
[./awesomium_contact]
type = GapHeatTransfer
variable = awesomium
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
gap_conductivity = 10
appended_property_name = _awesomium
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[./awesomium]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond_awesomium]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./awe]
type = HeatConduction
variable = awesomium
[../]
[]
[BCs]
[./temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[./awesomium_far_left]
type = FunctionDirichletBC
boundary = 1
variable = awesomium
function = temp
[../]
[./awesomium_far_right]
type = DirichletBC
boundary = 4
variable = awesomium
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[./conductance_awe]
type = MaterialRealAux
property = gap_conductance_awesomium
variable = gap_cond_awesomium
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-12
l_tol = 1e-3
l_max_its = 100
dt = 1e-1
end_time = 1.0
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./awe_left]
type = SideAverageValue
boundary = 2
variable = awesomium
execute_on = 'initial timestep_end'
[../]
[./awe_right]
type = SideAverageValue
boundary = 3
variable = awesomium
execute_on = 'initial timestep_end'
[../]
[./awe_flux_left]
type = SideDiffusiveFluxIntegral
variable = awesomium
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./awe_flux_right]
type = SideDiffusiveFluxIntegral
variable = awesomium
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/line_material_rank_two_sampler/rank_two_sampler.i)
[GlobalParams]
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 3
ny = 3
nz = 3
elem_type = HEX
[]
[Functions]
[./rampConstant]
type = PiecewiseLinear
x = '0. 1.'
y = '0. 1.'
scale_factor = 1e-6
[../]
[]
[Variables]
[./x_disp]
order = FIRST
family = LAGRANGE
[../]
[./y_disp]
order = FIRST
family = LAGRANGE
[../]
[./z_disp]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[]
[VectorPostprocessors]
[./stress_xx]
type = LineMaterialRankTwoSampler
start = '0.1667 0.4 0.45'
end = '0.8333 0.6 0.55'
property = stress
index_i = 0
index_j = 0
sort_by = id
[../]
[]
[Kernels]
[SolidMechanics]
use_displaced_mesh = true
[../]
[]
[BCs]
[./front]
type = FunctionDirichletBC
variable = z_disp
boundary = 5
function = rampConstant
[../]
[./back_x]
type = DirichletBC
variable = x_disp
boundary = 0
value = 0.0
[../]
[./back_y]
type = DirichletBC
variable = y_disp
boundary = 0
value = 0.0
[../]
[./back_z]
type = DirichletBC
variable = z_disp
boundary = 0
value = 0.0
[../]
[]
[Materials]
[./elast_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = .3
[../]
[./strain]
type = ComputeSmallStrain
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
l_max_its = 100
start_time = 0.0
num_steps = 99999
end_time = 1.0
dt = 0.1
[]
[Outputs]
file_base = rank_two_sampler_out
csv = true
[]
(modules/contact/test/tests/mortar_dynamics/frictional-mortar-3d.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[AuxVariables]
[mortar_tangent_x]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_y]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_z]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[friction_x_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_x
component = 0
boundary = 'top_bottom'
[]
[friction_y_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_y
component = 1
boundary = 'top_bottom'
[]
[friction_z_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_z
component = 2
boundary = 'top_bottom'
[]
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
uniform_refine = 0
allow_renumbering = false
[]
[Variables]
[mortar_normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[mortar_tangential_lm]
block = 'secondary_lower'
use_dual = true
[]
[mortar_tangential_3d_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
[]
[]
[Materials]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e4
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e5
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable_normal = mortar_normal_lm
lm_variable_tangential_one = mortar_tangential_lm
lm_variable_tangential_two = mortar_tangential_3d_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[friction]
type = ComputeFrictionalForceLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
mu = 0.4
c = 1e4
c_t = 1.0e4
friction_lm = mortar_tangential_lm
friction_lm_dir = mortar_tangential_3d_lm
weighted_gap_uo = weighted_vel_uo
weighted_velocities_uo = weighted_vel_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_x
component = x
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_y
component = y
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_z
component = z
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = .025
dt = .025
dtmin = .001
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-14 1e-5'
l_max_its = 15
nl_max_its = 30
nl_rel_tol = 1e-11
nl_abs_tol = 1e-12
line_search = 'basic'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'contact'
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_normal_lm
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[frictional-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_lm
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[frictional-pressure-3d]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_3d_lm
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[tangent_x]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_x
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[tangent_y]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_y
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[]
(modules/solid_mechanics/test/tests/tensile/small_deform5_update_version.i)
# checking for small deformation
# A single element is incrementally stretched in the in the z and x directions
# This causes the return direction to be along the hypersurface sigma_I = sigma_II,
# and the resulting stresses are checked to lie on the expected yield surface
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '4*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = 'z*(t-0.5)'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 2.0'
[../]
[./tensile]
type = TensileStressUpdate
tensile_strength = ts
smoothing_tol = 0.5
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 0.1
type = Transient
[]
[Outputs]
file_base = small_deform5_update_version
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/rate_independent_cyclic_hardening/linear_kinharden_nonsymmetric_strain_controlled.i)
# This simulation uses the piece-wise strain hardening model
# with the Finite strain formulation.
#
# This test applies a repeated displacement loading and unloading condition on
# the top in the y direction. The material deforms elastically until the
# loading reaches the initial yield point and then plastic deformation starts.
#
# The yield surface begins to translate as stress increases, but its size
# remains the same. The backstress evolves with plastic strain to capture
# this translation. Upon unloading, the stress reverses direction, and material
# first behaves elastically. However, due to the translation of the yield surface
# the yield point in the reverse direction is lower.
#
# If the reverse load is strong enough, the material will yield in the reverse
# direction, which models the Bauschinger effect(reduction in yield stress in
# the opposite direction).
#
# This test is based on the similar response obtained for a prescribed non symmetrical
# stress path in Besson, Jacques, et al. Non-linear mechanics of materials. Vol. 167.
# Springer Science & Business Media, 2009 pg. 89 fig. 3.6(a). This SolidMechanics code
# matches the SolidMechanics solution.
[Mesh]
file = 1x1x1cube.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[top_pull]
type = PiecewiseLinear
xy_data = '0 0
0.025 0.0025
0.05 0.005
0.1 0.01
0.15 0.005
0.2 0
0.25 0.005
0.3 0.01
0.35 0.005
0.4 0
0.45 0.005
0.5 0.01
0.55 0.005
0.6 0
0.65 0.005
0.7 0.01
0.75 0.005
0.8 0
0.85 0.005
0.9 0.01
0.95 0.005
1 0
1.05 0.005
1.1 0.01
1.15 0.005
1.2 0
1.25 0.005
1.3 0.01
1.35 0.005
1.4 0'
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'strain_yy stress_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
[]
[]
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.0
[]
[kinematic_plasticity]
type = CombinedNonlinearHardeningPlasticity
yield_stress = 100
isotropic_hardening_constant = 0
q = 0
b = 0
kinematic_hardening_modulus = 15000
gamma = 0
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'kinematic_plasticity'
[]
[]
[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 = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 1.4
dt = 0.00125
dtmin = 0.0001
[]
[Postprocessors]
[stress_yy]
type = ElementAverageValue
variable = stress_yy
[]
[strain_yy]
type = ElementAverageValue
variable = strain_yy
[]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/random1.i)
# Using CappedMohrCoulomb with tensile failure only
# Plasticity models:
# Tensile strength = 1MPa
#
# Lame lambda = 1GPa. Lame mu = 1.3GPa
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 1234
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 1234
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./tot_iters]
type = ElementIntegralMaterialProperty
mat_prop = plastic_NR_iterations
outputs = console
[../]
[./raw_f0]
type = ElementExtremeValue
variable = f0
outputs = console
[../]
[./raw_f1]
type = ElementExtremeValue
variable = f1
outputs = console
[../]
[./raw_f2]
type = ElementExtremeValue
variable = f2
outputs = console
[../]
[./iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./f0]
type = FunctionValuePostprocessor
function = should_be_zero0_fcn
[../]
[./f1]
type = FunctionValuePostprocessor
function = should_be_zero1_fcn
[../]
[./f2]
type = FunctionValuePostprocessor
function = should_be_zero2_fcn
[../]
[]
[Functions]
[./should_be_zero0_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f0'
[../]
[./should_be_zero1_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f1'
[../]
[./should_be_zero2_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f2'
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningCubic
value_0 = 1E6
value_residual = 0
internal_limit = 1
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E12
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E12
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '1E9 1.3E9'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 1E5
max_NR_iterations = 100
yield_function_tol = 1.0E-1
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random1
csv = true
[]
(modules/porous_flow/examples/coal_mining/coarse_with_fluid.i)
# Strata deformation and fluid flow aaround a coal mine - 3D model
#
# A "half model" is used. The mine is 400m deep and
# just the roof is studied (-400<=z<=0). The mining panel
# sits between 0<=x<=150, and 0<=y<=1000, so this simulates
# a coal panel that is 300m wide and 1000m long. The outer boundaries
# are 1km from the excavation boundaries.
#
# The excavation takes 0.5 years.
#
# The boundary conditions for this simulation are:
# - disp_x = 0 at x=0 and x=1150
# - disp_y = 0 at y=-1000 and y=1000
# - disp_z = 0 at z=-400, but there is a time-dependent
# Young modulus that simulates excavation
# - wc_x = 0 at y=-1000 and y=1000
# - wc_y = 0 at x=0 and x=1150
# - no flow at x=0, z=-400 and z=0
# - fixed porepressure at y=-1000, y=1000 and x=1150
# That is, rollers on the sides, free at top,
# and prescribed at bottom in the unexcavated portion.
#
# A single-phase unsaturated fluid is used.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa, and time units are measured in years.
#
# The initial porepressure is hydrostatic with P=0 at z=0, so
# Porepressure ~ - 0.01*z MPa, where the fluid has density 1E3 kg/m^3 and
# gravity = = 10 m.s^-2 = 1E-5 MPa m^2/kg.
# To be more accurate, i use
# Porepressure = -bulk * log(1 + g*rho0*z/bulk)
# where bulk=2E3 MPa and rho0=1Ee kg/m^3.
# The initial stress is consistent with the weight force from undrained
# density 2500 kg/m^3, and fluid porepressure, and a Biot coefficient of 0.7, ie,
# stress_zz^effective = 0.025*z + 0.7 * initial_porepressure
# The maximum and minimum principal horizontal effective stresses are
# assumed to be equal to 0.8*stress_zz.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# MC cohesion = 2 MPa
# MC friction angle = 35 deg
# MC dilation angle = 8 deg
# MC tensile strength = 1 MPa
# MC compressive strength = 100 MPa
# WeakPlane cohesion = 0.1 MPa
# WeakPlane friction angle = 30 deg
# WeakPlane dilation angle = 10 deg
# WeakPlane tensile strength = 0.1 MPa
# WeakPlane compressive strength = 100 MPa softening to 1 MPa at strain = 1
# Fluid density at zero porepressure = 1E3 kg/m^3
# Fluid bulk modulus = 2E3 MPa
# Fluid viscosity = 1.1E-3 Pa.s = 1.1E-9 MPa.s = 3.5E-17 MPa.year
#
[GlobalParams]
perform_finite_strain_rotations = false
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
PorousFlowDictator = dictator
biot_coefficient = 0.7
[]
[Mesh]
[file]
type = FileMeshGenerator
file = mesh/coarse.e
[]
[xmin]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
new_boundary = xmin
normal = '-1 0 0'
input = file
[]
[xmax]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
new_boundary = xmax
normal = '1 0 0'
input = xmin
[]
[ymin]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
new_boundary = ymin
normal = '0 -1 0'
input = xmax
[]
[ymax]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
new_boundary = ymax
normal = '0 1 0'
input = ymin
[]
[zmax]
type = SideSetsAroundSubdomainGenerator
block = 16
new_boundary = zmax
normal = '0 0 1'
input = ymax
[]
[zmin]
type = SideSetsAroundSubdomainGenerator
block = 2
new_boundary = zmin
normal = '0 0 -1'
input = zmax
[]
[excav]
type = SubdomainBoundingBoxGenerator
input = zmin
block_id = 1
bottom_left = '0 0 -400'
top_right = '150 1000 -397'
[]
[roof]
type = SideSetsBetweenSubdomainsGenerator
primary_block = 3
paired_block = 1
input = excav
new_boundary = roof
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[wc_x]
[]
[wc_y]
[]
[porepressure]
scaling = 1E-5
[]
[]
[ICs]
[porepressure]
type = FunctionIC
variable = porepressure
function = ini_pp
[]
[]
[Kernels]
[cx_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_x
component = 0
[]
[cy_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_y
component = 1
[]
[cz_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_z
component = 2
[]
[x_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[]
[y_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[]
[x_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_x
component = 0
[]
[y_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_y
component = 1
[]
[gravity]
type = Gravity
use_displaced_mesh = false
variable = disp_z
value = -10E-6 # remember this is in MPa
[]
[poro_x]
type = PorousFlowEffectiveStressCoupling
use_displaced_mesh = false
variable = disp_x
component = 0
[]
[poro_y]
type = PorousFlowEffectiveStressCoupling
use_displaced_mesh = false
variable = disp_y
component = 1
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
use_displaced_mesh = false
component = 2
variable = disp_z
[]
[mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = porepressure
[]
[flux]
type = PorousFlowAdvectiveFlux
use_displaced_mesh = false
variable = porepressure
gravity = '0 0 -10E-6'
fluid_component = 0
[]
[poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
variable = porepressure
fluid_component = 0
[]
[]
[AuxVariables]
[saturation]
order = CONSTANT
family = MONOMIAL
[]
[darcy_x]
order = CONSTANT
family = MONOMIAL
[]
[darcy_y]
order = CONSTANT
family = MONOMIAL
[]
[darcy_z]
order = CONSTANT
family = MONOMIAL
[]
[porosity]
order = CONSTANT
family = MONOMIAL
[]
[wc_z]
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[stress_yx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zx]
order = CONSTANT
family = MONOMIAL
[]
[stress_zy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_xz]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_yx]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_zx]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_zy]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[perm_xx]
order = CONSTANT
family = MONOMIAL
[]
[perm_yy]
order = CONSTANT
family = MONOMIAL
[]
[perm_zz]
order = CONSTANT
family = MONOMIAL
[]
[mc_shear]
order = CONSTANT
family = MONOMIAL
[]
[mc_tensile]
order = CONSTANT
family = MONOMIAL
[]
[wp_shear]
order = CONSTANT
family = MONOMIAL
[]
[wp_tensile]
order = CONSTANT
family = MONOMIAL
[]
[wp_shear_f]
order = CONSTANT
family = MONOMIAL
[]
[wp_tensile_f]
order = CONSTANT
family = MONOMIAL
[]
[mc_shear_f]
order = CONSTANT
family = MONOMIAL
[]
[mc_tensile_f]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[saturation_water]
type = PorousFlowPropertyAux
variable = saturation
property = saturation
phase = 0
execute_on = timestep_end
[]
[darcy_x]
type = PorousFlowDarcyVelocityComponent
variable = darcy_x
gravity = '0 0 -10E-6'
component = x
[]
[darcy_y]
type = PorousFlowDarcyVelocityComponent
variable = darcy_y
gravity = '0 0 -10E-6'
component = y
[]
[darcy_z]
type = PorousFlowDarcyVelocityComponent
variable = darcy_z
gravity = '0 0 -10E-6'
component = z
[]
[porosity]
type = PorousFlowPropertyAux
property = porosity
variable = porosity
execute_on = timestep_end
[]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
execute_on = timestep_end
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
execute_on = timestep_end
[]
[stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
execute_on = timestep_end
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[total_strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[total_strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[total_strain_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[total_strain_yx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yx
index_i = 1
index_j = 0
execute_on = timestep_end
[]
[total_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[total_strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[total_strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zx
index_i = 2
index_j = 0
execute_on = timestep_end
[]
[total_strain_zy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zy
index_i = 2
index_j = 1
execute_on = timestep_end
[]
[total_strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[perm_xx]
type = PorousFlowPropertyAux
property = permeability
variable = perm_xx
row = 0
column = 0
execute_on = timestep_end
[]
[perm_yy]
type = PorousFlowPropertyAux
property = permeability
variable = perm_yy
row = 1
column = 1
execute_on = timestep_end
[]
[perm_zz]
type = PorousFlowPropertyAux
property = permeability
variable = perm_zz
row = 2
column = 2
execute_on = timestep_end
[]
[mc_shear]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_internal_parameter
variable = mc_shear
execute_on = timestep_end
[]
[mc_tensile]
type = MaterialStdVectorAux
index = 1
property = mc_plastic_internal_parameter
variable = mc_tensile
execute_on = timestep_end
[]
[wp_shear]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_internal_parameter
variable = wp_shear
execute_on = timestep_end
[]
[wp_tensile]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_internal_parameter
variable = wp_tensile
execute_on = timestep_end
[]
[mc_shear_f]
type = MaterialStdVectorAux
index = 6
property = mc_plastic_yield_function
variable = mc_shear_f
execute_on = timestep_end
[]
[mc_tensile_f]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_yield_function
variable = mc_tensile_f
execute_on = timestep_end
[]
[wp_shear_f]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_yield_function
variable = wp_shear_f
execute_on = timestep_end
[]
[wp_tensile_f]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_yield_function
variable = wp_tensile_f
execute_on = timestep_end
[]
[]
[BCs]
[no_x]
type = DirichletBC
variable = disp_x
boundary = 'xmin xmax'
value = 0.0
[]
[no_y]
type = DirichletBC
variable = disp_y
boundary = 'ymin ymax'
value = 0.0
[]
[no_z]
type = DirichletBC
variable = disp_z
boundary = zmin
value = 0.0
[]
[no_wc_x]
type = DirichletBC
variable = wc_x
boundary = 'ymin ymax'
value = 0.0
[]
[no_wc_y]
type = DirichletBC
variable = wc_y
boundary = 'xmin xmax'
value = 0.0
[]
[fix_porepressure]
type = FunctionDirichletBC
variable = porepressure
boundary = 'ymin ymax xmax'
function = ini_pp
[]
[roof_porepressure]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
pt_vals = '-1E3 1E3'
multipliers = '-1 1'
fluid_phase = 0
flux_function = roof_conductance
boundary = roof
[]
[roof_bcs]
type = StickyBC
variable = disp_z
min_value = -3.0
boundary = roof
[]
[]
[Functions]
[ini_pp]
type = ParsedFunction
symbol_names = 'bulk p0 g rho0'
symbol_values = '2E3 0.0 1E-5 1E3'
expression = '-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk)'
[]
[ini_xx]
type = ParsedFunction
symbol_names = 'bulk p0 g rho0 biot'
symbol_values = '2E3 0.0 1E-5 1E3 0.7'
expression = '0.8*(2500*10E-6*z+biot*(-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk)))'
[]
[ini_zz]
type = ParsedFunction
symbol_names = 'bulk p0 g rho0 biot'
symbol_values = '2E3 0.0 1E-5 1E3 0.7'
expression = '2500*10E-6*z+biot*(-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk))'
[]
[excav_sideways]
type = ParsedFunction
symbol_names = 'end_t ymin ymax minval maxval slope'
symbol_values = '0.5 0 1000.0 1E-9 1 60'
# excavation face at ymin+(ymax-ymin)*min(t/end_t,1)
# slope is the distance over which the modulus reduces from maxval to minval
expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,if(y<ymin+(ymax-ymin)*min(t/end_t,1)+slope,minval+(maxval-minval)*(y-(ymin+(ymax-ymin)*min(t/end_t,1)))/slope,maxval))'
[]
[density_sideways]
type = ParsedFunction
symbol_names = 'end_t ymin ymax minval maxval'
symbol_values = '0.5 0 1000.0 0 2500'
expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,maxval)'
[]
[roof_conductance]
type = ParsedFunction
symbol_names = 'end_t ymin ymax maxval minval'
symbol_values = '0.5 0 1000.0 1E7 0'
expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),maxval,minval)'
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_x disp_y disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1 # MPa^-1
[]
[mc_coh_strong_harden]
type = TensorMechanicsHardeningExponential
value_0 = 1.99 # MPa
value_residual = 2.01 # MPa
rate = 1.0
[]
[mc_fric]
type = TensorMechanicsHardeningConstant
value = 0.61 # 35deg
[]
[mc_dil]
type = TensorMechanicsHardeningConstant
value = 0.15 # 8deg
[]
[mc_tensile_str_strong_harden]
type = TensorMechanicsHardeningExponential
value_0 = 1.0 # MPa
value_residual = 1.0 # MPa
rate = 1.0
[]
[mc_compressive_str]
type = TensorMechanicsHardeningCubic
value_0 = 100 # Large!
value_residual = 100
internal_limit = 0.1
[]
[wp_coh_harden]
type = TensorMechanicsHardeningCubic
value_0 = 0.05
value_residual = 0.05
internal_limit = 10
[]
[wp_tan_fric]
type = TensorMechanicsHardeningConstant
value = 0.26 # 15deg
[]
[wp_tan_dil]
type = TensorMechanicsHardeningConstant
value = 0.18 # 10deg
[]
[wp_tensile_str_harden]
type = TensorMechanicsHardeningCubic
value_0 = 0.05
value_residual = 0.05
internal_limit = 10
[]
[wp_compressive_str_soften]
type = TensorMechanicsHardeningCubic
value_0 = 100
value_residual = 1
internal_limit = 1.0
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E3
density0 = 1000
thermal_expansion = 0
viscosity = 3.5E-17
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[eff_fluid_pressure]
type = PorousFlowEffectiveFluidPressure
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[]
[massfrac]
type = PorousFlowMassFraction
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[porosity_bulk]
type = PorousFlowPorosity
fluid = true
mechanical = true
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
ensure_positive = true
porosity_zero = 0.02
solid_bulk = 5.3333E3
[]
[porosity_excav]
type = PorousFlowPorosityConst
block = 1
porosity = 1.0
[]
[permeability_bulk]
type = PorousFlowPermeabilityKozenyCarman
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
poroperm_function = kozeny_carman_phi0
k0 = 1E-15
phi0 = 0.02
n = 2
m = 2
[]
[permeability_excav]
type = PorousFlowPermeabilityConst
block = 1
permeability = '0 0 0 0 0 0 0 0 0'
[]
[relperm]
type = PorousFlowRelativePermeabilityCorey
n = 4
s_res = 0.4
sum_s_res = 0.4
phase = 0
[]
[elasticity_tensor_0]
type = ComputeLayeredCosseratElasticityTensor
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3 # MPa
[]
[elasticity_tensor_1]
type = ComputeLayeredCosseratElasticityTensor
block = 1
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3 # MPa
elasticity_tensor_prefactor = excav_sideways
[]
[strain]
type = ComputeCosseratIncrementalSmallStrain
eigenstrain_names = ini_stress
[]
[ini_stress]
type = ComputeEigenstrainFromInitialStress
eigenstrain_name = ini_stress
initial_stress = 'ini_xx 0 0 0 ini_xx 0 0 0 ini_zz'
[]
[stress_0]
type = ComputeMultipleInelasticCosseratStress
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
inelastic_models = 'mc wp'
cycle_models = true
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[]
[stress_1]
type = ComputeMultipleInelasticCosseratStress
block = 1
inelastic_models = ''
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[]
[mc]
type = CappedMohrCoulombCosseratStressUpdate
warn_about_precision_loss = false
host_youngs_modulus = 8E3
host_poissons_ratio = 0.25
base_name = mc
tensile_strength = mc_tensile_str_strong_harden
compressive_strength = mc_compressive_str
cohesion = mc_coh_strong_harden
friction_angle = mc_fric
dilation_angle = mc_dil
max_NR_iterations = 100000
smoothing_tol = 0.1 # MPa # Must be linked to cohesion
yield_function_tol = 1E-9 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0
[]
[wp]
type = CappedWeakPlaneCosseratStressUpdate
warn_about_precision_loss = false
base_name = wp
cohesion = wp_coh_harden
tan_friction_angle = wp_tan_fric
tan_dilation_angle = wp_tan_dil
tensile_strength = wp_tensile_str_harden
compressive_strength = wp_compressive_str_soften
max_NR_iterations = 10000
tip_smoother = 0.05
smoothing_tol = 0.05 # MPa # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
yield_function_tol = 1E-11 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0E-3
[]
[undrained_density_0]
type = GenericConstantMaterial
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
prop_names = density
prop_values = 2500
[]
[undrained_density_1]
type = GenericFunctionMaterial
block = 1
prop_names = density
prop_values = density_sideways
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[min_roof_disp]
type = NodalExtremeValue
boundary = roof
value_type = min
variable = disp_z
[]
[min_roof_pp]
type = NodalExtremeValue
boundary = roof
value_type = min
variable = porepressure
[]
[min_surface_disp]
type = NodalExtremeValue
boundary = zmax
value_type = min
variable = disp_z
[]
[min_surface_pp]
type = NodalExtremeValue
boundary = zmax
value_type = min
variable = porepressure
[]
[max_perm_zz]
type = ElementExtremeValue
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
variable = perm_zz
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
# best overall
# petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
# petsc_options_value = ' lu mumps'
# best if you do not have mumps:
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
# best if you do not have mumps or superlu_dist:
#petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
#petsc_options_value = ' asm 2 lu gmres 200'
# very basic:
#petsc_options_iname = '-pc_type -ksp_type -ksp_gmres_restart'
#petsc_options_value = ' bjacobi gmres 200'
line_search = bt
nl_abs_tol = 1e-3
nl_rel_tol = 1e-5
l_max_its = 200
nl_max_its = 30
start_time = 0.0
dt = 0.014706
end_time = 0.014706 #0.5
[]
[Outputs]
time_step_interval = 1
print_linear_residuals = true
exodus = true
csv = true
console = true
[]
(modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian_vcp.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
[]
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
converge_on = 'disp_x disp_y'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[lm_x]
block = 'secondary_lower'
use_dual = true
scaling = 1.0e-5
[]
[lm_y]
block = 'secondary_lower'
use_dual = true
scaling = 1.0e-5
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[saved_x]
[]
[saved_y]
[]
[diag_saved_x]
[]
[diag_saved_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'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
incremental = false
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
block = '1 2 3 4 5 6 7'
strain = SMALL
add_variables = false
[]
[]
[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'
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[]
[top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[]
[_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
[]
[stuff2_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2 3 4 5 6 7'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[stuff1_stress]
type = ComputeLinearElasticStress
block = '1'
[]
[stuff2_stress]
type = ComputeLinearElasticStress
block = '2 3 4 5 6 7'
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'NONZERO 1e-12'
line_search = 'none'
nl_abs_tol = 1e-7
l_max_its = 5
nl_rel_tol = 1e-09
start_time = -0.1
end_time = 0.3 # 3.5
l_tol = 1e-8
dt = 0.1
dtmin = 0.001
[]
[Preconditioning]
[vcp]
type = VCP
full = true
lm_variable = 'lm_x lm_y'
primary_variable = 'disp_x disp_y'
preconditioner = 'LU'
is_lm_coupling_diagonal = false
adaptive_condensation = 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
[]
[lm_x]
type = NodalValueSampler
variable = lm_x
boundary = '3'
sort_by = id
[]
[lm_y]
type = NodalValueSampler
variable = lm_y
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 lm_x lm_y'
file_base = cylinder_friction_check
create_final_symlink = true
execute_on = 'FINAL'
[]
[]
[Constraints]
[weighted_gap_lm]
type = ComputeFrictionalForceCartesianLMMechanicalContact
primary_boundary = 2
secondary_boundary = 3
primary_subdomain = 10000
secondary_subdomain = 10001
lm_x = lm_x
lm_y = lm_y
variable = lm_x
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
correct_edge_dropping = false
mu = 0.4
c_t = 1.0e6
c = 1.0e6
[]
[x]
type = CartesianMortarMechanicalContact
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
variable = lm_x
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = false
[]
[y]
type = CartesianMortarMechanicalContact
primary_boundary = '2'
secondary_boundary = '3'
primary_subdomain = '10000'
secondary_subdomain = '10001'
variable = lm_y
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = false
[]
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/special/objective_shear.i)
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[sdy]
type = UpdatedLagrangianStressDivergence
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[sdz]
type = UpdatedLagrangianStressDivergence
variable = disp_z
component = 2
use_displaced_mesh = true
[]
[]
[AuxVariables]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[strain_xz]
order = CONSTANT
family = MONOMIAL
[]
[strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[strain_xx]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[strain_yy]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[strain_zz]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[strain_xy]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[strain_xz]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[strain_yz]
type = RankTwoAux
rank_two_tensor = mechanical_strain
variable = strain_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[]
[Functions]
[shearme]
type = PiecewiseLinear
x = '0 1'
y = '0 2'
[]
[]
[BCs]
[back]
type = DirichletBC
preset = true
variable = disp_z
boundary = back
value = 0.0
[]
[bottom_y]
type = DirichletBC
preset = true
variable = disp_y
boundary = bottom
value = 0.0
[]
[bottom_x]
type = DirichletBC
preset = true
variable = disp_x
boundary = bottom
value = 0.0
[]
[shear]
type = FunctionDirichletBC
variable = disp_x
boundary = top
function = shearme
preset = true
[]
[hmm]
type = DirichletBC
preset = true
variable = disp_y
boundary = top
value = 0.0
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
dt = 0.01
solve_type = 'newton'
petsc_options_iname = -pc_type
petsc_options_value = lu
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
end_time = 1
[]
[Outputs]
exodus = true
[]
(test/tests/multiapps/restart/parent2.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
ymin = 0
xmax = 1
ymax = 1
nx = 10
ny = 10
[]
[Functions]
[v_fn]
type = ParsedFunction
expression = t*x
[]
[ffn]
type = ParsedFunction
expression = x
[]
[]
[AuxVariables]
[v]
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[td]
type = TimeDerivative
variable = u
[]
[ufn]
type = BodyForce
variable = u
function = ffn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = v_fn
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
[MultiApps]
[sub_app]
app_type = MooseTestApp
type = TransientMultiApp
input_files = 'sub2.i'
execute_on = timestep_end
positions = '0 -1 0'
[]
[]
[Transfers]
[from_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub_app
source_variable = u
variable = v
[]
[]
[Problem]
restart_file_base = parent_out_cp/0005
[]
(modules/solid_mechanics/test/tests/cohesive_zone_model/bilinear_mixed_scale_strength.i)
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 2
xmax = 1
ymax = 2
nx = 5
ny = 10
[]
[block1]
type = SubdomainBoundingBoxGenerator
input = 'msh'
bottom_left = '0 0 0'
top_right = '1 1 0'
block_id = 1
block_name = 'block1'
[]
[block2]
type = SubdomainBoundingBoxGenerator
input = 'block1'
bottom_left = '0 1 0'
top_right = '1 2 0'
block_id = 2
block_name = 'block2'
[]
[split]
type = BreakMeshByBlockGenerator
input = block2
[]
[top_node]
type = ExtraNodesetGenerator
coord = '0 2 0'
input = split
new_boundary = top_node
[]
[bottom_node]
type = ExtraNodesetGenerator
coord = '0 0 0'
input = top_node
new_boundary = bottom_node
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
generate_output = 'stress_yy'
[all]
strain = FINITE
add_variables = true
use_automatic_differentiation = true
decomposition_method = TaylorExpansion
[]
[]
[]
[]
[BCs]
[fix_x]
type = DirichletBC
preset = true
value = 0.0
boundary = bottom_node
variable = disp_x
[]
[fix_top]
type = DirichletBC
preset = true
boundary = top
variable = disp_x
value = 0
[]
[top]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = 'if(t<=0.3,t,if(t<=0.6,0.3-(t-0.3),0.6-t))'
preset = true
[]
[bottom]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0
preset = true
[]
[]
[AuxVariables]
[mode_mixity_ratio]
order = CONSTANT
family = MONOMIAL
[]
[damage]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[mode_mixity_ratio]
type = MaterialRealAux
variable = mode_mixity_ratio
property = mode_mixity_ratio
execute_on = timestep_end
boundary = interface
[]
[damage]
type = MaterialRealAux
variable = damage
property = damage
execute_on = timestep_end
boundary = interface
[]
[]
[Physics/SolidMechanics/CohesiveZone]
[czm_ik]
boundary = 'interface'
[]
[]
[Materials]
[stress]
type = ADComputeFiniteStrainElasticStress
[]
[elasticity_tensor]
type = ADComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
[]
[normal_strength]
type = GenericFunctionMaterial
prop_names = 'N'
prop_values = 'if(x<0.5,1,100)*1e4'
[]
[czm]
type = BiLinearMixedModeTraction
boundary = 'interface'
penalty_stiffness = 1e6
GI_c = 1e3
GII_c = 1e2
normal_strength = N
shear_strength = 1e3
displacements = 'disp_x disp_y'
eta = 2.2
viscosity = 1e-3
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
l_max_its = 2
l_tol = 1e-14
nl_max_its = 30
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
dt = 0.01
end_time = 0.05
dtmin = 0.01
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/simple_contact/two_block_compress/two_equal_blocks_compress_3d_pg.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -1.0
xmax = 0.0
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
elem_type = HEX8
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'left_bottom left_back left_right left_front left_left left_top'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sidesets
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
xmin = 0.0
xmax = 1.0
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
elem_type = HEX8
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3 4 5'
# new_boundary = 'right_bottom right_back right_right right_front right_left right_top'
new_boundary = '100 101 102 103 104 105'
[]
[right_block_sidesets_rename]
type = RenameBoundaryGenerator
input = right_block_sidesets
old_boundary = '100 101 102 103 104 105'
new_boundary = 'right_bottom right_back right_right right_front right_left right_top'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sidesets_rename
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[left_lower]
type = LowerDBlockFromSidesetGenerator
input = combined_mesh
sidesets = 'left_right'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[right_lower]
type = LowerDBlockFromSidesetGenerator
input = left_lower
sidesets = 'right_left'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[AuxVariables]
[aux_lm]
block = 'secondary_lower'
use_dual = false
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = PiecewiseLinear
x = '0 0.5'
y = '0 0.2'
[]
[vertical_movement]
type = PiecewiseLinear
x = '0 1.0'
y = '0 0'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'left_left'
function = horizontal_movement
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'left_left'
function = vertical_movement
[]
[fix_left_z]
type = DirichletBC
variable = disp_z
boundary = 'left_left'
value = 0.0
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 'right_right'
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 'right_right'
value = 0.0
[]
[fix_right_z]
type = DirichletBC
variable = disp_z
boundary = 'right_right'
value = 0.0
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
correct_edge_dropping = true
lm_variable = normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_petrov_galerkin = true
aux_lm = aux_lm
[]
[]
[Constraints]
[normal_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = 'right_left'
secondary_boundary = 'left_right'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'right_left'
secondary_boundary = 'left_right'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'right_left'
secondary_boundary = 'left_right'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'right_left'
secondary_boundary = 'left_right'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type '
'-pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist nonzero 1e-10'
line_search = 'none'
dt = 0.1
dtmin = 0.01
end_time = 0.4
l_max_its = 20
nl_max_its = 20
nl_rel_tol = 1e-6
nl_abs_tol = 1e-8
snesmf_reuse_base = false
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
[Postprocessors]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = 'secondary_lower'
[]
[normal_lm]
type = ElementAverageValue
variable = normal_lm
block = 'secondary_lower'
[]
[avg_disp_x]
type = ElementAverageValue
variable = disp_x
block = '1 2'
[]
[avg_disp_y]
type = ElementAverageValue
variable = disp_y
block = '1 2'
[]
[max_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
[]
[max_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
[]
[min_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
value_type = min
[]
[min_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
value_type = min
[]
[]
(test/tests/functions/parsed/scalar.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[AuxVariables]
[./scalar]
family = SCALAR
initial_condition = 0
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[AuxScalarKernels]
[./scalar_aux]
type = FunctionScalarAux
variable = scalar
function = func
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
boundary = left
function = left_bc
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Functions]
[./left_bc]
type = ParsedFunction
expression = s
symbol_values = scalar
symbol_names = s
[../]
[./func]
type = ParsedFunction
expression = t
[../]
[]
[Executioner]
type = Transient
num_steps = 5
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/drucker_prager/small_deform2_lode_zero.i)
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1.5E-6*x+2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./mc]
type = SolidMechanicsPlasticDruckerPragerHyperbolic
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
smoother = 4
mc_interpolation_scheme = lode_zero
yield_function_tolerance = 1E-5
internal_constraint_tolerance = 1E-11
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2_lode_zero
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/central_difference/lumped/3D/3d_lumped_explicit.i)
# Test for the central difference time integrator in 3D.
[Mesh]
[./generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 2
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 2
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[]
[AuxKernels]
[./accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[../]
[./vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[../]
[./accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[../]
[./vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_x
[../]
[./accel_z]
type = TestNewmarkTI
variable = accel_z
displacement = disp_z
first = false
[../]
[./vel_z]
type = TestNewmarkTI
variable = vel_z
displacement = disp_z
[../]
[]
[Kernels]
[./DynamicSolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
[../]
[]
[BCs]
[./x_bot]
type = FunctionDirichletBC
variable = disp_x
boundary = 'back'
function = dispx
preset = false
[../]
[./y_bot]
type = FunctionDirichletBC
variable = disp_y
boundary = 'back'
function = dispy
preset = false
[../]
[./z_bot]
type = FunctionDirichletBC
variable = disp_z
boundary = 'back'
function = dispz
preset = false
[../]
[]
[Functions]
[./dispx]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0' # time
y = '0.0 1.0 0.0 -1.0 0.0' # displacement
[../]
[./dispy]
type = ParsedFunction
expression = 0.1*t*t*sin(10*t)
[../]
[./dispz]
type = ParsedFunction
expression = 0.1*t*t*sin(20*t)
[../]
[]
[Materials]
[./elasticity_tensor_block]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
block = 0
[../]
[./strain_block]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
implicit = false
[../]
[./stress_block]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = density
prop_values = 1e4
[../]
[wave_speed]
type = WaveSpeed
[]
[]
[Executioner]
type = Transient
start_time = -0.01
end_time = 0.1
dt = 0.005
timestep_tolerance = 1e-6
[./TimeIntegrator]
type = CentralDifference
solve_type = lumped
[../]
[]
[Postprocessors]
[./accel_10x]
type = NodalVariableValue
nodeid = 10
variable = accel_x
[../]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/combined/test/tests/phase_field_fracture/crack2d_aniso_cleavage_plane.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 40
ny = 20
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[./c]
family = LAGRANGE
order = FIRST
[../]
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./All]
add_variables = true
strain = SMALL
additional_generate_output = 'strain_yy stress_yy'
planar_formulation = PLANE_STRAIN
[../]
[../]
[../]
[]
[Kernels]
[./ACbulk]
type = AllenCahn
variable = c
f_name = F
[../]
[./ACInterfaceCleavageFracture]
type = ACInterfaceCleavageFracture
variable = c
beta_penalty = 1
cleavage_plane_normal = '-0.707 0.707 0.0'
[../]
[./dcdt]
type = TimeDerivative
variable = c
[../]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[./off_disp]
type = AllenCahnElasticEnergyOffDiag
variable = c
displacements = 'disp_x disp_y'
mob_name = L
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
preset = true
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
preset = true
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
preset = true
variable = disp_x
boundary = right
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.05 1e-6'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '127.0 70.8 70.8 127.0 70.8 127.0 73.55 73.55 73.55'
fill_method = symmetric9
euler_angle_1 = 30
euler_angle_2 = 0
euler_angle_3 = 0
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
property_name = L
expression = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
property_name = kappa_op
expression = 'gc_prop * l'
[../]
[./damage_stress]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'local_fracture_energy'
decomposition_type = stress_spectral
[../]
[./degradation]
type = DerivativeParsedMaterial
property_name = degradation
coupled_variables = 'c'
expression = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '1.0e-6'
derivative_order = 2
[../]
[./local_fracture_energy]
type = DerivativeParsedMaterial
property_name = local_fracture_energy
coupled_variables = 'c'
material_property_names = 'gc_prop l'
expression = 'c^2 * gc_prop / 2 / l'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
coupled_variables = c
sum_materials = 'elastic_energy local_fracture_energy'
derivative_order = 2
property_name = F
[../]
[]
[Postprocessors]
[./av_stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./av_strain_yy]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solving_package'
petsc_options_value = 'lu superlu_dist'
nl_rel_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 5e-5
num_steps = 5
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test3.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test3.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[]
[Outputs]
file_base = pl_test3_out
exodus = true
[]
(modules/contact/test/tests/sliding_block/in_and_out/frictional_02_penalty.i)
# This is a benchmark test that checks constraint based frictional
# contact using the penalty method. In this test a sinusoidal
# displacement is applied in the horizontal direction to simulate
# a small block come in and out of contact as it slides down a larger block.
#
# The sinusoid is of the form 0.4sin(4t)+0.2 and a friction coefficient
# of 0.2 is used. The gold file is run on one processor and the benchmark
# case is run on a minimum of 4 processors to ensure no parallel variability
# in the contact pressure and penetration results. Further documentation can
# found in moose/modules/contact/doc/sliding_block/
#
[Mesh]
file = sliding_elastic_blocks_2d.e
patch_size = 80
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[penetration]
[]
[inc_slip_x]
[]
[inc_slip_y]
[]
[accum_slip_x]
[]
[accum_slip_y]
[]
[]
[Functions]
[vertical_movement]
type = ParsedFunction
expression = -t
[]
[horizontal_movement]
type = ParsedFunction
expression = -0.04*sin(4*t)+0.02
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
[]
[]
[AuxKernels]
[zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[]
[zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[]
[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
[]
[]
[Postprocessors]
[nonlinear_its]
type = NumNonlinearIterations
execute_on = timestep_end
[]
[penetration]
type = NodalVariableValue
variable = penetration
nodeid = 222
[]
[contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 222
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = horizontal_movement
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[]
[]
[Materials]
[left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
constant_on = SUBDOMAIN
[]
[left_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 20 101'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.1
end_time = 15
num_steps = 1000
l_tol = 1e-3
nl_rel_tol = 1e-10
nl_abs_tol = 1e-6
dtmin = 0.01
[Predictor]
type = SimplePredictor
scale = 1.0
[]
[]
[Outputs]
time_step_interval = 10
[out]
type = Exodus
elemental_as_nodal = true
[]
[console]
type = Console
max_rows = 5
[]
[]
[Contact]
[leftright]
secondary = 3
primary = 2
model = coulomb
penalty = 4e+6
friction_coefficient = 0.2
formulation = penalty
normal_smoothing_distance = 0.1
[]
[]
(modules/solid_mechanics/test/tests/umat/multiple_blocks/multiple_blocks_two_materials_parallel.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh_1]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
nx = 2
ny = 2
nz = 2
[]
[block_1]
type = SubdomainIDGenerator
input = mesh_1
subdomain_id = 1
[]
[mesh_2]
type = GeneratedMeshGenerator
dim = 3
xmin = -2.0
xmax = -1.0
ymin = -2.0
ymax = -1.0
zmin = -2.0
zmax = -1.0
nx = 2
ny = 2
nz = 2
boundary_name_prefix = 'second'
[]
[block_2]
type = SubdomainIDGenerator
input = mesh_2
subdomain_id = 2
[]
[combined]
type = CombinerGenerator
inputs = 'block_1 block_2'
[]
[]
[Functions]
[top_pull]
type = ParsedFunction
expression = t/100
[]
# Forced evolution of temperature
[temperature_load]
type = ParsedFunction
expression = '273'
[]
# Factor to multiply the elasticity tensor in MOOSE
[elasticity_prefactor]
type = ParsedFunction
expression = '1'
[]
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temperature_function]
type = FunctionAux
variable = temperature
function = temperature_load
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Materials]
[umat_1]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_temperature'
num_state_vars = 0
temperature = temperature
use_one_based_indexing = true
block = '1'
[]
# Linear strain hardening
[umat_2]
type = AbaqusUMATStress
# Young's modulus, Poisson's Ratio, Yield, Hardening
constant_properties = '1000 0.3 100 100'
plugin = '../../../plugins/linear_strain_hardening'
num_state_vars = 3
use_one_based_indexing = true
block = '2'
[]
[elastic]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000
poissons_ratio = 0.3
elasticity_tensor_prefactor = 'elasticity_prefactor'
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 30
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(test/tests/userobjects/layered_average/layered_average_1d_displaced.i)
# This tests that Layered user objects work with displaced meshes. Originally,
# the mesh is aligned with x-axis. Then we displace the mesh to be aligned with
# z-axis and sample along the z-direction.
[Mesh]
type = GeneratedMesh
dim = 1
nx = 5
elem_type = EDGE2
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./left_fn]
type = ParsedFunction
expression = 't + 1'
[../]
[./disp_x_fn]
type = ParsedFunction
expression = '-x'
[../]
[./disp_z_fn]
type = ParsedFunction
expression = 'x'
[../]
[]
[AuxVariables]
[./la]
family = MONOMIAL
order = CONSTANT
[../]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxKernels]
[./la_ak]
type = SpatialUserObjectAux
variable = la
user_object = la_uo
execute_on = TIMESTEP_END
use_displaced_mesh = true
[../]
[./disp_x_ak]
type = FunctionAux
variable = disp_x
function = 'disp_x_fn'
[../]
[./disp_y_ak]
type = ConstantAux
variable = disp_y
value = 0
[../]
[./disp_z_ak]
type = FunctionAux
variable = disp_z
function = 'disp_z_fn'
[../]
[]
[UserObjects]
[./la_uo]
type = LayeredAverage
direction = z
variable = u
num_layers = 5
execute_on = TIMESTEP_END
use_displaced_mesh = true
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
boundary = left
function = left_fn
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 0
[../]
[]
[Executioner]
type = Transient
dt = 1
num_steps = 2
solve_type = NEWTON
[]
[Outputs]
exodus = true
[]
(test/tests/time_integrators/actually_explicit_euler_verification/ee-2d-quadratic.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = ((x*x)+(y*y))-(4*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = ic
[../]
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
preset = false
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
l_tol = 1e-13
start_time = 0.0
num_steps = 20
dt = 0.00005
[./TimeIntegrator]
type = ActuallyExplicitEuler
[../]
[]
[Outputs]
exodus = true
[./console]
type = Console
max_rows = 10
[../]
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test4qtt.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test4q.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.09
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.09
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test4qtt_out
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_capyramidal_active.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[center_node]
type = BoundingBoxNodeSetGenerator
input = cube
new_boundary = 'center_point'
top_right = '0.51 0.51 0'
bottom_left = '0.49 0.49 0'
[]
[back_edge_y]
type = BoundingBoxNodeSetGenerator
input = center_node
new_boundary = 'back_edge_y'
bottom_left = '0.9 0.5 0'
top_right = '1.1 0.5 0'
[]
[back_edge_x]
type = BoundingBoxNodeSetGenerator
input = back_edge_y
new_boundary = back_edge_x
bottom_left = '0.5 0.9 0'
top_right = '0.5 1.0 0'
[]
[]
[AuxVariables]
[temperature]
initial_condition = 300
[]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_0]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_3]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_4]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_8]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_9]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_13]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_14]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_0]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_3]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_4]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_8]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_9]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_13]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_14]
order = CONSTANT
family = MONOMIAL
[]
[substructure_density]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_0]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_3]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental = true
add_variables = true
[]
[AuxKernels]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[tau_0]
type = MaterialStdVectorAux
variable = resolved_shear_stress_0
property = applied_shear_stress
index = 0
execute_on = timestep_end
[]
[tau_3]
type = MaterialStdVectorAux
variable = resolved_shear_stress_3
property = applied_shear_stress
index = 3
execute_on = timestep_end
[]
[tau_4]
type = MaterialStdVectorAux
variable = resolved_shear_stress_4
property = applied_shear_stress
index = 4
execute_on = timestep_end
[]
[tau_8]
type = MaterialStdVectorAux
variable = resolved_shear_stress_8
property = applied_shear_stress
index = 8
execute_on = timestep_end
[]
[tau_9]
type = MaterialStdVectorAux
variable = resolved_shear_stress_9
property = applied_shear_stress
index = 9
execute_on = timestep_end
[]
[tau_13]
type = MaterialStdVectorAux
variable = resolved_shear_stress_13
property = applied_shear_stress
index = 13
execute_on = timestep_end
[]
[tau_14]
type = MaterialStdVectorAux
variable = resolved_shear_stress_14
property = applied_shear_stress
index = 14
execute_on = timestep_end
[]
[forest_dislocations_0]
type = MaterialStdVectorAux
variable = forest_dislocations_0
property = forest_dislocation_density
index = 0
execute_on = timestep_end
[]
[forest_dislocations_3]
type = MaterialStdVectorAux
variable = forest_dislocations_3
property = forest_dislocation_density
index = 3
execute_on = timestep_end
[]
[forest_dislocations_4]
type = MaterialStdVectorAux
variable = forest_dislocations_4
property = forest_dislocation_density
index = 4
execute_on = timestep_end
[]
[forest_dislocations_8]
type = MaterialStdVectorAux
variable = forest_dislocations_8
property = forest_dislocation_density
index = 8
execute_on = timestep_end
[]
[forest_dislocations_9]
type = MaterialStdVectorAux
variable = forest_dislocations_9
property = forest_dislocation_density
index = 9
execute_on = timestep_end
[]
[forest_dislocations_13]
type = MaterialStdVectorAux
variable = forest_dislocations_13
property = forest_dislocation_density
index = 13
execute_on = timestep_end
[]
[forest_dislocations_14]
type = MaterialStdVectorAux
variable = forest_dislocations_14
property = forest_dislocation_density
index = 14
execute_on = timestep_end
[]
[substructure_density]
type = MaterialRealAux
variable = substructure_density
property = total_substructure_density
execute_on = timestep_end
[]
[slip_resistance_0]
type = MaterialStdVectorAux
variable = slip_resistance_0
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[slip_resistance_3]
type = MaterialStdVectorAux
variable = slip_resistance_3
property = slip_resistance
index = 3
execute_on = timestep_end
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'center_point back_edge_y'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'center_point back_edge_x'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.001*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.622e5 9.18e4 6.88e4 1.622e5 6.88e4 1.805e5 4.67e4 4.67e4 4.67e4' #alpha Ti, Alankar et al. Acta Materialia 59 (2011) 7003-7009
fill_method = symmetric9
euler_angle_1 = 68
euler_angle_2 = 14
euler_angle_3 = -53
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityHCPDislocationSlipBeyerleinUpdate
number_slip_systems = 15
slip_sys_file_name = hcp_aprismatic_capyramidal_slip_sys.txt
unit_cell_dimension = '2.934e-7 2.934e-7 4.657e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
temperature = temperature
initial_forest_dislocation_density = 15.0e4
initial_substructure_density = 5.0e2
slip_system_modes = 2
number_slip_systems_per_mode = '3 12'
lattice_friction_per_mode = '1 1.5'
effective_shear_modulus_per_mode = '4.7e4 4.7e4' #Ti, in MPa, https://materialsproject.org/materials/mp-46/
burgers_vector_per_mode = '2.934e-7 6.586e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
slip_generation_coefficient_per_mode = '1e5 2e7'
normalized_slip_activiation_energy_per_mode = '4e-3 3e-2'
slip_energy_proportionality_factor_per_mode = '330 100'
substructure_rate_coefficient_per_mode = '400 100'
applied_strain_rate = 0.001
gamma_o = 1.0e-3
Hall_Petch_like_constant_per_mode = '0 0' #minimize impact
grain_size = 20.0e-3 #20 microns
[]
[]
[Postprocessors]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[tau_0]
type = ElementAverageValue
variable = resolved_shear_stress_0
[]
[tau_3]
type = ElementAverageValue
variable = resolved_shear_stress_3
[]
[tau_4]
type = ElementAverageValue
variable = resolved_shear_stress_4
[]
[tau_8]
type = ElementAverageValue
variable = resolved_shear_stress_8
[]
[tau_9]
type = ElementAverageValue
variable = resolved_shear_stress_9
[]
[tau_13]
type = ElementAverageValue
variable = resolved_shear_stress_13
[]
[tau_14]
type = ElementAverageValue
variable = resolved_shear_stress_14
[]
[forest_dislocation_0]
type = ElementAverageValue
variable = forest_dislocations_0
[]
[forest_dislocation_3]
type = ElementAverageValue
variable = forest_dislocations_3
[]
[forest_dislocation_4]
type = ElementAverageValue
variable = forest_dislocations_4
[]
[forest_dislocation_8]
type = ElementAverageValue
variable = forest_dislocations_8
[]
[forest_dislocation_9]
type = ElementAverageValue
variable = forest_dislocations_9
[]
[forest_dislocation_13]
type = ElementAverageValue
variable = forest_dislocations_13
[]
[forest_dislocation_14]
type = ElementAverageValue
variable = forest_dislocations_14
[]
[substructure_density]
type = ElementAverageValue
variable = substructure_density
[]
[slip_resistance_0]
type = ElementAverageValue
variable = slip_resistance_0
[]
[slip_resistance_3]
type = ElementAverageValue
variable = slip_resistance_3
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.015
dtmin = 1.0e-4
dtmax = 0.1
end_time = 0.15
[]
[Outputs]
csv = true
[]
(modules/contact/test/tests/3d-mortar-contact/frictional-mortar-3d-action.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
allow_renumbering = false
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
[]
[]
[Materials]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e4
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e5
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[]
[Contact]
[mortar]
primary = 'bottom_top'
secondary = 'top_bottom'
formulation = mortar
model = coulomb
friction_coefficient = 0.4
c_normal = 1e4
c_tangential = 1.0e4
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = .025
dt = .025
dtmin = .001
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -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-14 1e-5'
l_max_its = 15
nl_max_its = 30
nl_rel_tol = 1e-11
nl_abs_tol = 1e-12
line_search = 'basic'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative contact'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'mortar_secondary_subdomain'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = mortar_secondary_subdomain
variable = mortar_normal_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[frictional-pressure]
type = NodalValueSampler
block = mortar_secondary_subdomain
variable = mortar_tangential_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[frictional-pressure-3d]
type = NodalValueSampler
block = mortar_secondary_subdomain
variable = mortar_tangential_3d_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[tangent_x]
type = NodalValueSampler
block = mortar_secondary_subdomain
variable = mortar_tangent_x
sort_by = 'id'
execute_on = NONLINEAR
[]
[tangent_y]
type = NodalValueSampler
block = mortar_secondary_subdomain
variable = mortar_tangent_y
sort_by = 'id'
execute_on = NONLINEAR
[]
[]
(modules/solid_mechanics/test/tests/lagrangian/axisymmetric_cylindrical/total/action/action.i)
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[]
[]
[Problem]
coord_type = RZ
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
formulation = TOTAL
strain = FINITE
add_variables = true
new_system = true
volumetric_locking_correction = true
[]
[]
[]
[]
[BCs]
[bottom]
type = DirichletBC
preset = false
variable = disp_z
boundary = bottom
value = 0.0
[]
[top]
type = FunctionDirichletBC
preset = false
variable = disp_z
boundary = top
function = 't'
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
large_kinematics = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
dt = 0.1
num_steps = 1
[]
[Outputs]
exodus = true
[]
(test/tests/time_integrators/tvdrk2/1d-linear.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = -1
xmax = 1
nx = 20
elem_type = EDGE2
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = x
[../]
[./exact_fn]
type = ParsedFunction
expression = t*x
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
implicit = true
[../]
[./diff]
type = Diffusion
variable = u
implicit = false
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
implicit = false
[../]
[]
[ICs]
[./u_ic]
type = FunctionIC
variable = u
function = ic
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1'
function = exact_fn
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
[./TimeIntegrator]
type = ExplicitTVDRK2
[../]
solve_type = 'LINEAR'
start_time = 0.0
num_steps = 10
dt = 0.001
l_tol = 1e-15
[]
[Outputs]
exodus = true
perf_graph = true
[]
(modules/xfem/test/tests/moving_interface/moving_bimaterial_finite_strain.i)
# This test is for two layer materials with different youngs modulus with AD
# The global stress is determined by switching the stress based on level set values
# The material interface is marked by a level set function
# The two layer materials are glued together
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[XFEM]
output_cut_plane = true
[]
[UserObjects]
[level_set_cut_uo]
type = LevelSetCutUserObject
level_set_var = ls
heal_always = true
[]
[]
[Mesh]
use_displaced_mesh = true
[generated_mesh]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmin = 0
xmax = 5
ymin = 0
ymax = 5
elem_type = QUAD4
[]
[left_bottom]
type = ExtraNodesetGenerator
new_boundary = 'left_bottom'
coord = '0 0'
input = generated_mesh
[]
[left_top]
type = ExtraNodesetGenerator
new_boundary = 'left_top'
coord = '0 5'
input = left_bottom
[]
[]
[Functions]
[ls_func]
type = ParsedFunction
expression = 'y-2.73+t'
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[AuxVariables]
[ls]
[]
[a_strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[a_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[a_strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[b_strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[b_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[b_strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[ls_function]
type = FunctionAux
variable = ls
function = ls_func
[]
[a_strain_xx]
type = RankTwoAux
variable = a_strain_xx
rank_two_tensor = A_total_strain
index_i = 0
index_j = 0
[]
[a_strain_yy]
type = RankTwoAux
variable = a_strain_yy
rank_two_tensor = A_total_strain
index_i = 1
index_j = 1
[]
[a_strain_xy]
type = RankTwoAux
variable = a_strain_xy
rank_two_tensor = A_total_strain
index_i = 0
index_j = 1
[]
[b_strain_xx]
type = RankTwoAux
variable = b_strain_xx
rank_two_tensor = B_total_strain
index_i = 0
index_j = 0
[]
[b_strain_yy]
type = RankTwoAux
variable = b_strain_yy
rank_two_tensor = B_total_strain
index_i = 1
index_j = 1
[]
[b_strain_xy]
type = RankTwoAux
variable = b_strain_xy
rank_two_tensor = B_total_strain
index_i = 0
index_j = 1
[]
[stress_xx]
type = RankTwoAux
variable = stress_xx
rank_two_tensor = stress
index_i = 0
index_j = 0
[]
[stress_xy]
type = RankTwoAux
variable = stress_xy
rank_two_tensor = stress
index_i = 0
index_j = 1
[]
[stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = stress
index_i = 1
index_j = 1
[]
[]
[Kernels]
[solid_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[solid_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[]
[Constraints]
[dispx_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_x
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[]
[dispy_constraint]
type = XFEMSingleVariableConstraint
use_displaced_mesh = false
variable = disp_y
alpha = 1e8
geometric_cut_userobject = 'level_set_cut_uo'
[]
[]
[BCs]
[bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[]
[bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[]
[topx]
type = FunctionDirichletBC
boundary = top
variable = disp_x
function = 0.03*t
[]
[topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = '0.03*t'
[]
[]
[Materials]
[elasticity_tensor_A]
type = ComputeIsotropicElasticityTensor
base_name = A
youngs_modulus = 1e9
poissons_ratio = 0.3
[]
[strain_A]
type = ComputeFiniteStrain
base_name = A
[]
[stress_A]
type = ComputeFiniteStrainElasticStress
base_name = A
[]
[elasticity_tensor_B]
type = ComputeIsotropicElasticityTensor
base_name = B
youngs_modulus = 1e7
poissons_ratio = 0.3
[]
[strain_B]
type = ComputeFiniteStrain
base_name = B
[]
[stress_B]
type = ComputeFiniteStrainElasticStress
base_name = B
[]
[combined_stress]
type = LevelSetBiMaterialRankTwo
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = stress
[]
[combined_jacob_mult]
type = LevelSetBiMaterialRankFour
levelset_positive_base = 'A'
levelset_negative_base = 'B'
level_set_var = ls
prop_name = Jacobian_mult
[]
[]
[Postprocessors]
[disp_x_norm]
type = ElementL2Norm
variable = disp_x
[]
[disp_y_norm]
type = ElementL2Norm
variable = disp_y
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-13
nl_abs_tol = 1e-50
# time control
start_time = 0.0
dt = 0.1
num_steps = 4
max_xfem_update = 1
[]
[Outputs]
print_linear_residuals = false
exodus = true
[]
(modules/contact/test/tests/tension_release/8ElemTensionRelease.i)
[Mesh]
file = 8ElemTensionRelease.e
partitioner = centroid
centroid_partitioner_direction = x
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Functions]
[./up]
type = PiecewiseLinear
x = '0 1 2 3'
y = '0 0.0001 0 -.0001'
[../]
[]
[AuxVariables]
[./status]
[../]
[./pid]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[]
[]
[Contact]
[./dummy_name]
primary = 2
secondary = 3
penalty = 1e6
model = frictionless
tangential_tolerance = 0.01
[../]
[]
[AuxKernels]
[./pid]
type = ProcessorIDAux
variable = pid
execute_on = 'initial timestep_end'
[../]
[./status]
type = PenetrationAux
quantity = mechanical_status
variable = status
boundary = 3
paired_boundary = 2
execute_on = timestep_end
[../]
[]
[BCs]
[./lateral]
type = DirichletBC
variable = disp_x
boundary = '1 4'
value = 0
[../]
[./bottom_up]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = up
[../]
[./top]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[]
[Materials]
[./stiffStuff1]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[./stiffStuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 101'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 0.1
num_steps = 30
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
exodus = true
[]
(test/tests/outputs/debug/show_var_residual_norms_debug.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[Functions]
[forcing_fnu]
type = ParsedFunction
expression = -5.8*(x+y)+x*x*x-x+y*y*y-y
[]
[forcing_fnv]
type = ParsedFunction
expression = -4
[]
[slnu]
type = ParsedGradFunction
expression = x*x*x-x+y*y*y-y
grad_x = 3*x*x-1
grad_y = 3*y*y-1
[]
[slnv]
type = ParsedGradFunction
expression = x*x+y*y
grad_x = 2*x
grad_y = 2*y
[]
#NeumannBC functions
[bc_fnut]
type = ParsedFunction
expression = 3*y*y-1
[]
[bc_fnub]
type = ParsedFunction
expression = -3*y*y+1
[]
[bc_fnul]
type = ParsedFunction
expression = -3*x*x+1
[]
[bc_fnur]
type = ParsedFunction
expression = 3*x*x-1
[]
[]
[Variables]
[u]
order = THIRD
family = HIERARCHIC
[]
[v]
order = SECOND
family = LAGRANGE
[]
[]
[Kernels]
active = 'diff1 diff2 test1 forceu forcev react'
[diff1]
type = Diffusion
variable = u
[]
[test1]
type = CoupledConvection
variable = u
velocity_vector = v
[]
[diff2]
type = Diffusion
variable = v
[]
[react]
type = Reaction
variable = u
[]
[forceu]
type = BodyForce
variable = u
function = forcing_fnu
[]
[forcev]
type = BodyForce
variable = v
function = forcing_fnv
[]
[]
[BCs]
active = 'bc_u_tb bc_v bc_ul bc_ur bc_ut bc_ub'
[bc_u]
type = FunctionPenaltyDirichletBC
variable = u
function = slnu
boundary = 'left right top bottom'
penalty = 1e6
[]
[bc_v]
type = FunctionDirichletBC
variable = v
function = slnv
boundary = 'left right top bottom'
[]
[bc_u_lr]
type = FunctionPenaltyDirichletBC
variable = u
function = slnu
boundary = 'left right top bottom'
penalty = 1e6
[]
[bc_u_tb]
type = CoupledKernelGradBC
variable = u
var2 = v
vel = '0.1 0.1'
boundary = 'top bottom left right'
[]
[bc_ul]
type = FunctionNeumannBC
variable = u
function = bc_fnul
boundary = 'left'
[]
[bc_ur]
type = FunctionNeumannBC
variable = u
function = bc_fnur
boundary = 'right'
[]
[bc_ut]
type = FunctionNeumannBC
variable = u
function = bc_fnut
boundary = 'top'
[]
[bc_ub]
type = FunctionNeumannBC
variable = u
function = bc_fnub
boundary = 'bottom'
[]
[]
[Preconditioning]
active = ' '
[prec]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'L2u L2v'
[dofs]
type = NumDOFs
[]
[h]
type = AverageElementSize
[]
[L2u]
type = ElementL2Error
variable = u
function = slnu
[]
[L2v]
type = ElementL2Error
variable = v
function = slnv
[]
[H1error]
type = ElementH1Error
variable = u
function = solution
[]
[H1Semierror]
type = ElementH1SemiError
variable = u
function = solution
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1e-15
nl_abs_tol = 1e-13
[]
[Outputs]
execute_on = 'timestep_end'
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/preconditioners/pbp/pbp_adapt_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD4
[]
[Variables]
active = 'u v'
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = -4
[../]
[./exact_fn]
type = ParsedFunction
expression = ((x*x)+(y*y))
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[./conv_v]
type = CoupledForce
variable = v
v = u
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left_v]
type = DirichletBC
variable = v
boundary = 1
value = 0
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = 2
value = 0
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Preconditioning]
[./PBP]
type = PBP
solve_order = 'u v'
preconditioner = 'AMG ASM'
off_diag_row = 'v'
off_diag_column = 'u'
[../]
[]
[Executioner]
type = Steady
solve_type = JFNK
[./Adaptivity]
steps = 3
coarsen_fraction = 0.1
refine_fraction = 0.2
max_h_level = 5
[../]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_pbp_adapt
print_mesh_changed_info = true
exodus = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform_inclined3.i)
# Plastic deformation, tensile failure, inclined normal = (0, 1, 0)
# With Young = 10, poisson=0.25 (Lame lambda=4, mu=4)
# applying the following
# deformation to the ymax surface of a unit cube:
# disp_x = 4*t
# disp_y = t
# disp_z = 3*t
# should yield trial stress:
# stress_yy = 12*t
# stress_yx = 16*t
# stress_yz = 12*t
# Use tensile strength = 6, we should return to stress_yy = 6,
# and stress_xx = stress_zz = 2*t up to t=1 when the system is completely
# plastic, so these stress components will not change
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = bottom
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = top
function = 4*t
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = t
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = top
function = 3*t
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 80
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1111077
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 6
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 40
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '4 4'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakInclinedPlaneStressUpdate
normal_vector = '0 1 0'
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-5
[../]
[]
[Executioner]
end_time = 2
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform_inclined3
csv = true
[]
(modules/solid_mechanics/test/tests/capped_drucker_prager/small_deform2_lode_zero.i)
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '-1.5E-6*x+2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1000
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
mc_interpolation_scheme = lode_zero
internal_constraint_tolerance = 1 # irrelevant here
yield_function_tolerance = 1 # irrelevant here
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 0
lambda = 0.0
shear_modulus = 1.0e7
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = cdp
perform_finite_strain_rotations = false
[../]
[./cdp]
type = CappedDruckerPragerStressUpdate
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-8
tip_smoother = 4
smoothing_tol = 1E-5
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2_lode_zero
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/navier_stokes/test/tests/finite_element/ins/RZ_cone/unstabilized-velocity-component-objects.i)
[Mesh]
file = '2d_cone.msh'
coord_type = RZ
[]
[Variables]
[vel_x]
order = SECOND
[]
[vel_y]
order = SECOND
[]
[p][]
[]
[Kernels]
[momentum_x_time]
type = TimeDerivative
variable = vel_x
[]
[momentum_x_convection]
type = ADAdvection
variable = vel_x
velocity = 'velocity'
[]
[momentum_x_diffusion]
type = MatDiffusion
variable = vel_x
diffusivity = 1
[]
[momentum_x_diffusion_rz]
type = ADMomentumViscousRZ
variable = vel_x
mu_name = 1
component = 0
[]
[momentum_x_pressure]
type = PressureGradient
integrate_p_by_parts = true
variable = vel_x
pressure = p
component = 0
[]
[momentum_y_time]
type = TimeDerivative
variable = vel_y
[]
[momentum_y_convection]
type = ADAdvection
variable = vel_y
velocity = 'velocity'
[]
[momentum_y_diffusion]
type = MatDiffusion
variable = vel_y
diffusivity = 1
[]
[momentum_y_diffusion_rz]
type = ADMomentumViscousRZ
variable = vel_y
mu_name = 1
component = 1
[]
[momentum_y_pressure]
type = PressureGradient
integrate_p_by_parts = true
variable = vel_y
pressure = p
component = 1
[]
[mass]
type = ADMassAdvection
variable = p
vel_x = vel_x
vel_y = vel_y
[]
[]
[BCs]
[u_in]
type = DirichletBC
boundary = bottom
variable = vel_x
value = 0
[]
[v_in]
type = FunctionDirichletBC
boundary = bottom
variable = vel_y
function = 'inlet_func'
[]
[u_axis_and_walls]
type = DirichletBC
boundary = 'left right'
variable = vel_x
value = 0
[]
[v_no_slip]
type = DirichletBC
boundary = 'right'
variable = vel_y
value = 0
[]
[]
[Materials]
[vel]
type = ADVectorFromComponentVariablesMaterial
vector_prop_name = 'velocity'
u = vel_x
v = vel_y
[]
[]
[Functions]
[inlet_func]
type = ParsedFunction
expression = '-4 * x^2 + 1'
[]
[]
[Executioner]
type = Transient
dt = 0.005
dtmin = 0.005
num_steps = 5
l_max_its = 100
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_levels'
petsc_options_value = 'bjacobi ilu 4'
nl_rel_tol = 1e-12
nl_max_its = 6
[]
[Outputs]
exodus = true
[]
(test/tests/time_steppers/iteration_adaptive/multi_piecewise_linear.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./temp_spike1]
type = PiecewiseLinear
x = '1 3 5'
y = '1 4 4'
[../]
[./temp_spike2]
type = PiecewiseLinear
x = '0 2 4'
y = '1 1 2'
[../]
[temp_spike]
type = ParsedFunction
expression = 'temp_spike1 + temp_spike2'
symbol_names = 'temp_spike1 temp_spike2'
symbol_values = 'temp_spike1 temp_spike2'
[]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
boundary = left
function = temp_spike
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = -1
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0
end_time = 5
verbose = true
[./TimeStepper]
type = IterationAdaptiveDT
dt = 10
optimal_iterations = 10
timestep_limiting_function = 'temp_spike1 temp_spike2'
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/1D_axisymmetric/axisymmetric_gps_incremental.i)
#
# This test checks the generalized plane strain using incremental small strain formulation.
# The model consists of two sets of line elements. One undergoes a temperature rise of 100 with
# the other seeing a temperature rise of 300. Young's modulus is 3600, and
# Poisson's ratio is 0.2. The thermal expansion coefficient is 1e-8. All
# nodes are constrained against movement.
#
# For plane strain case, i.e., without constraining the strain_yy to be uniform,
# the stress solution would be [-6e-3, -6e-3, -6e-3] and [-18e-3, -18e-3, -18e-3] (xx, yy, zz).
# The generalized plane strain kernels work to balance the force in y direction.
#
# With out of plane strain of 3e-6, the stress solution becomes
# [-3e-3, 6e-3, -3e-3] and [-15e-3, -6e-3, -15e-3] (xx, yy, zz). This gives
# a domain integral of out-of-plane stress to be zero.
#
[GlobalParams]
displacements = disp_x
scalar_out_of_plane_strain = scalar_strain_yy
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = lines.e
[]
[Variables]
[disp_x]
[]
[temp]
initial_condition = 580.0
[]
[scalar_strain_yy]
order = FIRST
family = SCALAR
[]
[]
[Functions]
[temp100]
type = PiecewiseLinear
x = '0 1'
y = '580 680'
[]
[temp300]
type = PiecewiseLinear
x = '0 1'
y = '580 880'
[]
[]
[Kernels]
[heat]
type = Diffusion
variable = temp
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[gps]
planar_formulation = GENERALIZED_PLANE_STRAIN
scalar_out_of_plane_strain = scalar_strain_yy
strain = SMALL
incremental = true
generate_output = 'strain_xx strain_yy strain_zz stress_xx stress_yy stress_zz'
eigenstrain_names = eigenstrain
temperature = temp
[]
[]
[BCs]
[no_x]
type = DirichletBC
boundary = 1000
value = 0
variable = disp_x
[]
[temp100]
type = FunctionDirichletBC
variable = temp
function = temp100
boundary = 2
[]
[temp300]
type = FunctionDirichletBC
variable = temp
function = temp300
boundary = 3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 3600
poissons_ratio = 0.2
[]
[thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-8
temperature = temp
stress_free_temperature = 580
eigenstrain_name = eigenstrain
[]
[stress]
type = ComputeStrainIncrementBasedStress
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_max_its = 50
l_tol = 1e-6
nl_max_its = 15
nl_abs_tol = 1e-10
start_time = 0
end_time = 1
num_steps = 1
[]
[Outputs]
exodus = true
console = true
[]
(test/tests/postprocessors/volume/sphere1D.i)
# The volume of each block should be 3
[Mesh]
file = sphere1D.e
coord_type = RSPHERICAL
[]
[Functions]
[fred]
type = ParsedFunction
expression = '200'
[]
[]
[AuxVariables]
[constantVar]
order = FIRST
family = LAGRANGE
[]
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
initial_condition = 100
[]
[]
[AuxKernels]
[fred]
type = ConstantAux
variable = constantVar
block = 1
value = 1
[]
[]
[ICs]
[ic1]
type = ConstantIC
variable = constantVar
value = 1
block = 1
[]
[]
[Kernels]
[heat_r]
type = Diffusion
variable = u
[]
[]
[BCs]
[temps]
type = FunctionDirichletBC
variable = u
boundary = 1
function = fred
[]
[]
[Materials]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -snes_ls -ksp_gmres_restart'
petsc_options_value = 'lu basic 101'
line_search = 'none'
nl_abs_tol = 1e-11
nl_rel_tol = 1e-10
l_max_its = 20
[]
[Postprocessors]
[should_be_one]
type = ElementAverageValue
block = 1
variable = constantVar
execute_on = 'initial timestep_end'
[]
[volume1]
type = VolumePostprocessor
block = 1
execute_on = 'initial timestep_end'
[]
[volume2]
type = VolumePostprocessor
block = 2
execute_on = 'initial timestep_end'
[]
[volume3]
type = VolumePostprocessor
block = 3
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/simple_contact/two_block_compress/two_equal_blocks_compress_3d.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -1.0
xmax = 0.0
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
elem_type = HEX8
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'left_bottom left_back left_right left_front left_left left_top'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sidesets
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
xmin = 0.0
xmax = 1.0
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
elem_type = HEX8
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3 4 5'
# new_boundary = 'right_bottom right_back right_right right_front right_left right_top'
new_boundary = '100 101 102 103 104 105'
[]
[right_block_sidesets_rename]
type = RenameBoundaryGenerator
input = right_block_sidesets
old_boundary = '100 101 102 103 104 105'
new_boundary = 'right_bottom right_back right_right right_front right_left right_top'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sidesets_rename
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[left_lower]
type = LowerDBlockFromSidesetGenerator
input = combined_mesh
sidesets = 'left_right'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[right_lower]
type = LowerDBlockFromSidesetGenerator
input = left_lower
sidesets = 'right_left'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = PiecewiseLinear
x = '0 0.5'
y = '0 0.2'
[]
[vertical_movement]
type = PiecewiseLinear
x = '0 1.0'
y = '0 0'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'left_left'
function = horizontal_movement
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'left_left'
function = vertical_movement
[]
[fix_left_z]
type = DirichletBC
variable = disp_z
boundary = 'left_left'
value = 0.0
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 'right_right'
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 'right_right'
value = 0.0
[]
[fix_right_z]
type = DirichletBC
variable = disp_z
boundary = 'right_right'
value = 0.0
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
correct_edge_dropping = true
lm_variable = normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
[]
[]
[Constraints]
[normal_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = 'right_left'
secondary_boundary = 'left_right'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'right_left'
secondary_boundary = 'left_right'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'right_left'
secondary_boundary = 'left_right'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'right_left'
secondary_boundary = 'left_right'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type '
'-pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist nonzero 1e-10'
line_search = 'none'
dt = 0.1
dtmin = 0.01
end_time = 0.4
l_max_its = 20
nl_max_its = 20
nl_rel_tol = 1e-6
nl_abs_tol = 1e-8
snesmf_reuse_base = false
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
[Postprocessors]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = 'secondary_lower'
[]
[normal_lm]
type = ElementAverageValue
variable = normal_lm
block = 'secondary_lower'
[]
[avg_disp_x]
type = ElementAverageValue
variable = disp_x
block = '1 2'
[]
[avg_disp_y]
type = ElementAverageValue
variable = disp_y
block = '1 2'
[]
[max_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
[]
[max_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
[]
[min_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
value_type = min
[]
[min_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
value_type = min
[]
[]
(modules/contact/test/tests/pdass_problems/ironing.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
[input_file]
type = FileMeshGenerator
file = iron.e
[]
[secondary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10001
new_block_name = 'secondary_lower'
sidesets = '10'
input = input_file
[]
[primary]
type = LowerDBlockFromSidesetGenerator
new_block_id = 10000
sidesets = '20'
new_block_name = 'primary_lower'
input = secondary
[]
patch_update_strategy = auto
patch_size = 20
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[frictionless_normal_lm]
order = FIRST
family = LAGRANGE
block = 'secondary_lower'
use_dual = true
[]
[tangential_lm]
order = FIRST
family = LAGRANGE
block = 'secondary_lower'
use_dual = true
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[saved_x]
[]
[saved_y]
[]
[diag_saved_x]
[]
[diag_saved_y]
[]
[von_mises]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[disp_ramp_vert]
type = PiecewiseLinear
x = '0. 2. 8.'
y = '0. -1.0 -1.0'
[]
[disp_ramp_horz]
type = PiecewiseLinear
x = '0. 8.' # x = '0. 2. 8.'
y = '0. 8.' # y = '0. 0. 8'
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
save_in = 'saved_x saved_y'
block = '1 2'
strain = FINITE
[]
[]
[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'
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
block = '1 2'
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
block = '1 2'
[]
[von_mises_kernel]
#Calculates the von mises stress and assigns it to von_mises
type = RankTwoScalarAux
variable = von_mises
rank_two_tensor = stress
execute_on = timestep_end
scalar_type = VonMisesStress
block = '1 2'
[]
[]
[Postprocessors]
[bot_react_x]
type = NodalSum
variable = saved_x
boundary = 20
[]
[bot_react_y]
type = NodalSum
variable = saved_y
boundary = 20
[]
[top_react_x]
type = NodalSum
variable = saved_x
boundary = 10
[]
[top_react_y]
type = NodalSum
variable = saved_y
boundary = 10
[]
[_dt]
type = TimestepSize
[]
[contact_pressure]
type = NodalVariableValue
variable = frictionless_normal_lm
nodeid = 805
[]
[]
[BCs]
[bot_x_disp]
type = DirichletBC
variable = disp_x
boundary = '40'
value = 0.0
preset = false
[]
[bot_y_disp]
type = DirichletBC
variable = disp_y
boundary = '40'
value = 0.0
preset = false
[]
[top_y_disp]
type = FunctionDirichletBC
variable = disp_y
boundary = '30'
function = disp_ramp_vert
preset = false
[]
[top_x_disp]
type = FunctionDirichletBC
variable = disp_x
boundary = '30'
function = disp_ramp_horz
preset = false
[]
[]
[Materials]
[stuff1_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 6896
poissons_ratio = 0.32
[]
[stuff1_strain]
type = ComputeFiniteStrain
block = '2'
[]
[stuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[stuff2_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 689.6
poissons_ratio = 0.32
[]
[stuff2_strain]
type = ComputeFiniteStrain
block = '1'
[]
[stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-7
nl_rel_tol = 1e-7
l_tol = 1e-6
l_max_its = 50
nl_max_its = 30
start_time = 0.0
end_time = 0.1 # 6.5
dt = 0.0125
dtmin = 1e-5
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[VectorPostprocessors]
[cont_press]
type = NodalValueSampler
variable = frictionless_normal_lm
boundary = '10'
sort_by = id
execute_on = FINAL
[]
[friction]
type = NodalValueSampler
variable = tangential_lm
boundary = '10'
sort_by = id
execute_on = FINAL
[]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
exodus = false
csv = true
[chkfile]
type = CSV
show = 'cont_press friction'
start_time = 0.0
execute_vector_postprocessors_on = FINAL
[]
[console]
type = Console
max_rows = 5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 10000
secondary_subdomain = 10001
lm_variable_normal = frictionless_normal_lm
lm_variable_tangential_one = tangential_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
# All constraints below for mechanical contact (Mortar)
[weighted_gap_lm]
type = ComputeFrictionalForceLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 10000
secondary_subdomain = 10001
variable = frictionless_normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
friction_lm = tangential_lm
mu = 0.5
c_t = 1.0e1
c = 1.0e3
weighted_gap_uo = weighted_vel_uo
weighted_velocities_uo = weighted_vel_uo
[]
[x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = '10000'
secondary_subdomain = '10001'
variable = frictionless_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = '10000'
secondary_subdomain = '10001'
variable = frictionless_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = '10000'
secondary_subdomain = '10001'
variable = tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = '10000'
secondary_subdomain = '10001'
variable = tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform_hard13.i)
# Using CappedMohrCoulomb with compressive failure only
# checking for small deformation, with cubic hardening
# A single element is repeatedly compressed in z direction
# compressive_strength is set to 0.9Pa, compressive_strength_residual = 0.5Pa, and limit value = 1E-5
# This allows the hardening of the compressive strength to be observed
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-0.5E-6*z*t'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 3
variable = yield_fcn
[../]
[./iter_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./cs]
type = SolidMechanicsHardeningCubic
value_0 = 0.9
value_residual = 0.5
internal_0 = -1E-5
internal_limit = 0
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./compressive]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.0
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = compressive
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 10
dt = 1.0
type = Transient
[]
[Outputs]
file_base = small_deform_hard13
csv = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/small_deform_hard_cubic.i)
# apply uniform stretches in x, y and z directions.
# let cohesion = 10, cohesion_residual = 2, cohesion_limit = 0.0003
# With cohesion = C, friction_angle = 60deg, tip_smoother = 4, the
# algorithm should return to
# sigma_m = (C*Cos(60) - 4)/Sin(60)
# This allows checking of the relationship for C
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningCubic
value_0 = 10
value_residual = 2
internal_limit = 0.0003
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 60
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 4
mc_edge_smoother = 25
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
debug_jac_at_stress = '10 1 2 1 10 3 2 3 10'
debug_jac_at_pm = 1
debug_jac_at_intnl = 1E-4
debug_stress_change = 1E-5
debug_pm_change = 1E-6
debug_intnl_change = 1E-8
[../]
[]
[Executioner]
end_time = 10
dt = 0.25
type = Transient
[]
[Outputs]
file_base = small_deform_hard_cubic
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/jacobian_damper/block_restriction.i)
[Problem]
kernel_coverage_check = false
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[lower_d]
type = LowerDBlockFromSidesetGenerator
input = gmg
sidesets = left
new_block_id = 10
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0.025 0.05'
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
add_variables = true
new_system = true
formulation = TOTAL
block = 0
[]
[]
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = 3
function = top_pull
preset = true
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = 0
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 2e5
block = 0
[]
[stress]
type = ComputeLagrangianLinearElasticStress
large_kinematics = true
block = 0
[]
[dummy]
type = GenericConstantMaterial
prop_names = dummy
prop_values = 0
block = 10
[]
[]
[Dampers]
[ejd]
type = ReferenceElementJacobianDamper
max_increment = 0.002
displacements = 'disp_x disp_y disp_z'
block = 0
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
start_time = 0.0
end_time = 2
dt = 1
[]
[Outputs]
exodus = true
print_linear_residuals = false
[]
(modules/solid_mechanics/test/tests/smeared_cracking/cracking_multiple_softening.i)
# Test of cracking with direction-specific release models in 3
# directions. Block is first pulled in one direction, and then
# held while it is sequentially pulled in the other two
# directions. Poisson's ratio is zero so that the cracking in one
# direction doesn't affect the others.
# Softening in the three directions should follow the laws for the
# prescribed models in the three directions, which are power law (x),
# exponential (y), and abrupt (z).
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./displx]
type = PiecewiseLinear
x = '0 1 2 3'
y = '0 1 1 1'
[../]
[./disply]
type = PiecewiseLinear
x = '0 1 2 3'
y = '0 0 1 1'
[../]
[./displz]
type = PiecewiseLinear
x = '0 1 2 3'
y = '0 0 0 1'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[../]
[]
[BCs]
[./pullx]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = displx
[../]
[./pully]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = disply
[../]
[./pullz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = displz
[../]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.8e7
poissons_ratio = 0
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
cracking_stress = 1.68e6
cracked_elasticity_type = FULL
softening_models = 'power_law_softening exponential_softening abrupt_softening'
prescribed_crack_directions = 'x y z'
[../]
[./power_law_softening]
type = PowerLawSoftening
stiffness_reduction = 0.3333
[../]
[./exponential_softening]
type = ExponentialSoftening
[../]
[./abrupt_softening]
type = AbruptSoftening
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type'
petsc_options_value = '101 asm lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-5
start_time = 0.0
end_time = 3.0
dt = 0.01
[]
[Outputs]
exodus = true
[]
(modules/combined/examples/xfem/xfem_mechanics_prescribed_growth.i)
# This is a demonstration of a simple mechanics simulation using XFEM
# to represent a single crack that is prescribed to propagate along
# a line over time.
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 11
ny = 11
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[XFEM]
geometric_cut_userobjects = 'line_seg_cut_uo'
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '1.0 0.5 0.1 0.5'
time_start_cut = 0.0
time_end_cut = 8.0
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
planar_formulation = plane_strain
add_variables = true
[../]
[]
[Functions]
[./pull]
type = PiecewiseLinear
x='0 50'
y='0 0.02'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[../]
[./bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[../]
[./topx]
type = DirichletBC
boundary = top
variable = disp_x
value = 0.0
[../]
[./topy]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pull
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./_elastic_strain]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-9
# time control
start_time = 0.0
dt = 1.0
end_time = 10.0
max_xfem_update = 5
[]
[Outputs]
exodus = true
execute_on = timestep_end
[./console]
type = Console
output_linear = true
[../]
[]
(modules/heat_transfer/test/tests/truss_heat_conduction/line.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
nx = 10
xmax = 0.5
xmin = -0.5
[]
[left_line]
type = SubdomainBoundingBoxGenerator
input = gmg
bottom_left = '-0.5 0 0'
top_right = '0 0 0'
block_id = 1
block_name = 'left_line'
location = INSIDE
[]
[right_line]
type = SubdomainBoundingBoxGenerator
input = left_line
bottom_left = '0 0 0'
top_right = '0.5 0 0'
block_id = 2
block_name = 'right_line'
location = INSIDE
[]
[]
[Variables]
[temperature]
[]
[]
[Kernels]
[time_derivative]
# type = HeatConductionTimeDerivative
type = TrussHeatConductionTimeDerivative
variable = temperature
area = area
[]
[heat_conduction]
# type = HeatConduction
type = TrussHeatConduction
variable = temperature
area = area
[]
[]
[AuxVariables]
[area]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[area]
type = ConstantAux
variable = area
value = 0.1
execute_on = 'initial timestep_begin'
[]
[]
[Materials]
[left_line]
type = GenericConstantMaterial
block = 'left_line'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '0.1 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[right_line]
type = GenericConstantMaterial
block = 'right_line'
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '5.0e-3 1.0 1.0' # W/(cm K), J/(g K), g/cm^3
[]
[]
[BCs]
[right]
type = FunctionDirichletBC
variable = temperature
boundary = 'right'
function = '10*t'
[]
[]
[VectorPostprocessors]
[center]
type = LineValueSampler
start_point = '-0.5 0 0'
end_point = '0.5 0 0'
num_points = 40
variable = 'temperature'
sort_by = id
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
end_time = 1
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = 'csv/line'
time_data = true
[]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/twinning/combined_twinning_slip_error.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[]
[AuxVariables]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[total_twin_volume_fraction]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_0]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_1]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_2]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_3]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_4]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_5]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_6]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_7]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_8]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_9]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_10]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment_11]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_0]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_1]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_2]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_3]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_4]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_5]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_6]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_7]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_8]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_9]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_10]
order = CONSTANT
family = MONOMIAL
[]
[twin_volume_fraction_11]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
[]
[AuxKernels]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[total_twin_volume_fraction]
type = MaterialRealAux
variable = total_twin_volume_fraction
property = twin_total_volume_fraction_twins
execute_on = timestep_end
[]
[slip_increment_0]
type = MaterialStdVectorAux
variable = slip_increment_0
property = slip_increment
index = 0
execute_on = timestep_end
[]
[slip_increment_1]
type = MaterialStdVectorAux
variable = slip_increment_1
property = slip_increment
index = 1
execute_on = timestep_end
[]
[slip_increment_2]
type = MaterialStdVectorAux
variable = slip_increment_2
property = slip_increment
index = 2
execute_on = timestep_end
[]
[slip_increment_3]
type = MaterialStdVectorAux
variable = slip_increment_3
property = slip_increment
index = 3
execute_on = timestep_end
[]
[slip_increment_4]
type = MaterialStdVectorAux
variable = slip_increment_4
property = slip_increment
index = 4
execute_on = timestep_end
[]
[slip_increment_5]
type = MaterialStdVectorAux
variable = slip_increment_5
property = slip_increment
index = 5
execute_on = timestep_end
[]
[slip_increment_6]
type = MaterialStdVectorAux
variable = slip_increment_6
property = slip_increment
index = 6
execute_on = timestep_end
[]
[slip_increment_7]
type = MaterialStdVectorAux
variable = slip_increment_7
property = slip_increment
index = 7
execute_on = timestep_end
[]
[slip_increment_8]
type = MaterialStdVectorAux
variable = slip_increment_8
property = slip_increment
index = 8
execute_on = timestep_end
[]
[slip_increment_9]
type = MaterialStdVectorAux
variable = slip_increment_9
property = slip_increment
index = 9
execute_on = timestep_end
[]
[slip_increment_10]
type = MaterialStdVectorAux
variable = slip_increment_10
property = slip_increment
index = 10
execute_on = timestep_end
[]
[slip_increment_11]
type = MaterialStdVectorAux
variable = slip_increment_11
property = slip_increment
index = 11
execute_on = timestep_end
[]
[twin_volume_fraction_0]
type = MaterialStdVectorAux
variable = twin_volume_fraction_0
property = twin_twin_system_volume_fraction
index = 0
execute_on = timestep_end
[]
[twin_volume_fraction_1]
type = MaterialStdVectorAux
variable = twin_volume_fraction_1
property = twin_twin_system_volume_fraction
index = 1
execute_on = timestep_end
[]
[twin_volume_fraction_2]
type = MaterialStdVectorAux
variable = twin_volume_fraction_2
property = twin_twin_system_volume_fraction
index = 2
execute_on = timestep_end
[]
[twin_volume_fraction_3]
type = MaterialStdVectorAux
variable = twin_volume_fraction_3
property = twin_twin_system_volume_fraction
index = 3
execute_on = timestep_end
[]
[twin_volume_fraction_4]
type = MaterialStdVectorAux
variable = twin_volume_fraction_4
property = twin_twin_system_volume_fraction
index = 4
execute_on = timestep_end
[]
[twin_volume_fraction_5]
type = MaterialStdVectorAux
variable = twin_volume_fraction_5
property = twin_twin_system_volume_fraction
index = 5
execute_on = timestep_end
[]
[twin_volume_fraction_6]
type = MaterialStdVectorAux
variable = twin_volume_fraction_6
property = twin_twin_system_volume_fraction
index = 6
execute_on = timestep_end
[]
[twin_volume_fraction_7]
type = MaterialStdVectorAux
variable = twin_volume_fraction_7
property = twin_twin_system_volume_fraction
index = 7
execute_on = timestep_end
[]
[twin_volume_fraction_8]
type = MaterialStdVectorAux
variable = twin_volume_fraction_8
property = twin_twin_system_volume_fraction
index = 8
execute_on = timestep_end
[]
[twin_volume_fraction_9]
type = MaterialStdVectorAux
variable = twin_volume_fraction_9
property = twin_twin_system_volume_fraction
index = 9
execute_on = timestep_end
[]
[twin_volume_fraction_10]
type = MaterialStdVectorAux
variable = twin_volume_fraction_10
property = twin_twin_system_volume_fraction
index = 10
execute_on = timestep_end
[]
[twin_volume_fraction_11]
type = MaterialStdVectorAux
variable = twin_volume_fraction_11
property = twin_twin_system_volume_fraction
index = 11
execute_on = timestep_end
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'bottom'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.02*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5' # roughly copper
fill_method = symmetric9
euler_angle_1 = 54.74
euler_angle_2 = 45.0
euler_angle_3 = 270.0
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'twin_xtalpl slip_xtalpl'
tan_mod_type = exact
[]
[twin_xtalpl]
type = CrystalPlasticityTwinningKalidindiUpdate
base_name = twin
number_slip_systems = 12
slip_sys_file_name = 'fcc_input_twinning_systems.txt'
initial_twin_lattice_friction = 60.0
[]
[slip_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
total_twin_volume_fraction = 'total_volume_fraction_twins'
[]
[]
[Postprocessors]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[total_twin_volume_fraction]
type = ElementAverageValue
variable = total_twin_volume_fraction
[]
[slip_increment_0]
type = ElementAverageValue
variable = slip_increment_0
[]
[slip_increment_1]
type = ElementAverageValue
variable = slip_increment_1
[]
[slip_increment_2]
type = ElementAverageValue
variable = slip_increment_2
[]
[slip_increment_3]
type = ElementAverageValue
variable = slip_increment_3
[]
[slip_increment_4]
type = ElementAverageValue
variable = slip_increment_4
[]
[slip_increment_5]
type = ElementAverageValue
variable = slip_increment_5
[]
[slip_increment_6]
type = ElementAverageValue
variable = slip_increment_6
[]
[slip_increment_7]
type = ElementAverageValue
variable = slip_increment_7
[]
[slip_increment_8]
type = ElementAverageValue
variable = slip_increment_8
[]
[slip_increment_9]
type = ElementAverageValue
variable = slip_increment_9
[]
[slip_increment_10]
type = ElementAverageValue
variable = slip_increment_10
[]
[slip_increment_11]
type = ElementAverageValue
variable = slip_increment_11
[]
[twin_volume_fraction_0]
type = ElementAverageValue
variable = twin_volume_fraction_0
[]
[twin_volume_fraction_1]
type = ElementAverageValue
variable = twin_volume_fraction_1
[]
[twin_volume_fraction_2]
type = ElementAverageValue
variable = twin_volume_fraction_2
[]
[twin_volume_fraction_3]
type = ElementAverageValue
variable = twin_volume_fraction_3
[]
[twin_volume_fraction_4]
type = ElementAverageValue
variable = twin_volume_fraction_4
[]
[twin_volume_fraction_5]
type = ElementAverageValue
variable = twin_volume_fraction_5
[]
[twin_volume_fraction_6]
type = ElementAverageValue
variable = twin_volume_fraction_6
[]
[twin_volume_fraction_7]
type = ElementAverageValue
variable = twin_volume_fraction_7
[]
[twin_volume_fraction_8]
type = ElementAverageValue
variable = twin_volume_fraction_8
[]
[twin_volume_fraction_9]
type = ElementAverageValue
variable = twin_volume_fraction_9
[]
[twin_volume_fraction_10]
type = ElementAverageValue
variable = twin_volume_fraction_10
[]
[twin_volume_fraction_11]
type = ElementAverageValue
variable = twin_volume_fraction_11
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.005
dtmin = 0.01
num_steps = 6
[]
[Outputs]
csv = true
perf_graph = true
[]
(modules/heat_transfer/test/tests/heat_conduction_patch/heat_conduction_patch_hex20_aniso.i)
# This problem is taken from the Abaqus verification manual:
# "1.5.8 Patch test for heat transfer elements"
#
# The temperature on the exterior nodes is 200x+100y+200z.
#
# This gives a constant flux at all Gauss points.
#
# In addition, the temperature at all nodes follows the same formula.
#
# Node x y z Temperature
# 1 1.000E+00 0.000E+00 1.000E+00 4.0000E+02
# 2 6.770E-01 3.050E-01 6.830E-01 3.0250E+02
# 3 3.200E-01 1.860E-01 6.430E-01 2.1120E+02
# 4 0.000E+00 0.000E+00 1.000E+00 2.0000E+02
# 5 1.000E+00 1.000E+00 1.000E+00 5.0000E+02
# 6 7.880E-01 6.930E-01 6.440E-01 3.5570E+02
# 7 1.650E-01 7.450E-01 7.020E-01 2.4790E+02
# 8 0.000E+00 1.000E+00 1.000E+00 3.0000E+02
# 9 8.385E-01 1.525E-01 8.415E-01 3.5125E+02
# 10 4.985E-01 2.455E-01 6.630E-01 2.5685E+02
# 11 1.600E-01 9.300E-02 8.215E-01 2.0560E+02
# 12 5.000E-01 0.000E+00 1.000E+00 3.0000E+02
# 13 1.000E+00 5.000E-01 1.000E+00 4.5000E+02
# 14 7.325E-01 4.990E-01 6.635E-01 3.2910E+02
# 15 2.425E-01 4.655E-01 6.725E-01 2.2955E+02
# 16 0.000E+00 5.000E-01 1.000E+00 2.5000E+02
# 17 8.940E-01 8.465E-01 8.220E-01 4.2785E+02
# 18 4.765E-01 7.190E-01 6.730E-01 3.0180E+02
# 19 8.250E-02 8.725E-01 8.510E-01 2.7395E+02
# 20 5.000E-01 1.000E+00 1.000E+00 4.0000E+02
# 21 1.000E+00 0.000E+00 0.000E+00 2.0000E+02
# 22 0.000E+00 0.000E+00 0.000E+00 0.0000E+00
# 23 8.260E-01 2.880E-01 2.880E-01 2.5160E+02
# 24 2.490E-01 3.420E-01 1.920E-01 1.2240E+02
# 25 1.000E+00 0.000E+00 5.000E-01 3.0000E+02
# 26 5.000E-01 0.000E+00 0.000E+00 1.0000E+02
# 27 0.000E+00 0.000E+00 5.000E-01 1.0000E+02
# 28 9.130E-01 1.440E-01 1.440E-01 2.2580E+02
# 29 1.245E-01 1.710E-01 9.600E-02 6.1200E+01
# 30 7.515E-01 2.965E-01 4.855E-01 2.7705E+02
# 31 5.375E-01 3.150E-01 2.400E-01 1.8700E+02
# 32 2.845E-01 2.640E-01 4.175E-01 1.6680E+02
# 33 2.730E-01 7.500E-01 2.300E-01 1.7560E+02
# 34 0.000E+00 1.000E+00 0.000E+00 1.0000E+02
# 35 2.610E-01 5.460E-01 2.110E-01 1.4900E+02
# 36 0.000E+00 5.000E-01 0.000E+00 5.0000E+01
# 37 2.190E-01 7.475E-01 4.660E-01 2.1175E+02
# 38 1.365E-01 8.750E-01 1.150E-01 1.3780E+02
# 39 0.000E+00 1.000E+00 5.000E-01 2.0000E+02
# 40 8.500E-01 6.490E-01 2.630E-01 2.8750E+02
# 41 8.380E-01 4.685E-01 2.755E-01 2.6955E+02
# 42 8.190E-01 6.710E-01 4.535E-01 3.2160E+02
# 43 5.615E-01 6.995E-01 2.465E-01 2.3155E+02
# 44 1.000E+00 1.000E+00 0.000E+00 3.0000E+02
# 45 1.000E+00 5.000E-01 0.000E+00 2.5000E+02
# 46 1.000E+00 1.000E+00 5.000E-01 4.0000E+02
# 47 9.250E-01 8.245E-01 1.315E-01 2.9375E+02
# 48 5.000E-01 1.000E+00 0.000E+00 2.0000E+02
[Mesh]#Comment
file = heat_conduction_patch_hex20.e
[] # Mesh
[Functions]
[./temp_function]
type = ParsedFunction
expression ='200*x+100*y+200*z'
[../]
[] # Functions
[Variables]
[./temp]
order = SECOND
family = LAGRANGE
[../]
[] # Variables
[Kernels]
[./heat_r]
type = AnisoHeatConduction
variable = temp
[../]
[] # Kernels
[BCs]
[./temperatures]
type = FunctionDirichletBC
variable = temp
boundary = 10
function = temp_function
[../]
[] # BCs
[Materials]
[./heat]
type = AnisoHeatConductionMaterial
block = 1
specific_heat = 0.116
thermal_conductivity = '4.85e-4 0 0 0 4.85e-4 0 0 0 4.85e-4'
temperature = temp
[../]
[] # Materials
[Executioner]
type = Steady
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_abs_tol = 1e-11
nl_rel_tol = 1e-10
l_max_its = 20
[./Quadrature]
order = THIRD
[../]
[] # Executioner
[Outputs]
file_base = heat_conduction_patch_hex20_out
exodus = true
[] # Output
(test/tests/geomsearch/2d_moving_penetration/pl_test4qns.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test4q.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1.e-9
l_max_its = 10
start_time = 0.0
dt = 0.02
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test4qns_out
exodus = true
[]
(modules/contact/test/tests/nodal_area/nodal_area_Hex20_3.i)
[Mesh]
file = nodal_area_Hex20.e
[]
[GlobalParams]
order = SECOND
displacements = 'displ_x displ_y displ_z'
[]
[Functions]
[./disp]
type = PiecewiseLinear
x = '0 1'
y = '0 20e-6'
[../]
[]
[Variables]
[./displ_x]
[../]
[./displ_y]
[../]
[./displ_z]
[../]
[]
[AuxVariables]
[./react_x]
[../]
[./react_y]
[../]
[./react_z]
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
incremental = true
save_in = 'react_x react_y react_z'
add_variables = true
strain = FINITE
generate_output = 'stress_xx'
[../]
[]
[BCs]
[./move_right]
type = FunctionDirichletBC
boundary = '1'
variable = displ_x
function = disp
[../]
[./fixed_x]
type = DirichletBC
boundary = '3 4'
variable = displ_x
value = 0
[../]
[./fixed_y]
type = DirichletBC
boundary = 10
variable = displ_y
value = 0
[../]
[./fixed_z]
type = DirichletBC
boundary = 11
variable = displ_z
value = 0
[../]
[]
[Contact]
[./dummy_name]
primary = 3
secondary = 2
formulation = penalty
penalty = 1e9
tangential_tolerance = 1e-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-7
l_tol = 1e-4
l_max_its = 40
nl_max_its = 10
start_time = 0.0
dt = 1.0
dtmin = 1.0
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Postprocessors]
[./react_x]
type = NodalSum
variable = react_x
boundary = 1
[../]
[./total_area]
type = NodalSum
variable = nodal_area
boundary = 2
[../]
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/3d-mortar-contact/frictional-mortar-3d_pg.i)
starting_point = 0.25
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[AuxVariables]
[mortar_tangent_x]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_y]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_z]
family = LAGRANGE
order = FIRST
[]
[aux_lm]
block = 'secondary_lower'
use_dual = false
[]
[]
[AuxKernels]
[friction_x_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_x
component = 0
boundary = 'top_bottom'
[]
[friction_y_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_y
component = 1
boundary = 'top_bottom'
[]
[friction_z_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_z
component = 2
boundary = 'top_bottom'
[]
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 2
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
uniform_refine = 0
allow_renumbering = false
[]
[Variables]
[mortar_normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[mortar_tangential_lm]
block = 'secondary_lower'
use_dual = true
[]
[mortar_tangential_3d_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
[]
[]
[Materials]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e4
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e5
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
lm_variable_normal = mortar_normal_lm
lm_variable_tangential_one = mortar_tangential_lm
lm_variable_tangential_two = mortar_tangential_3d_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_petrov_galerkin = true
aux_lm = aux_lm
[]
[]
[Constraints]
[friction]
type = ComputeFrictionalForceLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
mu = 0.4
c = 1e4
c_t = 1.0e4
friction_lm = mortar_tangential_lm
friction_lm_dir = mortar_tangential_3d_lm
weighted_gap_uo = weighted_vel_uo
weighted_velocities_uo = weighted_vel_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_x
component = x
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_y
component = y
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_z
component = z
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = DirichletBC
variable = disp_x
boundary = 'top_top'
value = 0.0
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 40 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = .025
dt = .025
dtmin = .001
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -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-14 1e-5'
l_max_its = 15
nl_max_its = 30
nl_rel_tol = 1e-11
nl_abs_tol = 1e-12
line_search = 'basic'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'contact'
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_normal_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[frictional-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[frictional-pressure-3d]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_3d_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[tangent_x]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_x
sort_by = 'id'
execute_on = NONLINEAR
[]
[tangent_y]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_y
sort_by = 'id'
execute_on = NONLINEAR
[]
[]
(modules/combined/test/tests/internal_volume/rz_displaced_quad8.i)
#
# Volume Test
#
# This test is designed to compute the volume of a space when displacements
# are imposed.
#
# The mesh is composed of one block (1) with two elements. The mesh is
# such that the initial volume is 1. One element face is displaced to
# produce a final volume of 2.
#
# r1
# +----+ -
# | | |
# +----+ h V1 = pi * h * r1^2
# | | |
# +----+ -
#
# becomes
#
# +----+
# | \
# +------+ v2 = pi * h/2 * ( r2^2 + 1/3 * ( r2^2 + r2*r1 + r1^2 ) )
# | |
# +------+
# r2
#
# r1 = 1
# r2 = 1.5380168369562588
# h = 1/pi
#
# Note: Because the InternalVolume PP computes cavity volumes as positive,
# the volumes reported are negative.
#
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = meshes/rz_displaced_quad8.e
displacements = 'disp_x disp_y'
[]
[Functions]
[./disp_x]
type = PiecewiseLinear
x = '0. 1.'
y = '0. 0.5380168369562588'
[../]
[./disp_x2]
type = PiecewiseLinear
scale_factor = 0.5
x = '0. 1.'
y = '0. 0.5380168369562588'
[../]
[]
[Variables]
[./disp_x]
order = SECOND
family = LAGRANGE
[../]
[./disp_y]
order = SECOND
family = LAGRANGE
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
volumetric_locking_correction = false
decomposition_method = EigenSolution
incremental = true
strain = FINITE
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[./x]
type = FunctionDirichletBC
boundary = 3
variable = disp_x
function = disp_x
[../]
[./x2]
type = FunctionDirichletBC
boundary = 4
variable = disp_x
function = disp_x2
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
start_time = 0.0
dt = 1.0
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Postprocessors]
[./internalVolume]
type = InternalVolume
boundary = 2
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
csv = true
[]
(modules/porous_flow/test/tests/hysteresis/hys_sat_03.i)
# 1-phase hysteresis. Saturation calculation. Primary drying curve with low_extension_type = exponential
# When comparing the results with a by-hand computation, remember the MOOSE results are averaged over an element
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmin = 0
xmax = 10
nx = 100
[]
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
number_fluid_phases = 1
number_fluid_components = 1
porous_flow_vars = pp
[]
[]
[Variables]
[pp]
[]
[]
[ICs]
[pp]
type = FunctionIC
variable = pp
function = '1 - 2 * x'
[]
[]
[BCs]
[pp]
type = FunctionDirichletBC
variable = pp
function = '1 - 2 * x'
boundary = 'left right'
[]
[]
[Kernels]
[dummy]
type = Diffusion
variable = pp
[]
[]
[Materials]
[hys_order]
type = PorousFlowHysteresisOrder
[]
[saturation_calculator]
type = PorousFlow1PhaseHysP
alpha_d = 10.0
alpha_w = 10.0
n_d = 1.1
n_w = 1.9
S_l_min = 0.1
S_lr = 0.2
S_gr_max = 0.3
Pc_max = 7.0
low_extension_type = exponential
porepressure = pp
[]
[]
[AuxVariables]
[hys_order]
family = MONOMIAL
order = CONSTANT
[]
[saturation]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[hys_order]
type = PorousFlowPropertyAux
variable = hys_order
property = hysteresis_order
[]
[saturation]
type = PorousFlowPropertyAux
variable = saturation
property = saturation
phase = 0
[]
[]
[VectorPostprocessors]
[sat]
type = LineValueSampler
warn_discontinuous_face_values = false
start_point = '0.5 0 0'
end_point = '9.5 0 0'
num_points = 10
sort_by = x
variable = 'saturation pp'
[]
[]
[Executioner]
type = Transient
solve_type = Linear
dt = 1
end_time = 1
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform4.i)
# Plastic deformation, compression failure
# With Young = 10, poisson=0.25 (Lame lambda=4, mu=4)
# applying the following
# deformation to the zmax surface of a unit cube:
# disp_x = 4*t
# disp_y = 3*t
# disp_z = -t
# should yield trial stress:
# stress_zz = 12*t
# stress_zx = 16*t
# stress_zy = -12*t
# Use compressive strength = 6, we should return to stress_zz = -6,
# and stress_xx = stress_yy = -2*t up to t=1 when the system is completely
# plastic, so these stress components will not change
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 4*t
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 3*t
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = -t
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 80
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1111077
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 6
[../]
[./c_strength]
type = SolidMechanicsHardeningConstant
value = 6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '4 4'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
tip_smoother = 0
smoothing_tol = 0
yield_function_tol = 1E-5
[../]
[]
[Executioner]
end_time = 2
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform4
csv = true
[]
(test/tests/misc/check_error/uo_vector_pps_name_collision_test.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 5
ny = 5
elem_type = QUAD4
[]
[UserObjects]
[./ud]
type = MTUserObject
scalar = 2
vector = '9 7 5'
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
expression = -2
[../]
[./exact_fn]
type = ParsedFunction
expression = x*x
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = FIRST
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = UserObjectKernel
variable = u
user_object = ud
[]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
function = exact_fn
boundary = '0 1 2 3'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[VectorPostprocessors]
[./ud]
type = ConstantVectorPostprocessor
value = 1
[]
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out
[]
(modules/solid_mechanics/test/tests/tensile/planar8.i)
# A single unit element is stretched by (0.5, 0.4, 0.3)E-6m
# with Lame lambda = 0.6E6 and Lame mu (shear) = 1E6
# stress_xx = 1.72 Pa
# stress_yy = 1.52 Pa
# stress_zz = 1.32 Pa
# tensile_strength is set to 1.3Pa hardening to 2Pa over intnl=1E-6
#
# The return should be to the edge (the algorithm will first try the tip) with
# according to mathematica
# internal = 1.67234152669E-7
# stress_xx = stress_yy = 1.3522482794
# stress_zz = 1.2195929084
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.5E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.4E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.3E-6*z'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./hard]
type = SolidMechanicsHardeningCubic
value_0 = 1.3
value_residual = 2
internal_limit = 1E-6
[../]
[./tens]
type = SolidMechanicsPlasticTensileMulti
tensile_strength = hard
shift = 1E-6
yield_function_tolerance = 1E-6
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0.6E6 1E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-12
plastic_models = tens
debug_fspb = none
debug_jac_at_stress = '1 2 3 2 -4 -5 3 -5 10'
debug_jac_at_pm = '0.1 0.2 0.3'
debug_jac_at_intnl = 1E-6
debug_stress_change = 1E-6
debug_pm_change = '1E-6 1E-6 1E-6'
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = planar8
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/materials/stateful_internal_side_uo/internal_side_uo_stateful.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
ymin = -1
xmax = 1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD4
[]
[Functions]
[./fn_exact]
type = ParsedFunction
expression = 'x*x+y*y'
[../]
[./ffn]
type = ParsedFunction
expression = -4
[../]
[]
[UserObjects]
[./isuo]
type = InsideUserObject
variable = u
diffusivity = diffusivity
execute_on = 'initial timestep_end'
# use_old_prop = true # Access a stateful material on an internal side
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = FIRST
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = ffn
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = fn_exact
[../]
[]
[Postprocessors]
[./value]
type = InsideValuePPS
user_object = isuo
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
dt = 0.1
num_steps = 5
[]
[Materials]
[./stateful]
type = StatefulMaterial
block = 0
[../]
[]
[Outputs]
exodus = true
[]
(modules/combined/examples/xfem/xfem_thermomechanics_stress_growth.i)
# This is a demonstration of a simple thermomechanics simulation using
# XFEM in which a single crack propagates based on a principal stress
# criterion.
#
# The top and bottom of the plate are fixed in the y direction, and the
# top of the plate is cooled down over time. The thermal contraction
# causes tensile stresses, which lead to crack propagation. The crack
# propagates in a curved path because of the changinging nature of
# the thermal gradient as a result of the crack. There is no heat
# conduction across the crack as soon as it forms.
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 11
ny = 11
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[Variables]
# Solve for the temperature and the displacements
# Displacements are not specified because the TensorMechanics/Master Action sets them up
[./temp]
initial_condition = 300
[../]
[]
[XFEM]
geometric_cut_userobjects = 'line_seg_cut_uo'
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '1.0 0.5 0.8 0.5'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[./xfem_marker_uo]
type = XFEMRankTwoTensorMarkerUserObject
execute_on = timestep_end
tensor = stress
scalar_type = MaxPrincipal
threshold = 5e+1
average = true
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
planar_formulation = plane_strain
add_variables = true
eigenstrain_names = eigenstrain
[../]
[]
[Kernels]
[./htcond]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
boundary = bottom
variable = disp_x
value = 0.0
[../]
[./bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[../]
[./topx]
type = DirichletBC
boundary = top
variable = disp_x
value = 0.0
[../]
[./topy]
type = DirichletBC
boundary = top
variable = disp_y
value = 0.0
[../]
[./topt]
type = FunctionDirichletBC
boundary = top
variable = temp
function = 273-t*27.3
[../]
[./bott]
type = FunctionDirichletBC
boundary = bottom
variable = temp
function = 273
# value = 273.0
[../]
[]
[Materials]
[./thcond]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = '5e-6'
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./_elastic_strain]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_strain]
type= ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 10e-6
temperature = temp
stress_free_temperature = 273
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-9
# time control
start_time = 0.0
dt = 1.0
end_time = 10.0
max_xfem_update = 5
[]
[Outputs]
exodus = true
execute_on = timestep_end
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/multi/three_surface08.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 2.0E-6m in y direction and 0.5E-6 in z direction.
# trial stress_yy = 2.0 and stress_zz = 0.5
#
# Then SimpleTester1 and SimpleTester2 should activate and the algorithm will return to
# the corner stress_yy=1.0, stress_zz=0.5
# internal1 should be 1.0, and internal2 should be 0
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2.0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.5E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface08
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/combined/test/tests/internal_volume/hex8.i)
#
# Internal Volume Test
#
# This test is designed to compute the internal volume of a space considering
# an embedded volume inside.
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total volume
# is 7.
#
# The internal volume is then adjusted by a piecewise linear time varying
# function. Thus, the total volume is 7 plus the addition at the particular
# time.
#
# Time | Addition | Total volume
# 0 | 0.0 | 7.0
# 1 | 3.0 | 10.0
# 2 | 7.0 | 14.0
# 3 | -3.0 | 4.0
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = meshes/hex8.e
[]
[Functions]
[./step]
type = PiecewiseLinear
x = '0. 1. 2. 3.'
y = '0. 0. 1e-2 0.'
scale_factor = 0.5
[../]
[./addition]
type = PiecewiseLinear
x = '0. 1. 2. 3.'
y = '0. 3. 7. -3.'
[../]
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
volumetric_locking_correction = true
incremental = true
strain = FINITE
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 100
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 100
value = 0.0
[../]
[./prescribed_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 100
function = step
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
dt = 1.0
end_time = 3.0
[]
[Postprocessors]
[./internalVolume]
type = InternalVolume
boundary = 100
addition = addition
execute_on = 'initial timestep_end'
[../]
[./dispZ]
type = ElementAverageValue
block = '1 2'
variable = disp_z
[../]
[]
[Outputs]
csv = true
[]
(modules/heat_transfer/test/tests/heat_conduction/2d_quadrature_gap_heat_transfer/moving.i)
[Mesh]
file = nonmatching.e
displacements = 'disp_x disp_y'
[]
[Variables]
[temp]
[]
[]
[AuxVariables]
[disp_x]
[]
[disp_y]
[]
[]
[Functions]
[disp_y]
type = ParsedFunction
expression = 0.1*t
[]
[left_temp]
type = ParsedFunction
expression = 1000+t
[]
[]
[Kernels]
[hc]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[disp_y]
type = FunctionAux
variable = disp_y
function = disp_y
block = left
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[BCs]
[left]
type = FunctionDirichletBC
variable = temp
boundary = leftleft
function = left_temp
[]
[right]
type = DirichletBC
variable = temp
boundary = rightright
value = 400
[]
[]
[ThermalContact]
[left_to_right]
secondary = leftright
quadrature = true
primary = rightleft
emissivity_primary = 0
emissivity_secondary = 0
variable = temp
type = GapHeatTransfer
[]
[]
[Materials]
[hcm]
type = HeatConductionMaterial
block = 'left right'
specific_heat = 1
thermal_conductivity = 1
use_displaced_mesh = true
[]
[]
[Postprocessors]
[left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = leftright
diffusivity = thermal_conductivity
[]
[right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = rightleft
diffusivity = thermal_conductivity
[]
[]
[Executioner]
type = Transient
num_steps = 9
dt = 1
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/tensile/small_deform6_update_version.i)
# checking for small deformation
# A single element is incrementally stretched in the in the z direction
# This causes the return direction to be along the hypersurface sigma_II = sigma_III,
# and the resulting stresses are checked to lie on the expected yield surface
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '4*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = 'y*(t-0.5)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = 'z*(t-0.5)'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 2.0'
[../]
[./tensile]
type = TensileStressUpdate
tensile_strength = ts
smoothing_tol = 0.5
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 1
dt = 0.1
type = Transient
[]
[Outputs]
file_base = small_deform6_update_version
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/action/action_L.i)
[Mesh]
type = FileMesh
file = 'L.exo'
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
add_variables = true
new_system = true
formulation = TOTAL
volumetric_locking_correction = true
generate_output = 'cauchy_stress_xx cauchy_stress_yy cauchy_stress_zz cauchy_stress_xy '
'cauchy_stress_xz cauchy_stress_yz strain_xx strain_yy strain_zz strain_xy '
'strain_xz strain_yz'
[]
[]
[]
[]
[Functions]
[pfn]
type = PiecewiseLinear
x = '0 1 2'
y = '0.00 0.3 0.5'
[]
[]
[BCs]
[left]
type = DirichletBC
preset = true
variable = disp_x
boundary = fix
value = 0.0
[]
[bottom]
type = DirichletBC
preset = true
variable = disp_y
boundary = fix
value = 0.0
[]
[back]
type = DirichletBC
preset = true
variable = disp_z
boundary = fix
value = 0.0
[]
[front]
type = FunctionDirichletBC
variable = disp_z
boundary = pull
function = pfn
preset = true
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 100000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
petsc_options_iname = -pc_type
petsc_options_value = lu
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
end_time = 1.0
dtmin = 0.5
dt = 0.5
[]
[Outputs]
[out]
type = Exodus
file_base = 'blah'
[]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/crysp_read_slip_prop.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./rotout]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.01*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCrystalPlasticity
block = 0
gtol = 1e-2
slip_sys_file_name = input_slip_sys_prop.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.1 5 8 0.001 0.1 9 12 0.001 0.1'
hprops = '1.0 541.5 60.8 109.8 2.5'
tan_mod_type = exact
intvar_read_type = slip_sys_file
num_slip_sys_props = 1
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 0.05
dtmax = 10.0
dtmin = 0.05
num_steps = 10
[]
[Outputs]
file_base = crysp_read_slip_prop_out
exodus = true
[]
(modules/combined/tutorials/introduction/thermal_mechanical/thermomech_step01.i)
#
# Single block coupled thermal/mechanical
# https://mooseframework.inl.gov/modules/combined/tutorials/introduction/thermoech_step01.html
#
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[generated]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 2
ymax = 1
[]
[pin]
type = ExtraNodesetGenerator
input = generated
new_boundary = pin
coord = '0 0 0'
[]
[]
[Variables]
[T]
initial_condition = 300.0
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = T
[]
[time_derivative]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = HeatSource
variable = T
value = 5e4
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
automatic_eigenstrain_names = true
generate_output = 'vonmises_stress'
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 45.0
specific_heat = 0.5
[]
[density]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = 8000.0
[]
[elasticity]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e9
poissons_ratio = 0.3
[]
[expansion1]
type = ComputeThermalExpansionEigenstrain
temperature = T
thermal_expansion_coeff = 0.001
stress_free_temperature = 300
eigenstrain_name = thermal_expansion
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[BCs]
[t_left]
type = DirichletBC
variable = T
value = 300
boundary = 'left'
[]
[t_right]
type = FunctionDirichletBC
variable = T
function = '300+5*t'
boundary = 'right'
[]
[pin_x]
type = DirichletBC
variable = disp_x
boundary = pin
value = 0
[]
[bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
end_time = 5
dt = 1
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/stress_update_material_based/exception.i)
[GlobalParams]
displacements = 'ux uy uz'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[rotout]
order = CONSTANT
family = MONOMIAL
[]
[e_zz]
order = CONSTANT
family = MONOMIAL
[]
[gss]
order = CONSTANT
family = MONOMIAL
[]
[slip_increment]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[AuxKernels]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = total_lagrangian_strain
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[gss]
type = MaterialStdVectorAux
variable = gss
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[slip_inc]
type = MaterialStdVectorAux
variable = slip_increment
property = slip_increment
index = 0
execute_on = timestep_end
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = '0.1*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
maximum_substep_iteration = 1
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[]
[Postprocessors]
[stress_zz]
type = ElementAverageValue
variable = stress_zz
[]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[e_zz]
type = ElementAverageValue
variable = e_zz
[]
[gss]
type = ElementAverageValue
variable = gss
[]
[slip_increment]
type = ElementAverageValue
variable = slip_increment
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
dt = 0.05
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_step_tol = 1e-10
dtmax = 10.0
nl_rel_tol = 1e-10
end_time = 1
dtmin = 0.01
num_steps = 10
nl_abs_step_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/2D_geometries/finite_planestrain.i)
# This test uses the strain calculator ComputePlaneFiniteStrain,
# which is generated through the use of the SolidMechanics QuasiStatic Physics.
[Mesh]
type = GeneratedMesh
nx = 2
ny = 2
dim = 2
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
planar_formulation = PLANE_STRAIN
add_variables = true
generate_output = 'stress_xx stress_xy stress_yy stress_zz strain_xx strain_xy strain_yy strain_zz'
[../]
[]
[Functions]
[./pull]
type = ParsedFunction
expression ='0.005 * t'
[../]
[]
[BCs]
[./leftx]
type = DirichletBC
boundary = left
variable = disp_x
value = 0.0
[../]
[./bottomy]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0.0
[../]
[./pull]
type = FunctionDirichletBC
boundary = top
variable = disp_y
function = pull
[../]
[]
[Materials]
[./elastic_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 1e6
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
l_max_its = 100
l_tol = 1e-10
nl_max_its = 10
nl_rel_tol = 1e-12
start_time = 0.0
dt = 1.0
dtmin = 1.0
end_time = 2.0
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/gap_heat_transfer_convex/gap_heat_transfer_convex_gap_offsets.i)
#The two blocks were moved apart by the value of 0.005 in the y-direction, respectively.
#This value was compensated by the gap offsets from both secondary and primary sides
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
temperature = temp
[]
[Mesh]
file = gap_heat_transfer_convex_gap_offsets.e
[]
[Functions]
[./disp]
type = PiecewiseLinear
x = '0 2.0'
y = '0 1.0'
[../]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '200 200'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./primary_gap_offset]
[../]
[./secondary_gap_offset]
[../]
[./mapped_primary_gap_offset]
[../]
[]
[AuxKernels]
[./primary_gap_offset]
type = ConstantAux
variable = primary_gap_offset
value = -0.005
boundary = 2
[../]
[./mapped_primary_gap_offset]
type = GapValueAux
variable = mapped_primary_gap_offset
paired_variable = primary_gap_offset
boundary = 3
paired_boundary = 2
[../]
[./secondary_gap_offset]
type = ConstantAux
variable = secondary_gap_offset
value = -0.005
boundary = 3
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 2
secondary = 3
emissivity_primary = 0
emissivity_secondary = 0
secondary_gap_offset = secondary_gap_offset
mapped_primary_gap_offset = mapped_primary_gap_offset
[../]
[]
[Physics/SolidMechanics/QuasiStatic/All]
volumetric_locking_correction = true
strain = FINITE
eigenstrain_names = eigenstrain
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./move_right]
type = FunctionDirichletBC
boundary = '3'
variable = disp_x
function = disp
[../]
[./fixed_x]
type = DirichletBC
boundary = '1'
variable = disp_x
value = 0
[../]
[./fixed_y]
type = DirichletBC
boundary = '1 2 3 4'
variable = disp_y
value = 0
[../]
[./fixed_z]
type = DirichletBC
boundary = '1 2 3 4'
variable = disp_z
value = 0
[../]
[./temp_bottom]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_top]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 100
thermal_expansion_coeff = 0
eigenstrain_name = eigenstrain
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[./heat1]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 1.0
[../]
[./heat2]
type = HeatConductionMaterial
block = 2
specific_heat = 1.0
thermal_conductivity = 1.0
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
dt = 0.1
end_time = 2.0
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface10.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 1.5E-6m in y direction and 0.0E-6 in z direction.
# trial stress_yy = 1.5 and stress_zz = 0.0
#
# Then SimpleTester1 should activate and the algorithm will return to
# stress_yy=1
# internal1 should be 0.5
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1.5E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface10
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/contact/test/tests/multiple_contact_pairs/multiple_pairs_mortar.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[file]
type = FileMeshGenerator
file = multiple_pairs.e
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_xx'
block = '1 2 3'
[]
[]
[Materials]
[stiffStuff]
type = ComputeIsotropicElasticityTensor
block = '1 2 3'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[stiffStuff_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2 3'
[]
[]
[ICs]
[disp_y]
block = '2 3'
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Contact]
[first_pair]
primary = '20'
secondary = '10 '
model = frictionless
formulation = mortar
c_normal = 1e+06
[]
[second_pair]
primary = '20'
secondary = '101'
model = frictionless
formulation = mortar
c_normal = 1e+06
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
preset = false
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
preset = false
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = '30 301'
function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = '50 501'
function = '1e-2 * t'
[]
[]
[Executioner]
type = Transient
dt = 2.0
dtmin = .1
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
l_max_its = 30
nl_max_its = 20
nl_abs_tol = 1e-9
line_search = 'none'
end_time = 18
snesmf_reuse_base = false
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'num_nl cumulative'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[]
[VectorPostprocessors]
[cont_press]
type = NodalValueSampler
variable = contact_pressure
boundary = '10 101'
sort_by = x
execute_on = NONLINEAR
[]
[]
(test/tests/bcs/function_dirichlet_bc/test.i)
###########################################################
# This is a test of Boundary Condition System. The
# FunctionDirichletBC is used to contribute the residuals
# to the boundary term operators in the weak form.
#
# @Requirement F3.40
###########################################################
[Mesh]
[./square]
type = GeneratedMeshGenerator
dim = 2
nx = 32
ny = 32
[../]
[]
[Variables]
[./u]
[../]
[]
[Functions]
[./ff_1]
type = ParsedFunction
expression = alpha*alpha*pi
symbol_names = 'alpha'
symbol_values = '16'
[../]
[./ff_2]
type = ParsedFunction
expression = pi*sin(alpha*pi*x)
symbol_names = 'alpha'
symbol_values = '16'
[../]
[./forcing_func]
type = CompositeFunction
functions = 'ff_1 ff_2'
[../]
[./bc_func]
type = ParsedFunction
expression = sin(alpha*pi*x)
symbol_names = 'alpha'
symbol_values = '16'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./forcing]
type = BodyForce
variable = u
function = forcing_func
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right'
function = bc_func
[../]
[]
[Executioner]
type = Steady
nl_rel_tol = 1e-12
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/euler_angles/euler_angle_auxvar.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
[]
[AuxVariables]
[euler_angle_1]
order = CONSTANT
family = MONOMIAL
[]
[euler_angle_2]
order = CONSTANT
family = MONOMIAL
[]
[euler_angle_3]
order = CONSTANT
family = MONOMIAL
[]
# Euler angles aux variable to check the correctness of value assignments
[check_euler_angle_1]
order = CONSTANT
family = MONOMIAL
[]
[check_euler_angle_2]
order = CONSTANT
family = MONOMIAL
[]
[check_euler_angle_3]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[]
[]
[]
[AuxKernels]
[euler_angle_1]
type = FunctionAux
variable = euler_angle_1
function = '10*t'
[]
[euler_angle_2]
type = FunctionAux
variable = euler_angle_2
function = '20*t'
[]
[euler_angle_3]
type = FunctionAux
variable = euler_angle_3
function = '30*t'
[]
# output Euler angles material property to check correctness of value assignment
[mat_euler_angle_1]
type = MaterialRealVectorValueAux
variable = check_euler_angle_1
property = 'Euler_angles'
component = 0
[]
[mat_euler_angle_2]
type = MaterialRealVectorValueAux
variable = check_euler_angle_2
property = 'Euler_angles'
component = 1
[]
[mat_euler_angle_3]
type = MaterialRealVectorValueAux
variable = check_euler_angle_3
property = 'Euler_angles'
component = 2
[]
[]
[BCs]
[Periodic]
[all]
variable = 'disp_x'
auto_direction = 'z'
[]
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front'
function = '0.01*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
euler_angle_variables = 'euler_angle_1 euler_angle_2 euler_angle_3'
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[]
[Postprocessors]
[check_euler_angle_1]
type = ElementAverageValue
variable = check_euler_angle_1
[]
[check_euler_angle_2]
type = ElementAverageValue
variable = check_euler_angle_2
[]
[check_euler_angle_3]
type = ElementAverageValue
variable = check_euler_angle_3
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu '
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.1
dtmin = 0.01
end_time = 0.5
[]
[Outputs]
csv = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/lid_driven/steady_fsp_diagonal_of_a_for_scaling.i)
rho=1
mu=2e-3
U=1
l=1
prefactor=${fparse 1/(l/2)^2}
n=64
[GlobalParams]
gravity = '0 0 0'
[]
[Mesh]
[gen]
type = DistributedRectilinearMeshGenerator
dim = 2
xmin = 0
xmax = ${l}
ymin = 0
ymax = ${l}
nx = ${n}
ny = ${n}
elem_type = QUAD4
[]
second_order = true
parallel_type = distributed
[]
[Variables]
[vel_x]
order = SECOND
family = LAGRANGE
[]
[vel_y]
order = SECOND
family = LAGRANGE
[]
[p]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[]
[x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[]
[y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[]
[]
[BCs]
[x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'bottom right left'
value = 0.0
[]
[lid]
type = FunctionDirichletBC
variable = vel_x
boundary = 'top'
function = 'lid_function'
[]
[y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'bottom right top left'
value = 0.0
[]
[]
[Materials]
[const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '${rho} ${mu}'
[]
[]
[Functions]
[lid_function]
# We pick a function that is exactly represented in the velocity
# space so that the Dirichlet conditions are the same regardless
# of the mesh spacing.
type = ParsedFunction
expression = '${prefactor}*${U}*x*(${l}-x)'
[]
[]
[Problem]
type = NavierStokesProblem
[]
[Preconditioning]
[FSP]
type = FSP
topsplit = 'up'
[up]
splitting = 'u p'
splitting_type = schur
petsc_options_iname = '-pc_fieldsplit_schur_fact_type -pc_fieldsplit_schur_precondition -ksp_gmres_restart -ksp_type -ksp_pc_side -ksp_rtol'
petsc_options_value = 'full self 300 fgmres right 1e-4'
[]
[u]
vars = 'vel_x vel_y'
# petsc_options = '-ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_type -ksp_rtol -ksp_gmres_restart -ksp_pc_side'
petsc_options_value = 'hypre boomeramg gmres 1e-2 300 right'
[]
[p]
vars = 'p'
petsc_options = '-pc_lsc_scale_diag -ksp_converged_reason'# -lsc_ksp_converged_reason -lsc_ksp_monitor_true_residual
petsc_options_iname = '-ksp_type -ksp_gmres_restart -ksp_rtol -pc_type -ksp_pc_side -lsc_pc_type -lsc_pc_hypre_type -lsc_ksp_type -lsc_ksp_rtol -lsc_ksp_pc_side -lsc_ksp_gmres_restart'
petsc_options_value = 'fgmres 300 1e-2 lsc right hypre boomeramg gmres 1e-1 right 300'
[]
[]
[]
[Postprocessors]
[pavg]
type = ElementAverageValue
variable = p
[]
[]
[Correctors]
[set_pressure]
type = NSPressurePin
pin_type = 'average'
variable = p
pressure_average = 'pavg'
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
[exo]
type = Exodus
execute_on = 'final'
hide = 'pavg'
[]
[]
(test/tests/geomsearch/3d_moving_penetration_smoothing/pl_test3qns.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = pl_test3q.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
# [./element_id]
# [../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
# [./penetrate17]
# type = PenetrationAux
# variable = element_id
# boundary = 11
# paired_boundary = 12
# quantity = element_id
# [../]
#
# [./penetrate18]
# type = PenetrationAux
# variable = element_id
# boundary = 12
# paired_boundary = 11
# quantity = element_id
# [../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
preset = false
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
preset = false
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
preset = false
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.025
end_time = 1.0
[./Quadrature]
order = THIRD
[../]
[]
[Outputs]
file_base = pl_test3qns_out
exodus = true
[]
(modules/contact/test/tests/verification/hertz_cyl/half_symm_q4/hertz_cyl_half_1deg_template1.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Mesh]
file = hertz_cyl_half_1deg.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
[../]
[./saved_x]
[../]
[./saved_y]
[../]
[./diag_saved_x]
[../]
[./diag_saved_y]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[./tang_force_x]
[../]
[./tang_force_y]
[../]
[]
[Functions]
[./disp_ramp_vert]
type = PiecewiseLinear
x = '0. 1. 3.5'
y = '0. -0.0020 -0.0020'
[../]
[./disp_ramp_horz]
type = PiecewiseLinear
x = '0. 1. 3.5'
y = '0. 0.0 0.0014'
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
save_in = 'saved_x saved_y'
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[../]
[./inc_slip_x]
type = PenetrationAux
variable = inc_slip_x
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./inc_slip_y]
type = PenetrationAux
variable = inc_slip_y
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./accum_slip_x]
type = PenetrationAux
variable = accum_slip_x
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./accum_slip_y]
type = PenetrationAux
variable = accum_slip_y
execute_on = timestep_end
boundary = 3
paired_boundary = 2
[../]
[./tang_force_x]
type = PenetrationAux
variable = tang_force_x
quantity = tangential_force_x
boundary = 3
paired_boundary = 2
[../]
[./tang_force_y]
type = PenetrationAux
variable = tang_force_y
quantity = tangential_force_y
boundary = 3
paired_boundary = 2
[../]
[./penetration]
type = PenetrationAux
variable = penetration
boundary = 3
paired_boundary = 2
[../]
[]
[Postprocessors]
[./bot_react_x]
type = NodalSum
variable = saved_x
boundary = 1
[../]
[./bot_react_y]
type = NodalSum
variable = saved_y
boundary = 1
[../]
[./top_react_x]
type = NodalSum
variable = saved_x
boundary = 4
[../]
[./top_react_y]
type = NodalSum
variable = saved_y
boundary = 4
[../]
[./disp_x226]
type = NodalVariableValue
nodeid = 225
variable = disp_x
[../]
[./disp_y226]
type = NodalVariableValue
nodeid = 225
variable = disp_y
[../]
[./_dt]
type = TimestepSize
[../]
[./num_lin_it]
type = NumLinearIterations
[../]
[./num_nonlin_it]
type = NumNonlinearIterations
[../]
[]
[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'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff2_strain]
type = ComputeFiniteStrain
block = '2'
[../]
[./stuff2_stress]
type = ComputeFiniteStrainElasticStress
block = '2'
[../]
[./stuff3_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '3'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff3_strain]
type = ComputeFiniteStrain
block = '3'
[../]
[./stuff3_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[../]
[./stuff4_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '4'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff4_strain]
type = ComputeFiniteStrain
block = '4'
[../]
[./stuff4_stress]
type = ComputeFiniteStrainElasticStress
block = '4'
[../]
[./stuff5_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '5'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff5_strain]
type = ComputeFiniteStrain
block = '5'
[../]
[./stuff5_stress]
type = ComputeFiniteStrainElasticStress
block = '5'
[../]
[./stuff6_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '6'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff6_strain]
type = ComputeFiniteStrain
block = '6'
[../]
[./stuff6_stress]
type = ComputeFiniteStrainElasticStress
block = '6'
[../]
[./stuff7_elas_tens]
type = ComputeIsotropicElasticityTensor
block = '7'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stuff7_strain]
type = ComputeFiniteStrain
block = '7'
[../]
[./stuff7_stress]
type = ComputeFiniteStrainElasticStress
block = '7'
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_abs_tol = 1e-6
nl_rel_tol = 1e-5
l_max_its = 100
nl_max_its = 200
start_time = 0.0
end_time = 3.5
l_tol = 1e-3
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
[../]
[./cont_press]
type = NodalValueSampler
variable = contact_pressure
boundary = '3'
sort_by = id
[../]
[]
[Outputs]
print_linear_residuals = true
perf_graph = true
[./exodus]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[./chkfile]
type = CSV
show = 'x_disp y_disp cont_press'
start_time = 0.9
execute_vector_postprocessors_on = timestep_end
[../]
[./chkfile2]
type = CSV
show = 'bot_react_x bot_react_y disp_x226 disp_y226 top_react_x top_react_y'
start_time = 0.9
execute_vector_postprocessors_on = timestep_end
[../]
[./outfile]
type = CSV
delimiter = ' '
execute_vector_postprocessors_on = none
[../]
[]
[Contact]
[./interface]
primary = 2
secondary = 3
normalize_penalty = true
tangential_tolerance = 1e-3
penalty = 1e+10
[../]
[]
(modules/solid_mechanics/test/tests/umat/plane_strain/generalized_plane_strain.i)
# Testing the UMAT Interface - creep linear strain hardening model using the finite strain formulation - visco-plastic material.
# Uses 2D plane strain
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
[]
[]
[Functions]
[top_pull]
type = ParsedFunction
expression = t/100
[]
[]
[Variables]
[scalar_strain_zz]
order = FIRST
family = SCALAR
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'strain_yy stress_yy stress_zz'
planar_formulation = GENERALIZED_PLANE_STRAIN
scalar_out_of_plane_strain = scalar_strain_zz
[]
[]
[BCs]
[y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[]
[Materials]
[constant]
type = AbaqusUMATStress
# Young's modulus, Poisson's Ratio, Yield, Hardening
constant_properties = '1000 0.3 10 100'
plugin = ../../../plugins/linear_strain_hardening
num_state_vars = 3
use_one_based_indexing = true
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 30
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[average_strain_yy]
type = ElementAverageValue
variable = 'strain_yy'
[]
[average_stress_yy]
type = ElementAverageValue
variable = 'stress_yy'
[]
[average_stress_zz]
type = ElementAverageValue
variable = 'stress_zz'
[]
[]
[Outputs]
[out]
type = Exodus
elemental_as_nodal = true
[]
[]
(test/tests/multiapps/restart_multilevel/subsub.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 1
nx = 10
[]
[Functions]
[./u_fn]
type = ParsedFunction
expression = t*x
[../]
[./ffn]
type = ParsedFunction
expression = x
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./td]
type = TimeDerivative
variable = u
[../]
[./fn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = right
function = u_fn
[../]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/dynamics/wave_1D/wave_rayleigh_newmark_action.i)
# Wave propogation in 1D using Newmark time integration in the presence of Rayleigh damping
#
# The test is for an 1D bar element of length 4m fixed on one end
# with a sinusoidal pulse dirichlet boundary condition applied to the other end.
# beta and gamma are Newmark time integration parameters
# eta and zeta are mass dependent and stiffness dependent Rayleigh damping
# coefficients, respectively.
# The equation of motion in terms of matrices is:
#
# M*accel + (eta*M+zeta*K)*vel +K*disp = 0
#
# Here M is the mass matrix, K is the stiffness matrix
#
# The displacement at the second, third and fourth node at t = 0.1 are
# -7.776268399030435152e-02, 1.949967184623528985e-02 and -4.615737877580032046e-03, respectively
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 4
nz = 1
xmin = 0.0
xmax = 0.1
ymin = 0.0
ymax = 4.0
zmin = 0.0
zmax = 0.1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/Dynamic]
[all]
add_variables = true
stiffness_damping_coefficient = 0.1
mass_damping_coefficient = 0.1
newmark_beta = 0.3025
newmark_gamma = 0.6
strain = SMALL
density = 1
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 0
index_j = 1
[]
[strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 0
index_j = 1
[]
[]
[BCs]
[top_y]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[]
[top_x]
type = DirichletBC
variable = disp_x
boundary = top
value = 0.0
[]
[top_z]
type = DirichletBC
variable = disp_z
boundary = top
value = 0.0
[]
[right_x]
type = DirichletBC
variable = disp_x
boundary = right
value = 0.0
[]
[right_z]
type = DirichletBC
variable = disp_z
boundary = right
value = 0.0
[]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[left_z]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[]
[front_x]
type = DirichletBC
variable = disp_x
boundary = front
value = 0.0
[]
[front_z]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[back_x]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[]
[back_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
[bottom_x]
type = DirichletBC
variable = disp_x
boundary = bottom
value = 0.0
[]
[bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[]
[bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = bottom
function = displacement_bc
[]
[]
[Materials]
[Elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1 0'
[]
[stress]
type = ComputeLinearElasticStress
block = 0
[]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 6.0
l_tol = 1e-12
nl_rel_tol = 1e-12
dt = 0.1
[]
[Functions]
[displacement_bc]
type = PiecewiseLinear
data_file = 'sine_wave.csv'
format = columns
[]
[]
[Postprocessors]
[_dt]
type = TimestepSize
[]
[disp_1]
type = NodalVariableValue
nodeid = 1
variable = disp_y
[]
[disp_2]
type = NodalVariableValue
nodeid = 3
variable = disp_y
[]
[disp_3]
type = NodalVariableValue
nodeid = 10
variable = disp_y
[]
[disp_4]
type = NodalVariableValue
nodeid = 14
variable = disp_y
[]
[]
[Outputs]
exodus = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_no_negative_aprismatic.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[cube]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[center_node]
type = BoundingBoxNodeSetGenerator
input = cube
new_boundary = 'center_point'
top_right = '0.51 0.51 0'
bottom_left = '0.49 0.49 0'
[]
[back_edge_y]
type = BoundingBoxNodeSetGenerator
input = center_node
new_boundary = 'back_edge_y'
bottom_left = '0.9 0.5 0'
top_right = '1.1 0.5 0'
[]
[back_edge_x]
type = BoundingBoxNodeSetGenerator
input = back_edge_y
new_boundary = back_edge_x
bottom_left = '0.5 0.9 0'
top_right = '0.5 1.0 0'
[]
[]
[AuxVariables]
[temperature]
initial_condition = 300
[]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[fp_zz]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_0]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_1]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_2]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_12]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_13]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_0]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_1]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_2]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_12]
order = CONSTANT
family = MONOMIAL
[]
[forest_dislocations_13]
order = CONSTANT
family = MONOMIAL
[]
[substructure_density]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_0]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_1]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_2]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_12]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_13]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental = true
add_variables = true
[]
[AuxKernels]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = plastic_deformation_gradient
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[tau_0]
type = MaterialStdVectorAux
variable = resolved_shear_stress_0
property = applied_shear_stress
index = 0
execute_on = timestep_end
[]
[tau_1]
type = MaterialStdVectorAux
variable = resolved_shear_stress_1
property = applied_shear_stress
index = 1
execute_on = timestep_end
[]
[tau_2]
type = MaterialStdVectorAux
variable = resolved_shear_stress_2
property = applied_shear_stress
index = 2
execute_on = timestep_end
[]
[tau_12]
type = MaterialStdVectorAux
variable = resolved_shear_stress_12
property = applied_shear_stress
index = 12
execute_on = timestep_end
[]
[tau_13]
type = MaterialStdVectorAux
variable = resolved_shear_stress_13
property = applied_shear_stress
index = 13
execute_on = timestep_end
[]
[forest_dislocations_0]
type = MaterialStdVectorAux
variable = forest_dislocations_0
property = forest_dislocation_density
index = 0
execute_on = timestep_end
[]
[forest_dislocations_1]
type = MaterialStdVectorAux
variable = forest_dislocations_1
property = forest_dislocation_density
index = 1
execute_on = timestep_end
[]
[forest_dislocations_2]
type = MaterialStdVectorAux
variable = forest_dislocations_2
property = forest_dislocation_density
index = 2
execute_on = timestep_end
[]
[forest_dislocations_12]
type = MaterialStdVectorAux
variable = forest_dislocations_12
property = forest_dislocation_density
index = 12
execute_on = timestep_end
[]
[forest_dislocations_13]
type = MaterialStdVectorAux
variable = forest_dislocations_13
property = forest_dislocation_density
index = 13
execute_on = timestep_end
[]
[substructure_density]
type = MaterialRealAux
variable = substructure_density
property = total_substructure_density
execute_on = timestep_end
[]
[slip_resistance_0]
type = MaterialStdVectorAux
variable = slip_resistance_0
property = slip_resistance
index = 0
execute_on = timestep_end
[]
[slip_resistance_1]
type = MaterialStdVectorAux
variable = slip_resistance_1
property = slip_resistance
index = 1
execute_on = timestep_end
[]
[slip_resistance_2]
type = MaterialStdVectorAux
variable = slip_resistance_2
property = slip_resistance
index = 2
execute_on = timestep_end
[]
[slip_resistance_12]
type = MaterialStdVectorAux
variable = slip_resistance_12
property = slip_resistance
index = 12
execute_on = timestep_end
[]
[slip_resistance_13]
type = MaterialStdVectorAux
variable = slip_resistance_13
property = slip_resistance
index = 13
execute_on = timestep_end
[]
[]
[BCs]
[fix_y]
type = DirichletBC
variable = disp_y
preset = true
boundary = 'center_point back_edge_y'
value = 0
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'center_point back_edge_x'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.001*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.622e5 9.18e4 6.88e4 1.622e5 6.88e4 1.805e5 4.67e4 4.67e4 4.67e4' #alpha Ti, Alankar et al. Acta Materialia 59 (2011) 7003-7009
fill_method = symmetric9
euler_angle_1 = 164.5
euler_angle_2 = 90.0
euler_angle_3 = 15.3
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityHCPDislocationSlipBeyerleinUpdate
number_slip_systems = 15
slip_sys_file_name = hcp_aprismatic_capyramidal_slip_sys.txt
unit_cell_dimension = '2.934e-7 2.934e-7 4.657e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
temperature = temperature
initial_forest_dislocation_density = 15.0
zero_tol = 1.1
initial_substructure_density = 1.0e3
slip_system_modes = 2
number_slip_systems_per_mode = '3 12'
lattice_friction_per_mode = '0.5 5'
effective_shear_modulus_per_mode = '4.7e4 4.7e4' #Ti, in MPa, https://materialsproject.org/materials/mp-46/
burgers_vector_per_mode = '2.934e-7 6.586e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
slip_generation_coefficient_per_mode = '-1e5 -2e7'
normalized_slip_activiation_energy_per_mode = '4e-3 3e-2'
slip_energy_proportionality_factor_per_mode = '330 100'
substructure_rate_coefficient_per_mode = '400 100'
applied_strain_rate = 0.001
gamma_o = 1.0e-3
Hall_Petch_like_constant_per_mode = '2e-3 2e-3' #minimize impact
grain_size = 20.0e-3 #20 microns
[]
[]
[Postprocessors]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[fp_zz]
type = ElementAverageValue
variable = fp_zz
[]
[tau_0]
type = ElementAverageValue
variable = resolved_shear_stress_0
[]
[tau_1]
type = ElementAverageValue
variable = resolved_shear_stress_1
[]
[tau_2]
type = ElementAverageValue
variable = resolved_shear_stress_2
[]
[tau_12]
type = ElementAverageValue
variable = resolved_shear_stress_12
[]
[tau_13]
type = ElementAverageValue
variable = resolved_shear_stress_13
[]
[forest_dislocation_0]
type = ElementAverageValue
variable = forest_dislocations_0
[]
[forest_dislocation_1]
type = ElementAverageValue
variable = forest_dislocations_1
[]
[forest_dislocation_2]
type = ElementAverageValue
variable = forest_dislocations_2
[]
[forest_dislocation_12]
type = ElementAverageValue
variable = forest_dislocations_12
[]
[forest_dislocation_13]
type = ElementAverageValue
variable = forest_dislocations_13
[]
[substructure_density]
type = ElementAverageValue
variable = substructure_density
[]
[slip_resistance_0]
type = ElementAverageValue
variable = slip_resistance_0
[]
[slip_resistance_1]
type = ElementAverageValue
variable = slip_resistance_1
[]
[slip_resistance_2]
type = ElementAverageValue
variable = slip_resistance_2
[]
[slip_resistance_12]
type = ElementAverageValue
variable = slip_resistance_12
[]
[slip_resistance_13]
type = ElementAverageValue
variable = slip_resistance_13
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
nl_max_its = 20
l_max_its = 50
dt = 0.00375
dtmin = 1.0e-4
dtmax = 0.1
num_steps = 9
[]
[Outputs]
csv = true
[]
(test/tests/multiapps/picard_multilevel/multilevel_dt_rejection/picard_sub.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[v]
[]
[]
[AuxVariables]
[v2]
[]
[v3]
[]
[w]
[]
[]
[AuxKernels]
[set_w]
type = NormalizationAux
variable = w
source_variable = v
normal_factor = 0.1
[]
[]
[Kernels]
[diff_v]
type = Diffusion
variable = v
[]
[coupled_force]
type = CoupledForce
variable = v
v = v2
[]
[coupled_force2]
type = CoupledForce
variable = v
v = v3
[]
[td_v]
type = TimeDerivative
variable = v
[]
[]
[BCs]
[left_v]
type = FunctionDirichletBC
variable = v
boundary = left
function = func
[]
[right_v]
type = DirichletBC
variable = v
boundary = right
value = 0
[]
[]
[Functions]
[func]
type = ParsedFunction
expression = 'if(t < 2.5, 1, 1 / t)'
[]
[]
[Postprocessors]
[picard_its]
type = NumFixedPointIterations
execute_on = 'initial timestep_end'
[]
[parent_time]
type = Receiver
execute_on = 'timestep_end'
[]
[parent_dt]
type = Receiver
execute_on = 'timestep_end'
[]
[time]
type = TimePostprocessor
execute_on = 'timestep_end'
[]
[dt]
type = TimestepSize
execute_on = 'timestep_end'
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 2 # deliberately make it fail at 2 to test the time step rejection behavior
nl_rel_tol = 1e-5 # loose enough to force multiple Picard iterations on this example
l_tol = 1e-5 # loose enough to force multiple Picard iterations on this example
fixed_point_rel_tol = 1e-8
num_steps = 2
[]
[MultiApps]
[sub2]
type = TransientMultiApp
positions = '0 0 0'
input_files = picard_sub2.i
execute_on = timestep_end
[]
[]
[Transfers]
[v_to_v3]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub2
source_variable = v
variable = v3
[]
[w]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = sub2
source_variable = w
variable = w
[]
[time_to_sub]
type = MultiAppPostprocessorTransfer
from_postprocessor = time
to_postprocessor = sub_time
to_multi_app = sub2
[]
[dt_to_sub]
type = MultiAppPostprocessorTransfer
from_postprocessor = dt
to_postprocessor = sub_dt
to_multi_app = sub2
[]
[matser_time_to_sub]
type = MultiAppPostprocessorTransfer
from_postprocessor = time
to_postprocessor = parent_time
to_multi_app = sub2
[]
[parent_dt_to_sub]
type = MultiAppPostprocessorTransfer
from_postprocessor = dt
to_postprocessor = parent_dt
to_multi_app = sub2
[]
[]
(modules/solid_mechanics/test/tests/cohesive_zone_model/czm_traction_separation_base.i)
# base test to check the implemantation traction separation laws
# Loads are expressed using functions. See the czm_materials/3DC section in the
# test file for examples.
[Mesh]
[./msh]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 1
nz = 1
[]
[./subdomain_1]
type = SubdomainBoundingBoxGenerator
input = msh
bottom_left = '0 0 0'
block_id = 1
top_right = '0.5 1 1'
[]
[./subdomain_2]
type = SubdomainBoundingBoxGenerator
input = subdomain_1
bottom_left = '0.5 0 0'
block_id = 2
top_right = '1 1 1'
[]
[./breakmesh]
input = subdomain_2
type = BreakMeshByBlockGenerator
[../]
[add_side_sets]
input = breakmesh
type = SideSetsFromNormalsGenerator
normals = '0 -1 0
0 1 0
-1 0 0
1 0 0
0 0 -1
0 0 1'
fixed_normal = true
new_boundary = 'y0 y1 x0 x1 z0 z1'
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = SMALL
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_yz stress_xz stress_xy'
[../]
[]
[Physics/SolidMechanics/CohesiveZone]
[./czm1]
strain = SMALL
boundary = 'interface'
generate_output = 'traction_x traction_y traction_z normal_traction tangent_traction jump_x jump_y jump_z normal_jump tangent_jump'
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = x0
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
preset = false
boundary = x0
value = 0.0
[../]
[./left_z]
type = DirichletBC
variable = disp_z
preset = false
boundary = x0
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = x1
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = x1
[../]
[./right_z]
type = FunctionDirichletBC
variable = disp_z
preset = false
boundary = x1
[../]
[]
[Materials]
[./Elasticity_tensor]
type = ComputeElasticityTensor
block = '1 2'
fill_method = symmetric_isotropic
C_ijkl = '0.3 0.5e8'
[../]
[./stress]
type = ComputeLinearElasticStress
block = '1 2'
[../]
[./czm_mat]
boundary = 'interface'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
solve_type = NEWTON
nl_abs_tol = 1e-8
nl_rel_tol = 1e-6
nl_max_its = 5
l_tol = 1e-10
l_max_its = 50
start_time = 0.0
dt = 0.2
end_time = 3
dtmin = 0.2
line_search = none
[]
[Outputs]
[./out]
type = Exodus
[../]
[]
(modules/navier_stokes/test/tests/finite_element/pins/channel-flow/pm_heat_source.i)
# This test case tests the porous-medium flow with volumetric heat source
#
# At the steady state, the energy balance is given by
# rho * u * (h_out - h_in) = q''' * L
#
# with rho * u = 100; cp = 100; q''' = 1e6, L = 1, it is easy to obtain:
# T_out - T_in = 1e6 / (100 * 100) = 100
#
# This can be verified by check the T_out - T_in
[GlobalParams]
gravity = '0 0 0'
order = FIRST
family = LAGRANGE
u = vel_x
v = vel_y
pressure = p
temperature = T
porosity = porosity
eos = eos
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 0.1
nx = 10
ny = 4
elem_type = QUAD4
[]
[FluidProperties]
[./eos]
type = SimpleFluidProperties
density0 = 100 # kg/m^3
thermal_expansion = 0 # K^{-1}
cp = 100
viscosity = 0.1 # Pa-s, Re=rho*u*L/mu = 100*1*0.1/0.1 = 100
thermal_conductivity = 0.1
[../]
[]
[Functions]
[v_in]
type = PiecewiseLinear
x = '0 1e5'
y = '1 1'
[]
[T_in]
type = PiecewiseLinear
x = '0 1e5'
y = '630 630'
[]
[]
[Variables]
# velocity
[vel_x]
initial_condition = 1
[]
[vel_y]
initial_condition = 0
[]
[p]
initial_condition = 1e5
[]
[T]
scaling = 1e-3
initial_condition = 630
[]
[]
[AuxVariables]
[rho]
initial_condition = 100
[]
[porosity]
initial_condition = 0.4
[]
[vol_heat]
initial_condition = 1e6
[]
[]
[Materials]
[mat]
type = PINSFEMaterial
alpha = 1000
beta = 100
[]
[]
[Kernels]
[mass_time]
type = PINSFEFluidPressureTimeDerivative
variable = p
[]
[mass_space]
type = INSFEFluidMassKernel
variable = p
[]
[x_momentum_time]
type = PINSFEFluidVelocityTimeDerivative
variable = vel_x
[]
[x_momentum_space]
type = INSFEFluidMomentumKernel
variable = vel_x
component = 0
[]
[y_momentum_time]
type = PINSFEFluidVelocityTimeDerivative
variable = vel_y
[]
[y_momentum_space]
type = INSFEFluidMomentumKernel
variable = vel_y
component = 1
[]
[temperature_time]
type = PINSFEFluidTemperatureTimeDerivative
variable = T
[../]
[temperature_space]
type = INSFEFluidEnergyKernel
variable = T
power_density = vol_heat
[]
[]
[AuxKernels]
[rho_aux]
type = FluidDensityAux
variable = rho
p = p
T = T
fp = eos
[]
[]
[BCs]
# BCs for mass equation
# Inlet
[mass_inlet]
type = INSFEFluidMassBC
variable = p
boundary = 'left'
v_fn = v_in
[]
# Outlet
[./pressure_out]
type = DirichletBC
variable = p
boundary = 'right'
value = 1e5
[../]
# BCs for x-momentum equation
# Inlet
[vx_in]
type = FunctionDirichletBC
variable = vel_x
boundary = 'left'
function = v_in
[]
# Outlet (no BC is needed)
# BCs for y-momentum equation
# Both Inlet and Outlet, and Top and Bottom
[vy]
type = DirichletBC
variable = vel_y
boundary = 'left right bottom top'
value = 0
[]
# BCs for energy equation
[T_in]
type = FunctionDirichletBC
variable = T
boundary = 'left'
function = T_in
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
solve_type = 'PJFNK'
[]
[]
[Postprocessors]
[p_in]
type = SideAverageValue
variable = p
boundary = left
[]
[p_out]
type = SideAverageValue
variable = p
boundary = right
[]
[T_in]
type = SideAverageValue
variable = T
boundary = left
[]
[T_out]
type = SideAverageValue
variable = T
boundary = right
[]
[]
[Executioner]
type = Transient
dt = 1
dtmin = 1.e-3
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 100'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-5
l_max_its = 100
start_time = 0.0
end_time = 10
num_steps = 10
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
time_step_interval = 1
execute_on = 'initial timestep_end'
[console]
type = Console
output_linear = false
[]
[out]
type = Exodus
use_displaced = false
[]
[]
(modules/contact/test/tests/tension_release/4ElemTensionRelease_mechanical_constraint.i)
# This is a mechanical constraint (contact formulation) version of 4ElemTensionRelease.i
[Mesh]
file = 4ElemTensionRelease.e
[]
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Functions]
[./up]
type = PiecewiseLinear
x = '0 1 2 3'
y = '0 0.0001 0 -.0001'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = SMALL
generate_output = 'stress_yy'
[]
[]
[Contact]
[./dummy_name]
primary = 2
secondary = 3
penalty = 1e6
model = frictionless
tangential_tolerance = 0.01
[../]
[]
[BCs]
[./lateral]
type = DirichletBC
variable = disp_x
boundary = '1 4'
value = 0
[../]
[./bottom_up]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = up
[../]
[./top]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[]
[Materials]
[./stiffStuff1]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[../]
[./stiffStuff1_stress]
type = ComputeLinearElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 101'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 0.2
dtmin = 0.2
end_time = 3
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
exodus = true
[]
(modules/porous_flow/examples/coal_mining/fine_with_fluid.i)
#################################################################
#
# NOTE:
# The mesh for this model is too large for the MOOSE repository
# so is kept in the the large_media submodule
#
#################################################################
#
# Strata deformation and fluid flow aaround a coal mine - 3D model
#
# A "half model" is used. The mine is 400m deep and
# just the roof is studied (-400<=z<=0). The mining panel
# sits between 0<=x<=150, and 0<=y<=1000, so this simulates
# a coal panel that is 300m wide and 1000m long. The outer boundaries
# are 1km from the excavation boundaries.
#
# The excavation takes 0.5 years.
#
# The boundary conditions for this simulation are:
# - disp_x = 0 at x=0 and x=1150
# - disp_y = 0 at y=-1000 and y=1000
# - disp_z = 0 at z=-400, but there is a time-dependent
# Young modulus that simulates excavation
# - wc_x = 0 at y=-1000 and y=1000
# - wc_y = 0 at x=0 and x=1150
# - no flow at x=0, z=-400 and z=0
# - fixed porepressure at y=-1000, y=1000 and x=1150
# That is, rollers on the sides, free at top,
# and prescribed at bottom in the unexcavated portion.
#
# A single-phase unsaturated fluid is used.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa, and time units are measured in years.
#
# The initial porepressure is hydrostatic with P=0 at z=0, so
# Porepressure ~ - 0.01*z MPa, where the fluid has density 1E3 kg/m^3 and
# gravity = = 10 m.s^-2 = 1E-5 MPa m^2/kg.
# To be more accurate, i use
# Porepressure = -bulk * log(1 + g*rho0*z/bulk)
# where bulk=2E3 MPa and rho0=1Ee kg/m^3.
# The initial stress is consistent with the weight force from undrained
# density 2500 kg/m^3, and fluid porepressure, and a Biot coefficient of 0.7, ie,
# stress_zz^effective = 0.025*z + 0.7 * initial_porepressure
# The maximum and minimum principal horizontal effective stresses are
# assumed to be equal to 0.8*stress_zz.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# MC cohesion = 2 MPa
# MC friction angle = 35 deg
# MC dilation angle = 8 deg
# MC tensile strength = 1 MPa
# MC compressive strength = 100 MPa
# WeakPlane cohesion = 0.1 MPa
# WeakPlane friction angle = 30 deg
# WeakPlane dilation angle = 10 deg
# WeakPlane tensile strength = 0.1 MPa
# WeakPlane compressive strength = 100 MPa softening to 1 MPa at strain = 1
# Fluid density at zero porepressure = 1E3 kg/m^3
# Fluid bulk modulus = 2E3 MPa
# Fluid viscosity = 1.1E-3 Pa.s = 1.1E-9 MPa.s = 3.5E-17 MPa.year
#
[GlobalParams]
perform_finite_strain_rotations = false
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
PorousFlowDictator = dictator
biot_coefficient = 0.7
[]
[Mesh]
[file]
type = FileMeshGenerator
file = fine.e
[]
[xmin]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
new_boundary = xmin
normal = '-1 0 0'
input = file
[]
[xmax]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
new_boundary = xmax
normal = '1 0 0'
input = xmin
[]
[ymin]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
new_boundary = ymin
normal = '0 -1 0'
input = xmax
[]
[ymax]
type = SideSetsAroundSubdomainGenerator
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
new_boundary = ymax
normal = '0 1 0'
input = ymin
[]
[zmax]
type = SideSetsAroundSubdomainGenerator
block = 30
new_boundary = zmax
normal = '0 0 1'
input = ymax
[]
[zmin]
type = SideSetsAroundSubdomainGenerator
block = 2
new_boundary = zmin
normal = '0 0 -1'
input = zmax
[]
[excav]
type = SubdomainBoundingBoxGenerator
input = zmin
block_id = 1
bottom_left = '0 0 -400'
top_right = '150 1000 -397'
[]
[roof]
type = SideSetsBetweenSubdomainsGenerator
primary_block = 3
paired_block = 1
input = excav
new_boundary = roof
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[wc_x]
[]
[wc_y]
[]
[porepressure]
scaling = 1E-5
[]
[]
[ICs]
[porepressure]
type = FunctionIC
variable = porepressure
function = ini_pp
[]
[]
[Kernels]
[cx_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_x
component = 0
[]
[cy_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_y
component = 1
[]
[cz_elastic]
type = CosseratStressDivergenceTensors
use_displaced_mesh = false
variable = disp_z
component = 2
[]
[x_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[]
[y_couple]
type = StressDivergenceTensors
use_displaced_mesh = false
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[]
[x_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_x
component = 0
[]
[y_moment]
type = MomentBalancing
use_displaced_mesh = false
variable = wc_y
component = 1
[]
[gravity]
type = Gravity
use_displaced_mesh = false
variable = disp_z
value = -10E-6 # remember this is in MPa
[]
[poro_x]
type = PorousFlowEffectiveStressCoupling
use_displaced_mesh = false
variable = disp_x
component = 0
[]
[poro_y]
type = PorousFlowEffectiveStressCoupling
use_displaced_mesh = false
variable = disp_y
component = 1
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
use_displaced_mesh = false
component = 2
variable = disp_z
[]
[poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
use_displaced_mesh = false
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
variable = porepressure
fluid_component = 0
[]
[mass0]
type = PorousFlowMassTimeDerivative
use_displaced_mesh = false
fluid_component = 0
variable = porepressure
[]
[flux]
type = PorousFlowAdvectiveFlux
use_displaced_mesh = false
variable = porepressure
gravity = '0 0 -10E-6'
fluid_component = 0
[]
[]
[AuxVariables]
[saturation]
order = CONSTANT
family = MONOMIAL
[]
[darcy_x]
order = CONSTANT
family = MONOMIAL
[]
[darcy_y]
order = CONSTANT
family = MONOMIAL
[]
[darcy_z]
order = CONSTANT
family = MONOMIAL
[]
[porosity]
order = CONSTANT
family = MONOMIAL
[]
[wc_z]
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[stress_yx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zx]
order = CONSTANT
family = MONOMIAL
[]
[stress_zy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_xz]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_yx]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_zx]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_zy]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[perm_xx]
order = CONSTANT
family = MONOMIAL
[]
[perm_yy]
order = CONSTANT
family = MONOMIAL
[]
[perm_zz]
order = CONSTANT
family = MONOMIAL
[]
[mc_shear]
order = CONSTANT
family = MONOMIAL
[]
[mc_tensile]
order = CONSTANT
family = MONOMIAL
[]
[wp_shear]
order = CONSTANT
family = MONOMIAL
[]
[wp_tensile]
order = CONSTANT
family = MONOMIAL
[]
[wp_shear_f]
order = CONSTANT
family = MONOMIAL
[]
[wp_tensile_f]
order = CONSTANT
family = MONOMIAL
[]
[mc_shear_f]
order = CONSTANT
family = MONOMIAL
[]
[mc_tensile_f]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[saturation_water]
type = PorousFlowPropertyAux
variable = saturation
property = saturation
phase = 0
execute_on = timestep_end
[]
[darcy_x]
type = PorousFlowDarcyVelocityComponent
variable = darcy_x
gravity = '0 0 -10E-6'
component = x
[]
[darcy_y]
type = PorousFlowDarcyVelocityComponent
variable = darcy_y
gravity = '0 0 -10E-6'
component = y
[]
[darcy_z]
type = PorousFlowDarcyVelocityComponent
variable = darcy_z
gravity = '0 0 -10E-6'
component = z
[]
[porosity]
type = PorousFlowPropertyAux
property = porosity
variable = porosity
execute_on = timestep_end
[]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
execute_on = timestep_end
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
execute_on = timestep_end
[]
[stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
execute_on = timestep_end
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[total_strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[total_strain_xy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[total_strain_xz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[total_strain_yx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yx
index_i = 1
index_j = 0
execute_on = timestep_end
[]
[total_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[total_strain_yz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[total_strain_zx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zx
index_i = 2
index_j = 0
execute_on = timestep_end
[]
[total_strain_zy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zy
index_i = 2
index_j = 1
execute_on = timestep_end
[]
[total_strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[perm_xx]
type = PorousFlowPropertyAux
property = permeability
variable = perm_xx
row = 0
column = 0
execute_on = timestep_end
[]
[perm_yy]
type = PorousFlowPropertyAux
property = permeability
variable = perm_yy
row = 1
column = 1
execute_on = timestep_end
[]
[perm_zz]
type = PorousFlowPropertyAux
property = permeability
variable = perm_zz
row = 2
column = 2
execute_on = timestep_end
[]
[mc_shear]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_internal_parameter
variable = mc_shear
execute_on = timestep_end
[]
[mc_tensile]
type = MaterialStdVectorAux
index = 1
property = mc_plastic_internal_parameter
variable = mc_tensile
execute_on = timestep_end
[]
[wp_shear]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_internal_parameter
variable = wp_shear
execute_on = timestep_end
[]
[wp_tensile]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_internal_parameter
variable = wp_tensile
execute_on = timestep_end
[]
[mc_shear_f]
type = MaterialStdVectorAux
index = 6
property = mc_plastic_yield_function
variable = mc_shear_f
execute_on = timestep_end
[]
[mc_tensile_f]
type = MaterialStdVectorAux
index = 0
property = mc_plastic_yield_function
variable = mc_tensile_f
execute_on = timestep_end
[]
[wp_shear_f]
type = MaterialStdVectorAux
index = 0
property = wp_plastic_yield_function
variable = wp_shear_f
execute_on = timestep_end
[]
[wp_tensile_f]
type = MaterialStdVectorAux
index = 1
property = wp_plastic_yield_function
variable = wp_tensile_f
execute_on = timestep_end
[]
[]
[BCs]
[no_x]
type = DirichletBC
variable = disp_x
boundary = 'xmin xmax'
value = 0.0
[]
[no_y]
type = DirichletBC
variable = disp_y
boundary = 'ymin ymax'
value = 0.0
[]
[no_z]
type = DirichletBC
variable = disp_z
boundary = zmin
value = 0.0
[]
[no_wc_x]
type = DirichletBC
variable = wc_x
boundary = 'ymin ymax'
value = 0.0
[]
[no_wc_y]
type = DirichletBC
variable = wc_y
boundary = 'xmin xmax'
value = 0.0
[]
[fix_porepressure]
type = FunctionDirichletBC
variable = porepressure
boundary = 'ymin ymax xmax'
function = ini_pp
[]
[roof_porepressure]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
pt_vals = '-1E3 1E3'
multipliers = '-1 1'
fluid_phase = 0
flux_function = roof_conductance
boundary = roof
[]
[roof]
type = StickyBC
variable = disp_z
min_value = -3.0
boundary = roof
[]
[]
[Functions]
[ini_pp]
type = ParsedFunction
symbol_names = 'bulk p0 g rho0'
symbol_values = '2E3 0.0 1E-5 1E3'
expression = '-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk)'
[]
[ini_xx]
type = ParsedFunction
symbol_names = 'bulk p0 g rho0 biot'
symbol_values = '2E3 0.0 1E-5 1E3 0.7'
expression = '0.8*(2500*10E-6*z+biot*(-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk)))'
[]
[ini_zz]
type = ParsedFunction
symbol_names = 'bulk p0 g rho0 biot'
symbol_values = '2E3 0.0 1E-5 1E3 0.7'
expression = '2500*10E-6*z+biot*(-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk))'
[]
[excav_sideways]
type = ParsedFunction
symbol_names = 'end_t ymin ymax minval maxval slope'
symbol_values = '0.5 0 1000.0 1E-9 1 10'
# excavation face at ymin+(ymax-ymin)*min(t/end_t,1)
# slope is the distance over which the modulus reduces from maxval to minval
expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,if(y<ymin+(ymax-ymin)*min(t/end_t,1)+slope,minval+(maxval-minval)*(y-(ymin+(ymax-ymin)*min(t/end_t,1)))/slope,maxval))'
[]
[density_sideways]
type = ParsedFunction
symbol_names = 'end_t ymin ymax minval maxval'
symbol_values = '0.5 0 1000.0 0 2500'
expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,maxval)'
[]
[roof_conductance]
type = ParsedFunction
symbol_names = 'end_t ymin ymax maxval minval'
symbol_values = '0.5 0 1000.0 1E7 0'
expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),maxval,minval)'
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_x disp_y disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1 # MPa^-1
[]
[mc_coh_strong_harden]
type = TensorMechanicsHardeningExponential
value_0 = 1.99 # MPa
value_residual = 2.01 # MPa
rate = 1.0
[]
[mc_fric]
type = TensorMechanicsHardeningConstant
value = 0.61 # 35deg
[]
[mc_dil]
type = TensorMechanicsHardeningConstant
value = 0.15 # 8deg
[]
[mc_tensile_str_strong_harden]
type = TensorMechanicsHardeningExponential
value_0 = 1.0 # MPa
value_residual = 1.0 # MPa
rate = 1.0
[]
[mc_compressive_str]
type = TensorMechanicsHardeningCubic
value_0 = 100 # Large!
value_residual = 100
internal_limit = 0.1
[]
[wp_coh_harden]
type = TensorMechanicsHardeningCubic
value_0 = 0.05
value_residual = 0.05
internal_limit = 10
[]
[wp_tan_fric]
type = TensorMechanicsHardeningConstant
value = 0.26 # 15deg
[]
[wp_tan_dil]
type = TensorMechanicsHardeningConstant
value = 0.18 # 10deg
[]
[wp_tensile_str_harden]
type = TensorMechanicsHardeningCubic
value_0 = 0.05
value_residual = 0.05
internal_limit = 10
[]
[wp_compressive_str_soften]
type = TensorMechanicsHardeningCubic
value_0 = 100
value_residual = 1
internal_limit = 1.0
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E3
density0 = 1000
thermal_expansion = 0
viscosity = 3.5E-17
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[eff_fluid_pressure]
type = PorousFlowEffectiveFluidPressure
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[]
[massfrac]
type = PorousFlowMassFraction
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[porosity_for_aux]
type = PorousFlowPorosity
at_nodes = false
fluid = true
mechanical = true
ensure_positive = true
porosity_zero = 0.02
solid_bulk = 5.3333E3
[]
[porosity_bulk]
type = PorousFlowPorosity
fluid = true
mechanical = true
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
ensure_positive = true
porosity_zero = 0.02
solid_bulk = 5.3333E3
[]
[porosity_excav]
type = PorousFlowPorosityConst
block = 1
porosity = 1.0
[]
[permeability_bulk]
type = PorousFlowPermeabilityKozenyCarman
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
poroperm_function = kozeny_carman_phi0
k0 = 1E-15
phi0 = 0.02
n = 2
m = 2
[]
[permeability_excav]
type = PorousFlowPermeabilityConst
block = 1
permeability = '0 0 0 0 0 0 0 0 0'
[]
[relperm]
type = PorousFlowRelativePermeabilityCorey
n = 4
s_res = 0.4
sum_s_res = 0.4
phase = 0
[]
[elasticity_tensor_0]
type = ComputeLayeredCosseratElasticityTensor
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3 # MPa
[]
[elasticity_tensor_1]
type = ComputeLayeredCosseratElasticityTensor
block = 1
young = 8E3 # MPa
poisson = 0.25
layer_thickness = 1.0
joint_normal_stiffness = 1E9 # huge
joint_shear_stiffness = 1E3 # MPa
elasticity_tensor_prefactor = excav_sideways
[]
[strain]
type = ComputeCosseratIncrementalSmallStrain
eigenstrain_names = ini_stress
[]
[ini_stress]
type = ComputeEigenstrainFromInitialStress
eigenstrain_name = ini_stress
initial_stress = 'ini_xx 0 0 0 ini_xx 0 0 0 ini_zz'
[]
[stress_0]
type = ComputeMultipleInelasticCosseratStress
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
inelastic_models = 'mc wp'
cycle_models = true
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[]
[stress_1]
type = ComputeMultipleInelasticCosseratStress
block = 1
inelastic_models = ''
relative_tolerance = 2.0
absolute_tolerance = 1E6
max_iterations = 1
tangent_operator = nonlinear
perform_finite_strain_rotations = false
[]
[mc]
type = CappedMohrCoulombCosseratStressUpdate
warn_about_precision_loss = false
host_youngs_modulus = 8E3
host_poissons_ratio = 0.25
base_name = mc
tensile_strength = mc_tensile_str_strong_harden
compressive_strength = mc_compressive_str
cohesion = mc_coh_strong_harden
friction_angle = mc_fric
dilation_angle = mc_dil
max_NR_iterations = 100000
smoothing_tol = 0.1 # MPa # Must be linked to cohesion
yield_function_tol = 1E-9 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0
[]
[wp]
type = CappedWeakPlaneCosseratStressUpdate
warn_about_precision_loss = false
base_name = wp
cohesion = wp_coh_harden
tan_friction_angle = wp_tan_fric
tan_dilation_angle = wp_tan_dil
tensile_strength = wp_tensile_str_harden
compressive_strength = wp_compressive_str_soften
max_NR_iterations = 10000
tip_smoother = 0.05
smoothing_tol = 0.05 # MPa # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
yield_function_tol = 1E-11 # MPa. this is essentially the lowest possible without lots of precision loss
perfect_guess = true
min_step_size = 1.0E-3
[]
[undrained_density_0]
type = GenericConstantMaterial
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
prop_names = density
prop_values = 2500
[]
[undrained_density_1]
type = GenericFunctionMaterial
block = 1
prop_names = density
prop_values = density_sideways
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Postprocessors]
[min_roof_disp]
type = NodalExtremeValue
boundary = roof
value_type = min
variable = disp_z
[]
[min_roof_pp]
type = NodalExtremeValue
boundary = roof
value_type = min
variable = porepressure
[]
[min_surface_disp]
type = NodalExtremeValue
boundary = zmax
value_type = min
variable = disp_z
[]
[min_surface_pp]
type = NodalExtremeValue
boundary = zmax
value_type = min
variable = porepressure
[]
[max_perm_zz]
type = ElementExtremeValue
block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
variable = perm_zz
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason'
# best overall
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
# best if you don't have mumps:
#petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
#petsc_options_value = ' asm 2 lu gmres 200'
# very basic:
#petsc_options_iname = '-pc_type -ksp_type -ksp_gmres_restart'
#petsc_options_value = ' bjacobi gmres 200'
line_search = bt
nl_abs_tol = 1e-3
nl_rel_tol = 1e-5
l_max_its = 200
nl_max_its = 30
start_time = 0.0
dt = 0.0025
end_time = 0.5
[]
[Outputs]
time_step_interval = 1
print_linear_residuals = true
exodus = true
csv = true
console = true
[]
(modules/contact/test/tests/mortar_dynamics/block-dynamics-reference.i)
starting_point = 2e-1
offset = -0.19
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
file = long-bottom-block-1elem-blocks.e
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[normal_lm]
block = 3
use_dual = true
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[DynamicTensorMechanics]
displacements = 'disp_x disp_y'
generate_output = 'stress_xx stress_yy'
strain = FINITE
block = '1 2'
stiffness_damping_coefficient = 1.0
hht_alpha = 0.0
[]
[inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[]
[Materials]
[elasticity_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elasticity_1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e8
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[strain]
type = ComputeFiniteStrain
block = '1 2'
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '7750'
[]
[]
[AuxVariables]
[vel_x]
block = '1 2'
[]
[accel_x]
block = '1 2'
[]
[vel_y]
block = '1 2'
[]
[accel_y]
block = '1 2'
[]
[vel_z]
block = '1 2'
[]
[accel_z]
block = '1 2'
[]
[kinetic_energy]
order = CONSTANT
family = MONOMIAL
[]
[elastic_energy]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = 'timestep_end'
[]
[vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = 'timestep_end'
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = 'timestep_end'
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = 'timestep_end'
[]
[kinetic_energy]
type = KineticEnergyAux
block = '1 2'
variable = kinetic_energy
newmark_velocity_x = vel_x
newmark_velocity_y = vel_y
newmark_velocity_z = 0.0
density = density
[]
[elastic_energy]
type = ElasticEnergyAux
variable = elastic_energy
block = '1 2'
[]
[]
# User object provides the contact force (e.g. LM)
# for the application of the generalized force
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable = normal_lm
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
# Not using 'dynamic' constraints results in poor enforcement of contact
# constraints and lack of kinetic and elastic energy conservation.
[weighted_gap_lm]
type = ComputeDynamicWeightedGapLMMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
newmark_beta = 0.25
newmark_gamma = 0.5
use_displaced_mesh = true
# Capture tolerance is important. If too small, stabilization takes longer
capture_tolerance = 1.0e-5
c = 1.0e6
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_gap_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 4 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 30 # 50
function = '0' # '1e-2*t'
[]
[]
[Executioner]
type = Transient
end_time = 0.275 # 8.0
dt = 0.025
dtmin = .025
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu NONZERO 1e-15'
nl_max_its = 50
line_search = 'none'
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
checkpoint = true
csv = true
[]
[Postprocessors]
active = 'contact total_kinetic_energy total_elastic_energy'
[num_nl]
type = NumNonlinearIterations
[]
[cumulative]
type = CumulativeValuePostprocessor
postprocessor = num_nl
[]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = '3'
execute_on = 'nonlinear timestep_end'
[]
[total_kinetic_energy]
type = ElementIntegralVariablePostprocessor
variable = kinetic_energy
block = '1 2'
[]
[total_elastic_energy]
type = ElementIntegralVariablePostprocessor
variable = elastic_energy
block = '1 2'
[]
[]
(modules/solid_mechanics/test/tests/multi/two_surface05.i)
# Plasticit models:
# SimpleTester with a = 0 and b = 1 and strength = 1
# SimpleTester with a = 1 and b = 1 and strength = 2
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 3E-6m in y directions and 1.0E-6 in z direction.
# trial stress_zz = 1 and stress_yy = 3
#
# Then SimpleTester2 should activate and the algorithm will return to
# stress_zz = 0, stress_yy = 2
# internal0 should be zero, and internal1 should be 1
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '3E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[]
[UserObjects]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 2
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = two_surface05
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/porous_flow/test/tests/mass_conservation/mass12.i)
# The sample is an annulus in RZ coordinates.
# Roller BCs are applied to the r_min, r_max and bottom boundaries
# A constant displacement is applied to the top: disp_z = -0.01*t.
# There is no fluid flow.
# Fluid mass conservation is checked.
#
# Under these conditions
# fluid_mass = volume0 * rho0 * exp(P0/bulk) = pi*3 * 1 * exp(0.1/0.5) = 11.51145
# volume0 * rho0 * exp(P0/bulk) = volume * rho0 * exp(P/bulk), so
# P - P0 = bulk * log(volume0 / volume) = 0.5 * log(1 / (1 - 0.01*t))
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmin = 1.0
xmax = 2.0
ymin = -0.5
ymax = 0.5
coord_type = RZ
[]
[GlobalParams]
displacements = 'disp_r disp_z'
PorousFlowDictator = dictator
block = 0
[]
[Variables]
[disp_r]
[]
[disp_z]
[]
[porepressure]
initial_condition = 0.1
[]
[]
[BCs]
[bottom_roller]
type = DirichletBC
variable = disp_z
value = 0
boundary = bottom
[]
[side_rollers]
type = DirichletBC
variable = disp_r
value = 0
boundary = 'left right'
[]
[top_move]
type = FunctionDirichletBC
variable = disp_z
function = -0.01*t
boundary = top
[]
[]
[Kernels]
[grad_stress_r]
type = StressDivergenceRZTensors
variable = disp_r
component = 0
[]
[grad_stress_z]
type = StressDivergenceRZTensors
variable = disp_z
component = 1
[]
[poro_r]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.3
variable = disp_r
component = 0
[]
[poro_z]
type = PorousFlowEffectiveStressCoupling
biot_coefficient = 0.3
variable = disp_z
component = 1
[]
[poro_vol_exp]
type = PorousFlowMassVolumetricExpansion
variable = porepressure
fluid_component = 0
[]
[mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = porepressure
[]
[]
[AuxVariables]
[stress_rr]
order = CONSTANT
family = MONOMIAL
[]
[stress_rz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_tt]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_rr]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_rr
index_i = 0
index_j = 0
[]
[stress_rz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_rz
index_i = 0
index_j = 1
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 1
index_j = 1
[]
[stress_tt]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_tt
index_i = 2
index_j = 2
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 0.5
density0 = 1
thermal_expansion = 0
viscosity = 1
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '1 1.5'
# bulk modulus is lambda + 2*mu/3 = 1 + 2*1.5/3 = 2
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeAxisymmetricRZSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[vol_strain]
type = PorousFlowVolumetricStrain
[]
[eff_fluid_pressure]
type = PorousFlowEffectiveFluidPressure
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = porepressure
capillary_pressure = pc
[]
[massfrac]
type = PorousFlowMassFraction
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '0.5 0 0 0 0.5 0 0 0 0.5'
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'porepressure disp_r disp_z'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureVG
m = 0.5
alpha = 1
[]
[]
[Postprocessors]
[p0]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '1 0 0'
variable = porepressure
[]
[rdisp]
type = PointValue
outputs = csv
point = '2 0 0'
use_displaced_mesh = false
variable = disp_r
[]
[stress_rr]
type = PointValue
outputs = csv
point = '1 0 0'
variable = stress_rr
[]
[stress_zz]
type = PointValue
outputs = csv
point = '1 0 0'
variable = stress_zz
[]
[stress_tt]
type = PointValue
outputs = csv
point = '1 0 0'
variable = stress_tt
[]
[fluid_mass]
type = PorousFlowFluidMass
fluid_component = 0
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it'
petsc_options_value = 'bcgs bjacobi 1E-14 1E-8 10000'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
end_time = 10
dt = 2
[]
[Outputs]
execute_on = 'initial timestep_end'
[csv]
type = CSV
[]
[]
(modules/solid_mechanics/test/tests/tensile/small_deform2.i)
# checking for small deformation
# A single element is stretched by 1E-6m in all directions.
# tensile_strength is set to 1Pa, and smoother = 0.5
# Then the final stress should return to the yield surface and all principal stresses should be 0.5
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./mc]
type = SolidMechanicsPlasticTensile
tensile_strength = ts
yield_function_tolerance = 1E-6
tensile_tip_smoother = 0.5
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/hyperelastic_viscoplastic/one_elem_multi.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./peeq_soft]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./peeq_hard]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./peeq_soft]
type = MaterialRealAux
variable = peeq_soft
property = ep_eqv1
execute_on = timestep_end
block = 0
[../]
[./peeq_hard]
type = MaterialRealAux
variable = peeq_hard
property = ep_eqv2
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = '0.01*t'
[../]
[]
[UserObjects]
[./flowstress1]
type = HEVPRambergOsgoodHardening
yield_stress = 100
hardening_exponent = 0.1
reference_plastic_strain = 0.002
intvar_prop_name = ep_eqv1
[../]
[./flowstress2]
type = HEVPRambergOsgoodHardening
yield_stress = 100
hardening_exponent = 0.3
reference_plastic_strain = 0.002
intvar_prop_name = ep_eqv2
[../]
[./flowrate1]
type = HEVPFlowRatePowerLawJ2
reference_flow_rate = 0.0001
flow_rate_exponent = 50.0
flow_rate_tol = 1
strength_prop_name = flowstress1
[../]
[./flowrate2]
type = HEVPFlowRatePowerLawJ2
reference_flow_rate = 0.0001
flow_rate_exponent = 50.0
flow_rate_tol = 1
strength_prop_name = flowstress2
[../]
[./ep_eqv1]
type = HEVPEqvPlasticStrain
intvar_rate_prop_name = ep_eqv_rate1
[../]
[./ep_eqv_rate1]
type = HEVPEqvPlasticStrainRate
flow_rate_prop_name = flowrate1
[../]
[./ep_eqv2]
type = HEVPEqvPlasticStrain
intvar_rate_prop_name = ep_eqv_rate2
[../]
[./ep_eqv_rate2]
type = HEVPEqvPlasticStrainRate
flow_rate_prop_name = flowrate2
[../]
[]
[Materials]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[./viscop]
type = FiniteStrainHyperElasticViscoPlastic
block = 0
resid_abs_tol = 1e-18
resid_rel_tol = 1e-8
maxiters = 50
max_substep_iteration = 5
flow_rate_user_objects = 'flowrate1 flowrate2'
strength_user_objects = 'flowstress1 flowstress2'
internal_var_user_objects = 'ep_eqv1 ep_eqv2'
internal_var_rate_user_objects = 'ep_eqv_rate1 ep_eqv_rate2'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
C_ijkl = '2.8e5 1.2e5 1.2e5 2.8e5 1.2e5 2.8e5 0.8e5 0.8e5 0.8e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./peeq_soft]
type = ElementAverageValue
variable = peeq_soft
block = 'ANY_BLOCK_ID 0'
[../]
[./peeq_hard]
type = ElementAverageValue
variable = peeq_hard
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.02
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
dtmax = 10.0
nl_rel_tol = 1e-10
dtmin = 0.02
num_steps = 10
[]
[Outputs]
file_base = one_elem_multi
exodus = true
csv = false
[]
(modules/solid_mechanics/test/tests/auxkernels/principalstress.i)
[Mesh]
type = GeneratedMesh
elem_type = HEX8
dim = 3
nx = 1
ny = 1
nz = 1
xmin=0.0
xmax=1.0
ymin=0.0
ymax=1.0
zmin=0.0
zmax=1.0
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Materials]
[./fplastic]
type = FiniteStrainPlasticMaterial
block = 0
yield_stress='0. 445. 0.05 610. 0.1 680. 0.38 810. 0.95 920. 2. 950.'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
C_ijkl = '2.827e5 1.21e5 1.21e5 2.827e5 1.21e5 2.827e5 0.808e5 0.808e5 0.808e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./front]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 't'
[../]
[./right]
type = FunctionDirichletBC
variable = disp_y
boundary = right
function = '-0.5*t'
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_max]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_mid]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_min]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./stress_max]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = stress_max
scalar_type = MaxPrincipal
[../]
[./stress_mid]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = stress_mid
scalar_type = MidPrincipal
[../]
[./stress_min]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = stress_min
scalar_type = MinPrincipal
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
[../]
[./stress_max]
type = ElementAverageValue
variable = stress_max
[../]
[./stress_mid]
type = ElementAverageValue
variable = stress_mid
[../]
[./stress_min]
type = ElementAverageValue
variable = stress_min
[../]
[]
[Executioner]
type = Transient
dt=0.1
dtmin=0.1
dtmax=1
end_time=1.0
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/special/rotate.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[angles]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0 1.5707963'
[]
[stretch]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0.1 0.1'
[]
[move_y]
type = ParsedFunction
expression = 'y*cos(theta) - z * (1 + a)*sin(theta) - y'
symbol_names = 'a theta'
symbol_values = 'stretch angles'
[]
[move_z]
type = ParsedFunction
expression = 'y*sin(theta) + z*(1+a)*cos(theta) - z'
symbol_names = 'a theta'
symbol_values = 'stretch angles'
[]
[dts]
type = PiecewiseConstant
x = '0 1 2'
y = '0.1 0.001 0.001'
direction = 'LEFT_INCLUSIVE'
[]
[]
[BCs]
[fix]
type = DirichletBC
preset = true
value = 0.0
boundary = left
variable = disp_x
[]
[front_y]
type = FunctionDirichletBC
boundary = front
variable = disp_y
function = move_y
preset = true
[]
[back_y]
type = FunctionDirichletBC
boundary = back
variable = disp_y
function = move_y
preset = true
[]
[front_z]
type = FunctionDirichletBC
boundary = front
variable = disp_z
function = move_z
preset = true
[]
[back_z]
type = FunctionDirichletBC
boundary = back
variable = disp_z
function = move_z
preset = true
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[sxx]
type = ElementAverageValue
variable = stress_xx
[]
[syy]
type = ElementAverageValue
variable = stress_yy
[]
[szz]
type = ElementAverageValue
variable = stress_zz
[]
[syz]
type = ElementAverageValue
variable = stress_yz
[]
[sxz]
type = ElementAverageValue
variable = stress_xz
[]
[sxy]
type = ElementAverageValue
variable = stress_xy
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
start_time = 0.0
end_time = 2.0
[TimeStepper]
type = FunctionDT
function = dts
interpolate = False
[]
[]
[Outputs]
exodus = true
csv = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/hcp_single_crystal/update_method_hcp_no_substructure.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
nx = 2
ny = 2
nz = 2
elem_type = HEX8
[]
[AuxVariables]
[temperature]
initial_condition = 300
[]
[pk2]
order = CONSTANT
family = MONOMIAL
[]
[resolved_shear_stress_3]
order = CONSTANT
family = MONOMIAL
[]
[slip_resistance_3]
order = CONSTANT
family = MONOMIAL
[]
[substructure_density]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
incremental = true
add_variables = true
[]
[AuxKernels]
[pk2]
type = RankTwoAux
variable = pk2
rank_two_tensor = second_piola_kirchhoff_stress
index_j = 2
index_i = 2
execute_on = timestep_end
[]
[tau_3]
type = MaterialStdVectorAux
variable = resolved_shear_stress_3
property = applied_shear_stress
index = 3
execute_on = timestep_end
[]
[slip_resistance_3]
type = MaterialStdVectorAux
variable = slip_resistance_3
property = slip_resistance
index = 3
execute_on = timestep_end
[]
[substructure_density]
type = MaterialRealAux
variable = substructure_density
property = total_substructure_density
execute_on = timestep_end
[]
[]
[BCs]
[symmy]
type = DirichletBC
variable = disp_y
preset = true
boundary = bottom
value = 0
[]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = '0.001*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.622e5 9.18e4 6.88e4 1.622e5 6.88e4 1.805e5 4.67e4 4.67e4 4.67e4' #alpha Ti, Alankar et al. Acta Materialia 59 (2011) 7003-7009
fill_method = symmetric9
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityHCPDislocationSlipBeyerleinUpdate
number_slip_systems = 15
slip_sys_file_name = hcp_aprismatic_capyramidal_slip_sys.txt
unit_cell_dimension = '2.934e-7 2.934e-7 4.657e-7'
temperature = temperature
initial_forest_dislocation_density = 15.0e5
initial_substructure_density = 1.0 #artifically low for specific test
slip_system_modes = 2
number_slip_systems_per_mode = '3 12'
lattice_friction_per_mode = '100 200'
effective_shear_modulus_per_mode = '5e4 5e4'
burgers_vector_per_mode = '2.934e-7 6.586e-7' #Ti, in mm, https://materialsproject.org/materials/mp-46/
slip_generation_coefficient_per_mode = '1e5 2e7'
normalized_slip_activiation_energy_per_mode = '4e-3 3e-2'
slip_energy_proportionality_factor_per_mode = '300 100'
substructure_rate_coefficient_per_mode = '-355 -0.4' #artifical, non-physical values for testing purposes
applied_strain_rate = 0.001
gamma_o = 1.0e-3
Hall_Petch_like_constant_per_mode = '1 1'
grain_size = 20.0e-3 #20 microns
[]
[]
[Postprocessors]
[pk2]
type = ElementAverageValue
variable = pk2
[]
[tau_3]
type = ElementAverageValue
variable = resolved_shear_stress_3
[]
[slip_resistance_3]
type = ElementAverageValue
variable = slip_resistance_3
[]
[substructure_density]
type = ElementAverageValue
variable = substructure_density
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
petsc_options_value = ' asm 2 lu gmres 200'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.5
dtmin = 1.0e-2
dtmax = 10.0
end_time = 2.5
[]
[Outputs]
csv = true
[]
(modules/solid_mechanics/test/tests/poro/vol_expansion.i)
# Apply an increasing porepressure, with zero mechanical forces,
# and observe the corresponding volumetric expansion
#
# P = t
# With the Biot coefficient being 2.0, the effective stresses should be
# stress_xx = stress_yy = stress_zz = 2t
# With bulk modulus = 1 then should have
# vol_strain = strain_xx + strain_yy + strain_zz = 2t.
# I use a single element lying 0<=x<=1, 0<=y<=1 and 0<=z<=1, and
# fix the left, bottom and back boundaries appropriately,
# so at the point x=y=z=1, the displacements should be
# disp_x = disp_y = disp_z = 2t/3 (small strain physics is used)
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 1
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
block = 0
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./p]
[../]
[]
[BCs]
[./p]
type = FunctionDirichletBC
boundary = 'bottom top'
variable = p
function = t
[../]
[./xmin]
type = DirichletBC
boundary = left
variable = disp_x
value = 0
[../]
[./ymin]
type = DirichletBC
boundary = bottom
variable = disp_y
value = 0
[../]
[./zmin]
type = DirichletBC
boundary = back
variable = disp_z
value = 0
[../]
[]
[Kernels]
[./unimportant_p]
type = Diffusion
variable = p
[../]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[./poro_x]
type = PoroMechanicsCoupling
variable = disp_x
porepressure = p
component = 0
[../]
[./poro_y]
type = PoroMechanicsCoupling
variable = disp_y
porepressure = p
component = 1
[../]
[./poro_z]
type = PoroMechanicsCoupling
variable = disp_z
porepressure = p
component = 2
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[]
[Postprocessors]
[./corner_x]
type = PointValue
point = '1 1 1'
variable = disp_x
[../]
[./corner_y]
type = PointValue
point = '1 1 1'
variable = disp_y
[../]
[./corner_z]
type = PointValue
point = '1 1 1'
variable = disp_z
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
# bulk modulus = 1, poisson ratio = 0.2
C_ijkl = '0.5 0.75'
fill_method = symmetric_isotropic
[../]
[./strain]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./biot]
type = GenericConstantMaterial
prop_names = biot_coefficient
prop_values = 2.0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol'
petsc_options_value = 'gmres bjacobi 1E-10 1E-10 10 1E-15 1E-10'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
start_time = 0
dt = 0.1
end_time = 1
[]
[Outputs]
file_base = vol_expansion
exodus = true
[]
(modules/heat_transfer/test/tests/heat_conduction_patch/heat_conduction_patch.i)
#
# This problem is taken from the Abaqus verification manual:
# "1.5.8 Patch test for heat transfer elements"
#
# The temperature on the exterior nodes is 200x+100y+200z.
#
# This gives a constant flux at all Gauss points.
#
# In addition, the temperature at all nodes follows the same formula.
#
# Node x y z Temperature
# 1 1.00E+00 0.00E+00 1.00E+00 400
# 2 6.77E-01 3.05E-01 6.83E-01 302.5
# 3 3.20E-01 1.86E-01 6.43E-01 211.2
# 4 0.00E+00 0.00E+00 1.00E+00 200
# 5 1.00E+00 1.00E+00 1.00E+00 500
# 6 7.88E-01 6.93E-01 6.44E-01 355.7
# 7 1.65E-01 7.45E-01 7.02E-01 247.9
# 8 0.00E+00 1.00E+00 1.00E+00 300
# 9 1.00E+00 0.00E+00 0.00E+00 200
# 10 0.00E+00 0.00E+00 0.00E+00 0
# 11 8.26E-01 2.88E-01 2.88E-01 251.6
# 12 2.49E-01 3.42E-01 1.92E-01 122.4
# 13 2.73E-01 7.50E-01 2.30E-01 175.6
# 14 0.00E+00 1.00E+00 0.00E+00 100
# 15 8.50E-01 6.49E-01 2.63E-01 287.5
# 16 1.00E+00 1.00E+00 0.00E+00 300
[Mesh]#Comment
file = heat_conduction_patch.e
[] # Mesh
[Functions]
[./temps]
type = ParsedFunction
expression ='200*x+100*y+200*z'
[../]
[] # Functions
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
[../]
[] # Variables
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[] # Kernels
[BCs]
[./temps]
type = FunctionDirichletBC
variable = temp
boundary = 10
function = temps
[../]
[] # BCs
[Materials]
[./heat]
type = HeatConductionMaterial
block = 1
specific_heat = 0.116
thermal_conductivity = 4.85e-4
[../]
[] # Materials
[Executioner]
type = Steady
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_abs_tol = 1e-11
nl_rel_tol = 1e-10
l_max_its = 20
[] # Executioner
[Outputs]
exodus = true
[] # Output
(test/tests/postprocessors/avg_nodal_var_value/avg_nodal_var_value.i)
[Mesh]
file = square-2x2-nodeids.e
[]
[Variables]
active = 'u v'
[./u]
order = SECOND
family = LAGRANGE
[../]
[./v]
order = SECOND
family = LAGRANGE
[../]
[]
[Functions]
active = 'force_fn exact_fn left_bc'
[./force_fn]
type = ParsedFunction
expression = '1-x*x+2*t'
[../]
[./exact_fn]
type = ParsedFunction
expression = '(1-x*x)*t'
[../]
[./left_bc]
type = ParsedFunction
expression = t
[../]
[]
[Kernels]
active = '
time_u diff_u ffn_u
time_v diff_v'
[./time_u]
type = TimeDerivative
variable = u
[../]
[./diff_u]
type = Diffusion
variable = u
[../]
[./ffn_u]
type = BodyForce
variable = u
function = force_fn
[../]
[./time_v]
type = TimeDerivative
variable = v
[../]
[./diff_v]
type = Diffusion
variable = v
[../]
[]
[BCs]
active = 'all_u left_v right_v'
[./all_u]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = exact_fn
[../]
[./left_v]
type = FunctionDirichletBC
variable = v
boundary = '3'
function = left_bc
[../]
[./right_v]
type = DirichletBC
variable = v
boundary = '2'
value = 0
[../]
[]
[Postprocessors]
[./l2]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./node1]
type = AverageNodalVariableValue
variable = u
boundary = 10
[../]
[./node4]
type = AverageNodalVariableValue
variable = v
boundary = 13
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.1
start_time = 0
end_time = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = out_avg_nodal_var_value
exodus = true
[]
(modules/contact/test/tests/sliding_block/in_and_out/frictional_04_penalty.i)
# This is a benchmark test that checks constraint based frictional
# contact using the penalty method. In this test a sinusoidal
# displacement is applied in the horizontal direction to simulate
# a small block come in and out of contact as it slides down a larger block.
#
# The sinusoid is of the form 0.4sin(4t)+0.2 and a friction coefficient
# of 0.4 is used. The gold file is run on one processor and the benchmark
# case is run on a minimum of 4 processors to ensure no parallel variability
# in the contact pressure and penetration results. Further documentation can
# found in moose/modules/contact/doc/sliding_block/
#
[Mesh]
file = sliding_elastic_blocks_2d.e
patch_size = 80
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[penetration]
[]
[inc_slip_x]
[]
[inc_slip_y]
[]
[accum_slip_x]
[]
[accum_slip_y]
[]
[]
[Functions]
[vertical_movement]
type = ParsedFunction
expression = -t
[]
[horizontal_movement]
type = ParsedFunction
expression = -0.04*sin(4*t)+0.02
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
[]
[]
[AuxKernels]
[zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[]
[zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[]
[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
[]
[]
[Postprocessors]
[nonlinear_its]
type = NumNonlinearIterations
execute_on = timestep_end
[]
[penetration]
type = NodalVariableValue
variable = penetration
nodeid = 222
[]
[contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 222
[]
[]
[BCs]
[left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[]
[left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[right_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 4
function = horizontal_movement
[]
[right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[]
[]
[Materials]
[left]
type = ComputeIsotropicElasticityTensor
block = '1 2'
youngs_modulus = 1e6
poissons_ratio = 0.3
constant_on = SUBDOMAIN
[]
[left_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 20 101'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.1
end_time = 15
num_steps = 1000
l_tol = 1e-3
nl_rel_tol = 1e-10
nl_abs_tol = 1e-6
dtmin = 0.01
[Predictor]
type = SimplePredictor
scale = 1.0
[]
[]
[Outputs]
# csv = true
time_step_interval = 10
[out]
type = Exodus
elemental_as_nodal = true
[]
[console]
type = Console
max_rows = 5
[]
[]
[Contact]
[leftright]
secondary = 3
primary = 2
model = coulomb
penalty = 2e+6
friction_coefficient = 0.4
formulation = penalty
normal_smoothing_distance = 0.1
[]
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/euler_angles/euler_angle_conflict.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
type = GeneratedMesh
dim = 3
xmax = 4
nx = 4
elem_type = HEX8
[]
[AuxVariables]
[euler_angle_1]
order = CONSTANT
family = MONOMIAL
[]
[euler_angle_2]
order = CONSTANT
family = MONOMIAL
[]
[euler_angle_3]
order = CONSTANT
family = MONOMIAL
[]
# Euler angles aux variable to check the correctness of value assignments
[check_euler_angle_1]
order = CONSTANT
family = MONOMIAL
[]
[check_euler_angle_2]
order = CONSTANT
family = MONOMIAL
[]
[check_euler_angle_3]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
add_variables = true
generate_output = stress_zz
[]
[]
[]
[]
[AuxKernels]
[euler_angle_1]
type = FunctionAux
variable = euler_angle_1
function = '10*t'
[]
[euler_angle_2]
type = FunctionAux
variable = euler_angle_2
function = '20*t'
[]
[euler_angle_3]
type = FunctionAux
variable = euler_angle_3
function = '30*t'
[]
# output Euler angles material property to check correctness of value assignment
[mat_euler_angle_1]
type = MaterialRealVectorValueAux
variable = check_euler_angle_1
property = 'Euler_angles'
component = 0
[]
[mat_euler_angle_2]
type = MaterialRealVectorValueAux
variable = check_euler_angle_2
property = 'Euler_angles'
component = 1
[]
[mat_euler_angle_3]
type = MaterialRealVectorValueAux
variable = check_euler_angle_3
property = 'Euler_angles'
component = 2
[]
[]
[BCs]
[Periodic]
[all]
variable = 'disp_x'
auto_direction = 'z'
[]
[]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0
[]
[fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front'
function = '0.01*t'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensorCP
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
read_prop_user_object = prop_read
euler_angle_variables = 'euler_angle_1 euler_angle_2 euler_angle_3'
[]
[stress]
type = ComputeMultipleCrystalPlasticityStress
crystal_plasticity_models = 'trial_xtalpl'
tan_mod_type = exact
[]
[trial_xtalpl]
type = CrystalPlasticityKalidindiUpdate
number_slip_systems = 12
slip_sys_file_name = input_slip_sys.txt
[]
[]
[UserObjects]
[prop_read]
type = PropertyReadFile
prop_file_name = 'euler_ang_file.txt'
# Enter file data as prop#1, prop#2, .., prop#nprop
nprop = 3
read_type = element
[]
[]
[Postprocessors]
[check_euler_angle_1]
type = ElementAverageValue
variable = check_euler_angle_1
[]
[check_euler_angle_2]
type = ElementAverageValue
variable = check_euler_angle_2
[]
[check_euler_angle_3]
type = ElementAverageValue
variable = check_euler_angle_3
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu '
nl_abs_tol = 1e-10
nl_rel_tol = 1e-10
nl_abs_step_tol = 1e-10
dt = 0.1
dtmin = 0.01
end_time = 0.5
[]
[Outputs]
csv = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/planar_xy.i)
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks in the x-y plane. Each element block
# is a square. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far bottom boundary
# is ramped from 100 to 200 over one time unit. The temperature of the far top
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
# The heat flux across the gap at time = 1 is then:
#
# Flux = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors. These results
# are the same as for the unit 1-D gap heat transfer between two unit cubes.
[Mesh]
file = simple_2D.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_bottom]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_top]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-14
l_tol = 1e-3
l_max_its = 100
dt = 1e-1
end_time = 1.0
[]
[Postprocessors]
[./temp_bottom]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_top]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_bottom]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_top]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/phase_field_fracture/crack2d_no_split.i)
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = F
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./mech]
add_variables = true
strain = SMALL
additional_generate_output = 'stress_yy'
save_in = 'resid_x resid_y'
[../]
[../]
[../]
[]
[AuxVariables]
[./resid_x]
[../]
[./resid_y]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = top
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.04 1e-4'
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
property_name = L
expression = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
property_name = kappa_op
expression = 'gc_prop * l'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
[../]
[./damage_stress]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'local_fracture_energy'
decomposition_type = none
[../]
[./degradation]
type = DerivativeParsedMaterial
property_name = degradation
coupled_variables = 'c'
expression = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '0.0'
derivative_order = 2
[../]
[./local_fracture_energy]
type = DerivativeParsedMaterial
property_name = local_fracture_energy
coupled_variables = 'c'
material_property_names = 'gc_prop l'
expression = 'c^2 * gc_prop / 2 / l'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
coupled_variables = c
sum_materials = 'elastic_energy local_fracture_energy'
derivative_order = 2
property_name = F
[../]
[]
[Postprocessors]
[./resid_x]
type = NodalSum
variable = resid_x
boundary = 2
[../]
[./resid_y]
type = NodalSum
variable = resid_y
boundary = 2
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 preonly lu 1'
nl_rel_tol = 1e-8
l_max_its = 10
nl_max_its = 10
dt = 1e-4
dtmin = 1e-4
num_steps = 2
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/mechanical_constraint/glued_penalty.i)
[Mesh]
file = blocks_2d_nogap.e
[]
[GlobalParams]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./penetration]
[../]
[./inc_slip_x]
[../]
[./inc_slip_y]
[../]
[./accum_slip_x]
[../]
[./accum_slip_y]
[../]
[]
[Functions]
[./vertical_movement]
type = ParsedFunction
expression = -t
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
[../]
[]
[AuxKernels]
[./zeroslip_x]
type = ConstantAux
variable = inc_slip_x
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./zeroslip_y]
type = ConstantAux
variable = inc_slip_y
boundary = 3
execute_on = timestep_begin
value = 0.0
[../]
[./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
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = 4
#Initial gap is 0.01
value = -0.01
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 4
function = vertical_movement
[../]
[]
[Materials]
[./left]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e7
poissons_ratio = 0.3
[../]
[./right]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 1000
dt = 0.01
end_time = 0.10
num_steps = 1000
l_tol = 1e-6
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dtmin = 0.01
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[./console]
type = Console
max_rows = 5
[../]
[]
[Contact]
[./leftright]
primary = 2
secondary = 3
model = glued
formulation = penalty
penalty = 1e+7
[../]
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/planar3.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.25E-6*y*sin(t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = f
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = f
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./phi]
type = SolidMechanicsHardeningConstant
value = 0.9
[../]
[./psi]
type = SolidMechanicsHardeningConstant
value = 0.1
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulombMulti
cohesion = coh
friction_angle = phi
dilation_angle = psi
yield_function_tolerance = 1E-8
shift = 1E-8
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
deactivation_scheme = safe
max_NR_iterations = 3
min_stepsize = 1
max_stepsize_for_dumb = 1
debug_fspb = crash
debug_jac_at_stress = '10 5 2 5 11 -1 2 -1 12'
debug_jac_at_pm = '1 1 1 1 1 1'
debug_jac_at_intnl = 1
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6 1E-6 1E-6 1E-6 1E-6'
debug_intnl_change = 1E-6
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = planar3
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/contact/test/tests/mortar_dynamics/frictional-mortar-3d-dynamics-light-function.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[AuxVariables]
[mortar_tangent_x]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_y]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_z]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[friction_x_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_x
component = 0
boundary = 'top_bottom'
[]
[friction_y_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_y
component = 1
boundary = 'top_bottom'
[]
[friction_z_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_z
component = 2
boundary = 'top_bottom'
[]
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 1
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 1
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
uniform_refine = 0
[]
[Functions]
# x: Contact pressure
# y: Magnitude of tangential relative velocity
# z: Temperature (to be implemented)
[mu_function]
type = ParsedFunction
expression = '0.3 + 0.5 * 2.17^(-x/100) - 10.0 * y'
[]
[]
[Variables]
[mortar_normal_lm]
block = 'secondary_lower'
use_dual = true
scaling = 1e-3
[]
[mortar_tangential_lm]
block = 'secondary_lower'
use_dual = true
scaling = 1e-3
[]
[mortar_tangential_3d_lm]
block = 'secondary_lower'
use_dual = true
scaling = 1e-3
[]
[]
[Physics/SolidMechanics/Dynamic]
[all]
add_variables = true
hht_alpha = 0.0
newmark_beta = 0.25
newmark_gamma = 0.5
mass_damping_coefficient = 0.0
stiffness_damping_coefficient = 0.02
displacements = 'disp_x disp_y disp_z'
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
block = '1 2'
strain = FINITE
density = density
[]
[]
[Materials]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e4
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e5
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 20
secondary_boundary = 10
primary_subdomain = 4
secondary_subdomain = 3
lm_variable_normal = mortar_normal_lm
lm_variable_tangential_one = mortar_tangential_lm
lm_variable_tangential_two = mortar_tangential_3d_lm
secondary_variable = disp_x
disp_x = disp_x
disp_y = disp_y
[]
[]
[Constraints]
[friction]
type = ComputeDynamicFrictionalForceLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
friction_lm = mortar_tangential_lm
friction_lm_dir = mortar_tangential_3d_lm
c = 1e5
c_t = 1.0e5
newmark_beta = 0.25
newmark_gamma = 0.5
interpolate_normals = false
correct_edge_dropping = true
capture_tolerance = 1e-04
function_friction = mu_function
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
interpolate_normals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
interpolate_normals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_vel_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
interpolate_normals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
interpolate_normals = false
correct_edge_dropping = true
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
interpolate_normals = false
correct_edge_dropping = true
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
interpolate_normals = false
correct_edge_dropping = true
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_x
component = x
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
interpolate_normals = false
correct_edge_dropping = true
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_y
component = y
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
interpolate_normals = false
correct_edge_dropping = true
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_z
component = z
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
interpolate_normals = false
correct_edge_dropping = true
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back bottom_top bottom_bottom'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back bottom_top bottom_bottom'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back bottom_top bottom_bottom'
value = 0.0
[]
[topx]
type = FunctionDirichletBC
variable = disp_x
boundary = 'top_top'
function = '0.1*t'
[]
[topy]
type = DirichletBC
variable = disp_y
boundary = 'top_top'
value = 0.0
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-0.1*t'
[]
[]
[Executioner]
type = Transient
end_time = .04
dt = .02
dtmin = .001
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type'
petsc_options_value = ' lu NONZERO '
nl_rel_tol = 5e-13
nl_abs_tol = 5e-13
line_search = 'basic'
[TimeIntegrator]
type = NewmarkBeta
gamma = 0.5
beta = 0.25
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
csv = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'contact'
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_normal_lm
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[frictional-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_lm
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[frictional-pressure-3d]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_3d_lm
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[tangent_x]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_x
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[tangent_y]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_y
sort_by = 'id'
execute_on = TIMESTEP_END
[]
[]
(modules/solid_mechanics/test/tests/drucker_prager/small_deform3_native.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-1.35E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticDruckerPragerHyperbolic
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
smoother = 8
mc_interpolation_scheme = native
yield_function_tolerance = 1E-7
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-13
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3_native
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/smeared_cracking/cracking_power.i)
#
# Simple test of power law softening law for smeared cracking.
# Upon reaching the failure stress in the x direction, the
# softening model abruptly reduces the stress to a fraction
# of its original value, and re-loading occurs at a reduced
# stiffness. This is repeated multiple times.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./displ]
type = PiecewiseLinear
x = '0 1 2 3 4'
y = '0 1 0 -1 0'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[../]
[]
[BCs]
[./pull]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = displ
[../]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.8e7
poissons_ratio = 0
[../]
[./elastic_stress]
type = ComputeSmearedCrackingStress
cracking_stress = 1.68e6
cracked_elasticity_type = FULL
softening_models = power_law_softening
[../]
[./power_law_softening]
type = PowerLawSoftening
stiffness_reduction = 0.3333
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type'
petsc_options_value = '101 asm lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-5
start_time = 0.0
end_time = 1.0
dt = 0.01
[]
[Outputs]
exodus = true
[]
(modules/xfem/test/tests/moment_fitting/diffusion_moment_fitting_four_points.i)
# Test for a diffusion problem which uses four points moment_fitting approach.
# See this paper (https://doi.org/10.1007/s00466-018-1544-2) for more details about moment_fitting approach.
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
ny = 6
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[XFEM]
geometric_cut_userobjects = 'line_seg_cut_uo'
qrule = moment_fitting
output_cut_plane = true
[]
[UserObjects]
[./line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '0.5 1.0 0.5 0.5'
time_start_cut = 0.0
time_end_cut = 0.0
[../]
[]
[Variables]
[./u]
[../]
[]
[Functions]
[./u_left]
type = PiecewiseLinear
x = '0 2'
y = '0 0.1'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
# Define boundary conditions
[./left_u]
type = FunctionDirichletBC
variable = u
boundary = 3
function = u_left
[../]
[./right_u]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
line_search = 'none'
l_tol = 1e-3
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
dt = 1.0
end_time = 2.0
[]
[Outputs]
time_step_interval = 1
execute_on = timestep_end
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(test/tests/multiapps/restart_multilevel/parent.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
ymin = 0
xmax = 1
ymax = 1
nx = 10
ny = 10
[]
[Functions]
[v_fn]
type = ParsedFunction
expression = t*x
[]
[ffn]
type = ParsedFunction
expression = x
[]
[]
[AuxVariables]
[v]
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[td]
type = TimeDerivative
variable = u
[]
[ufn]
type = BodyForce
variable = u
function = ffn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = v_fn
[]
[]
[Executioner]
type = Transient
num_steps = 5
dt = 0.1
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
checkpoint = true
[]
[MultiApps]
[sub_app]
app_type = MooseTestApp
type = TransientMultiApp
input_files = 'sub.i'
execute_on = timestep_end
positions = '0 -1 0'
[]
[]
[Transfers]
[from_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub_app
source_variable = u
variable = v
[]
[]
(modules/solid_mechanics/test/tests/finite_strain_elastic_anisotropy/3d_bar_orthotropic.i)
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 2
ymin = 0
ymax = 2
zmin = 0
zmax = 10
nx = 6
ny = 2
nz = 2
elem_type = HEX8
[]
[corner]
type = ExtraNodesetGenerator
new_boundary = 101
coord = '0 0 0'
input = generated_mesh
[]
[side]
type = ExtraNodesetGenerator
new_boundary = 102
coord = '2 0 0'
input = corner
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
add_variables = true
use_finite_deform_jacobian = true
volumetric_locking_correction = false
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_xz'
[]
[]
[Materials]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[elasticity_tensor]
type = ComputeElasticityTensor
fill_method = orthotropic
C_ijkl = '2.0e5 2.0e5 2.0e5 0.71428571e5 0.71428571e5 0.71428571e5 0.4 0.4 0.4 0.4 0.4 0.4' # Isotropic
[]
[]
[BCs]
[fix_corner_x]
type = DirichletBC
variable = disp_x
boundary = 101
value = 0
[]
[fix_corner_y]
type = DirichletBC
variable = disp_y
boundary = 101
value = 0
[]
[fix_side_y]
type = DirichletBC
variable = disp_y
boundary = 102
value = 0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[move_z]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = 't'
[]
[move_y]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 't*1.4'
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-12
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
dt = 0.4
dtmin = 0.4
num_steps = 1
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(test/tests/time_integrators/multiple-integrators/test_ti_split.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Problem]
nl_sys_names = 'nl0 nl1'
[]
[Variables]
[u]
solver_sys = 'nl0'
[]
[v]
solver_sys = 'nl0'
[]
[w]
solver_sys = 'nl1'
[]
[]
[Kernels]
[timeu]
type = TimeDerivative
variable = u
[]
[timev]
type = TimeDerivative
variable = v
[]
[timew]
type = TimeDerivative
variable = w
[]
[diffu]
type = Diffusion
variable = u
[]
[diffv]
type = Diffusion
variable = v
[]
[diffw]
type = Diffusion
variable = w
[]
[forceu]
type = BodyForce
variable = u
function = force
[]
[forcev]
type = BodyForce
variable = v
function = force
[]
[forcew]
type = BodyForce
variable = w
function = force
[]
[]
[Functions]
[exact]
type = ParsedFunction
expression = 't^3*x*y'
[]
[force]
type = ParsedFunction
expression = '3*x*y*t^2'
[]
[]
[BCs]
[allu]
type = FunctionDirichletBC
variable = u
function = exact
boundary = 'left right top bottom'
[]
[allv]
type = FunctionDirichletBC
variable = v
function = exact
boundary = 'left right top bottom'
[]
[allw]
type = FunctionDirichletBC
variable = w
function = exact
boundary = 'left right top bottom'
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'hypre'
dt = 1
end_time = 3
[TimeIntegrators]
[cn]
type = CrankNicolson
variables = 'u'
[]
[ie]
type = ImplicitEuler
variables = 'v'
[]
[cn2]
type = CrankNicolson
variables = 'w'
[]
[]
[]
[Postprocessors]
[L2u]
type = ElementL2FunctorError
exact = exact
approximate = u
[]
[L2v]
type = ElementL2FunctorError
exact = exact
approximate = v
[]
[L2w]
type = ElementL2FunctorError
exact = exact
approximate = w
[]
[]
[Outputs]
csv = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_it_plot_test.i)
#
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks containing one element each. Each
# element is a unit cube. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far left boundary
# is ramped from 100 to 200 over one time unit, and then held fixed for an additional
# time unit. The temperature of the far right boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
#
# The heat flux across the gap at time = 2 is then:
#
# Flux(2) = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors
#
[Mesh]
file = gap_heat_transfer_htonly_test.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 3
secondary = 2
emissivity_primary = 0
emissivity_secondary = 0
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '1.0'
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_abs_tol = 1e-5
nl_rel_tol = 1e-12
l_tol = 1e-10
l_max_its = 100
start_time = 0.0
dt = 1e-1
end_time = 2.0
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
[Outputs]
file_base = out_it_plot
[./exodus]
type = Exodus
execute_on = 'initial timestep_end nonlinear'
nonlinear_residual_dt_divisor = 100
[../]
[]
(modules/solid_mechanics/test/tests/stress_recovery/patch/patch_finite_stress.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
elem_type = QUAD4
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[]
[AuxVariables]
[stress_xx]
order = FIRST
family = MONOMIAL
[]
[stress_yy]
order = FIRST
family = MONOMIAL
[]
[stress_xx_recovered]
order = FIRST
family = LAGRANGE
[]
[stress_yy_recovered]
order = FIRST
family = LAGRANGE
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[]
[stress_xx_recovered]
type = NodalPatchRecoveryAux
variable = stress_xx_recovered
nodal_patch_recovery_uo = stress_xx_patch
execute_on = 'TIMESTEP_END'
[]
[stress_yy_recovered]
type = NodalPatchRecoveryAux
variable = stress_yy_recovered
nodal_patch_recovery_uo = stress_yy_patch
execute_on = 'TIMESTEP_END'
[]
[]
[Kernels]
[solid_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[]
[solid_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[]
[]
[Materials]
[strain]
type = ComputeFiniteStrain
[]
[Cijkl]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 2.1e+5
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[]
[BCs]
[top_xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = 'top'
function = 0
[]
[top_ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = t
[]
[bottom_xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = 'bottom'
function = 0
[]
[bottom_ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'bottom'
function = 0
[]
[]
[UserObjects]
[stress_xx_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '0 0'
execute_on = 'TIMESTEP_END'
[]
[stress_yy_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '1 1'
execute_on = 'TIMESTEP_END'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
ksp_norm = default
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-ksp_type -pc_type'
petsc_options_value = 'preonly lu'
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
l_max_its = 100
nl_max_its = 30
dt = 0.01
dtmin = 1e-11
start_time = 0
end_time = 0.05
[]
[Outputs]
exodus = true
print_linear_residuals = false
[]
(modules/solid_mechanics/test/tests/multi/three_surface07.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 1.5E-6m in y direction and 0.8E-6 in z direction.
# trial stress_yy = 1.5 and stress_zz = 0.8
#
# Then SimpleTester1 and SimpleTester2 should activate and the algorithm will return to
# the corner stress_yy=1.0, stress_zz=0.5
# internal1 should be 0.2, and internal2 should be 0.3
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1.5E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.8E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface07
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/predictors/simple/predictor_skip_old_test.i)
# The purpose of this test is to test the simple predictor. This is a very
# small, monotonically loaded block of material. If things are working right,
# the predictor should come very close to exactly nailing the solution on steps
# after the first step.
#This test checks to see that the predictor is skipped in the last step.
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 1
nx = 3
ny = 3
[]
[Functions]
[ramp1]
type = ParsedFunction
expression = 't'
[]
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[diff_u]
type = Diffusion
variable = u
[]
[]
[BCs]
[bot]
type = DirichletBC
variable = u
boundary = bottom
value = 0.0
[]
[ss2_x]
type = FunctionDirichletBC
variable = u
boundary = top
function = ramp1
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-14
start_time = 0.0
dt = 0.5
end_time = 1.5
[Predictor]
type = SimplePredictor
scale = 1.0
skip_times_old = '1.0'
[]
[]
[Postprocessors]
[final_residual]
type = Residual
residual_type = FINAL
[]
[initial_residual]
type = Residual
residual_type = INITIAL
[]
[]
[Outputs]
csv = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/stagnation/stagnation.i)
[GlobalParams]
gravity = '0 0 0'
[]
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0
xmax = 2.0
ymin = 0
ymax = 2.0
nx = 20
ny = 20
elem_type = QUAD9
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
solve_type = Newton
[../]
[]
[Executioner]
type = Transient
dt = 1.0
dtmin = 1.e-6
num_steps = 5
l_max_its = 100
nl_max_its = 15
nl_rel_tol = 1.e-9
petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -sub_pc_factor_shift_type -ksp_gmres_restart'
petsc_options_value = 'asm 2 lu NONZERO 1000'
line_search = none
[]
[Variables]
[./vel_x]
family = LAGRANGE
order = SECOND
[../]
[./vel_y]
family = LAGRANGE
order = SECOND
[../]
[./p]
family = LAGRANGE
order = FIRST
[../]
[]
[BCs]
[./u_in]
type = FunctionDirichletBC
boundary = 'top'
variable = vel_x
function = vel_x_inlet
[../]
[./v_in]
type = FunctionDirichletBC
boundary = 'top'
variable = vel_y
function = vel_y_inlet
[../]
[./vel_x_no_slip]
type = DirichletBC
boundary = 'left bottom'
variable = vel_x
value = 0
[../]
[./vel_y_no_slip]
type = DirichletBC
boundary = 'bottom'
variable = vel_y
value = 0
[../]
# Note: setting INSMomentumNoBCBC on the outlet boundary causes the
# matrix to be singular. The natural BC, on the other hand, is
# sufficient to specify the value of the pressure without requiring
# a pressure pin.
[]
[Functions]
[./vel_x_inlet]
type = ParsedFunction
expression = 'k*x'
symbol_names = 'k'
symbol_values = '1'
[../]
[./vel_y_inlet]
type = ParsedFunction
expression = '-k*y'
symbol_names = 'k'
symbol_values = '1'
[../]
[]
[Kernels]
[./x_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_x
[../]
[./y_momentum_time]
type = INSMomentumTimeDerivative
variable = vel_y
[../]
[./mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[../]
[./x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[../]
[./y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[../]
[]
[Materials]
[./const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '1 .01389' # 2/144
[../]
[]
[Outputs]
exodus = true
[./out]
type = CSV
execute_on = 'final'
[../]
[]
[VectorPostprocessors]
[./nodal_sample]
# Pick off the wall pressure values.
type = NodalValueSampler
variable = p
boundary = 'bottom'
sort_by = x
[../]
[]
(modules/heat_transfer/tutorials/introduction/therm_step03a.i)
#
# Single block thermal input with time derivative and volumetric heat source terms
# https://mooseframework.inl.gov/modules/heat_transfer/tutorials/introduction/therm_step03.html
#
[Mesh]
[generated]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 2
ymax = 1
[]
[]
[Variables]
[T]
initial_condition = 300.0
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = T
[]
[time_derivative]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = HeatSource
variable = T
value = 1e4
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 45.0
specific_heat = 0.5
[]
[density]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = 8000.0
[]
[]
[BCs]
[t_left]
type = DirichletBC
variable = T
value = 300
boundary = 'left'
[]
[t_right]
type = FunctionDirichletBC
variable = T
function = '300+5*t'
boundary = 'right'
[]
[]
[Executioner]
type = Transient
end_time = 5
dt = 1
[]
[VectorPostprocessors]
[t_sampler]
type = LineValueSampler
variable = T
start_point = '0 0.5 0'
end_point = '2 0.5 0'
num_points = 20
sort_by = x
[]
[]
[Outputs]
exodus = true
[csv]
type = CSV
file_base = therm_step03a_out
execute_on = final
[]
[]
(modules/xfem/test/tests/solid_mechanics_basic/square_branch_quad_2d.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = QUAD4
[]
[UserObjects]
[./line_seg_cut_uo0]
type = LineSegmentCutUserObject
cut_data = '-1.0000e-10 6.6340e-01 6.6340e-01 -1.0000e-10'
time_start_cut = 0.0
time_end_cut = 1.0
[../]
[./line_seg_cut_uo1]
type = LineSegmentCutUserObject
cut_data = '3.3120e-01 3.3200e-01 1.0001e+00 3.3200e-01'
time_start_cut = 1.0
time_end_cut = 2.0
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = SMALL
planar_formulation = PLANE_STRAIN
add_variables = true
[../]
[]
[Functions]
[./right_disp_x]
type = PiecewiseLinear
x = '0 1.0 2.0 3.0'
y = '0 0.005 0.01 0.01'
[../]
[./top_disp_y]
type = PiecewiseLinear
x = '0 1.0 2.0 3.0'
y = '0 0.005 0.01 0.01'
[../]
[]
[BCs]
[./right_x]
type = FunctionDirichletBC
boundary = 1
variable = disp_x
function = right_disp_x
[../]
[./top_y]
type = FunctionDirichletBC
boundary = 2
variable = disp_y
function = top_disp_y
[../]
[./bottom_y]
type = DirichletBC
boundary = 0
variable = disp_y
value = 0.0
[../]
[./left_x]
type = DirichletBC
boundary = 3
variable = disp_x
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 8'
line_search = 'none'
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-16
nl_abs_tol = 1e-10
# time control
start_time = 0.0
dt = 1.0
end_time = 2.2
num_steps = 5000
[]
[Outputs]
file_base = square_branch_quad_2d_out
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/porous_flow/test/tests/actions/block_restricted.i)
PorousFlowDictatorName = 'dictator'
[GlobalParams]
time_unit = days
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = false
[]
[Problem]
kernel_coverage_check = false
material_coverage_check = false
[]
[Mesh]
active_block_names = 'BaseMesh Box1'
[BaseMesh]
type = GeneratedMeshGenerator
subdomain_name = 'BaseMesh'
elem_type = "TET10"
dim = 3
nx = 6
ny = 6
nz = 2
xmin = -10
xmax = +10
ymin = -10
ymax = +10
zmin = -2
zmax = +2
[]
[Box1]
type = SubdomainBoundingBoxGenerator
input = "BaseMesh"
block_id = 1
block_name = "Box1"
location = "INSIDE"
bottom_left = "-3.3 -3.3 +2"
top_right = "+3.3 +3.3 0"
[]
[Box1Boundary]
type = SideSetsBetweenSubdomainsGenerator
input = Box1
primary_block = 'BaseMesh'
paired_block = 'Box1'
new_boundary = 'Box1Boundary'
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
incremental = true
block = ${Mesh/active_block_names}
[]
[]
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
block = 'BaseMesh'
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
block = 'BaseMesh'
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
block = 'BaseMesh'
[]
[]
[PorousFlowFullySaturated]
coupling_type = HydroMechanical
porepressure = porepressure
biot_coefficient = 1
fp = simple_fluid
stabilization = FULL
gravity = '0 0 0'
add_darcy_aux = false
dictator_name = ${PorousFlowDictatorName}
block = 'BaseMesh'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[porepressure]
order = SECOND
family = LAGRANGE
scaling = 1e-5
block = 'BaseMesh'
[]
[]
[ICs]
[porepressure]
type = FunctionIC
variable = porepressure
function = '2'
block = 'BaseMesh'
[]
[]
[BCs]
[fix_x]
type = DirichletBC
variable = disp_x
boundary = 'left right'
value = 0.0
[]
[fix_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom top'
value = 0.0
[]
[fix_z]
type = DirichletBC
variable = disp_z
boundary = 'back'
value = 0.0
[]
[porepressure_fix]
type = DirichletBC
variable = porepressure
boundary = 'left right bottom top'
value = 2.0
[]
[porepressure_Box1Boundary]
type = FunctionDirichletBC
variable = porepressure
boundary = 'Box1Boundary'
function = porepressure_at_Box1Boundary
[]
[]
[Functions]
[porepressure_at_Box1Boundary]
type = ParsedFunction
expression = '2 + max(0, min(1, t-0.25))'
[]
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2E3
density0 = 1000
thermal_expansion = 0
viscosity = 9.0E-10
[]
[]
[Materials]
[porosity_bulk]
type = PorousFlowPorosityConst
block = ${Mesh/active_block_names}
porosity = 0.15
PorousFlowDictator = ${PorousFlowDictatorName}
[]
[undrained_density_0]
type = GenericConstantMaterial
block = ${Mesh/active_block_names}
prop_names = density
prop_values = 2500
[]
[BaseMesh_permeability_bulk]
type = PorousFlowPermeabilityConst
block = 'BaseMesh'
permeability = '1e-5 0 0 0 1e-5 0 0 0 1e-5'
PorousFlowDictator = ${PorousFlowDictatorName}
[]
[BaseMesh_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'BaseMesh'
youngs_modulus = 2500
poissons_ratio = 0.15
[]
[Box1_permeability_bulk]
type = PorousFlowPermeabilityConst
block = 'Box1'
permeability = '1e-5 0 0 0 1e-5 0 0 0 1e-5'
PorousFlowDictator = ${PorousFlowDictatorName}
[]
[Box1_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'Box1'
youngs_modulus = 2500
poissons_ratio = 0.15
[]
[stress]
type = ComputeMultipleInelasticStress
inelastic_models = ''
perform_finite_strain_rotations = false
tangent_operator = 'nonlinear'
block = ${Mesh/active_block_names}
[]
[]
[Preconditioning]
[.\SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_converged_reason'
# best overall
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
line_search = none
nl_abs_tol = 1e-4
nl_rel_tol = 1e-6
l_max_its = 20
nl_max_its = 8
start_time = 0.0
end_time = 0.5
[TimeSteppers]
[ConstantDT1]
type = ConstantDT
dt = 0.25
[]
[]
[Quadrature]
type = SIMPSON
order = SECOND
[]
[]
[Outputs]
perf_graph = true
exodus = true
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test4tt.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test4.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.1
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.1
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-10
l_max_its = 10
start_time = 0.0
dt = 0.0125
end_time = 1.0
[]
[Outputs]
file_base = pl_test4tt_out
exodus = true
[]
(modules/solid_mechanics/test/tests/finite_strain_tensor_mechanics_tests/finite_strain_patch.i)
# Patch Test
# This test is designed to compute constant xx, yy, zz, xy, yz, and zx
# stress on a set of irregular hexes. The mesh is composed of one
# block with seven elements. The elements form a unit cube with one
# internal element. There is a nodeset for each exterior node.
# The cube is displaced by 1e-6 units in x, 2e-6 in y, and 3e-6 in z.
# The faces are sheared as well (1e-6, 2e-6, and 3e-6 for xy, yz, and
# zx). This gives a uniform strain/stress state for all six unique
# tensor components.
# With Young's modulus at 1e6 and Poisson's ratio at 0, the shear
# modulus is 5e5 (G=E/2/(1+nu)). Therefore,
#
# stress xx = 1e6 * 1e-6 = 1
# stress yy = 1e6 * 2e-6 = 2
# stress zz = 1e6 * 3e-6 = 3
# stress xy = 2 * 5e5 * 1e-6 / 2 = 0.5
# (2 * G * gamma_xy / 2 = 2 * G * epsilon_xy)
# stress yz = 2 * 5e5 * 2e-6 / 2 = 1
# stress zx = 2 * 5e5 * 3e-6 / 2 = 1.5
[Mesh]
# Comment
# Mesh
file = patch_mesh.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
# Functions
[./rampConstant1]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 1e-6
[../]
[./rampConstant2]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 2e-6
[../]
[./rampConstant3]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 3e-6
[../]
[./rampConstant4]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 4e-6
[../]
[./rampConstant6]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 6e-6
[../]
[]
[Variables]
# Variables
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
# AuxVariables
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[SolidMechanics]
use_displaced_mesh = true
[../]
[]
[AuxKernels]
# AuxKernels
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[]
[BCs]
# BCs
[./node1_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./node1_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1
function = rampConstant2
[../]
[./node1_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 1
function = rampConstant3
[../]
[./node2_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 2
function = rampConstant1
[../]
[./node2_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = rampConstant2
[../]
[./node2_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 2
function = rampConstant6
[../]
[./node3_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 3
function = rampConstant1
[../]
[./node3_y]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[../]
[./node3_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 3
function = rampConstant3
[../]
[./node4_x]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[../]
[./node4_y]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[../]
[./node4_z]
type = DirichletBC
variable = disp_z
boundary = 4
value = 0.0
[../]
[./node5_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 5
function = rampConstant1
[../]
[./node5_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = rampConstant4
[../]
[./node5_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 5
function = rampConstant3
[../]
[./node6_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 6
function = rampConstant2
[../]
[./node6_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 6
function = rampConstant4
[../]
[./node6_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 6
function = rampConstant6
[../]
[./node7_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 7
function = rampConstant2
[../]
[./node7_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 7
function = rampConstant2
[../]
[./node7_z]
type = FunctionDirichletBC
variable = disp_z
boundary = 7
function = rampConstant3
[../]
[./node8_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 8
function = rampConstant1
[../]
[./node8_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 8
function = rampConstant2
[../]
[./node8_z]
type = DirichletBC
variable = disp_z
boundary = 8
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = '1 2 3 4 5 6 7'
C_ijkl = '1.0e6 0.0 0.0 1.0e6 0.0 1.0e6 0.5e6 0.5e6 0.5e6'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = '1 2 3 4 5 6 7'
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = '1 2 3 4 5 6 7'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
# Executioner
type = Transient
solve_type = 'NEWTON'
nl_abs_tol = 1e-10
l_max_its = 20
start_time = 0.0
dt = 1.0
num_steps = 2
petsc_options_iname = -pc_type
petsc_options_value = lu
end_time = 2.0
[]
[Outputs]
exodus = true
[] # Output
(modules/combined/test/tests/phase_field_fracture/crack2d_aniso.i)
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 40
ny = 20
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./All]
add_variables = true
strain = SMALL
additional_generate_output = 'strain_yy stress_yy'
planar_formulation = PLANE_STRAIN
[../]
[../]
[../]
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = F
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[./off_disp]
type = AllenCahnElasticEnergyOffDiag
variable = c
displacements = 'disp_x disp_y'
mob_name = L
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.05 1e-6'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '127.0 70.8 70.8 127.0 70.8 127.0 73.55 73.55 73.55'
fill_method = symmetric9
euler_angle_1 = 30
euler_angle_2 = 0
euler_angle_3 = 0
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
property_name = L
expression = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
property_name = kappa_op
expression = 'gc_prop * l'
[../]
[./damage_stress]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'local_fracture_energy'
decomposition_type = stress_spectral
use_current_history_variable = true
[../]
[./degradation]
type = DerivativeParsedMaterial
property_name = degradation
coupled_variables = 'c'
expression = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '1.0e-6'
derivative_order = 2
[../]
[./local_fracture_energy]
type = DerivativeParsedMaterial
property_name = local_fracture_energy
coupled_variables = 'c'
material_property_names = 'gc_prop l'
expression = 'c^2 * gc_prop / 2 / l'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
coupled_variables = c
sum_materials = 'elastic_energy local_fracture_energy'
derivative_order = 2
property_name = F
[../]
[]
[Postprocessors]
[./av_stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./av_strain_yy]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solving_package'
petsc_options_value = 'lu superlu_dist'
nl_rel_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 5e-5
num_steps = 2
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/small_deform3.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0.25E-6*y*sin(t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 50
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningExponential
value_0 = 0
value_residual = 0.8726646 # 50deg
rate = 3000.0
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 4
mc_edge_smoother = 20
yield_function_tolerance = 1E-8
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 30
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/drucker_prager/small_deform3_lode_zero.i)
# apply repeated stretches in x z directions, and smaller stretches along the y direction,
# so that sigma_I = sigma_II,
# which means that lode angle = 30deg.
# The allows yield surface in meridional plane to be mapped out
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '1E-6*x*t'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '-1.7E-6*y*t'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./mc_int]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./mc_int_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_internal_parameter
variable = mc_int
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./internal]
type = PointValue
point = '0 0 0'
variable = mc_int
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 35
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 5
convert_to_radians = true
[../]
[./mc]
type = SolidMechanicsPlasticDruckerPragerHyperbolic
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
smoother = 8
mc_interpolation_scheme = lode_zero
yield_function_tolerance = 1E-7
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-13
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 10
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform3_lode_zero
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/porous_flow/test/tests/energy_conservation/heat03_rz.i)
# The sample is a single unit element in RZ coordinates
# A constant velocity is applied to the outer boundary: disp_r = -0.01*t.
# There is no fluid flow or heat flow.
# Heat energy conservation is checked.
# Mass conservation is checked
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmin = 1
xmax = 2
ymin = -0.5
ymax = 0.5
coord_type = RZ
[]
[GlobalParams]
displacements = 'disp_r disp_z'
PorousFlowDictator = dictator
block = 0
biot_coefficient = 0.3
[]
[Variables]
[disp_r]
[]
[disp_z]
[]
[pp]
initial_condition = 0.1
[]
[temp]
initial_condition = 10
[]
[]
[BCs]
[plane_strain]
type = DirichletBC
variable = disp_z
value = 0
boundary = 'bottom top'
[]
[rmin_fixed]
type = DirichletBC
variable = disp_r
value = 0
boundary = left
[]
[contract]
type = FunctionDirichletBC
variable = disp_r
function = -0.01*t
boundary = right
[]
[]
[PorousFlowFullySaturated]
coupling_type = ThermoHydroMechanical
porepressure = pp
temperature = temp
fp = simple_fluid
[]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 0.5
density0 = 1
viscosity = 1
thermal_expansion = 0
cv = 1.3
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '1 1.5'
# bulk modulus is lambda + 2*mu/3 = 1 + 2*1.5/3 = 2
fill_method = symmetric_isotropic
[]
[strain]
type = ComputeAxisymmetricRZSmallStrain
[]
[stress]
type = ComputeLinearElasticStress
[]
[porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[]
[rock_heat]
type = PorousFlowMatrixInternalEnergy
specific_heat_capacity = 2.2
density = 0.5
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '0.5 0 0 0 0.5 0 0 0 0.5'
[]
[thermal_cond]
type = PorousFlowThermalConductivityIdeal
dry_thermal_conductivity = '1 0 0 0 1 0 0 0 1'
[]
[]
[Postprocessors]
[p0]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '1 0 0'
variable = pp
[]
[t0]
type = PointValue
outputs = 'console csv'
execute_on = 'initial timestep_end'
point = '1 0 0'
variable = temp
[]
[rdisp]
type = PointValue
outputs = 'csv console'
point = '2 0 0'
use_displaced_mesh = false
variable = disp_r
[]
[fluid_mass]
type = PorousFlowFluidMass
fluid_component = 0
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[total_heat]
type = PorousFlowHeatEnergy
phase = 0
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[rock_heat]
type = PorousFlowHeatEnergy
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[fluid_heat]
type = PorousFlowHeatEnergy
include_porous_skeleton = false
phase = 0
execute_on = 'initial timestep_end'
outputs = 'console csv'
[]
[]
[Preconditioning]
[andy]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = Newton
dt = 2
end_time = 10
[]
[Outputs]
execute_on = 'initial timestep_end'
[csv]
type = CSV
[]
[]
(modules/solid_mechanics/test/tests/umat/print/print_shear_defgrad.i)
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[tdisp]
type = ParsedFunction
expression = '0.025 * t'
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = 0
xmax = 1
ymin = 0
ymax = 1
zmin = 0
zmax = 1
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
[]
[]
[BCs]
[bottom_x]
type = DirichletBC
variable = disp_x
boundary = bottom
value = 0
[]
[bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0
[]
[top_y]
type = DirichletBC
variable = disp_y
boundary = top
value = 0
[]
[top_z]
type = DirichletBC
variable = disp_z
boundary = top
value = 0
[]
[tdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = top
function = tdisp
[]
[]
[Materials]
[umat]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_print'
num_state_vars = 0
use_one_based_indexing = true
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
end_time = 20
dt = 10.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/static_deformations/layered_cosserat_03.i)
# apply deformations and observe the moment-stresses
# with
# young = 0.7
# poisson = 0.2
# layer_thickness = 0.1
# joint_normal_stiffness = 0.25
# joint_shear_stiffness = 0.2
# then
# a0000 = 0.730681
# a0011 = 0.18267
# a2222 = 0.0244221
# a0022 = 0.006055
# a0101 = 0.291667
# a66 = 0.018717
# a77 = 0.310383
# b0101 = 0.000534
# b0110 = -0.000107
# and with
# wc_x = x + 2*y + 3*z
# wc_y = -1.1*x - 2.2*y - 3.3*z
# then
# curvature_xy = 2
# curvature_yx = -1.1
# and all others are either zero at (x,y,z)=(0,0,0) or unimportant for layered Cosserat
# so that
# m_xy = b0101*(2) + b0110*(-1.1) = 0.00118
# m_yx = b0110*2 + b0101*(-1.1) = -0.000801
# and all others zero (at (x,y,z)=(0,0,0))
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -1
xmax = 1
ymin = -1
ymax = 1
zmin = -1
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./wc_x]
[../]
[./wc_y]
[../]
[]
[Kernels]
[./cx_elastic]
type = CosseratStressDivergenceTensors
variable = disp_x
component = 0
[../]
[./cy_elastic]
type = CosseratStressDivergenceTensors
variable = disp_y
component = 1
[../]
[./cz_elastic]
type = CosseratStressDivergenceTensors
variable = disp_z
component = 2
[../]
[./x_couple]
type = StressDivergenceTensors
variable = wc_x
displacements = 'wc_x wc_y wc_z'
component = 0
base_name = couple
[../]
[./y_couple]
type = StressDivergenceTensors
variable = wc_y
displacements = 'wc_x wc_y wc_z'
component = 1
base_name = couple
[../]
[./x_moment]
type = MomentBalancing
variable = wc_x
component = 0
[../]
[./y_moment]
type = MomentBalancing
variable = wc_y
component = 1
[../]
[]
[BCs]
# zmin is called back
# zmax is called front
# ymin is called bottom
# ymax is called top
# xmin is called left
# xmax is called right
[./wc_x]
type = FunctionDirichletBC
variable = wc_x
boundary = 'left right'
function = 'x+2*y+3*z'
[../]
[./wc_y]
type = FunctionDirichletBC
variable = wc_y
boundary = 'left right'
function = '-1.1*x-2.2*y-3.3*z'
[../]
[]
[AuxVariables]
[./wc_z]
[../]
[./stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_xz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_yz]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zx]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zy]
family = MONOMIAL
order = CONSTANT
[../]
[./couple_stress_zz]
family = MONOMIAL
order = CONSTANT
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yx
index_i = 1
index_j = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zx
index_i = 2
index_j = 0
[../]
[./stress_zy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zy
index_i = 2
index_j = 1
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./couple_stress_xx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xx
index_i = 0
index_j = 0
[../]
[./couple_stress_xy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xy
index_i = 0
index_j = 1
[../]
[./couple_stress_xz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_xz
index_i = 0
index_j = 2
[../]
[./couple_stress_yx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yx
index_i = 1
index_j = 0
[../]
[./couple_stress_yy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yy
index_i = 1
index_j = 1
[../]
[./couple_stress_yz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_yz
index_i = 1
index_j = 2
[../]
[./couple_stress_zx]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zx
index_i = 2
index_j = 0
[../]
[./couple_stress_zy]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zy
index_i = 2
index_j = 1
[../]
[./couple_stress_zz]
type = RankTwoAux
rank_two_tensor = couple_stress
variable = couple_stress_zz
index_i = 2
index_j = 2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yx]
type = PointValue
point = '0 0 0'
variable = stress_yx
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zx]
type = PointValue
point = '0 0 0'
variable = stress_zx
[../]
[./s_zy]
type = PointValue
point = '0 0 0'
variable = stress_zy
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./c_s_xx]
type = PointValue
point = '0 0 0'
variable = couple_stress_xx
[../]
[./c_s_xy]
type = PointValue
point = '0 0 0'
variable = couple_stress_xy
[../]
[./c_s_xz]
type = PointValue
point = '0 0 0'
variable = couple_stress_xz
[../]
[./c_s_yx]
type = PointValue
point = '0 0 0'
variable = couple_stress_yx
[../]
[./c_s_yy]
type = PointValue
point = '0 0 0'
variable = couple_stress_yy
[../]
[./c_s_yz]
type = PointValue
point = '0 0 0'
variable = couple_stress_yz
[../]
[./c_s_zx]
type = PointValue
point = '0 0 0'
variable = couple_stress_zx
[../]
[./c_s_zy]
type = PointValue
point = '0 0 0'
variable = couple_stress_zy
[../]
[./c_s_zz]
type = PointValue
point = '0 0 0'
variable = couple_stress_zz
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeLayeredCosseratElasticityTensor
young = 0.7
poisson = 0.2
layer_thickness = 0.1
joint_normal_stiffness = 0.25
joint_shear_stiffness = 0.2
[../]
[./strain]
type = ComputeCosseratSmallStrain
[../]
[./stress]
type = ComputeCosseratLinearElasticStress
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -snes_atol -snes_rtol -snes_max_it -ksp_atol -ksp_rtol -sub_pc_factor_shift_type'
petsc_options_value = 'gmres asm lu 1E-10 1E-14 10 1E-15 1E-10 NONZERO'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
num_steps = 1
[]
[Outputs]
execute_on = 'timestep_end'
file_base = layered_cosserat_03
csv = true
[]
(test/tests/time_integrators/convergence/implicit_convergence.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 4
ny = 4
elem_type = QUAD9
[]
[Variables]
active = 'u'
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[./forcing_fn]
type = ParsedFunction
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
preset = false
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
start_time = 0.0
end_time = 1.0
dt = 0.0625
[./TimeIntegrator]
type = ImplicitMidpoint
[../]
[]
[Outputs]
execute_on = 'initial timestep_end'
exodus = true
[]
(modules/solid_mechanics/test/tests/mohr_coulomb/small_deform2_small_strain.i)
# apply repeated stretches in x, y and z directions, so that mean_stress = 0
# This maps out the yield surface in the octahedral plane for zero mean stress
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '2E-6*x*sin(t)'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '2E-6*y*sin(2*t)'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '-2E-6*z*(sin(t)+sin(2*t))'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
index = 0
property = plastic_yield_function
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 10
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./mc]
type = SolidMechanicsPlasticMohrCoulomb
cohesion = mc_coh
friction_angle = mc_phi
dilation_angle = mc_psi
mc_tip_smoother = 4
mc_edge_smoother = 20
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 1E7'
[../]
[./strain]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 100
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform2_small_strain
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/xfem/test/tests/high_order_elements/square_branch_2d.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = 'disp_x disp_y'
volumetric_locking_correction = false
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
elem_type = TRI6
[]
[UserObjects]
[./line_seg_cut_set_uo]
type = LineSegmentCutSetUserObject
cut_data = '-1.0000e-10 6.6340e-01 6.6340e-01 -1.0000e-10 0.0 1.0
3.3120e-01 3.3200e-01 1.0001e+00 3.3200e-01 1.0 2.0'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = SMALL
[../]
[]
[Functions]
[./right_disp_x]
type = PiecewiseLinear
x = '0 1.0 2.0 3.0'
y = '0 0.005 0.01 0.01'
[../]
[./top_disp_y]
type = PiecewiseLinear
x = '0 1.0 2.0 3.0'
y = '0 0.005 0.01 0.01'
[../]
[]
[BCs]
[./right_x]
type = FunctionDirichletBC
boundary = 1
variable = disp_x
function = right_disp_x
[../]
[./top_y]
type = FunctionDirichletBC
boundary = 2
variable = disp_y
function = top_disp_y
[../]
[./bottom_y]
type = DirichletBC
boundary = 0
variable = disp_y
value = 0.0
[../]
[./left_x]
type = DirichletBC
boundary = 3
variable = disp_x
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 10'
line_search = 'none'
[./Predictor]
type = SimplePredictor
scale = 1.0
[../]
# controls for linear iterations
l_max_its = 100
l_tol = 1e-2
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-16
nl_abs_tol = 1e-10
# time control
start_time = 0.0
dt = 1.0
end_time = 2.2
num_steps = 5000
[]
[Outputs]
exodus = true
[./console]
type = Console
output_linear = true
[../]
[]
(modules/solid_mechanics/test/tests/shell/static/straintest_shear.i)
# Test for the shear stress and strain output for 2D planar shell with uniform mesh.
# A cantiliver beam of length 10 m and cross-section 1.5 m x 0.1 m having
# Young's Modulus of 5 N/mm^2 and poissons ratio of 0 is subjected to shear
# displacement of 0.05 m at the free end.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 1
xmin = 0.0
xmax = 10
ymin = 0.0
ymax = 1.5
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[disp_z]
order = FIRST
family = LAGRANGE
[]
[rot_x]
order = FIRST
family = LAGRANGE
[]
[rot_y]
order = FIRST
family = LAGRANGE
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[strain_xz]
order = CONSTANT
family = MONOMIAL
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
variable = stress_xx
selected_qp = 0
rank_two_tensor = global_stress_t_points_1
index_i = 0
index_j = 0
[]
[strain_xx]
type = RankTwoAux
variable = strain_xx
rank_two_tensor = total_global_strain_t_points_1
selected_qp = 0
index_i = 0
index_j = 0
[]
[stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = global_stress_t_points_1
selected_qp = 0
index_i = 1
index_j = 1
[]
[strain_yy]
type = RankTwoAux
variable = strain_yy
rank_two_tensor = total_global_strain_t_points_1
selected_qp = 0
index_i = 1
index_j = 1
[]
[stress_xy]
type = RankTwoAux
variable = stress_xy
rank_two_tensor = global_stress_t_points_1
selected_qp = 0
index_i = 0
index_j = 1
[]
[strain_xy]
type = RankTwoAux
variable = strain_xy
rank_two_tensor = total_global_strain_t_points_1
selected_qp = 0
index_i = 0
index_j = 1
[]
[stress_yz]
type = RankTwoAux
variable = stress_yz
rank_two_tensor = global_stress_t_points_1
selected_qp = 0
index_i = 1
index_j = 2
[]
[strain_yz]
type = RankTwoAux
variable = strain_yz
rank_two_tensor = total_global_strain_t_points_1
selected_qp = 0
index_i = 1
index_j = 2
[]
[stress_xz]
type = RankTwoAux
variable = stress_xz
rank_two_tensor = global_stress_t_points_1
selected_qp = 0
index_i = 0
index_j = 2
[]
[strain_xz]
type = RankTwoAux
variable = strain_yz
rank_two_tensor = total_global_strain_t_points_1
selected_qp = 0
index_i = 0
index_j = 2
[]
[]
[BCs]
[fixx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[fixy]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[]
[fixz]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[]
[fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[]
[fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[]
[disp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'right'
function = displacement
[]
[]
[Functions]
[displacement]
type = PiecewiseLinear
x = '0.0 1.0'
y = '0.0 0.05'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
automatic_scaling = true
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-14
dt = 1
dtmin = 1
end_time = 1
[]
[Kernels]
[solid_disp_x]
type = ADStressDivergenceShell
block = '0'
component = 0
variable = disp_x
through_thickness_order = SECOND
[]
[solid_disp_y]
type = ADStressDivergenceShell
block = '0'
component = 1
variable = disp_y
through_thickness_order = SECOND
[]
[solid_disp_z]
type = ADStressDivergenceShell
block = '0'
component = 2
variable = disp_z
through_thickness_order = SECOND
[]
[solid_rot_x]
type = ADStressDivergenceShell
block = '0'
component = 3
variable = rot_x
through_thickness_order = SECOND
[]
[solid_rot_y]
type = ADStressDivergenceShell
block = '0'
component = 4
variable = rot_y
through_thickness_order = SECOND
[]
[]
[Materials]
[elasticity]
type = ADComputeIsotropicElasticityTensorShell
youngs_modulus = 4.0e6
poissons_ratio = 0.0
block = 0
through_thickness_order = SECOND
[]
[strain]
type = ADComputeIncrementalShellStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y'
thickness = 0.1
through_thickness_order = SECOND
[]
[stress]
type = ADComputeShellStress
block = 0
through_thickness_order = SECOND
[]
[]
[Postprocessors]
[stress_xy_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_xy
[]
[strain_xy_el_0]
type = ElementalVariableValue
elementid = 0
variable = strain_xy
[]
[stress_xy_el_1]
type = ElementalVariableValue
elementid = 1
variable = stress_xy
[]
[strain_xy_el_1]
type = ElementalVariableValue
elementid = 1
variable = strain_xy
[]
[stress_xy_el_2]
type = ElementalVariableValue
elementid = 2
variable = stress_xy
[]
[strain_xy_el_2]
type = ElementalVariableValue
elementid = 2
variable = strain_xy
[]
[stress_xy_el_3]
type = ElementalVariableValue
elementid = 3
variable = stress_xy
[]
[strain_xy_el_3]
type = ElementalVariableValue
elementid = 3
variable = strain_xy
[]
[stress_xx_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_xx
[]
[strain_xx_el_0]
type = ElementalVariableValue
elementid = 0
variable = strain_xx
[]
[stress_xx_el_1]
type = ElementalVariableValue
elementid = 1
variable = stress_xx
[]
[strain_xx_el_1]
type = ElementalVariableValue
elementid = 1
variable = strain_xx
[]
[stress_xx_el_2]
type = ElementalVariableValue
elementid = 2
variable = stress_xx
[]
[strain_xx_el_2]
type = ElementalVariableValue
elementid = 2
variable = strain_xx
[]
[stress_xx_el_3]
type = ElementalVariableValue
elementid = 3
variable = stress_xx
[]
[strain_xx_el_3]
type = ElementalVariableValue
elementid = 3
variable = strain_xx
[]
[]
[Outputs]
exodus = true
[]
(modules/combined/test/tests/elastic_patch/ad_elastic_patch_rz.i)
#
# This problem is taken from the Abaqus verification manual:
# "1.5.4 Patch test for axisymmetric elements"
# The stress solution is given as:
# xx = yy = zz = 2000
# xy = 400
#
# Since the strain is 1e-3 in all three directions, the new density should be
# new_density = original_density * V_0 / V
# new_density = 0.283 / (1 + 1e-3 + 1e-3 + 1e-3) = 0.282153
[GlobalParams]
displacements = 'disp_x disp_y'
temperature = temp
[]
[Mesh]
file = elastic_patch_rz.e
coord_type = RZ
[]
[Variables]
[temp]
initial_condition = 117.56
[]
[]
[Physics/SolidMechanics/QuasiStatic/All]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[]
[Kernels]
[body]
type = BodyForce
variable = disp_y
value = 1
function = '-400/x'
[]
[heat]
type = TimeDerivative
variable = temp
[]
[]
[BCs]
[ur]
type = FunctionDirichletBC
variable = disp_x
boundary = 10
function = '1e-3*x'
[]
[uz]
type = FunctionDirichletBC
variable = disp_y
boundary = 10
function = '1e-3*(x+y)'
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
[]
[stress]
type = ComputeStrainIncrementBasedStress
[]
[]
[Materials]
[density]
type = ADDensity
density = 0.283
outputs = all
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
end_time = 1.0
[]
[Outputs]
[out]
type = Exodus
elemental_as_nodal = true
[]
[]
(modules/solid_mechanics/test/tests/hyperelastic_viscoplastic/one_elem.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'ux uy uz'
[]
[Variables]
[./ux]
block = 0
[../]
[./uy]
block = 0
[../]
[./uz]
block = 0
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'ux uy uz'
use_displaced_mesh = true
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./peeq]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./peeq]
type = MaterialRealAux
variable = peeq
property = ep_eqv
execute_on = timestep_end
block = 0
[../]
[]
[BCs]
[./symmy]
type = DirichletBC
variable = uy
boundary = bottom
value = 0
[../]
[./symmx]
type = DirichletBC
variable = ux
boundary = left
value = 0
[../]
[./symmz]
type = DirichletBC
variable = uz
boundary = back
value = 0
[../]
[./tdisp]
type = FunctionDirichletBC
variable = uz
boundary = front
function = '0.01*t'
[../]
[]
[UserObjects]
[./flowstress]
type = HEVPRambergOsgoodHardening
yield_stress = 100
hardening_exponent = 0.1
reference_plastic_strain = 0.002
intvar_prop_name = ep_eqv
[../]
[./flowrate]
type = HEVPFlowRatePowerLawJ2
reference_flow_rate = 0.0001
flow_rate_exponent = 50.0
flow_rate_tol = 1
strength_prop_name = flowstress
[../]
[./ep_eqv]
type = HEVPEqvPlasticStrain
intvar_rate_prop_name = ep_eqv_rate
[../]
[./ep_eqv_rate]
type = HEVPEqvPlasticStrainRate
flow_rate_prop_name = flowrate
[../]
[]
[Materials]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'ux uy uz'
[../]
[./viscop]
type = FiniteStrainHyperElasticViscoPlastic
block = 0
resid_abs_tol = 1e-18
resid_rel_tol = 1e-8
maxiters = 50
max_substep_iteration = 5
flow_rate_user_objects = 'flowrate'
strength_user_objects = 'flowstress'
internal_var_user_objects = 'ep_eqv'
internal_var_rate_user_objects = 'ep_eqv_rate'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
C_ijkl = '2.8e5 1.2e5 1.2e5 2.8e5 1.2e5 2.8e5 0.8e5 0.8e5 0.8e5'
fill_method = symmetric9
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./peeq]
type = ElementAverageValue
variable = peeq
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.02
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = -pc_hypre_type
petsc_options_value = boomerang
dtmax = 10.0
nl_rel_tol = 1e-10
dtmin = 0.02
num_steps = 10
[]
[Outputs]
file_base = one_elem
exodus = true
csv = false
[]
(modules/solid_mechanics/test/tests/tensile/small_deform_hard3.i)
# checking for small deformation, with cubic hardening
# A single element is repeatedly stretched by in z direction
# tensile_strength is set to 1Pa, tensile_strength_residual = 0.5Pa, and limit value = 1E-5
# This allows the hardening of the tensile strength to be observed
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1E-6*z*t'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[./iter_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningCubic
value_0 = 1.0
value_residual = 0.5
internal_0 = 0
internal_limit = 1E-5
[../]
[./mc]
type = SolidMechanicsPlasticTensile
tensile_strength = ts
yield_function_tolerance = 1E-6
tensile_tip_smoother = 0.0
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
plastic_models = mc
debug_fspb = crash
debug_jac_at_stress = '1 2 3 2 -4 -5 3 -5 10'
debug_jac_at_pm = 0.8
debug_jac_at_intnl = 1
debug_stress_change = 1E-8
debug_pm_change = 1E-5
debug_intnl_change = 1E-5
[../]
[]
[Executioner]
end_time = 10
dt = 1.0
type = Transient
[]
[Outputs]
file_base = small_deform_hard3
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/capped_mohr_coulomb/small_deform_hard3.i)
# Using CappedMohrCoulomb with tensile failure only
# checking for small deformation, with cubic hardening
# A single element is repeatedly stretched in z direction
# tensile_strength is set to 1Pa, tensile_strength_residual = 0.5Pa, and limit value = 1E-5
# This allows the hardening of the tensile strength to be observed
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'max_principal_stress mid_principal_stress min_principal_stress'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '2E-6*z*t'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[./iter_auxk]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./intnl_auxk]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl
[../]
[]
[Postprocessors]
[./s_I]
type = PointValue
point = '0 0 0'
variable = max_principal_stress
[../]
[./s_II]
type = PointValue
point = '0 0 0'
variable = mid_principal_stress
[../]
[./s_III]
type = PointValue
point = '0 0 0'
variable = min_principal_stress
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./intnl]
type = PointValue
point = '0 0 0'
variable = intnl
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningCubic
value_0 = 1.0
value_residual = 0.5
internal_0 = 0
internal_limit = 1E-5
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./coh]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./ang]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./tensile]
type = CappedMohrCoulombStressUpdate
tensile_strength = ts
compressive_strength = cs
cohesion = coh
friction_angle = ang
dilation_angle = ang
smoothing_tol = 0.0
yield_function_tol = 1.0E-12
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = tensile
perform_finite_strain_rotations = false
[../]
[]
[Executioner]
end_time = 10
dt = 1.0
type = Transient
[]
[Outputs]
file_base = small_deform_hard3
csv = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/rz-x-axial-coord/hand-coded-jac-pipe-flow.i)
mu=1
rho=1
pipe_length=10 # m
pipe_radius=1 # m
u_inlet=1
[GlobalParams]
integrate_p_by_parts = false
supg = true
pspg = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = ${pipe_length}
ymin = 0
ymax = ${pipe_radius}
nx = 50
ny = 5
[]
coord_type = 'RZ'
rz_coord_axis = x
[]
[Variables]
[velocity_x]
family = LAGRANGE
[]
[velocity_y]
family = LAGRANGE
[]
[p][]
[]
[Kernels]
[mass]
type = INSMassRZ
variable = p
u = velocity_x
v = velocity_y
pressure = p
[]
[x_momentum]
type = INSMomentumLaplaceFormRZ
variable = velocity_x
u = velocity_x
v = velocity_y
pressure = p
component = 0
[]
[y_momentum]
type = INSMomentumLaplaceFormRZ
variable = velocity_y
u = velocity_x
v = velocity_y
pressure = p
component = 1
[]
[]
[Functions]
[vel_x_inlet]
type = ParsedFunction
expression = '${u_inlet} * (${pipe_radius}^2 - y^2)'
[]
[]
[BCs]
[inlet_x]
type = FunctionDirichletBC
variable = velocity_x
boundary = 'left'
function = vel_x_inlet
[]
[zero_y]
type = FunctionDirichletBC
variable = velocity_y
boundary = 'left top bottom'
function = 0
[]
[zero_x]
type = FunctionDirichletBC
variable = velocity_x
boundary = 'top'
function = 0
[]
# pressure is not integrated by parts so we cannot remove the nullspace through a natural condition
[p_corner]
type = DirichletBC
boundary = 'right'
value = 0
variable = p
[]
[]
[Materials]
[const]
type = GenericConstantMaterial
prop_names = 'rho mu'
prop_values = '${rho} ${mu}'
[]
[]
[Executioner]
type = Steady
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-12
line_search = 'none'
[]
[Outputs]
exodus = true
[]
(test/tests/time_integrators/explicit-euler/ee-2d-quadratic.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD9
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = ((x*x)+(y*y))-(4*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[]
[Variables]
[./u]
order = SECOND
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = ic
[../]
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
implicit = true
[../]
[./diff]
type = Diffusion
variable = u
implicit = false
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
implicit = false
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
implicit = true
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
scheme = 'explicit-euler'
solve_type = 'LINEAR'
l_tol = 1e-13
start_time = 0.0
num_steps = 20
dt = 0.00005
[]
[Outputs]
exodus = true
[./console]
type = Console
max_rows = 10
[../]
[]
(test/tests/time_integrators/explicit-euler/ee-2d-linear-adapt.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
[]
[Functions]
[./ic]
type = ParsedFunction
expression = 0
[../]
[./forcing_fn]
type = ParsedFunction
expression = (x+y)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*(x+y)
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = FunctionIC
function = ic
[../]
[../]
[]
[Kernels]
[./ie]
type = TimeDerivative
variable = u
lumping = true
implicit = true
[../]
[./diff]
type = Diffusion
variable = u
implicit = false
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
implicit = false
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
implicit = true
[../]
[]
[Adaptivity]
steps = 1
marker = box
max_h_level = 2
[./Markers]
[./box]
bottom_left = '-0.4 -0.4 0'
inside = refine
top_right = '0.4 0.4 0'
outside = do_nothing
type = BoxMarker
[../]
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
scheme = 'explicit-euler'
start_time = 0.0
num_steps = 4
dt = 0.005
[]
[Outputs]
exodus = true
[./console]
type = Console
max_rows = 10
[../]
[]
(test/tests/ics/from_exodus_solution/elem_part2.i)
# Use the exodus file for restarting the problem:
# - restart elemental aux variable
[Mesh]
[fmg]
type = FileMeshGenerator
file = elem_part1_out.e
use_for_exodus_restart = true
[]
# This problem uses ExodusII_IO::copy_elemental_solution(), which only
# works with ReplicatedMesh
parallel_type = replicated
[]
[Functions]
[exact_fn]
type = ParsedFunction
expression = ((x*x)+(y*y))
[]
[forcing_fn]
type = ParsedFunction
expression = -4
[]
[]
[AuxVariables]
[e]
order = CONSTANT
family = MONOMIAL
initial_from_file_var = e
initial_from_file_timestep = 6
[]
[]
[AuxKernels]
[ak]
type = ProjectionAux
variable = e
v = e
[]
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[ffn]
type = BodyForce
variable = u
function = forcing_fn
[]
[]
[BCs]
[all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
(test/tests/ics/from_exodus_solution/nodal_part1.i)
# We run a simple problem (5 time steps and save off the solution)
# In part2, we load the solution and solve a steady problem. The test check, that the initial state in part 2 is the same as the last state from part1
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 20
ny = 20
[]
[Functions]
[./exact_fn]
type = ParsedFunction
expression = t*((x*x)+(y*y))
[../]
[./forcing_fn]
type = ParsedFunction
expression = -4+(x*x+y*y)
[../]
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
active = 'ie diff ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
dt = 0.2
start_time = 0
num_steps = 5
[]
[Outputs]
file_base = out_nodal_part1
exodus = true
xda = true
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test1.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test1.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[]
[Outputs]
file_base = pl_test1_out
exodus = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/lid_driven/steady_fsp.i)
rho=1
mu=2e-3
U=1
l=1
prefactor=${fparse 1/(l/2)^2}
n=64
[GlobalParams]
gravity = '0 0 0'
[]
[Mesh]
[gen]
type = DistributedRectilinearMeshGenerator
dim = 2
xmin = 0
xmax = ${l}
ymin = 0
ymax = ${l}
nx = ${n}
ny = ${n}
elem_type = QUAD4
[]
second_order = true
parallel_type = distributed
[]
[Variables]
[vel_x]
order = SECOND
family = LAGRANGE
[]
[vel_y]
order = SECOND
family = LAGRANGE
[]
[p]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[mass]
type = INSMass
variable = p
u = vel_x
v = vel_y
pressure = p
[]
[x_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_x
u = vel_x
v = vel_y
pressure = p
component = 0
[]
[momentum_x_mass]
type = MassMatrix
variable = vel_x
density = ${rho}
matrix_tags = 'mass'
[]
[y_momentum_space]
type = INSMomentumLaplaceForm
variable = vel_y
u = vel_x
v = vel_y
pressure = p
component = 1
[]
[momentum_y_mass]
type = MassMatrix
variable = vel_y
density = ${rho}
matrix_tags = 'mass'
[]
[]
[BCs]
[x_no_slip]
type = DirichletBC
variable = vel_x
boundary = 'bottom right left'
value = 0.0
[]
[lid]
type = FunctionDirichletBC
variable = vel_x
boundary = 'top'
function = 'lid_function'
[]
[y_no_slip]
type = DirichletBC
variable = vel_y
boundary = 'bottom right top left'
value = 0.0
[]
[]
[Materials]
[const]
type = GenericConstantMaterial
block = 0
prop_names = 'rho mu'
prop_values = '${rho} ${mu}'
[]
[]
[Functions]
[lid_function]
# We pick a function that is exactly represented in the velocity
# space so that the Dirichlet conditions are the same regardless
# of the mesh spacing.
type = ParsedFunction
expression = '${prefactor}*${U}*x*(${l}-x)'
[]
[]
[Problem]
type = NavierStokesProblem
mass_matrix = 'mass'
extra_tag_matrices = 'mass'
[]
[Preconditioning]
[FSP]
type = FSP
topsplit = 'up'
[up]
splitting = 'u p'
splitting_type = schur
petsc_options_iname = '-pc_fieldsplit_schur_fact_type -pc_fieldsplit_schur_precondition -ksp_gmres_restart -ksp_type -ksp_pc_side -ksp_rtol'
petsc_options_value = 'full self 300 fgmres right 1e-4'
[]
[u]
vars = 'vel_x vel_y'
# petsc_options = '-ksp_converged_reason'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_type -ksp_rtol -ksp_gmres_restart -ksp_pc_side'
petsc_options_value = 'hypre boomeramg gmres 1e-2 300 right'
[]
[p]
vars = 'p'
petsc_options = '-pc_lsc_scale_diag -ksp_converged_reason'# -lsc_ksp_converged_reason -lsc_ksp_monitor_true_residual
petsc_options_iname = '-ksp_type -ksp_gmres_restart -ksp_rtol -pc_type -ksp_pc_side -lsc_pc_type -lsc_pc_hypre_type -lsc_ksp_type -lsc_ksp_rtol -lsc_ksp_pc_side -lsc_ksp_gmres_restart'
petsc_options_value = 'fgmres 300 1e-2 lsc right hypre boomeramg gmres 1e-1 right 300'
[]
[]
[]
[Postprocessors]
[pavg]
type = ElementAverageValue
variable = p
[]
[]
[Correctors]
[set_pressure]
type = NSPressurePin
pin_type = 'average'
variable = p
pressure_average = 'pavg'
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
[exo]
type = Exodus
execute_on = 'final'
hide = 'pavg'
[]
[]
(modules/solid_mechanics/test/tests/tensile/random_smoothed.i)
# Plasticity models:
# Smoothed tensile with strength = 1MPa
#
# Lame lambda = 1GPa. Lame mu = 1.3GPa
#
# A line of elements is perturbed randomly, and return to the yield surface at each quadpoint is checked
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1000
ny = 1234
nz = 1
xmin = 0
xmax = 1000
ymin = 0
ymax = 1234
zmin = 0
zmax = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[ICs]
[./x]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_x
[../]
[./y]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_y
[../]
[./z]
type = RandomIC
min = -0.1
max = 0.1
variable = disp_z
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0'
[../]
[]
[AuxVariables]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[]
[Postprocessors]
[./tot_iters]
type = ElementIntegralMaterialProperty
mat_prop = plastic_NR_iterations
outputs = console
[../]
[./raw_f0]
type = ElementExtremeValue
variable = f0
outputs = console
[../]
[./iter]
type = ElementExtremeValue
variable = iter
outputs = console
[../]
[./f0]
type = FunctionValuePostprocessor
function = should_be_zero0_fcn
[../]
[]
[Functions]
[./should_be_zero0_fcn]
type = ParsedFunction
expression = 'if(a<1E-1,0,a)'
symbol_names = 'a'
symbol_values = 'raw_f0'
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1E6
[../]
[./tensile]
type = SolidMechanicsPlasticTensile
tensile_strength = ts
tensile_tip_smoother = 1E5
yield_function_tolerance = 1.0E-1
internal_constraint_tolerance = 1.0E-7
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '1E9 1.3E9'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-7
plastic_models = 'tensile'
max_NR_iterations = 20
min_stepsize = 1E-4
max_stepsize_for_dumb = 1E-3
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1 1 1'
debug_jac_at_intnl = '1 1 1 1'
debug_stress_change = 1E1
debug_pm_change = '1E-6 1E-6 1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6 1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = random_smoothed
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/time_integrators/bdf2/bdf2_adapt.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 4
ny = 4
elem_type = QUAD4
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
# dudt = 3*t^2*(x^2 + y^2)
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 1
value = 1
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
dt = 0.25
[./Adaptivity]
refine_fraction = 0.2
coarsen_fraction = 0.3
max_h_level = 4
[../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(test/tests/functions/parsed/steady.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
initial_condition = 2
[../]
[]
[Functions]
[./right_bc]
type = ParsedFunction
expression = a+1
symbol_values = left_avg
symbol_names = a
[../]
[./left_bc]
type = ParsedFunction
expression = a
symbol_values = left_avg
symbol_names = a
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
boundary = left
function = left_bc
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = 'right right'
function = right_bc
[../]
[]
[Postprocessors]
[./left_avg]
type = SideAverageValue
variable = u
execute_on = initial
boundary = left
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(test/tests/geomsearch/3d_moving_penetration/pl_test1tt.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test1tt.e
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./normal_z]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./closest_point_z]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[./diff_z]
type = Diffusion
variable = disp_z
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
tangential_tolerance = 0.1
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
tangential_tolerance = 0.1
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = normal_z
boundary = 11
paired_boundary = 12
quantity = normal_z
[../]
[./penetrate10]
type = PenetrationAux
variable = normal_z
boundary = 12
paired_boundary = 11
quantity = normal_z
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate13]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate14]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate15]
type = PenetrationAux
variable = closest_point_z
boundary = 11
paired_boundary = 12
quantity = closest_point_z
[../]
[./penetrate16]
type = PenetrationAux
variable = closest_point_z
boundary = 12
paired_boundary = 11
quantity = closest_point_z
[../]
[./penetrate17]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate18]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate19]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate20]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b1z]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[./b2z]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 0.7 -0.7 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-9
l_max_its = 10
start_time = 0.0
dt = 0.05
end_time = 1.0
[]
[Outputs]
file_base = pl_test1tt_out
exodus = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface01.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 0E-6m in y direction and 1.5E-6 in z direction.
# trial stress_yy = 0 and stress_zz = 1.5
#
# Then SimpleTester0 should activate and the algorithm will return to
# stress_yy = 0, stress_zz = 1
# internal0 should be 0.5, and others zero
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.5E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface01
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/solid_mechanics/test/tests/tensile/small_deform4.i)
# checking for small deformation
# A single element is stretched by 0.75E-6m in the z and x directions
# This causes the return direction to be along the hypersurface sigma_I = sigma_II
# tensile_strength is set to 1Pa, tip_smoother = 0, edge_smoother = 25degrees
# Then A + B + C = 0.609965
#
# The final stress should have meanstress = 0.680118 and bar(sigma) = 0.52443, and sigma_zz = sigma_xx = 0.982896
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0.75E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '0'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '0.75E-6*z'
[../]
[]
[AuxVariables]
[./yield_fcn]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_auxk]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = yield_fcn
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f]
type = PointValue
point = '0 0 0'
variable = yield_fcn
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 1
[../]
[./mc]
type = SolidMechanicsPlasticTensile
tensile_strength = ts
yield_function_tolerance = 1E-6
tensile_tip_smoother = 0.0
internal_constraint_tolerance = 1E-5
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 2.0E6'
[../]
[./mc]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-5
plastic_models = mc
debug_fspb = crash
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform4
exodus = false
[./csv]
type = CSV
[../]
[]
(test/tests/neml2/torchscript/heat_conduction.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = '${units 0 m}'
xmax = '${units 10 m}'
[]
[NEML2]
input = 'thermal_conductivity.i'
[thermal_conductivity_model]
model = 'kappa'
moose_input_types = 'VARIABLE'
moose_inputs = 'T'
neml2_inputs = 'forces/T'
moose_output_types = 'MATERIAL'
neml2_outputs = 'state/k_T'
moose_outputs = 'k_T'
moose_derivative_types = 'MATERIAL'
neml2_derivatives = 'state/k_T forces/T'
moose_derivatives = 'dk_T/dT'
export_outputs = 'k_T dK_T/dT'
export_output_targets = 'exodus; exodus'
[]
[]
[Variables]
[T]
initial_condition = '${units 300 K}'
[]
[]
[BCs]
[constant_temp_left]
type = FunctionDirichletBC
function = 'ramping_T'
boundary = 'left'
variable = T
[]
[constant_temp_right]
type = DirichletBC
boundary = 'right'
value = '${units 300 K}'
variable = T
[]
[]
[Functions]
[ramping_T]
type = ParsedFunction
expression = '300 + 1200*t/5' # Ramp from 300 K -> 1500 K over 5 seconds
[]
[]
[Kernels]
[dT_dt]
type = TimeDerivative
variable = T
[]
[head_conduction]
type = MatDiffusion
variable = T
diffusivity = 'k_T'
[]
[]
[Executioner]
type = Transient
scheme = BDF2
solve_type = NEWTON
automatic_scaling = true
num_steps = 50
dt = 0.1
nl_abs_tol = 1e-12
nl_rel_tol = 1e-10
[]
[Outputs]
exodus = true
perf_graph = true
[]
(modules/combined/test/tests/phase_field_fracture/crack2d_iso.i)
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 20
ny = 10
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Modules]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = F
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Physics]
[./SolidMechanics]
[./QuasiStatic]
[./mech]
add_variables = true
strain = SMALL
additional_generate_output = 'stress_yy'
save_in = 'resid_x resid_y'
[../]
[../]
[../]
[]
[AuxVariables]
[./resid_x]
[../]
[./resid_y]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = top
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.04 1e-4'
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
property_name = L
expression = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
property_name = kappa_op
expression = 'gc_prop * l'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
[../]
[./damage_stress]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'local_fracture_energy'
decomposition_type = strain_spectral
[../]
[./degradation]
type = DerivativeParsedMaterial
property_name = degradation
coupled_variables = 'c'
expression = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '0.0'
derivative_order = 2
[../]
[./local_fracture_energy]
type = DerivativeParsedMaterial
property_name = local_fracture_energy
coupled_variables = 'c'
material_property_names = 'gc_prop l'
expression = 'c^2 * gc_prop / 2 / l'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
coupled_variables = c
sum_materials = 'elastic_energy local_fracture_energy'
derivative_order = 2
property_name = F
[../]
[]
[Postprocessors]
[./resid_x]
type = NodalSum
variable = resid_x
boundary = 2
[../]
[./resid_y]
type = NodalSum
variable = resid_y
boundary = 2
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 31 preonly lu 1'
nl_rel_tol = 1e-8
l_max_its = 10
nl_max_its = 10
dt = 1e-4
dtmin = 1e-4
num_steps = 2
[]
[Outputs]
exodus = true
[]
(python/peacock/tests/common/transient_big.i)
###########################################################
# This is a simple test with a time-dependent problem
# demonstrating the use of a "Transient" Executioner.
#
# @Requirement F1.10
###########################################################
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 10
ny = 10
elem_type = QUAD4
uniform_refine = 2
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[./InitialCondition]
type = ConstantIC
value = 0
[../]
[../]
[]
[Functions]
[./forcing_fn]
type = ParsedFunction
# dudt = 3*t^2*(x^2 + y^2)
expression = 3*t*t*((x*x)+(y*y))-(4*t*t*t)
[../]
[./exact_fn]
type = ParsedFunction
expression = t*t*t*((x*x)+(y*y))
[../]
[]
[Kernels]
active = 'diff ie ffn'
[./ie]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
active = 'all'
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = exact_fn
[../]
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 1
value = 1
[../]
[]
[Postprocessors]
[./l2_err]
type = ElementL2Error
variable = u
function = exact_fn
[../]
[./dt]
type = TimestepSize
[../]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
# Preconditioned JFNK (default)
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 5
dt = 0.1
[]
[Outputs]
file_base = out_transient
exodus = true
[]
(test/tests/bcs/nodal_normals/cylinder_hexes_1st_2nd.i)
# First order normals on second order mesh
[Mesh]
file = cylinder-hexes-2nd.e
[]
[Functions]
[./all_bc_fn]
type = ParsedFunction
expression = x*x+y*y
[../]
[./f_fn]
type = ParsedFunction
expression = -4
[../]
[]
[NodalNormals]
boundary = '1'
corner_boundary = 100
order = FIRST
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = f_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '1'
function = 'all_bc_fn'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
nl_rel_tol = 1e-13
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(modules/peridynamics/test/tests/simple_tests/2D_regularD_variableH_OSPD.i)
# Test for ordinary state-based peridynamic formulation
# for regular grid from generated mesh with varying bond constants
# partial Jacobian
# Jacobian from bond-based formulation is used for preconditioning
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 4
ny = 4
[../]
[./gpd]
type = MeshGeneratorPD
input = gmg
retain_fe_mesh = false
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[../]
[./top_y]
type = DirichletBC
variable = disp_y
boundary = 1002
value = 0.0
[../]
[./bottom_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 1000
function = '-0.001*t'
[../]
[]
[Modules/Peridynamics/Mechanics/Master]
[./all]
formulation = ORDINARY_STATE
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2e5
poissons_ratio = 0.0
[../]
[./force_density]
type = ComputeSmallStrainVariableHorizonMaterialOSPD
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = none
start_time = 0
end_time = 1
[]
[Outputs]
file_base = 2D_regularD_variableH_OSPD
exodus = true
[]
(modules/solid_mechanics/test/tests/stress_recovery/stress_concentration/stress_concentration.i)
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = FileMesh
file = geo.msh
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_xx_recovered]
order = FIRST
family = LAGRANGE
[]
[stress_yy_recovered]
order = FIRST
family = LAGRANGE
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[]
[stress_xx_recovered]
type = NodalPatchRecoveryAux
variable = stress_xx_recovered
nodal_patch_recovery_uo = stress_xx_patch
execute_on = 'TIMESTEP_END'
[]
[stress_yy_recovered]
type = NodalPatchRecoveryAux
variable = stress_yy_recovered
nodal_patch_recovery_uo = stress_yy_patch
execute_on = 'TIMESTEP_END'
[]
[]
[Kernels]
[solid_x]
type = StressDivergenceTensors
variable = disp_x
component = 0
[]
[solid_y]
type = StressDivergenceTensors
variable = disp_y
component = 1
[]
[]
[Materials]
[strain]
type = ComputeSmallStrain
[]
[Cijkl]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.3
youngs_modulus = 2.1e+5
[]
[stress]
type = ComputeLinearElasticStress
[]
[]
[BCs]
[top_xdisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = 0
[]
[top_ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top'
function = 0.01
[]
[bottom_xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = 'bottom'
function = 0
[]
[bottom_ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = 'bottom'
function = 0
[]
[]
[UserObjects]
[stress_xx_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '0 0'
execute_on = 'TIMESTEP_END'
[]
[stress_yy_patch]
type = NodalPatchRecoveryMaterialProperty
patch_polynomial_order = FIRST
property = 'stress'
component = '1 1'
execute_on = 'TIMESTEP_END'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
ksp_norm = default
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
petsc_options_iname = '-ksp_type -pc_type'
petsc_options_value = 'preonly lu'
nl_rel_tol = 1e-14
l_max_its = 100
nl_max_its = 30
[]
[Outputs]
time_step_interval = 1
exodus = true
print_linear_residuals = false
[]
(modules/solid_mechanics/test/tests/multiple_two_parameter_plasticity/dp_then_wp.i)
# Use ComputeMultipleInelasticStress with two inelastic models: CappedDruckerPrager and CappedWeakPlane.
# The relative_tolerance and absolute_tolerance parameters are set very large so that
# only one iteration is performed. This is the algorithm that FLAC uses to model
# jointed rocks, only Capped-Mohr-Coulomb is used instead of CappedDruckerPrager
#
# initial_stress = diag(1E3, 1E3, 1E3)
# The CappedDruckerPrager has tensile strength 3E2 and large cohesion,
# so the stress initially returns to diag(1E2, 1E2, 1E2)
# The CappedWeakPlane has tensile strength zero and large cohesion,
# so the stress returns to diag(1E2 - v/(1-v)*1E2, 1E2 - v/(1-v)*1E2, 0)
# where v=0.2 is the Poisson's ratio
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
eigenstrain_names = ini_stress
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = 0
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = 0
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = 0
[../]
[]
[AuxVariables]
[./yield_fcn_dp]
order = CONSTANT
family = MONOMIAL
[../]
[./yield_fcn_wp]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./yield_fcn_dp_auxk]
type = MaterialStdVectorAux
index = 1 # this is the tensile yield function - it should be zero
property = cdp_plastic_yield_function
variable = yield_fcn_dp
[../]
[./yield_fcn_wp_auxk]
type = MaterialStdVectorAux
index = 1 # this is the tensile yield function - it should be zero
property = cwp_plastic_yield_function
variable = yield_fcn_wp
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f_dp]
type = PointValue
point = '0 0 0'
variable = yield_fcn_dp
[../]
[./f_wp]
type = PointValue
point = '0 0 0'
variable = yield_fcn_wp
[../]
[]
[UserObjects]
[./ts]
type = SolidMechanicsHardeningConstant
value = 300
[../]
[./cs]
type = SolidMechanicsHardeningConstant
value = 1E4
[../]
[./mc_coh]
type = SolidMechanicsHardeningConstant
value = 1E4
[../]
[./mc_phi]
type = SolidMechanicsHardeningConstant
value = 20
convert_to_radians = true
[../]
[./mc_psi]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./dp]
type = SolidMechanicsPlasticDruckerPrager
mc_cohesion = mc_coh
mc_friction_angle = mc_phi
mc_dilation_angle = mc_psi
internal_constraint_tolerance = 1 # irrelevant here
yield_function_tolerance = 1 # irrelevant here
[../]
[./wp_coh]
type = SolidMechanicsHardeningConstant
value = 1E4
[../]
[./wp_tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./wp_tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1111077
[../]
[./wp_t_strength]
type = SolidMechanicsHardeningConstant
value = 0
[../]
[./wp_c_strength]
type = SolidMechanicsHardeningConstant
value = 1E4
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
poissons_ratio = 0.2
youngs_modulus = 1E7
[../]
[./ini_stress]
type = ComputeEigenstrainFromInitialStress
initial_stress = '1E3 0 0 0 1E3 0 0 0 1E3'
eigenstrain_name = ini_stress
[../]
[./admissible]
type = ComputeMultipleInelasticStress
relative_tolerance = 1E4
absolute_tolerance = 2
inelastic_models = 'cdp cwp'
perform_finite_strain_rotations = false
[../]
[./cdp]
type = CappedDruckerPragerStressUpdate
base_name = cdp
DP_model = dp
tensile_strength = ts
compressive_strength = cs
yield_function_tol = 1E-5
tip_smoother = 1E3
smoothing_tol = 1E3
[../]
[./cwp]
type = CappedWeakPlaneStressUpdate
base_name = cwp
cohesion = wp_coh
tan_friction_angle = wp_tanphi
tan_dilation_angle = wp_tanpsi
tensile_strength = wp_t_strength
compressive_strength = wp_c_strength
tip_smoother = 1E3
smoothing_tol = 1E3
yield_function_tol = 1E-5
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = dp_then_wp
csv = true
[]
(modules/contact/test/tests/mortar_dynamics/block-dynamics-friction-action.i)
starting_point = 2e-1
offset = -0.19
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
[file]
type = FileMeshGenerator
file = long-bottom-block-no-lower-d.e
[]
[]
[Variables]
[disp_x]
block = '1 2'
[]
[disp_y]
block = '1 2'
[]
[]
[ICs]
[disp_y]
block = 2
variable = disp_y
value = '${fparse starting_point + offset}'
type = ConstantIC
[]
[]
[Kernels]
[DynamicTensorMechanics]
displacements = 'disp_x disp_y'
generate_output = 'stress_xx stress_yy'
strain = FINITE
block = '1 2'
stiffness_damping_coefficient = 0.05
hht_alpha = 0.0
[]
[inertia_x]
type = InertialForce
variable = disp_x
velocity = vel_x
acceleration = accel_x
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[inertia_y]
type = InertialForce
variable = disp_y
velocity = vel_y
acceleration = accel_y
beta = 0.25
gamma = 0.5
alpha = 0
eta = 0.0
block = '1 2'
[]
[]
[Materials]
[elasticity_2]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e6
poissons_ratio = 0.3
[]
[elasticity_1]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1e8
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1 2'
[]
[strain]
type = ComputeFiniteStrain
block = '1 2'
[]
[density]
type = GenericConstantMaterial
block = '1 2'
prop_names = 'density'
prop_values = '7750'
[]
[]
[AuxVariables]
[vel_x]
block = '1 2'
[]
[accel_x]
block = '1 2'
[]
[vel_y]
block = '1 2'
[]
[accel_y]
block = '1 2'
[]
[vel_z]
block = '1 2'
[]
[accel_z]
block = '1 2'
[]
[]
[AuxKernels]
[accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = 'LINEAR timestep_end'
[]
[vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = 'LINEAR timestep_end'
[]
[accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = 'LINEAR timestep_end'
[]
[vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = 'LINEAR timestep_end'
[]
[]
[Contact]
[mechanical]
formulation = mortar
model = coulomb
primary = 20
secondary = 10
friction_coefficient = 0.5
c_normal = 1.0e4
c_tangential = 1.0e4
mortar_dynamics = true
newmark_beta = 0.25
newmark_gamma = 0.5
capture_tolerance = 1.0e-5
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 40
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 40
value = 0.0
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 30
function = '${starting_point} * cos(2 * pi / 4 * t) + ${offset}'
[]
[leftx]
type = FunctionDirichletBC
variable = disp_x
boundary = 30 # 50
function = '0' # '1e-2*t'
[]
[]
[Executioner]
type = Transient
end_time = 75
dt = 0.05
dtmin = .005
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
'-snes_linesearch_monitor -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err '
petsc_options_value = 'lu NONZERO 1e-15 1e-5'
nl_max_its = 50
line_search = 'none'
snesmf_reuse_base = false
[TimeIntegrator]
type = NewmarkBeta
beta = 0.25
gamma = 0.5
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[VectorPostprocessors]
[mechanical_tangential_lm]
type = NodalValueSampler
block = 'mechanical_secondary_subdomain'
variable = mechanical_tangential_lm
sort_by = 'x'
execute_on = TIMESTEP_END
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
(modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_gps_incremental.i)
# this test checks the asixymmetric 1D generalized plane strain formulation using incremental small strains
[GlobalParams]
displacements = disp_x
scalar_out_of_plane_strain = scalar_strain_yy
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = line.e
[]
[Variables]
[./disp_x]
[../]
[./scalar_strain_yy]
order = FIRST
family = SCALAR
[../]
[]
[AuxVariables]
[./strain_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./strain_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./temp]
initial_condition = 580.0
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '580 580 680'
[../]
[./disp_x]
type = PiecewiseLinear
x = '0 1'
y = '0 2e-6'
[../]
[]
[Kernels]
[SolidMechanics]
[../]
[]
[Physics]
[SolidMechanics]
[./GeneralizedPlaneStrain]
[./gps]
[../]
[../]
[../]
[]
[AuxKernels]
[./strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[../]
[./strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
[../]
[./strain_zz]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_zz
index_i = 2
index_j = 2
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[../]
[./temp]
type = FunctionAux
variable = temp
function = temp
execute_on = 'timestep_begin'
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
boundary = 1
value = 0
variable = disp_x
[../]
[./disp_x]
type = FunctionDirichletBC
boundary = 2
function = disp_x
variable = disp_x
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 3600
poissons_ratio = 0.2
[../]
[./strain]
type = ComputeAxisymmetric1DIncrementalStrain
eigenstrain_names = eigenstrain
scalar_out_of_plane_strain = scalar_strain_yy
[../]
[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-8
temperature = temp
stress_free_temperature = 580
eigenstrain_name = eigenstrain
[../]
[./stress]
type = ComputeStrainIncrementBasedStress
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = 'none'
l_max_its = 50
l_tol = 1e-6
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0
end_time = 2
num_steps = 2
[]
[Outputs]
exodus = true
console = true
[]
(modules/fsi/test/tests/fsi_acoustics/3D_struc_acoustic/3D_struc_acoustic.i)
# Test for `StructureAcousticInterface` interface kernel. The domain is 3D with lengths
# 10 X 0.1 X 0.1 meters. The fluid domain is on the right and the structural domain
# is on the left. Fluid end is subjected to a 250Hz sine wave with a single peak.
# Structural domain has the same material properties as the fluid. Interface between
# structure and fluid is located at 5.0m in the x-direction. Fluid pressure is recorded
# at (5, 0.05, 0.05). Structural stress is also recorded at the same location. Fluid
# pressure and structural stress should be almost equal and opposite to each other.
#
# Input parameters:
# Dimensions = 3
# Lengths = 10 X 0.1 X 0.1 meters
# Fluid speed of sound = 1500 m/s
# Fluid density = 1e-6 Giga kg/m^3
# Structural bulk modulus = 2.25 GPa
# Structural shear modulus = 0 GPa
# Structural density = 1e-6 Giga kg/m^3
# Fluid domain = true
# Fluid BC = single peak sine wave applied as a pressure on the fluid end
# Structural domain = true
# Structural BC = Neumann BC with value zero applied on the structural end.
# Fluid-structure interface location = 5.0m along the x-direction
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
nx = 100
ny = 1
nz = 1
xmax = 10
ymax = 0.1
zmax = 0.1
[]
[./subdomain1]
input = gen
type = SubdomainBoundingBoxGenerator
bottom_left = '5.0 0.0 0.0'
block_id = 1
top_right = '10.0 0.1 0.1'
[../]
[./interface1]
type = SideSetsBetweenSubdomainsGenerator
input = subdomain1
primary_block = 1
paired_block = 0
new_boundary = 'interface1'
[../]
[]
[GlobalParams]
[]
[Variables]
[./p]
block = 1
[../]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[./disp_z]
block = 0
[../]
[]
[AuxVariables]
[./vel_x]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./accel_x]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./vel_y]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./accel_y]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./vel_z]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./accel_z]
order = FIRST
family = LAGRANGE
block = 0
[../]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Kernels]
[./diffusion]
type = Diffusion
variable = 'p'
block = 1
[../]
[./inertia]
type = AcousticInertia
variable = p
block = 1
[../]
[./DynamicTensorMechanics]
displacements = 'disp_x disp_y disp_z'
block = 0
[../]
[./inertia_x]
type = InertialForce
variable = disp_x
block = 0
[../]
[./inertia_y]
type = InertialForce
variable = disp_y
block = 0
[../]
[./inertia_z]
type = InertialForce
variable = disp_z
block = 0
[../]
[]
[AuxKernels]
[./accel_x]
type = TestNewmarkTI
displacement = disp_x
variable = accel_x
first = false
block = 0
[../]
[./vel_x]
type = TestNewmarkTI
displacement = disp_x
variable = vel_x
block = 0
[../]
[./accel_y]
type = TestNewmarkTI
displacement = disp_y
variable = accel_y
first = false
block = 0
[../]
[./vel_y]
type = TestNewmarkTI
displacement = disp_y
variable = vel_y
block = 0
[../]
[./accel_z]
type = TestNewmarkTI
displacement = disp_z
variable = accel_z
first = false
block = 0
[../]
[./vel_z]
type = TestNewmarkTI
displacement = disp_z
variable = vel_z
block = 0
[../]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
block = 0
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
block = 0
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
block = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
block = 0
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
block = 0
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
block = 0
[../]
[]
[InterfaceKernels]
[./interface1]
type = StructureAcousticInterface
variable = p
neighbor_var = disp_x
boundary = 'interface1'
D = 1e-6
component = 0
[../]
[./interface2]
type = StructureAcousticInterface
variable = p
neighbor_var = disp_y
boundary = 'interface1'
D = 1e-6
component = 1
[../]
[./interface3]
type = StructureAcousticInterface
variable = p
neighbor_var = disp_z
boundary = 'interface1'
D = 1e-6
component = 2
[../]
[]
[BCs]
[./bottom_accel]
type = FunctionDirichletBC
variable = p
boundary = 'right'
function = accel_bottom
[../]
[./disp_x1]
type = NeumannBC
boundary = 'left'
variable = disp_x
value = 0.0
[../]
[./disp_y1]
type = NeumannBC
boundary = 'left'
variable = disp_y
value = 0.0
[../]
[./disp_z1]
type = NeumannBC
boundary = 'left'
variable = disp_z
value = 0.0
[../]
[]
[Functions]
[./accel_bottom]
type = PiecewiseLinear
data_file = ../1D_struc_acoustic/Input_1Peak_highF.csv
scale_factor = 1e-2
format = 'columns'
[../]
[]
[Materials]
[./co_sq]
type = GenericConstantMaterial
prop_names = inv_co_sq
prop_values = 4.44e-7
block = '1'
[../]
[./density0]
type = GenericConstantMaterial
block = 0
prop_names = density
prop_values = 1e-6
[../]
[./elasticity_base]
type = ComputeIsotropicElasticityTensor
bulk_modulus = 2.25
shear_modulus = 0.0
block = 0
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Preconditioning]
[./andy]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
start_time = 0.0
end_time = 0.005
dt = 0.0001
dtmin = 0.00001
nl_abs_tol = 1e-8
nl_rel_tol = 1e-8
l_tol = 1e-8
l_max_its = 25
timestep_tolerance = 1e-8
automatic_scaling = true
[TimeIntegrator]
type = NewmarkBeta
[]
[]
[Postprocessors]
[./p1]
type = PointValue
point = '5.0 0.05 0.05'
variable = p
[../]
[./stress_xx]
type = PointValue
point = '5.0 0.05 0.05'
variable = stress_xx
[../]
[]
[Outputs]
csv = true
perf_graph = true
print_linear_residuals = true
[]
(modules/contact/test/tests/simple_contact/simple_contact_rspherical.i)
#
# This is similar to the patch test for 1D spherical elements with the
# addition of a contact interface.
#
# The 1D mesh is pinned at x=0. The displacement at the outer node is set to
# -3e-3*X where X is the x-coordinate of that node. That gives a strain of
# -3e-3 for the x, y, and z directions.
#
# Young's modulus is 1e6, and Poisson's ratio is 0.25. This gives:
#
# Stress xx, yy, zz = E/(1+nu)/(1-2nu)*strain*((1-nu) + nu + nu) = -6000
#
[Problem]
coord_type = RSPHERICAL
[]
[Mesh]
file = simple_contact_rspherical.e
construct_side_list_from_node_list = true
[]
[GlobalParams]
displacements = 'disp_x'
[]
[Functions]
[./ur]
type = ParsedFunction
expression = '-3e-3*x'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz'
[../]
[]
[BCs]
[./ur]
type = FunctionDirichletBC
variable = disp_x
boundary = '1 4'
function = ur
[../]
[]
[Contact]
[./fred]
primary = 2
secondary = 3
[../]
[]
[Materials]
[./stiffStuff1]
type = ComputeIsotropicElasticityTensor
block = '1 2 3'
youngs_modulus = 1e6
poissons_ratio = 0.25
[../]
[./stiffStuff1_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2 3'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
line_search = 'none'
nl_abs_tol = 1e-7
nl_rel_tol = 1e-11
l_max_its = 20
start_time = 0.0
dt = 1.0
num_steps = 1
end_time = 1.0
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/crystal_plasticity/monolithic_material_based/cp_slip_rate_integ/crysp_linesearch.i)
[Mesh]
type = GeneratedMesh
dim = 3
elem_type = HEX8
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
block = 0
[../]
[./disp_y]
block = 0
[../]
[./disp_z]
block = 0
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./fp_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./e_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./gss1]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[]
[Functions]
[./tdisp]
type = ParsedFunction
expression = 0.0001*t
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = stress
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./fp_zz]
type = RankTwoAux
variable = fp_zz
rank_two_tensor = fp
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./e_zz]
type = RankTwoAux
variable = e_zz
rank_two_tensor = lage
index_j = 2
index_i = 2
execute_on = timestep_end
block = 0
[../]
[./gss1]
type = MaterialStdVectorAux
variable = gss1
property = gss
index = 0
execute_on = timestep_end
block = 0
[../]
[]
[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
[../]
[./tdisp]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = tdisp
[../]
[]
[Materials]
[./crysp]
type = FiniteStrainCPSlipRateRes
block = 0
slip_sys_file_name = input_slip_sys.txt
nss = 12
num_slip_sys_flowrate_props = 2 #Number of properties in a slip system
flowprops = '1 4 0.001 0.01 5 8 0.001 0.01 9 12 0.001 0.01'
hprops = '1.0 541.5 60.8 109.8 2.5'
gprops = '1 4 60.8 5 8 60.8 9 12 60.8'
tan_mod_type = exact
slip_incr_tol = 1
maximum_substep_iteration = 12
use_line_search = true
rtol = 1e-8
abs_tol = 1e-12
line_search_method = 'BISECTION'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensorCP
block = 0
C_ijkl = '1.684e5 1.214e5 1.214e5 1.684e5 1.214e5 1.684e5 0.754e5 0.754e5 0.754e5'
fill_method = symmetric9
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Postprocessors]
[./stress_zz]
type = ElementAverageValue
variable = stress_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./fp_zz]
type = ElementAverageValue
variable = fp_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./e_zz]
type = ElementAverageValue
variable = e_zz
block = 'ANY_BLOCK_ID 0'
[../]
[./gss1]
type = ElementAverageValue
variable = gss1
block = 'ANY_BLOCK_ID 0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 10
dtmin = 0.05
dtmax = 1e4
num_steps = 10
[]
[Outputs]
file_base = crysp_linesearch_out
exodus = true
print_linear_residuals = true
perf_graph = true
[]
(modules/solid_mechanics/test/tests/multi/three_surface06.i)
# Plasticit models:
# SimpleTester0 with a = 0 and b = 1 and strength = 1
# SimpleTester1 with a = 1 and b = 0 and strength = 1
# SimpleTester2 with a = 1 and b = 1 and strength = 1.5
#
# Lame lambda = 0 (Poisson=0). Lame mu = 0.5E6
#
# A single element is stretched by 1.1E-6m in y direction and 1.0E-6 in z direction.
# trial stress_yy = 1.1 and stress_zz = 1.0
#
# Then SimpleTester1 and SimpleTester2 should activate and the algorithm will return to
# the corner stress_yy=1.0, stress_zz=0.5
# However, this will mean internal1 < 0, so SimpleTester1 will be deactivated and
# then the algorithm will return to
# stress_yy=0.8, stress_zz=0.7
# internal1 should be 0.0, and internal2 should be 0.3
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[Kernels]
[SolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./x]
type = FunctionDirichletBC
variable = disp_x
boundary = 'front back'
function = '0E-6*x'
[../]
[./y]
type = FunctionDirichletBC
variable = disp_y
boundary = 'front back'
function = '1.1E-6*y'
[../]
[./z]
type = FunctionDirichletBC
variable = disp_z
boundary = 'front back'
function = '1.0E-6*z'
[../]
[]
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./f0]
order = CONSTANT
family = MONOMIAL
[../]
[./f1]
order = CONSTANT
family = MONOMIAL
[../]
[./f2]
order = CONSTANT
family = MONOMIAL
[../]
[./int0]
order = CONSTANT
family = MONOMIAL
[../]
[./int1]
order = CONSTANT
family = MONOMIAL
[../]
[./int2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xy
index_i = 0
index_j = 1
[../]
[./stress_xz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xz
index_i = 0
index_j = 2
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yz
index_i = 1
index_j = 2
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
[../]
[./f0]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f0
[../]
[./f1]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f1
[../]
[./f2]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f2
[../]
[./int0]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 0
variable = int0
[../]
[./int1]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 1
variable = int1
[../]
[./int2]
type = MaterialStdVectorAux
property = plastic_internal_parameter
factor = 1E6
index = 2
variable = int2
[../]
[]
[Postprocessors]
[./s_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./s_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./s_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./s_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./s_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./s_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./f0]
type = PointValue
point = '0 0 0'
variable = f0
[../]
[./f1]
type = PointValue
point = '0 0 0'
variable = f1
[../]
[./f2]
type = PointValue
point = '0 0 0'
variable = f2
[../]
[./int0]
type = PointValue
point = '0 0 0'
variable = int0
[../]
[./int1]
type = PointValue
point = '0 0 0'
variable = int1
[../]
[./int2]
type = PointValue
point = '0 0 0'
variable = int2
[../]
[]
[UserObjects]
[./simple0]
type = SolidMechanicsPlasticSimpleTester
a = 0
b = 1
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple1]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 0
strength = 1
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[./simple2]
type = SolidMechanicsPlasticSimpleTester
a = 1
b = 1
strength = 1.5
yield_function_tolerance = 1.0E-9
internal_constraint_tolerance = 1.0E-9
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
block = 0
fill_method = symmetric_isotropic
C_ijkl = '0 0.5E6'
[../]
[./strain]
type = ComputeFiniteStrain
block = 0
displacements = 'disp_x disp_y disp_z'
[../]
[./multi]
type = ComputeMultiPlasticityStress
block = 0
ep_plastic_tolerance = 1E-9
plastic_models = 'simple0 simple1 simple2'
max_NR_iterations = 2
min_stepsize = 1
debug_fspb = crash
debug_jac_at_stress = '10 0 0 0 10 0 0 0 10'
debug_jac_at_pm = '1 1'
debug_jac_at_intnl = '1 1'
debug_stress_change = 1E-5
debug_pm_change = '1E-6 1E-6'
debug_intnl_change = '1E-6 1E-6'
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = three_surface06
exodus = false
[./csv]
type = CSV
[../]
[]
(modules/xfem/test/tests/moving_interface/cut_mesh_3d.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y disp_z'
[]
[XFEM]
geometric_cut_userobjects = 'cut_mesh'
qrule = volfrac
output_cut_plane = true
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
nx = 11
ny = 11
nz = 1
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
zmin = 0.0
zmax = 0.1
elem_type = HEX8
[]
[block1]
type = SubdomainBoundingBoxGenerator
block_id = 1
bottom_left = '0 0 0'
top_right = '0.5 1 0.1'
input = gen
[]
[block2]
type = SubdomainBoundingBoxGenerator
block_id = 2
bottom_left = '0.5 0 0'
top_right = '1 1 0.1'
input = block1
[]
[]
[UserObjects]
[cut_mesh]
type = InterfaceMeshCut3DUserObject
mesh_file = cylinder_surface.e
interface_velocity_function = vel_func
heal_always = true
block = 2
[]
[]
[Functions]
[vel_func]
type = ConstantFunction
value = 0.011
[]
[]
[Physics/SolidMechanics/QuasiStatic]
displacements = 'disp_x disp_y disp_z'
[all]
strain = SMALL
add_variables = true
incremental = false
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
displacements = 'disp_x disp_y disp_z'
[]
[]
[Variables]
[u]
[]
[]
[AuxVariables]
[ls]
[]
[]
[AuxKernels]
[ls]
type = MeshCutLevelSetAux
mesh_cut_user_object = cut_mesh
variable = ls
[]
[]
[Kernels]
[diff]
type = MatDiffusion
variable = u
diffusivity = 1
[]
[time_deriv]
type = TimeDerivative
variable = u
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 207000
poissons_ratio = 0.3
[]
[stress]
type = ComputeLinearElasticStress
[]
[]
[BCs]
[front_u]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[back_u]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[box1_x]
type = DirichletBC
variable = disp_x
value = 0
boundary = left
[]
[box1_y]
type = DirichletBC
variable = disp_y
value = 0
boundary = left
[]
[box1_z]
type = DirichletBC
variable = disp_z
value = 0
boundary = left
[]
[box2_x]
type = FunctionDirichletBC
variable = disp_x
function = '0.01*t'
boundary = right
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 20
l_tol = 1e-3
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
start_time = 0.0
dt = 2
end_time = 2
max_xfem_update = 1
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/finite_strain_elastic/elastic_rotation_test.i)
#
# Rotation Test
#
# This test is designed to compute stress based on uniaxial strain
# and then follow that stress as the mesh is rotated 90 degrees.
#
# The mesh is composed of one block with a single element. The nodal
# displacements in the three directions are prescribed. Poisson's
# ratio is 1/3, and Young's modulus is 1e6.
#
# This test is mentioned in
# K. Kamojjala, R. Brannon, A. Sadeghirad, and J. Guilkey, "Verification
# tests in solid mechanics," Engineering with Computers, Vol. 31, 2015.
# DOI: 10.1007/s00366-013-0342-x
#
[Mesh]
type = FileMesh
file = rotation_test.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./x_200]
type = ParsedFunction
symbol_names = 'delta t0'
symbol_values = '1e-6 1.0'
expression = 'if(t<=1.0, delta*t, (1.0+delta)*cos(pi/2*(t-t0)) - 1.0)'
[../]
[./y_200]
type = ParsedFunction
symbol_names = 'delta t0'
symbol_values = '1e-6 1.0'
expression = 'if(t<=1.0, 0.0, (1.0+delta)*sin(pi/2*(t-t0)))'
[../]
[./x_300]
type = ParsedFunction
symbol_names = 'delta t0'
symbol_values = '1e-6 1.0'
expression = 'if(t<=1.0, delta*t, (1.0+delta)*cos(pi/2.0*(t-t0)) - sin(pi/2.0*(t-t0)) - 1.0)'
[../]
[./y_300]
type = ParsedFunction
symbol_names = 'delta t0'
symbol_values = '1e-6 1.0'
expression = 'if(t<=1.0, 0.0, cos(pi/2.0*(t-t0)) + (1+delta)*sin(pi/2.0*(t-t0)) - 1.0)'
[../]
[./x_400]
type = ParsedFunction
symbol_names = 'delta t0'
symbol_values = '1e-6 1.0'
expression = 'if(t<=1.0, 0.0, -sin(pi/2.0*(t-t0)))'
[../]
[./y_400]
type = ParsedFunction
symbol_names = 'delta t0'
symbol_values = '1e-6 1.0'
expression = 'if(t<=1.0, 0.0, cos(pi/2.0*(t-t0)) - 1.0)'
[../]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[./all]
strain = FINITE
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx'
[../]
[../]
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 100
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 100
value = 0.0
[../]
[./x_200]
type = FunctionDirichletBC
variable = disp_x
boundary = 200
function = x_200
[../]
[./y_200]
type = FunctionDirichletBC
variable = disp_y
boundary = 200
function = y_200
[../]
[./x_300]
type = FunctionDirichletBC
variable = disp_x
boundary = 300
function = x_300
[../]
[./y_300]
type = FunctionDirichletBC
variable = disp_y
boundary = 300
function = y_300
[../]
[./x_400]
type = FunctionDirichletBC
variable = disp_x
boundary = 400
function = x_400
[../]
[./y_400]
type = FunctionDirichletBC
variable = disp_y
boundary = 400
function = y_400
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = '100 200 300 400'
value = 0.0
[../]
[]
[Materials]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric9
C_ijkl = '1.5e6 0.75e6 0.75e6 1.5e6 0.75e6 1.5e6 0.375e6 0.375e6 0.375e6'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type '
petsc_options_value = lu
nl_rel_tol = 1e-30
nl_abs_tol = 1e-20
l_max_its = 20
start_time = 0.0
dt = 0.01
end_time = 2.0
[]
[Outputs]
exodus = true
[]
(tutorials/darcy_thermo_mech/step07_adaptivity/problems/step7d_adapt_blocks.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 40
ny = 4
xmax = 0.304 # Length of test chamber
ymax = 0.0257 # Test chamber radius
[]
[bottom]
type = SubdomainBoundingBoxGenerator
input = gmg
location = inside
bottom_left = '0 0 0'
top_right = '0.304 0.01285 0'
block_id = 1
[]
coord_type = RZ
rz_coord_axis = X
uniform_refine = 3
[]
[Variables]
[pressure]
[]
[temperature]
initial_condition = 300 # Start at room temperature
[]
[]
[Kernels]
[darcy_pressure]
type = DarcyPressure
variable = pressure
[]
[heat_conduction]
type = ADHeatConduction
variable = temperature
[]
[heat_conduction_time_derivative]
type = ADHeatConductionTimeDerivative
variable = temperature
[]
[heat_convection]
type = DarcyAdvection
variable = temperature
pressure = pressure
[]
[]
[BCs]
[inlet_temperature]
type = FunctionDirichletBC
variable = temperature
boundary = left
function = 'if(t<0,350+50*t,350)'
[]
[outlet_temperature]
type = HeatConductionOutflow
variable = temperature
boundary = right
[]
[inlet]
type = DirichletBC
variable = pressure
boundary = left
value = 4000 # (Pa) From Figure 2 from paper. First data point for 1mm spheres.
[]
[outlet]
type = DirichletBC
variable = pressure
boundary = right
value = 0 # (Pa) Gives the correct pressure drop from Figure 2 for 1mm spheres
[]
[]
[Materials]
viscosity_file = data/water_viscosity.csv
density_file = data/water_density.csv
thermal_conductivity_file = data/water_thermal_conductivity.csv
specific_heat_file = data/water_specific_heat.csv
[column_bottom]
type = PackedColumn
block = 1
radius = 1.15
temperature = temperature
fluid_viscosity_file = ${viscosity_file}
fluid_density_file = ${density_file}
fluid_thermal_conductivity_file = ${thermal_conductivity_file}
fluid_specific_heat_file = ${specific_heat_file}
[]
[column_top]
type = PackedColumn
block = 0
radius = 1
temperature = temperature
porosity = '0.25952 + 0.7*x/0.304'
fluid_viscosity_file = ${viscosity_file}
fluid_density_file = ${density_file}
fluid_thermal_conductivity_file = ${thermal_conductivity_file}
fluid_specific_heat_file = ${specific_heat_file}
[]
[]
[AuxVariables/velocity]
order = CONSTANT
family = MONOMIAL_VEC
[]
[AuxKernels/velocity]
type = DarcyVelocity
variable = velocity
execute_on = timestep_end
pressure = pressure
[]
[Problem]
type = FEProblem
[]
[Executioner]
type = Transient
end_time = 100
dt = 0.25
start_time = -1
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
steady_state_tolerance = 1e-5
steady_state_detection = true
[TimeStepper]
type = FunctionDT
function = 'if(t<0,0.1,0.25)'
[]
[]
[Outputs/out]
type = Exodus
output_material_properties = true
[]
[Adaptivity]
marker = error_frac
max_h_level = 3
[Indicators/temperature_jump]
type = GradientJumpIndicator
variable = temperature
scale_by_flux_faces = true
[]
[Markers/error_frac]
type = ErrorFractionMarker
coarsen = 0.025
indicator = temperature_jump
refine = 0.9
[]
[]
(modules/contact/test/tests/mortar_aux_kernels/frictional-mortar-3d-status.i)
starting_point = 0.04
offset = 0.00
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[AuxVariables]
[mortar_tangent_x]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_y]
family = LAGRANGE
order = FIRST
[]
[mortar_tangent_z]
family = LAGRANGE
order = FIRST
[]
[frictional_status]
family = LAGRANGE
order = FIRST
[]
[]
[AuxKernels]
[friction_x_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_x
component = 0
boundary = 'top_bottom'
[]
[friction_y_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_y
component = 1
boundary = 'top_bottom'
[]
[friction_z_component]
type = MortarFrictionalPressureVectorAux
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
tangent_one = mortar_tangential_lm
tangent_two = mortar_tangential_3d_lm
variable = mortar_tangent_z
component = 2
boundary = 'top_bottom'
[]
[frictional_state]
type = MortarFrictionalStateAux
tangent_one = mortar_tangential_lm
boundary = 'top_bottom'
contact_pressure = mortar_normal_lm
variable = frictional_status
mu = 0.4
[]
[]
[Mesh]
[top_block]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 1
xmin = -0.25
xmax = 0.25
ymin = -0.25
ymax = 0.25
zmin = -0.25
zmax = 0.25
elem_type = HEX8
[]
[rotate_top_block]
type = TransformGenerator
input = top_block
transform = ROTATE
vector_value = '0 0 0'
[]
[top_block_sidesets]
type = RenameBoundaryGenerator
input = rotate_top_block
old_boundary = '0 1 2 3 4 5'
new_boundary = 'top_bottom top_back top_right top_front top_left top_top'
[]
[top_block_id]
type = SubdomainIDGenerator
input = top_block_sidesets
subdomain_id = 1
[]
[bottom_block]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -.5
xmax = .5
ymin = -.5
ymax = .5
zmin = -.3
zmax = -.25
elem_type = HEX8
[]
[bottom_block_id]
type = SubdomainIDGenerator
input = bottom_block
subdomain_id = 2
[]
[bottom_block_change_boundary_id]
type = RenameBoundaryGenerator
input = bottom_block_id
old_boundary = '0 1 2 3 4 5'
new_boundary = '100 101 102 103 104 105'
[]
[combined]
type = MeshCollectionGenerator
inputs = 'top_block_id bottom_block_change_boundary_id'
[]
[block_rename]
type = RenameBlockGenerator
input = combined
old_block = '1 2'
new_block = 'top_block bottom_block'
[]
[bottom_right_sideset]
type = SideSetsAroundSubdomainGenerator
input = block_rename
new_boundary = bottom_right
block = bottom_block
normal = '1 0 0'
[]
[bottom_left_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_right_sideset
new_boundary = bottom_left
block = bottom_block
normal = '-1 0 0'
[]
[bottom_top_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_left_sideset
new_boundary = bottom_top
block = bottom_block
normal = '0 0 1'
[]
[bottom_bottom_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_top_sideset
new_boundary = bottom_bottom
block = bottom_block
normal = '0 0 -1'
[]
[bottom_front_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_bottom_sideset
new_boundary = bottom_front
block = bottom_block
normal = '0 1 0'
[]
[bottom_back_sideset]
type = SideSetsAroundSubdomainGenerator
input = bottom_front_sideset
new_boundary = bottom_back
block = bottom_block
normal = '0 -1 0'
[]
[secondary]
input = bottom_back_sideset
type = LowerDBlockFromSidesetGenerator
sidesets = 'top_bottom' # top_back top_left'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[primary]
input = secondary
type = LowerDBlockFromSidesetGenerator
sidesets = 'bottom_top'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
uniform_refine = 0
allow_renumbering = false
[]
[Variables]
[mortar_normal_lm]
block = 'secondary_lower'
use_dual = true
scaling = 1.0e2
[]
[mortar_tangential_lm]
block = 'secondary_lower'
use_dual = true
scaling = 1.0e2
[]
[mortar_tangential_3d_lm]
block = 'secondary_lower'
use_dual = true
scaling = 1.0e2
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
block = '1 2'
use_automatic_differentiation = false
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
[]
[]
[Materials]
[tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.0e2
# We should try with nonzero Poisson ratio
poissons_ratio = 0.0
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = '1'
[]
[tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '2'
youngs_modulus = 1e5
poissons_ratio = 0.0
[]
[stress_1000]
type = ComputeFiniteStrainElasticStress
block = '2'
[]
[]
[UserObjects]
[weighted_vel_uo]
type = LMWeightedVelocitiesUserObject
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
secondary_variable = disp_x
lm_variable_normal = mortar_normal_lm
lm_variable_tangential_one = mortar_tangential_lm
lm_variable_tangential_two = mortar_tangential_3d_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
[]
[]
[Constraints]
[friction]
type = ComputeFrictionalForceLMMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
disp_x = disp_x
disp_y = disp_y
disp_z = disp_z
use_displaced_mesh = true
mu = 0.4
c = 1e1
c_t = 1.0e1
friction_lm = mortar_tangential_lm
friction_lm_dir = mortar_tangential_3d_lm
weighted_gap_uo = weighted_vel_uo
weighted_velocities_uo = weighted_vel_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[normal_z]
type = NormalMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_normal_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_gap_uo = weighted_vel_uo
[]
[tangential_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_lm
secondary_variable = disp_z
component = z
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_x]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_x
component = x
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_y]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_y
component = y
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[tangential_dir_z]
type = TangentialMortarMechanicalContact
primary_boundary = 'bottom_top'
secondary_boundary = 'top_bottom'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = mortar_tangential_3d_lm
secondary_variable = disp_z
component = z
direction = direction_2
use_displaced_mesh = true
compute_lm_residuals = false
weighted_velocities_uo = weighted_vel_uo
[]
[]
[BCs]
[botx]
type = DirichletBC
variable = disp_x
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[boty]
type = DirichletBC
variable = disp_y
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[botz]
type = DirichletBC
variable = disp_z
boundary = 'bottom_left bottom_right bottom_front bottom_back'
value = 0.0
[]
[topx]
type = FunctionDirichletBC
variable = disp_x
boundary = 'top_top'
function = '0.16*t'
[]
[topy]
type = FunctionDirichletBC
variable = disp_y
boundary = 'top_top'
function = '0.1*t'
[]
[topz]
type = FunctionDirichletBC
variable = disp_z
boundary = 'top_top'
function = '-${starting_point} * sin(2 * pi / 0.4 * t) + ${offset}'
[]
[]
[Executioner]
type = Transient
end_time = 0.1
dt = .02
dtmin = .02
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason -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-13 1e-7'
l_max_its = 15
nl_max_its = 90
nl_rel_tol = 1e-11
nl_abs_tol = 1e-11
line_search = 'basic'
[]
[Debug]
show_var_residual_norms = true
[]
[Outputs]
exodus = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
active = 'contact'
[contact]
type = ContactDOFSetSize
variable = mortar_normal_lm
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[]
[VectorPostprocessors]
[contact-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_normal_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[frictional-pressure]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[frictional-pressure-3d]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangential_3d_lm
sort_by = 'id'
execute_on = NONLINEAR
[]
[tangent_x]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_x
sort_by = 'id'
execute_on = NONLINEAR
[]
[tangent_y]
type = NodalValueSampler
block = secondary_lower
variable = mortar_tangent_y
sort_by = 'id'
execute_on = NONLINEAR
[]
[]
(modules/solid_mechanics/test/tests/umat/analysis_steps/elastic_temperature_steps.i)
# Testing the UMAT Interface - linear elastic model using the large strain formulation.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Functions]
[top_pull_step2]
type = ParsedFunction
expression = (t-5.0)/20
[]
# Forced evolution of temperature
[temperature_load]
type = ParsedFunction
expression = '273'
[]
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temperature_function]
type = FunctionAux
variable = temperature
function = temperature_load
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
[]
[]
[BCs]
[y_step1]
type = DirichletBC
variable = disp_y
boundary = top
value = 0.0
[]
[y_pull_function_step2]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull_step2
[]
[x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[z_bot]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[]
[Controls]
[step1]
type = TimePeriod
enable_objects = 'BCs::y_step1'
disable_objects = 'BCs::y_pull_function_step2'
start_time = '0'
end_time = '5'
[]
[step2]
type = TimePeriod
enable_objects = 'BCs::y_pull_function_step2'
disable_objects = 'BCs::y_step1'
start_time = '5'
end_time = '10'
[]
[]
[Materials]
# This input file is used to compare the MOOSE and UMAT models, activating
# specific ones with cli variable_names.
# 1. Active for umat calculation
[umat]
type = AbaqusUMATStress
constant_properties = '1000 0.3'
plugin = '../../../plugins/elastic_temperature'
num_state_vars = 0
temperature = temperature
use_one_based_indexing = true
[]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
l_tol = 1e-9
start_time = 0.0
num_steps = 10
dt = 1.0
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/capped_weak_plane/small_deform8.i)
# Plastic deformation, compression with hardening
# With Lame lambda=0 and Lame mu=1, applying the following
# deformation to the zmax surface of a unit cube:
# disp_z = -t
# should yield trial stress:
# stress_zz = -2*t
# The compressive strength varies as a cubic between 1 (at intnl=0)
# and 2 (at intnl=1). The equation to solve is
# 2 - Ezzzz * ga = -2 * (ga - 1/2)^3 + (3/2) (ga - 1/2) + 3/2
# where the left-hand side comes from p = p_trial + ga * Ezzzz
# and the right-hand side is the cubic compressive strength
# The solution is ga = 0.355416 ( = intnl[1]), and the cubic
# is 1.289168 ( = -p) at that point
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_yz stress_zz plastic_strain_xx plastic_strain_xy plastic_strain_xz plastic_strain_yy plastic_strain_yz plastic_strain_zz strain_xx strain_xy strain_xz strain_yy strain_yz strain_zz'
[../]
[]
[BCs]
[./bottomx]
type = DirichletBC
variable = disp_x
boundary = back
value = 0.0
[../]
[./bottomy]
type = DirichletBC
variable = disp_y
boundary = back
value = 0.0
[../]
[./bottomz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[./topx]
type = FunctionDirichletBC
variable = disp_x
boundary = front
function = 0
[../]
[./topy]
type = FunctionDirichletBC
variable = disp_y
boundary = front
function = 0
[../]
[./topz]
type = FunctionDirichletBC
variable = disp_z
boundary = front
function = -t
[../]
[]
[AuxVariables]
[./f_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./f_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./f_compressive]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./intnl_tensile]
order = CONSTANT
family = MONOMIAL
[../]
[./iter]
order = CONSTANT
family = MONOMIAL
[../]
[./ls]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./f_shear]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 0
variable = f_shear
[../]
[./f_tensile]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 1
variable = f_tensile
[../]
[./f_compressive]
type = MaterialStdVectorAux
property = plastic_yield_function
index = 2
variable = f_compressive
[../]
[./intnl_shear]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 0
variable = intnl_shear
[../]
[./intnl_tensile]
type = MaterialStdVectorAux
property = plastic_internal_parameter
index = 1
variable = intnl_tensile
[../]
[./iter]
type = MaterialRealAux
property = plastic_NR_iterations
variable = iter
[../]
[./ls]
type = MaterialRealAux
property = plastic_linesearch_needed
variable = ls
[../]
[]
[Postprocessors]
[./stress_xx]
type = PointValue
point = '0 0 0'
variable = stress_xx
[../]
[./stress_xy]
type = PointValue
point = '0 0 0'
variable = stress_xy
[../]
[./stress_xz]
type = PointValue
point = '0 0 0'
variable = stress_xz
[../]
[./stress_yy]
type = PointValue
point = '0 0 0'
variable = stress_yy
[../]
[./stress_yz]
type = PointValue
point = '0 0 0'
variable = stress_yz
[../]
[./stress_zz]
type = PointValue
point = '0 0 0'
variable = stress_zz
[../]
[./strainp_xx]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xx
[../]
[./strainp_xy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xy
[../]
[./strainp_xz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_xz
[../]
[./strainp_yy]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yy
[../]
[./strainp_yz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_yz
[../]
[./strainp_zz]
type = PointValue
point = '0 0 0'
variable = plastic_strain_zz
[../]
[./straint_xx]
type = PointValue
point = '0 0 0'
variable = strain_xx
[../]
[./straint_xy]
type = PointValue
point = '0 0 0'
variable = strain_xy
[../]
[./straint_xz]
type = PointValue
point = '0 0 0'
variable = strain_xz
[../]
[./straint_yy]
type = PointValue
point = '0 0 0'
variable = strain_yy
[../]
[./straint_yz]
type = PointValue
point = '0 0 0'
variable = strain_yz
[../]
[./straint_zz]
type = PointValue
point = '0 0 0'
variable = strain_zz
[../]
[./f_shear]
type = PointValue
point = '0 0 0'
variable = f_shear
[../]
[./f_tensile]
type = PointValue
point = '0 0 0'
variable = f_tensile
[../]
[./f_compressive]
type = PointValue
point = '0 0 0'
variable = f_compressive
[../]
[./intnl_shear]
type = PointValue
point = '0 0 0'
variable = intnl_shear
[../]
[./intnl_tensile]
type = PointValue
point = '0 0 0'
variable = intnl_tensile
[../]
[./iter]
type = PointValue
point = '0 0 0'
variable = iter
[../]
[./ls]
type = PointValue
point = '0 0 0'
variable = ls
[../]
[]
[UserObjects]
[./coh]
type = SolidMechanicsHardeningConstant
value = 20
[../]
[./tanphi]
type = SolidMechanicsHardeningConstant
value = 0.5
[../]
[./tanpsi]
type = SolidMechanicsHardeningConstant
value = 0.1
[../]
[./t_strength]
type = SolidMechanicsHardeningConstant
value = 100
[../]
[./c_strength]
type = SolidMechanicsHardeningCubic
value_0 = 2
value_residual = 1
internal_0 = -1
internal_limit = 0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeElasticityTensor
fill_method = symmetric_isotropic
C_ijkl = '0 1'
[../]
[./admissible]
type = ComputeMultipleInelasticStress
inelastic_models = stress
perform_finite_strain_rotations = false
[../]
[./stress]
type = CappedWeakPlaneStressUpdate
cohesion = coh
tan_friction_angle = tanphi
tan_dilation_angle = tanpsi
tensile_strength = t_strength
compressive_strength = c_strength
max_NR_iterations = 20
tip_smoother = 5
smoothing_tol = 5
yield_function_tol = 1E-10
[../]
[]
[Executioner]
end_time = 1
dt = 1
type = Transient
[]
[Outputs]
file_base = small_deform8
csv = true
[]
(modules/solid_mechanics/test/tests/recompute_radial_return/isotropic_plasticity_errors.i)
# This simulation uses the piece-wise linear strain hardening model
# with the incremental small strain formulation; incremental small strain
# is required to produce the strain_increment for the DiscreteRadialReturnStressIncrement
# class, which handles the calculation of the stress increment to return
# to the yield surface in a J2 (isotropic) plasticity problem.
#
# This test is used to check the error messages in the discrete radial return
# model DiscreteRRIsotropicPlasticity; cli_args are used to check all of the
# error messages in the DiscreteRRIsotropicPlasticity model.
[Mesh]
type = GeneratedMesh
dim = 3
nx = 1
ny = 1
nz = 1
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Functions]
[./top_pull]
type = ParsedFunction
expression = t*(0.0625)
[../]
[./harden_func]
type = PiecewiseLinear
x = '0 0.0003 0.0007 0.0009'
y = '50 52 54 56'
[../]
[]
[Physics/SolidMechanics/QuasiStatic]
[./all]
strain = SMALL
incremental = true
add_variables = true
generate_output = 'stress_yy plastic_strain_xx plastic_strain_yy plastic_strain_zz'
[../]
[]
[BCs]
[./y_pull_function]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = top_pull
[../]
[./x_bot]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y_bot]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./z_bot]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
[../]
[./isotropic_plasticity]
type = IsotropicPlasticityStressUpdate
relative_tolerance = 1e-25
absolute_tolerance = 1e-5
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'isotropic_plasticity'
[../]
[]
[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 = 100
nl_max_its = 100
nl_rel_tol = 1e-18
nl_abs_tol = 1e-10
l_tol = 1e-12
start_time = 0.0
end_time = 0.025
dt = 0.00125
dtmin = 0.0001
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[]
(test/tests/geomsearch/2d_moving_penetration/pl_test4ns.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
file = pl_test4.e
displacements = 'disp_x disp_y'
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[]
[AuxVariables]
[./distance]
[../]
[./tangential_distance]
[../]
[./normal_x]
[../]
[./normal_y]
[../]
[./closest_point_x]
[../]
[./closest_point_y]
[../]
[./element_id]
[../]
[./side]
[../]
[]
[Kernels]
[./diff_x]
type = Diffusion
variable = disp_x
[../]
[./diff_y]
type = Diffusion
variable = disp_y
[../]
[]
[AuxKernels]
[./penetrate]
type = PenetrationAux
variable = distance
boundary = 11 #secondary
paired_boundary = 12 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate2]
type = PenetrationAux
variable = distance
boundary = 12 #secondary
paired_boundary = 11 #primary
normal_smoothing_distance = 0.2
[../]
[./penetrate3]
type = PenetrationAux
variable = tangential_distance
boundary = 11
paired_boundary = 12
quantity = tangential_distance
[../]
[./penetrate4]
type = PenetrationAux
variable = tangential_distance
boundary = 12
paired_boundary = 11
quantity = tangential_distance
[../]
[./penetrate5]
type = PenetrationAux
variable = normal_x
boundary = 11
paired_boundary = 12
quantity = normal_x
[../]
[./penetrate6]
type = PenetrationAux
variable = normal_x
boundary = 12
paired_boundary = 11
quantity = normal_x
[../]
[./penetrate7]
type = PenetrationAux
variable = normal_y
boundary = 11
paired_boundary = 12
quantity = normal_y
[../]
[./penetrate8]
type = PenetrationAux
variable = normal_y
boundary = 12
paired_boundary = 11
quantity = normal_y
[../]
[./penetrate9]
type = PenetrationAux
variable = closest_point_x
boundary = 11
paired_boundary = 12
quantity = closest_point_x
[../]
[./penetrate10]
type = PenetrationAux
variable = closest_point_x
boundary = 12
paired_boundary = 11
quantity = closest_point_x
[../]
[./penetrate11]
type = PenetrationAux
variable = closest_point_y
boundary = 11
paired_boundary = 12
quantity = closest_point_y
[../]
[./penetrate12]
type = PenetrationAux
variable = closest_point_y
boundary = 12
paired_boundary = 11
quantity = closest_point_y
[../]
[./penetrate13]
type = PenetrationAux
variable = element_id
boundary = 11
paired_boundary = 12
quantity = element_id
[../]
[./penetrate14]
type = PenetrationAux
variable = element_id
boundary = 12
paired_boundary = 11
quantity = element_id
[../]
[./penetrate15]
type = PenetrationAux
variable = side
boundary = 11
paired_boundary = 12
quantity = side
[../]
[./penetrate16]
type = PenetrationAux
variable = side
boundary = 12
paired_boundary = 11
quantity = side
[../]
[]
[BCs]
[./b1x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0
[../]
[./b1y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0
[../]
[./b2x]
type = DirichletBC
variable = disp_x
boundary = 2
value = 0
[../]
[./b2y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[]
[Functions]
[./disp_y]
type = PiecewiseLinear
x = '0.0 0.25 0.75 1.0'
y = '0.0 2.0 -2.0 0.0'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
nl_rel_tol = 1e-10
l_max_its = 10
start_time = 0.0
dt = 0.0125
end_time = 1.0
[]
[Outputs]
file_base = pl_test4ns_out
exodus = true
[]
(modules/contact/test/tests/hertz_spherical/hertz_contact_rz.i)
# Hertz Contact: Sphere on sphere
# Spheres have the same radius, Young's modulus, and Poisson's ratio.
# Define E:
# 1/E = (1-nu1^2)/E1 + (1-nu2^2)/E2
#
# Effective radius R:
# 1/R = 1/R1 + 1/R2
#
# F is the applied compressive load.
#
# Area of contact a::
# a^3 = 3FR/4E
#
# Depth of indentation d:
# d = a^2/R
#
#
# Let R1 = R2 = 2. Then R = 1.
#
# Let nu1 = nu2 = 0.25, E1 = E2 = 1.40625e7. Then E = 7.5e6.
#
# Let F = 10000. Then a = 0.1, d = 0.01.
#
## Note: There is not a good way to check the result. The standard approach is
## to map contact pressure as a function of radius, but we don't have the
## contact pressure available. See the description on Wikipedia for details of
## analytic equations, and the Abaqus Benchmarks Manual, 1.1.11, for a plot of
## contact pressure vs. radius.
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
[]
[Mesh]#Comment
file = hertz_contact_rz.e
displacements = 'disp_x disp_y'
allow_renumbering = false
[] # Mesh
[Functions]
[./pressure]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. 1. 1.'
scale_factor = 795.77471545947674 # 10000/pi/2^2
[../]
[./disp_y]
type = PiecewiseLinear
x = '0. 1. 2.'
y = '0. -0.01 -0.01'
[../]
[] # Functions
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[] # Variables
[AuxVariables]
[./stress_xx]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_xy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_zx]
order = CONSTANT
family = MONOMIAL
[../]
[./vonmises]
order = CONSTANT
family = MONOMIAL
[../]
[./hydrostatic]
order = CONSTANT
family = MONOMIAL
[../]
[] # AuxVariables
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
strain = SMALL
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[../]
[] # AuxKernels
[BCs]
[./base_y]
type = DirichletBC
variable = disp_y
boundary = 1000
value = 0.0
[../]
[./symm_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./disp_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 2
function = disp_y
[../]
[] # BCs
[Contact]
[./dummy_name]
primary = 1000
secondary = 100
model = coulomb
formulation = penalty
normalize_penalty = true
friction_coefficient = 0.4
penalty = 8e7
tangential_tolerance = 0.005
[../]
[]
[Materials]
[./tensor]
type = ComputeIsotropicElasticityTensor
block = '1'
youngs_modulus = 1.40625e7
poissons_ratio = 0.25
[../]
[./stress]
type = ComputeLinearElasticStress
block = '1'
[../]
[./tensor_1000]
type = ComputeIsotropicElasticityTensor
block = '1000'
youngs_modulus = 1e6
poissons_ratio = 0.0
[../]
[./stress_1000]
type = ComputeLinearElasticStress
block = '1000'
[../]
[] # Materials
[Preconditioning]
[./SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
petsc_options_value = 'hypre boomeramg 101'
line_search = 'none'
nl_abs_tol = 1e-7
l_max_its = 200
start_time = 0.0
dt = 0.5
end_time = 2.0
[] # Executioner
[Postprocessors]
[./maxdisp]
type = NodalVariableValue
nodeid = 39 # 40-1 where 40 is the exodus node number of the top-left node
variable = disp_y
[../]
[]
[Outputs]
[./out]
type = Exodus
elemental_as_nodal = true
[../]
[] # Outputs
(modules/solid_mechanics/test/tests/neml2/viscoplasticity/kinharden.i)
N = 2
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = ${N}
ny = ${N}
nz = ${N}
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = SMALL
new_system = true
add_variables = true
formulation = TOTAL
volumetric_locking_correction = true
[]
[]
[]
[]
[NEML2]
input = 'kinharden_neml2.i'
[all]
model = 'model'
verbose = true
device = 'cpu'
moose_input_types = 'MATERIAL MATERIAL POSTPROCESSOR POSTPROCESSOR MATERIAL MATERIAL'
moose_inputs = ' neml2_strain neml2_strain time time neml2_stress kinematic_plastic_strain'
neml2_inputs = ' forces/E old_forces/E forces/t old_forces/t old_state/S old_state/internal/Kp'
moose_output_types = 'MATERIAL MATERIAL'
moose_outputs = ' neml2_stress kinematic_plastic_strain'
neml2_outputs = ' state/S state/internal/Kp'
moose_derivative_types = 'MATERIAL'
moose_derivatives = 'neml2_jacobian'
neml2_derivatives = 'state/S forces/E'
[]
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[convert_strain]
type = RankTwoTensorToSymmetricRankTwoTensor
from = 'mechanical_strain'
to = 'neml2_strain'
[]
[stress]
type = ComputeLagrangianObjectiveCustomSymmetricStress
custom_small_stress = 'neml2_stress'
custom_small_jacobian = 'neml2_jacobian'
[]
[]
[BCs]
[xfix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[yfix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[zfix]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[xdisp]
type = FunctionDirichletBC
variable = disp_x
boundary = right
function = t
preset = false
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
automatic_scaling = true
dt = 1e-3
dtmin = 1e-3
num_steps = 5
residual_and_jacobian_together = true
[]
[Outputs]
exodus = true
[]
(modules/contact/test/tests/simple_contact/two_block_compress/two_equal_blocks_compress_2d_pg.i)
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
[left_block]
type = GeneratedMeshGenerator
dim = 2
xmin = -1.0
xmax = 0.0
ymin = -0.5
ymax = 0.5
nx = 4
ny = 4
elem_type = QUAD4
[]
[left_block_sidesets]
type = RenameBoundaryGenerator
input = left_block
old_boundary = '0 1 2 3'
new_boundary = '10 11 12 13'
[]
[left_block_id]
type = SubdomainIDGenerator
input = left_block_sidesets
subdomain_id = 1
[]
[right_block]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.0
xmax = 1.0
ymin = -0.5
ymax = 0.5
nx = 5
ny = 5
elem_type = QUAD4
[]
[right_block_sidesets]
type = RenameBoundaryGenerator
input = right_block
old_boundary = '0 1 2 3'
new_boundary = '20 21 22 23'
[]
[right_block_id]
type = SubdomainIDGenerator
input = right_block_sidesets
subdomain_id = 2
[]
[combined_mesh]
type = MeshCollectionGenerator
inputs = 'left_block_id right_block_id'
[]
[left_lower]
type = LowerDBlockFromSidesetGenerator
input = combined_mesh
sidesets = '11'
new_block_id = '10001'
new_block_name = 'secondary_lower'
[]
[right_lower]
type = LowerDBlockFromSidesetGenerator
input = left_lower
sidesets = '23'
new_block_id = '10000'
new_block_name = 'primary_lower'
[]
[]
[Variables]
[normal_lm]
block = 'secondary_lower'
use_dual = true
[]
[]
[AuxVariables]
[aux_lm]
block = 'secondary_lower'
use_dual = false
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
block = '1 2'
[]
[]
[Functions]
[horizontal_movement]
type = PiecewiseLinear
x = '0 1.0'
y = '0 0.4'
[]
[vertical_movement]
type = PiecewiseLinear
x = '0 1.0'
y = '0 0'
[]
[]
[BCs]
[push_left_x]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = horizontal_movement
[]
[fix_right_x]
type = DirichletBC
variable = disp_x
boundary = 21
value = 0.0
[]
[fix_right_y]
type = DirichletBC
variable = disp_y
boundary = 21
value = 0.0
[]
[push_left_y]
type = FunctionDirichletBC
variable = disp_y
boundary = 13
function = vertical_movement
[]
[]
[Materials]
[elasticity_tensor_left]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_left]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elasticity_tensor_right]
type = ComputeIsotropicElasticityTensor
block = 2
youngs_modulus = 1.0e6
poissons_ratio = 0.3
[]
[stress_right]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[UserObjects]
[weighted_gap_uo]
type = LMWeightedGapUserObject
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
correct_edge_dropping = true
lm_variable = normal_lm
disp_x = disp_x
disp_y = disp_y
use_petrov_galerkin = true
aux_lm = aux_lm
[]
[]
[Constraints]
[normal_lm]
type = ComputeWeightedGapLMMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
disp_x = disp_x
disp_y = disp_y
use_displaced_mesh = true
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_x]
type = NormalMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_x
component = x
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[normal_y]
type = NormalMortarMechanicalContact
primary_boundary = '23'
secondary_boundary = '11'
primary_subdomain = 'primary_lower'
secondary_subdomain = 'secondary_lower'
variable = normal_lm
secondary_variable = disp_y
component = y
use_displaced_mesh = true
compute_lm_residuals = false
correct_edge_dropping = true
weighted_gap_uo = weighted_gap_uo
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type '
'-pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist nonzero 1e-10'
line_search = 'none'
dt = 0.1
dtmin = 0.01
end_time = 1.0
l_max_its = 20
nl_max_its = 20
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
[Postprocessors]
[contact]
type = ContactDOFSetSize
variable = normal_lm
subdomain = 'secondary_lower'
[]
[normal_lm]
type = ElementAverageValue
variable = normal_lm
block = 'secondary_lower'
[]
[avg_disp_x]
type = ElementAverageValue
variable = disp_x
block = '1 2'
[]
[avg_disp_y]
type = ElementAverageValue
variable = disp_y
block = '1 2'
[]
[max_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
[]
[max_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
[]
[min_disp_x]
type = ElementExtremeValue
variable = disp_x
block = '1 2'
value_type = min
[]
[min_disp_y]
type = ElementExtremeValue
variable = disp_y
block = '1 2'
value_type = min
[]
[]
(modules/combined/test/tests/cavity_pressure/multiple_postprocessors.i)
#
# Cavity Pressure Test (Volume input as a vector of postprocessors)
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts n, T, and V in the following way:
# n => n0 + alpha * t
# T => T0 + beta * t
# V => V0 + gamma * t
# with
# alpha = n0
# beta = T0 / 2
# gamma = - (0.003322259...) * V0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# In this test the internal volume is calculated as the sum of two Postprocessors
# internalVolumeInterior and internalVolumeExterior. This sum equals the value
# reported by the internalVolume postprocessor.
#
# The parameters combined at t = 1 gives p = 301.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
file = 3d.e
[]
[Functions]
[displ_positive]
type = PiecewiseLinear
x = '0 1'
y = '0 0.0029069767441859684'
[]
[displ_negative]
type = PiecewiseLinear
x = '0 1'
y = '0 -0.0029069767441859684'
[]
[temp1]
type = PiecewiseLinear
x = '0 1'
y = '1 1.5'
scale_factor = 240.54443866068704
[]
[material_input_function]
type = PiecewiseLinear
x = '0 1'
y = '0 0.35'
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[temp]
initial_condition = 240.54443866068704
[]
[material_input]
[]
[]
[AuxVariables]
[pressure_residual_x]
[]
[pressure_residual_y]
[]
[pressure_residual_z]
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_zx]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[TensorMechanics]
use_displaced_mesh = true
[]
[heat]
type = Diffusion
variable = temp
use_displaced_mesh = true
[]
[material_input_dummy]
type = Diffusion
variable = material_input
use_displaced_mesh = true
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[]
[stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[]
[]
[BCs]
[no_x_exterior]
type = DirichletBC
variable = disp_x
boundary = '7 8'
value = 0.0
[]
[no_y_exterior]
type = DirichletBC
variable = disp_y
boundary = '9 10'
value = 0.0
[]
[no_z_exterior]
type = DirichletBC
variable = disp_z
boundary = '11 12'
value = 0.0
[]
[prescribed_left]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = displ_positive
[]
[prescribed_right]
type = FunctionDirichletBC
variable = disp_x
boundary = 14
function = displ_negative
[]
[no_y]
type = DirichletBC
variable = disp_y
boundary = '15 16'
value = 0.0
[]
[no_z]
type = DirichletBC
variable = disp_z
boundary = '17 18'
value = 0.0
[]
[no_x_interior]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[]
[no_y_interior]
type = DirichletBC
variable = disp_y
boundary = '3 4'
value = 0.0
[]
[no_z_interior]
type = DirichletBC
variable = disp_z
boundary = '5 6'
value = 0.0
[]
[temperatureInterior]
type = FunctionDirichletBC
boundary = 100
function = temp1
variable = temp
[]
[MaterialInput]
type = FunctionDirichletBC
boundary = '100 13 14 15 16'
function = material_input_function
variable = material_input
[]
[CavityPressure]
[1]
boundary = 100
initial_pressure = 100
material_input = materialInput
R = 8.314472
temperature = aveTempInterior
volume = 'internalVolumeInterior internalVolumeExterior'
startup_time = 0.5
output = ppress
save_in = 'pressure_residual_x pressure_residual_y pressure_residual_z'
[]
[]
[]
[Materials]
[elast_tensor1]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e1
poissons_ratio = 0
block = 1
[]
[strain1]
type = ComputeFiniteStrain
block = 1
[]
[stress1]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[elast_tensor2]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0
block = 2
[]
[strain2]
type = ComputeFiniteStrain
block = 2
[]
[stress2]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_rel_tol = 1e-12
l_tol = 1e-12
l_max_its = 20
dt = 0.5
end_time = 1.0
use_pre_SMO_residual = true
[]
[Postprocessors]
[internalVolume]
type = InternalVolume
boundary = 100
execute_on = 'initial linear'
[]
[aveTempInterior]
type = SideAverageValue
boundary = 100
variable = temp
execute_on = 'initial linear'
[]
[internalVolumeInterior]
type = InternalVolume
boundary = '1 2 3 4 5 6'
execute_on = 'initial linear'
[]
[internalVolumeExterior]
type = InternalVolume
boundary = '13 14 15 16 17 18'
execute_on = 'initial linear'
[]
[materialInput]
type = SideAverageValue
boundary = '7 8 9 10 11 12'
variable = material_input
execute_on = linear
[]
[]
[Outputs]
exodus = true
[]
(modules/solid_mechanics/test/tests/central_difference/lumped/3D/3d_nodalmass_explicit.i)
# Test for the CentralDifference time integrator
[Mesh]
[./generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 2
xmin = 0.0
xmax = 1
ymin = 0.0
ymax = 1
zmin = 0.0
zmax = 2
[../]
[./all_nodes]
type = BoundingBoxNodeSetGenerator
new_boundary = 'all'
input = 'generated_mesh'
top_right = '1 1 2'
bottom_left = '0 0 0'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[]
[AuxVariables]
[./vel_x]
[../]
[./accel_x]
[../]
[./vel_y]
[../]
[./accel_y]
[../]
[./vel_z]
[../]
[./accel_z]
[../]
[]
[Kernels]
[./DynamicSolidMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
[]
[AuxKernels]
[./accel_x]
type = TestNewmarkTI
variable = accel_x
displacement = disp_x
first = false
[../]
[./vel_x]
type = TestNewmarkTI
variable = vel_x
displacement = disp_x
[../]
[./accel_y]
type = TestNewmarkTI
variable = accel_y
displacement = disp_y
first = false
[../]
[./vel_y]
type = TestNewmarkTI
variable = vel_y
displacement = disp_y
[../]
[./accel_z]
type = TestNewmarkTI
variable = accel_z
displacement = disp_z
first = false
[../]
[./vel_z]
type = TestNewmarkTI
variable = vel_z
displacement = disp_z
[../]
[]
[BCs]
[./x_bot]
type = FunctionDirichletBC
boundary = 'back'
variable = disp_x
function = dispx
preset = false
[../]
[./y_bot]
type = FunctionDirichletBC
variable = disp_y
boundary = back
function = dispy
preset = false
[../]
[./z_bot]
type = FunctionDirichletBC
variable = disp_z
boundary = back
function = dispz
preset = false
[../]
[]
[Functions]
[./dispx]
type = PiecewiseLinear
x = '0.0 1.0 2.0 3.0 4.0' # time
y = '0.0 1.0 0.0 -1.0 0.0' # displacement
[../]
[./dispy]
type = ParsedFunction
expression = 0.1*t*t*sin(10*t)
[../]
[./dispz]
type = ParsedFunction
expression = 0.1*t*t*sin(20*t)
[../]
[]
[NodalKernels]
[./nodal_mass_x]
type = NodalTranslationalInertia
boundary = 'all'
nodal_mass_file = 'nodal_mass_file.csv'
variable = 'disp_x'
[../]
[./nodal_mass_y]
type = NodalTranslationalInertia
boundary = 'all'
nodal_mass_file = 'nodal_mass_file.csv'
variable = 'disp_y'
[../]
[./nodal_mass_z]
type = NodalTranslationalInertia
boundary = 'all'
nodal_mass_file = 'nodal_mass_file.csv'
variable = 'disp_z'
[../]
[]
[Materials]
[./elasticity_tensor_block]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.25
block = 0
[../]
[./strain_block]
type = ComputeIncrementalStrain
block = 0
displacements = 'disp_x disp_y disp_z'
implicit = false
[../]
[./stress_block]
type = ComputeFiniteStrainElasticStress
block = 0
[../]
[]
[Executioner]
type = Transient
start_time = -0.01
end_time = 0.1
dt = 0.005
timestep_tolerance = 1e-6
[./TimeIntegrator]
type = CentralDifference
[../]
[]
[Postprocessors]
[./accel_10x]
type = NodalVariableValue
nodeid = 10
variable = accel_x
[../]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/functional_expansion_tools/include/bcs/FXValueBC.h)
// This file is part of the MOOSE framework
// https://mooseframework.inl.gov
//
// All rights reserved, see COPYRIGHT for full restrictions
// https://github.com/idaholab/moose/blob/master/COPYRIGHT
//
// Licensed under LGPL 2.1, please see LICENSE for details
// https://www.gnu.org/licenses/lgpl-2.1.html
#pragma once
#include "FunctionDirichletBC.h"
/**
* Defines an FX-based boundary condition that forces the values to match
*/
class FXValueBC : public FunctionDirichletBC
{
public:
static InputParameters validParams();
FXValueBC(const InputParameters & parameters);
};