The GCDEF command is used to define specific (non-default) contact
            interactions between general contact surfaces identified by section IDs
                (SECT1 and SECT2). Generally,
                GCDEF commands are order independent. However, there are a few
            situations in which the order matters. Understanding how the GCDEF
            commands are stored and executed will help you to better manage contact interactions in
            your model.
The following topics related to managing general contact interactions are available:
Each entry of the GCDEF command defines one contact interaction. The GCDEF command should be issued after all general contact surfaces have been generated, via the GCGEN command and/or manually.
GCDEF is not an action command. Each GCDEF entry is saved in the database and written to the .cdb file (see the CDWRITE command).
In most cases the order of the GCDEF commands is unimportant.
                You may find it more intuitive to enter them in the order of least specific to most
                specific general contact definitions. The GCDEF command sequence
                is important only if one or more of the Option,
                    MATID, and REALID fields
                is redefined (overwritten) on the same GCDEF entry (for the same
                combination of section IDs) or if an entry is deleted.
The program executes user-defined contact interactions internally based on the following sequence:
First, all frictionless general interactions are applied by default
The general contact interaction/exclusion entries are applied and overwrite above entries:
GCDEF,
Option,ALL,ALL,MATID,REALIDThe general self-contact interaction/exclusion entries are applied and overwrite above entries:
GCDEF,
Option,ALL,SELF,MATID,REALIDor GCDEF,Option,SELF,ALL,MATID,REALIDThe partial general contact interaction/exclusion entries are applied and overwrite above entries:
GCDEF,
Option,SECT1,ALL,MATID,REALIDor GCDEF,Option,ALL,SECT2,MATID,REALIDFinally, all individual contact interaction/exclusion entries are applied and overwrite above entries:
GCDEF,
Option,SECT1,SECT2,MATID,REALIDor GCDEF,Option,SECT1,SECT1,MATID,REALIDor GCDEF,Option,SECT1,SELF,MATID,REALID
For the same record (SECT1 and
                    SECT2), the latest entry for
                    Option, MATID, and
                    REALID overwrites any previous one.
The GCDEF command has options to list interactions that you have specified. It also has two options to display the contact interactions in a table format. These options are described in the table below.
The list and table options can be used for a specific contact interaction
                    (SECT1,SECT2) or a range
                of contact interactions (SECT1 to
                    SECT1END, SECT2 to
                    SECT2END). 
The MATID and REALID fields
                of the GCDEF command are ignored for these list and table
                options.
                                
                                
                                Option
                             | Action | Examples | 
|---|---|---|
| LIST | Lists general contact interactions defined by GCDEF. No interpretation is applied. | List a particular general contact interaction:
                                GCDEF,LIST,List a range of general contact interactions spanning contact sections SECT1 to
                                    SECT1END and target sections
                                    SECT2 to
                                    SECT2END:
                                GCDEF,LIST,List all general contact interactions: GCDEF,LIST  | 
| TABLE | 
                                 Interprets the stored GCDEF data and displays general contact interactions in a tabular format. The table includes default interactions as well as those specified through GCDEF commands. Duplicate table entries are compressed out in some cases.  | Display a range of general contact interactions in table format
                                spanning contact sections SECT1 to
                                    SECT1END and target sections
                                    SECT2 to
                                    SECT2END:
                                GCDEF,TABLE,Display all interactions in tabular format (without compression): GCDEF,TABLE,TOTAL  | 
| TABLESOL | 
                                 Lists a table showing actual interactions considered during solution. This option is only available after the SOLVE command. For auto asymmetric contact, TABLESOL indicates which of the possible contact versus target surface combinations was considered.  | Display a range of the actual general contact interactions used
                                during solution in table format, with the range spanning from
                                contact sections SECT1 to
                                    SECT1END and target sections
                                    SECT2 to
                                    SECT2END::
                                GCDEF,TABLESOL,  | 
The LIST and TABLE options of the GCDEF command are useful for tracking the contact interactions that are defined between specific surfaces. GCDEF,LIST lists the stored GCDEF data. No interpretation is applied. GCDEF,TABLE interprets the stored data onto the available section combinations and presents the information in a table format.
The following examples demonstrate how to interpret the LIST and TABLE output.
Consider a situation where GCGEN creates four general contact surfaces with section IDs 2 through 5:
gcgen
 GENERATE GENERAL CONTACT ELEMENTS...
     New general contact elements have Section ID from     2 to     5
