Constraints System

MortarConstraints

An excellent overview of the conservative mortar constraint implementation in MOOSE is given in this technical report. There are five required parameters the user will always have to supply for a constraint derived from MortarConstraint:

  • master_boundary_id: the boundary ID assigned to the master side of the mortar interface

  • slave_boundary_id: the boundary ID assigned to the slave side of the mortar interface

  • master_subdomain_id: the subdomain ID assigned to the lower-dimesional block on the master side of the mortar interface

  • slave_boundary_id: the subdomain ID assigned to the lower-dimensional block on the slave side of the mortar interface

  • variable: the name of the primal variable that is mortar constraint will operate on

As suggested by the above required parameters, the user must do some mesh work before they can use a MortarConstraint object. The easiest way to prepare the mesh is to assign boundary IDs to the slave and master sides of the interface when creating the mesh in their 3rd-party meshing software (e.g. Cubit or Gmsh). If these boundary IDs exist, then the lower dimensional blocks can be generated automatically using the LowerDBlockFromSideset mesh modifiers as shown in the below input file snippet:


[MeshModifiers]
  [./master]
    type = LowerDBlockFromSideset
    sidesets = '2'
    new_block_id = '20'
  [../]
  [./slave]
    type = LowerDBlockFromSideset
    sidesets = '1'
    new_block_id = '10'
  [../]
[]

Available Objects

Available Actions