Change flex strain constraints for trilinear to a more stable formulation.
This change improves trilinear flex elements by using reduced integration for volumetric quantities (strain trace and volume ratio) at the element center, while adding full integration for shear components at 8 Gauss points and removing the second strain invariant from the constraints, which is negligible for small strains. This reduced integration "B-bar" technique is standard in finite element analysis and prevents artificial stiffness that can occur when low-order elements are nearly incompressible. The constraint count per trilinear element changes from 24 to 26 compared to using invariants. For quadratic elements, the full 27 quadrature point are used resulting in 162 constraints. PiperOrigin-RevId: 884570752 Change-Id: Ib74ece8f4712c2c81fbfd784524fcac52a2c80e5
This commit is contained in:
committed by
Copybara-Service
parent
a5098a068a
commit
ac2730ab80
@@ -211,7 +211,7 @@ typedef enum mjtEq_ { // type of equality constraint
|
||||
mjEQ_TENDON, // couple the lengths of two tendons with cubic
|
||||
mjEQ_FLEX, // fix all edge lengths of a flex
|
||||
mjEQ_FLEXVERT, // fix all vertex lengths of a flex
|
||||
mjEQ_FLEXSTRAIN, // fix strain invariants of a trilinear flex
|
||||
mjEQ_FLEXSTRAIN, // constrain strain of a trilinear/quadratic flex (B-bar)
|
||||
mjEQ_DISTANCE // unsupported, will cause an error if used
|
||||
} mjtEq;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user