Using the LIST and TABLE options before defining any specific contact interactions results in the output as shown below:
gcdef,list GENERAL CONTACT PROPERTY OPTION = LIST *** WARNING *** CP = 0.000 TIME= 00:00:00 There are no contact definitions to list.
The LIST operation shows no stored GCDEF data entries.
gcdef,table
 GENERAL CONTACT PROPERTY OPTION = TABLE
  Section1 Section2  M MAT R REAL  a/A Auto Asym (program/user) S Symm  E Exclude
 (contact) (target)         * Default  - Unused or Undefined
                 2      0      5
          |----------------------------------------------------------------------
      2 M |    a -    ...    a -
        R |      *    ...      *
          |    ...    ...    ...
          |    ...    ...    ...
      5 M |    a -    ...    a -
        R |      *    ...      *
 
GCDEF,TABLE shows that all section ID combinations would use default settings if solved at this point. The defaults are automatic asymmetric contact (indicated by “a”), default real constant ID (indicated by “*” in the R rows), and no defined material ID (indicated by “-” in the M rows) which results in the default behavior of standard frictionless contact. Rows and columns 3 and 4 are omitted (represented by "...") because they are the same as surrounding rows and columns 2 and 5.
To see the entire table, issue GCDEF,TABLE,TOTAL.
gcdef,table,total
 GENERAL CONTACT PROPERTY OPTION = TABLE       (COMPLETE)
  Section1 Section2  M MAT R REAL  a/A Auto Asym (program/user) S Symm  E Exclude
 (contact) (target)         * Default  - Unused or Undefined
                 2      3      4      5
          |----------------------------------------------------------------------
      2 M |    a -    a -    a -    a -
        R |      *      *      *      *
      3 M |    a -    a -    a -    a -
        R |      *      *      *      *
      4 M |    a -    a -    a -    a -
        R |      *      *      *      *
      5 M |    a -    a -    a -    a -
        R |      *      *      *      *
First, define asymmetric contact between section ID 2 (contact surface) and section ID 3 (target surface):
gcdef,asym,2,3  ! GCDEF #1
 GENERAL CONTACT PROPERTY OPTION = ASYM    
     BETWEEN SECTIONS     2 (CONTACT) AND     3 (TARGET)
gcdef,list
 GENERAL CONTACT PROPERTY OPTION = LIST       (COMPLETE)
   Section1  Section2     Interaction   Material      Real
  (contact)  (target)
 ----------------------------------------------------------
          2         3            ASYM          -         -
gcdef,table
 GENERAL CONTACT PROPERTY OPTION = TABLE
  Section1 Section2  M MAT R REAL  a/A Auto Asym (program/user) S Symm  E Exclude
 (contact) (target)         * Default  - Unused or Undefined
                 2      3      4      5
          |----------------------------------------------------------------------
      2 M |    a -      -    a -    a -
        R |      *      *      *      *
      3 M |      -    a -    a -    a -
        R |      -      *      *      *
      4 M |    a -    a -    a -    a -
        R |      *      *      *      *
      5 M |    a -    a -    a -    a -
        R |      *      *      *      *
The effect is seen in the 2/3 and 3/2 table entries: 2/3 is active (* indicates
                default for real constant ID) and 3/2 is inactive (- indicates unused real constant
                ID). This will be easier to see later when a nonzero real constant ID is assigned
                for entry 2/3. (Note that GCDEF command #1 did not specify
                    MATID or REALID.)
Next, enter GCDEF,ASYM to reverse the asymmetric contact order for sections 2 and 3:
gcdef,asym,3,2     ! GCDEF #2 - overwrites 2,3  (same record)
 GENERAL CONTACT PROPERTY OPTION = ASYM    
     BETWEEN SECTIONS     3 (CONTACT) AND     2 (TARGET)
gcdef,list
 GENERAL CONTACT PROPERTY OPTION = LIST       (COMPLETE)
    
   Section1  Section2     Interaction   Material      Real
  (contact)  (target)
 ----------------------------------------------------------
          3         2            ASYM          -         -
gcdef,table
 GENERAL CONTACT PROPERTY OPTION = TABLE
  Section1 Section2  M MAT R REAL  a/A Auto Asym (program/user) S Symm  E Exclude
 (contact) (target)         * Default  - Unused or Undefined
                 2      3      4      5
          |----------------------------------------------------------------------
      2 M |    a -      -    a -    a -
        R |      *      -      *      *
      3 M |      -    a -    a -    a -
        R |      *      *      *      *
      4 M |    a -    a -    a -    a -
        R |      *      *      *      *
      5 M |    a -    a -    a -    a -
        R |      *      *      *      *
