Tied Contact (Master-Slave)

 

In ParaGeo you can specify any pair of contact surfaces to be tied (i.e. their mechanical freedoms will be coupled following a master-slave approach to approximate a continuum geometry at the coupled contact surface). It should be noted that the master-slave coupling is internally performed via the coupled freedoms code through the definition of either Couple_freedoms or via Tied_contact_sets in Contact_global and Contact_set  data structures depending on the type of coupling. As this is an additional usage of coupled freedoms, for the sake of clarification we summarize all coupled freedoms functionalities available in ParaGeo in the following table:

 

 

 

Sequential Analysis

Parallel analysis

 

Explicit mechanics

Implicit mechanics

Explicit mechanics

Implicit mechanics

Standard

(1 master node to n slaves)

Available

Available

Available

Available

Geometry Non-matching mesh (node to facet)

Available

Not available

Not available

Not available

Geometry Matching mesh (node to node) / Tied Contact

Available

Available

Available

Not available

 

 

 

Standard coupled freedoms

 

Standard coupled freedoms refers to a functionality to couple the specified freedoms (any of the specified displacements in x, y and z) of all the nodes in a given geometry entity or geometry set. One node/point in such geometry entity will be the master node and the remaining ones will be slaves (this may be user-defined). Consequently any displacement that the master node experiences will be transferred to the slaves so that they have the same displacement in the coupled directions. This is often used to maintain a given boundary to be planar/"flat" during the simulation (e.g. to maintain the top surface "flat" in a 3D problem a standard coupled freedoms with displacements coupled in the Z direction may be defined). Note therefore that this type of coupled freedoms is not relevant to the tied contact surfaces.

 

Example

 

 

* Couple_freedoms NUM=1

! ------------------------

 Geomechanical_codes  IDM=3

  0  0  1

 Geometry_sets IDM=1

  "Top_surf"

 

1.In Geomechanical_codes the coupled displacement directions (X, Y, Z) are specified where 0 means free/non-coupled and 1 means coupled. In this example only Z is coupled so that all the nodes in the Top_surf geometry set will have the same displacement.

 

 

 

Geometry (node to facet) coupled freedoms

 

The geometry (node to facet) coupled freedoms is a master-slave coupling approach which enables contact surfaces to be tied in a sequential analysis. It is more computationally expensive than the node to node coupled freedoms but may be used for contact surfaces with non-matching meshes. It requires definition of the coupled freedoms in all displacement directions and the corresponding master and slave geometry sets.

 

Example

 

 

* Couple_freedoms NUM=1

! ------------------------

 Set_type        "Geometry"

 Geomechanical_codes  IDM=3

  1  1  1

 Master_geometry_sets IDM=1

  "Fault01_hgw"

 Slave_geometry_sets IDM=1

  "Fault01_ftw"

 

1.Set_type is set to "Geometry".

 

2.By default, for Set_type "Geometry" the node to facet algorithm will be used (appropriate for non-matching meshes).

 

3.In Geomechanical_codes all displacement directions must be defined as coupled in order to tie the two surfaces.

 

 

 

Geometry (node to node) coupled freedoms

 

The geometry (node to node) coupled freedoms is a master-slave coupling approach which enables contact surfaces to be tied in both a sequential and parallel analysis with explicit mechanics. It can only be used for contact surfaces with matching meshes and the coupling may be defined either via Couple_freedoms or via Tied_contact_sets in Contact_global and Contact_set data structures.

 

Both options for master-slave coupling of the contact geometry surfaces are equivalent in the mechanical field when contact is not active.  However, there are differences in the mechanical and porous/thermal flow fields when using Couple_freedoms (node to node) with contact data :

Definition using Tied_contact_sets in Contact_global data - master-slave mechanical node to node coupling in all directions take place, however, contact is not solved for the tied contact sets and the associated contact data disregarded.  This means that each pair of tied contact geometry surface will move together but because contact is not solved, there is no influence from the mechanical contact and the contact link enabling flow across and along the contact surfaces does not exist, so effectively a no-flow condition is imposed on each pair of tied contact set geometry.  The effect of this definition is equivalent to using Couple_freedoms (node to node) for the contact geometry surfaces but without definition of contact data.

 

