Issue with ComputeFiniteStrain - seems unable to solve problem with zero rotation #27292
-
Hi, I am solving a simple problem which involves stretching of a membrane in one direction. I get the following error with
However, if I switch to ComputeIncrementalSmallStrain it works fine. I initially thought the issue was with the stretch ratio of 1.1 (i.e 1.1 times it's original size) being to small to be considered Finite Strain, but then when I increased the ratio to 1.8, I got the same error. I am using an incredibly fine mesh, and since the poisson's ratio is close to 0.5, I also applied a volumetric locking correction. I am not sure how to solve this issue. There is no rotation in my problem so the rotation tensor should be zero. |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 32 replies
-
If "no rotation" really was the issue then we wouldn't even be able to compute the initial residual or a body at rest with no loading. I'm pretty sure that's not the issue here. It would help if you added a minimal non-working example here. |
Beta Was this translation helpful? Give feedback.
-
What order elements are you using? The |
Beta Was this translation helpful? Give feedback.
-
A few suggestions:
|
Beta Was this translation helpful? Give feedback.
Hi, I found the source of the problem. To get it to converge to the right solution I:
-Switched to manual numerical differentiation, was able to get at least one converged timestep. Apparently, the
getMaterialPropertyDerivative
cannot do tensor differentiation.-Switched to a penalty method. The
PC failed due to FACTOR_NUMERIC_ZEROPIVOT
was coming from the extra field (pressure), and there was no boundary condition to set to it. After implementing that that went away.-Switched to PK2 formulation (probably didnt do as much to help)
-Set low floating point values to zero, they were coming up in the deformation gradient and seemed to throw the solution in the opposite direction? (see the la…