There is still only one GCDEF entry listed since the second GCDEF command overwrote the first one. In the table, 3/2 is active and 2/3 is inactive.
Next, add a material ID to that same 2/3 entry. Because the
                    Option field is blank, the previous
                    Option (which was ASYM) is unchanged.
gcdef,,2,3,102       ! GCDEF #3 - mat 102
 GENERAL CONTACT PROPERTY OPTION =         
     BETWEEN SECTIONS     2 AND     3
     Use material number           =    102
gcdef,list
 GENERAL CONTACT PROPERTY OPTION = LIST       (COMPLETE)
   Section1  Section2     Interaction   Material      Real
  (contact)  (target)
 ----------------------------------------------------------
          3         2            ASYM        102         -
gcdef,table
 GENERAL CONTACT PROPERTY OPTION = TABLE
  Section1 Section2  M MAT R REAL  a/A Auto Asym (program/user) S Symm  E Exclude
 (contact) (target)         * Default  - Unused or Undefined
                 2      3      4      5
          |----------------------------------------------------------------------
      2 M |    a -      -    a -    a -
        R |      *      -      *      *
      3 M |    102    a -    a -    a -
        R |      *      *      *      *
      4 M |    a -    a -    a -    a -
        R |      *      *      *      *
      5 M |    a -    a -    a -    a -
        R |      *      *      *      *
Next, add material and real constant IDs to be used in the contact between section IDs 2 and 4:
gcdef,,2,4, 101,201   ! GCDEF #4 - mat 101 real 201
 GENERAL CONTACT PROPERTY OPTION =         
     BETWEEN SECTIONS     2 AND     4
     Use material number           =    101
     Use real constant number      =    201
gcdef,list
 GENERAL CONTACT PROPERTY OPTION = LIST       (COMPLETE)
   Section1  Section2     Interaction   Material      Real
  (contact)  (target)
 ----------------------------------------------------------
          3         2            ASYM        102         -
          2         4               -        101       201
gcdef,table
 GENERAL CONTACT PROPERTY OPTION = TABLE
  Section1 Section2  M MAT R REAL  a/A Auto Asym (program/user) S Symm  E Exclude
 (contact) (target)         * Default  - Unused or Undefined
                 2      3      4      5
          |----------------------------------------------------------------------
      2 M |    a -      -  a 101    a -
        R |      *      -    201      *
      3 M |    102    a -    a -    a -
        R |      *      *      *      *
      4 M |  a 101    a -    a -    a -
        R |    201      *      *      *
      5 M |    a -    a -    a -    a -
        R |      *      *      *      *
Next, specify symmetric contact between section IDs 2 and 5 and assign material ID 101:
gcdef,symm,2,5,101   ! GCDEF #5 - mat 101
 GENERAL CONTACT PROPERTY OPTION = SYMM    
     BETWEEN SECTIONS     2 AND     5
     Use material number           =    101
gcdef,list
 GENERAL CONTACT PROPERTY OPTION = LIST       (COMPLETE)
   Section1  Section2     Interaction   Material      Real
  (contact)  (target)
 ----------------------------------------------------------
          3         2            ASYM        102         -
          2         4               -        101       201
          2         5            SYMM        101         -
gcdef,table
 GENERAL CONTACT PROPERTY OPTION = TABLE
  Section1 Section2  M MAT R REAL  a/A Auto Asym (program/user) S Symm  E Exclude
 (contact) (target)         * Default  - Unused or Undefined
                 2      3      4      5
          |----------------------------------------------------------------------
      2 M |    a -      -  a 101  S 101
        R |      *      -    201      *
      3 M |    102    a -    a -    a -
        R |      *      *      *      *
      4 M |  a 101    a -    a -    a -
        R |    201      *      *      *
      5 M |  S 101    a -    a -    a -
        R |      *      *      *      *
Next, specify material ID 301 for contact between section ID 3 and any other section:
gcdef,,3,all, 301     ! GCDEF #6 - mat 301
 GENERAL CONTACT PROPERTY OPTION =         
     BETWEEN SECTION     3 AND ALL OTHER SECTIONS
     Use material number           =    301
gcdef,list
 GENERAL CONTACT PROPERTY OPTION = LIST       (COMPLETE)
   Section1  Section2     Interaction   Material      Real
  (contact)  (target)
 ----------------------------------------------------------
          3         2            ASYM        102         -
          2         4               -        101       201
          2         5            SYMM        101         -
          3       ALL               -        301         -