Definition using Couple_freedoms (node to node) with contact data - master-slave mechanical node to node coupling in all directions take place, however, contact data is active and porous/thermal flow can occur across and along the contact surfaces. Contact also has an effect on the mechanical field eventhough the contact pairs are coupled to move together.  To minimize the effect from the mechanical contact, it is recommended to set the normal and tangential penalty values to a very small value (e.g. 1E-4 of the material Young's modulus).  Thus this definition has the advantage of enabling flow transfer without the mechanical influence.

 

Example

 

 

* Couple_freedoms NUM=1

! ------------------------

 Node_to_node_flag        1

 Geomechanical_codes  IDM=3

  1  1  1

 Master_geometry_sets IDM=1

  "Fault01_hgw"

 Slave_geometry_sets IDM=1

  "Fault01_ftw"

 

1.Node_to_node_flag is set to 1 (the code automatically assumes Set_type "Geometry").

 

2.In Geomechanical_codes all displacement directions must be defined as coupled in order to tie the two surfaces.

 

 

 

Tied Contact

 

An example of tying contact surfaces via Tied_contact_sets in Contact_global is provided below. It should be noted that all contact sets defined in the Tied_contact_sets keyword will have their contact data disregarded, i.e. no contact is solved and the contact data blocks for these sets will not be available in ParaView Extract Block filter.  This is equivalent to using Couple_freedoms (node to node) without any contact data defined.  Each pair of tied contact surfaces MUST be defined in their own separate contact set. For the sake of clarity the example below considers 5 faults in which the hanging wall of Fault01 and Fault02 are tied with their corresponding footwall counterparts whereas Fault03, Fault04 and Fault05 will be governed by a contact relationship.

 

Example

 

 

* Contact_global   NUM=1

! ----------------------------------------

 Included_contact_sets IDM=3

  "Fault01"

 "Fault02"

 "Remaining"

 Tied_contact_sets IDM=2

  "Fault01"

 "Fault02"

 Contact_flow_flag           1

 Contact_thermal_flag        1

 

* Contact_set      NUM=1

! -------------------------------------

 Name      "Fault01"

 Geometry_sets IDM=2

  "Fault01_hgw"

  "Fault01_ftw"

    (...)

 

* Contact_set      NUM=2

! -------------------------------------

 Name      "Fault02"

 Geometry_sets IDM=2

  "Fault02_hgw"

  "Fault02_ftw"

    (...)

 

* Contact_set      NUM=3

! -------------------------------------

 Name      "Remaining"

 Geometry_sets IDM=6

  "Fault03_hgw"

  "Fault03_ftw"

  "Fault04_hgw"

  "Fault04_ftw"

  "Fault05_hgw"

  "Fault05_ftw"

    (...)

 

1.Because Fault01 and Fault02 will have their corresponding hanging walls tied to their corresponding footwalls they must be defined in separate contact sets. All remaining non-tied faults may be defined within the same contact set (alternatively they may be defined in separate contact sets as well).

 

2.In Contact_global the contact sets that will be tied using a master-slave coupled freedoms with the node to node algorithm are listed within the Tied_contact_sets keyword.

 

3.The ParaGeo code internally will remove the tied contact sets from the contact data and generate the corresponding couple freedoms data. It is noted that because no contact is solved for the tied surfaces, no contact data blocks will be available to isolate / filter in ParaView when using the Extract Block filter.

 

 

 

Notes:

To view the geometries of the tied contact sets, define

 

* Output_data

! -------------------------------------

 Nodal_output_flags  IDM=7

  1 1 1 1 1 0 0   ! Location 5 - Fixity conditions

 

Location 5 flag set to 1 will output the variable "Couple Freedom Codes" (> 0) in the plotfile for the tied contact geometries.