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 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) / 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 Contact_global and Contac_set data structures. It is noted that both paths for defining the master-slave coupling are equivalent and allowing its definition via contact is only a matter of convenience as contact is not actually solved for tied contact surfaces.

 

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.

 

An example of tying surfaces via contact data is provided below. It should be noted that 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 data blocks will be available to isolate / filter in ParaView when using the Extract Block filter.