gcdef,table
 GENERAL CONTACT PROPERTY OPTION = TABLE
  Section1 Section2  M MAT R REAL  a/A Auto Asym (program/user) S Symm  E Exclude
 (contact) (target)         * Default  - Unused or Undefined
                 2      3      4      5
          |----------------------------------------------------------------------
      2 M |    a -      -  a 101  S 101
        R |      *      -    201      *
      3 M |    102  a 301  a 301  a 301
        R |      *      *      *      *
      4 M |  a 101  a 301    a -    a -
        R |    201      *      *      *
      5 M |  S 101  a 301    a -    a -
        R |      *      *      *      *
The 3/ALL material ID setting applies to 3/3, 3/4 (4/3), and 3/5 (5/3). It does
                not apply to 2/3 (3/2), because there is a more specific 2/3 (3/2) setting for
                material ID. It does not matter in what order the 2/3 and 3/ALL settings are defined
                for material ID, or in what order they are listed. This priority based assignment is
                performed separately for Option,
                    MATID, and REALID for
                every combination of section IDs used by general contact.
Next, specify real constant ID 401 for all general contact:
gcdef,,all,all, ,401    ! GCDEF #7 - real 401
 GENERAL CONTACT PROPERTY OPTION =         
     DEFAULT IF NOT SPECIFIED OTHERWISE
     Use real constant number      =    401
gcdef,list
 GENERAL CONTACT PROPERTY OPTION = LIST       (COMPLETE)
   Section1  Section2     Interaction   Material      Real
  (contact)  (target)
 ----------------------------------------------------------
        ALL       ALL               -          -       401
          3         2            ASYM        102         -
          2         4               -        101       201
          2         5            SYMM        101         -
          3       ALL               -        301         -
gcdef,table
 GENERAL CONTACT PROPERTY OPTION = TABLE
  Section1 Section2  M MAT R REAL  a/A Auto Asym (program/user) S Symm  E Exclude
 (contact) (target)         * Default  - Unused or Undefined
                 2      3      4      5
          |----------------------------------------------------------------------
      2 M |    a -      -  a 101  S 101
        R |    401      -    201    401
      3 M |    102  a 301  a 301  a 301
        R |    401    401    401    401
      4 M |  a 101  a 301    a -    a -
        R |    201    401    401    401
      5 M |  S 101  a 301    a -    a -
        R |    401    401    401    401
The ALL/ALL real constant setting applies to most of the table, but it does not apply to 2/4 (4/2) because there is a more specific 2/4 (4/2) setting for real constant ID.
Next, specify real constant ID 501 for all self contact. That is, contact between general contact elements having the same section ID. This is represented by diagonal entries in the table.
gcdef,,all,self, ,501    ! GCDEF #8 - real 501
 GENERAL CONTACT PROPERTY OPTION =         
     ALL SELF CONTACT
     Use real constant number      =    501
gcdef,list
 GENERAL CONTACT PROPERTY OPTION = LIST       (COMPLETE)
   Section1  Section2     Interaction   Material      Real
  (contact)  (target)
 ----------------------------------------------------------
        ALL      SELF               -          -       501
        ALL       ALL               -          -       401
          3         2            ASYM        102         -
          2         4               -        101       201
          2         5            SYMM        101         -
          3       ALL               -        301         -
gcdef,table
 GENERAL CONTACT PROPERTY OPTION = TABLE
  Section1 Section2  M MAT R REAL  a/A Auto Asym (program/user) S Symm  E Exclude
 (contact) (target)         * Default  - Unused or Undefined
                 2      3      4      5
          |----------------------------------------------------------------------
      2 M |    a -      -  a 101  S 101
        R |    501      -    201    401
      3 M |    102  a 301  a 301  a 301
        R |    401    501    401    401
      4 M |  a 101  a 301    a -    a -
        R |    201    401    501    401
      5 M |  S 101  a 301    a -    a -
        R |    401    401    401    501
The ALL/SELF Real setting takes precedence over ALL/ALL, where it applies.
Next, exclude contact between section ID 4 and any other section:
gcdef,excl,4,all      ! GCDEF #9
 GENERAL CONTACT PROPERTY OPTION = EXCLUDE 
     BETWEEN SECTION     4 AND ALL OTHER SECTIONS
gcdef,list
 GENERAL CONTACT PROPERTY OPTION = LIST       (COMPLETE)
   Section1  Section2     Interaction   Material      Real
  (contact)  (target)
 ----------------------------------------------------------
        ALL      SELF               -          -       501
        ALL       ALL               -          -       401
          3         2            ASYM        102         -
          2         4               -        101       201
          2         5            SYMM        101         -
          3       ALL               -        301         -
          4       ALL         EXCLUDE          -         -
gcdef,table
 GENERAL CONTACT PROPERTY OPTION = TABLE
  Section1 Section2  M MAT R REAL  a/A Auto Asym (program/user) S Symm  E Exclude
 (contact) (target)         * Default  - Unused or Undefined
                 2      3      4      5
          |----------------------------------------------------------------------
      2 M |    a -      -  a 101  S 101
        R |    501      -    201    401
      3 M |    102  a 301      E  a 301
        R |    401    501      E    401
      4 M |  a 101      E      E      E
        R |    201      E      E      E
      5 M |  S 101  a 301      E    a -
        R |    401    401      E    501
The Option = EXCL (exclude) setting for 4/ALL applies
                to 3/4 (4/3), 4/4, and 4/5 (5/4). But it does not apply to 2/4 (4/2), because there
                is a more specific 2/4 (4/2) setting for Option.
After the SOLVE command is issued, the TABLESOLU option can be used to show the MAT and REAL values used during solution.
/solu
solve
gcdef,tablesolu
 GENERAL CONTACT PROPERTY OPTION = TABLESOLU             
  Section1 Section2  M MAT R REAL  
 (contact) (target)         - Unused or Undefined
           .     2.     3.     4.     5
          |----------------------------------------------------------------------
      2 M |      -      -    101    101
        R |.   501.      .   201.   401
      3 M |    102    301      -    301
        R |.   401.   501.      .   401
      4 M |      -      -      -      -
        R |.      .      .      .      
      5 M |    101      -      -      -
        R |.   401.      .      .   501
Finally, use GCDEF,DELETE, which removes an entry in the list and might affect many entries in the table or at SOLVE.
/prep7
gcdef,dele,all,all    ! GCDEF #10 - delete entry for all all
 GENERAL CONTACT PROPERTY OPTION = DELETE  
     DEFAULT IF NOT SPECIFIED OTHERWISE
gcdef,list
 GENERAL CONTACT PROPERTY OPTION = LIST       (COMPLETE)
   Section1  Section2     Interaction   Material      Real
  (contact)  (target)
 ----------------------------------------------------------
        ALL      SELF               -          -       501
          3         2            ASYM        102         -
          2         4               -        101       201
          2         5            SYMM        101         -
          3       ALL               -        301         -
          4       ALL         EXCLUDE
gcdef,table
 GENERAL CONTACT PROPERTY OPTION = TABLE
  Section1 Section2  M MAT R REAL  a/A Auto Asym (program/user) S Symm  E Exclude
 (contact) (target)         * Default  - Unused or Undefined
                 2      3      4      5
          |----------------------------------------------------------------------
      2 M |    a -      -  a 101  S 101
        R |    501      -    201      *
      3 M |    102    a -  a 301  a 301
        R |      *    501      *      *
      4 M |  a 101  a 301    a -    a -
        R |    201      *    501      *
      5 M |  S 101  a 301    a -    a -
        R |      *      *      *    501
In most cases the order of GCDEF commands is unimportant. However, there are a few exceptions. In the contrived example presented here, the order of GCDEF commands #1 and #2 matters because the last one entered determines the section 2/3 ASYM contact/target assignment. In addition, GCDEF #7 and #10 define and then delete the ALL/ALL entry. Otherwise, the order of the ten GCDEF commands does not affect the solution.
Several *GET command formats are available for retrieving
                information related to general contact surfaces. In these commands,
                    Sect1 and Sect2 represent
                section ID numbers of general contact surfaces.
| *GET Command Format | Action | Comments | ||||
|---|---|---|---|---|---|---|
                                *GET,  | Retrieves the material ID (MATID) used
                                for the contact interaction at the interface between
                                    Sect1 and
                                    Sect2 | This is equivalent to the get function
                                    SECTOMAT(Sect1,Sect2) | ||||
                                *GET,  | Retrieves the real constant ID
                                (REALID) used for the contact interaction
                                at the interface between Sect1 and
                                    Sect2 | This is equivalent to the get function
                                    SECTOREAL(Sect1,Sect2) | ||||
                                *GET,  | Retrieves a number that indicates the type of contact defined for
                                the contact interaction at the interface between
                                    Sect1 and
                                    Sect2 | Possible values are:
  |