Open tophmatthews opened 2 years ago
This approach seems wrong to me, like any discrete counting methods in FEM. :-/
Then how @dschwen ?
Will need to discuss. Past approaches where discrete conditions were computed and counted at qps to obtain a quantity ended up suboptimal (e.g. calculation of the grain boundary energy in phase field), the right way ended up being an correctly normalized integrated quantity. In this case my guess would be integrating the product of contact pressure and qp area, and then dividing by a reaction force.
How about using the NodalArea
quantity and only count it if there is a positive LM? I believe that, due to solver settings, a fuzzy comparison may be required.
@recuero convinced me that there are applications where such a postprocessor could be useful.
So....? @recuero 's way or this volume integral?
NodalArea
or VolumePostprocessor
... It's very similar. Do I hear that either of these ways is potentially a solution?
Your approach via VolumePostprocessor
is very straightforward and that's great. But if I were to choose, I'd still go with the NodalArea
approach because it leverages a contact-specific user object and may have a more meaningful pattern in which postprocessors leverage a nodal area value.
The VolumePostprocessor will interpolate the contact pressure, which does not seem to go well with hard thresholding. I.e. the interpolated values between a contact and a non-contact node will all be > 0, causing the entire element to be counted towards the area, where the nodal value/area based solution would only count parts of the element.
Ug damnit I'm lost...I've tried hacking NodalArea
and ContactDOFSetSize
...I would like this capability, but I've hit a wall both in skillset and time...
One approach could be to use NodalAreaAux to set an auxvariable, and then do a nodal sum for all nodes where the coupled LM exceeds 0
Yeah, I tried that. I can't seem to find the right combination of block/boundaries...
NodalArea
wants to sample on the boundary, but doesn't the LM live on the lower-D block?
Reason
Sometimes the contact area is nice to know to understand the extend of contact between two lower dimensional surfaces. In complicated contact problems, this cannot always be estimated.
Design
Create a
ElementIntegralPostprocessor
that returns one or zero if the coupled legrendge multiplier is non-zero or zero.Impact
Better calculations of contact area.