idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.76k stars 1.05k forks source link

Tensor Mechanics: Penalty Plane Wall BC #23150

Open elementx54 opened 1 year ago

elementx54 commented 1 year ago

Reason

I would like an immovable wall to constrain a body pressing against the wall, but not influence the body if it isn't in contact. Obviously, I could model a very strong wall with a contact action, but this might not be needed. A boundary condition (BC) could do the same. Comment if this is a dumb idea or have some insights to share.

Design

I'd like to add a BC that defines a plane as Ax + By + Cz + D = s where s is zero. This plane will force a penalty on any displacement that places a point of a boundary outside the plane (s < 0). The normal (A, B, C) usually should point in the general direction of the meshed body (or not, I'll let the user point it where they want). D may be solved by the user specifying a point (x1, y1, z1) that lies on the plane (s = 0). This BC will not act on any boundary point where s >= 0 (on the same side as the normal vector or on the plane).

This process will determine if the BC should act and then supply the normal and penalty to compute a similar residual to the Inclined No Displacement Boundary Condition Action System. The PenaltyInclinedNoDisplacementBC uses the normal from the boundary, but this new BC will provide the plane's normal. So really, I will be making a BC and an action for that boundary condition following the inclined no displacement process (so let me know if there is a better path/example than that).

Or should I modify InclinedNoDisplacementBC to accept a user defined plane instead of just taking the boundaries plane?

As each BC is set up by the action, I am unsure what will happen if multiple planes intersect and the body goes into this "corner". Imagine a box of these planes with a ballon being inflated until it looks like a deformed cube by the plane sides.

Impact

I am hoping this will be less computationally expensive than contact against an immovable wall and perhaps a bit more flexiable. New regression tests, documentation, and code will be added to the tensor mechanics module for the boundary condition and the action. I've never made a mechanics BC, so this might take some guidance from those with more experience, so some more developer time than usual in helping me.

elementx54 commented 1 year ago

@dschwen Is this what we were thinking?

recuero commented 1 year ago

I could model a very strong wall with a contact action

You could model a very soft wall with the contact action too. Use penalty and a low penalty factor.