Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [GlobalParams]
- displacements = 'disp_x disp_y'
- []
- [Problem]
- type = ReferenceResidualProblem
- solution_variables = 'disp_x disp_y frictionless_lambda'
- extra_tag_vectors = 'ref'
- reference_vector = 'ref'
- []
- [Mesh]
- [./simple_mesh]
- type = FileMeshGenerator
- file = mesh.e
- [../]
- [./master]
- type = LowerDBlockFromSidesetGenerator
- input = simple_mesh
- sidesets = '2'
- new_block_id = '3'
- [../]
- [./slave]
- type = LowerDBlockFromSidesetGenerator
- input = master
- sidesets = '1'
- new_block_id = '4'
- [../]
- []
- [Constraints]
- [./lm]
- type = NormalNodalLMMechanicalContact
- slave = 1
- master = 2
- variable = frictionless_lambda
- master_variable = disp_x
- disp_y = disp_y
- extra_vector_tags = 'ref'
- [../]
- [x]
- type = NormalMortarMechanicalContact
- master_boundary = '2'
- slave_boundary = '1'
- master_subdomain = '3'
- slave_subdomain = '4'
- variable = frictionless_lambda
- slave_variable = disp_x
- component = x
- use_displaced_mesh = true
- compute_lm_residuals = false
- []
- [y]
- type = NormalMortarMechanicalContact
- master_boundary = '2'
- slave_boundary = '1'
- master_subdomain = '3'
- slave_subdomain = '4'
- variable = frictionless_lambda
- slave_variable = disp_y
- component = y
- use_displaced_mesh = true
- compute_lm_residuals = false
- []
- []
- [Variables]
- [./disp_x]
- block = '1 2'
- [../]
- [./disp_y]
- block = '1 2'
- [../]
- [./frictionless_lambda]
- block = 4
- [../]
- []
- [BCs]
- [./left_x]
- type = PenaltyDirichletBC
- variable = disp_x
- boundary = 'outside_left'
- value = 0.0
- penalty = 1e3
- extra_vector_tags = 'ref'
- [../]
- [./left_y]
- type = PenaltyDirichletBC
- variable = disp_y
- boundary = 'outside_left'
- value = 0.0
- penalty = 1e3
- extra_vector_tags = 'ref'
- [../]
- [./right_x]
- type = FunctionPenaltyDirichletBC
- variable = disp_x
- boundary = 'outside_right'
- function = '-5e-3 * t'
- penalty = 1e3
- extra_vector_tags = 'ref'
- [../]
- [./right_y]
- type = FunctionPenaltyDirichletBC
- variable = disp_y
- boundary = 'outside_right'
- function = '-5e-5 * t'
- penalty = 1e3
- extra_vector_tags = 'ref'
- [../]
- []
- [Kernels]
- [disp_x]
- type = Diffusion
- variable = disp_x
- block = '1 2'
- []
- [disp_y]
- type = Diffusion
- variable = disp_y
- block = '1 2'
- []
- []
- [Debug]
- show_var_residual_norms = 1
- []
- [Preconditioning]
- [./smp]
- type = SMP
- full = true
- [../]
- []
- [Executioner]
- solve_type = PJFNK
- type = Transient
- num_steps = 10
- dt = 1
- dtmin = 1
- nl_abs_tol = 1e-15
- petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
- petsc_options_value = 'lu basic NONZERO 1e-15'
- []
- [Outputs]
- exodus = true
- []
- [Postprocessors]
- [contact]
- type = ContactDOFSetSize
- variable = frictionless_lambda
- subdomain = '4'
- execute_on = 'nonlinear timestep_end'
- []
- []
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement