Open GregVernon opened 6 years ago
There are two contact specifications, top_surf
and top_surf_flip
below images show the behavior with top_surf
activated. top_surf_flip
has the master/slave assignment flipped.
This is the eventual state of the simulation, using the same top_surf
contact as the above image.
In the below image, I've hidden the upper platen to reveal the computed penetration value on the deformable part. Note that the penetration value is negative which suggests that a gap exists between the two contact surfaces, i.e. that there is no contact.
Interesting behaviors can be seen by moving the upper platen to have a gap or initial overlap prior to the simulation. I recommend testing the following configurations
top_surf
-No gap
-Large gap
-Small initial overlaptop_surf_flip
-No gap
-Large gap
-Small initial overlap
Rationale
Am having weird contact behaviors with a seemingly simple problem in Tensor Mechanics (RZ coordinates). Several of my collaborators at INL have been assisting with this issue and have requested this be posted here.
Description
Primarily, the issues seem to be in computing initial penetration/gap/contact which seems to be resolved by flipping master/slave assignments (which by doing (possibly) adversely affects friction calculations due to where the contact pressure is being computed). This issue manifests itself by contact surfaces "sucking together" over large distances, or not even enforcing/recognizing contact at all. The cases that correctly initiate contact seem to struggle with large sliding displacements, eventually diverging in their solutions and failing.
I've got several cases (several simplification steps) that should help describe / troubleshoot the issues. I will post each in forthcoming comments to this issue. Each will have a Cubit journal file, geometry, and input file, description, pictures, etc.
Impact
In general, robust contact will be necessary for success of Tensor Mechanics in general engineering analysis applications and resolution of this issue (whether user-error or something in the code) should improve external capabilities.