Unify convergence check for lagrange-contact solvers
Main thing: unify convergence check for lagrange-contact solvers
- do not assign max force to zero in
SinglePhasePoromechanicsConformingFractures::assembleElementBasedContributionsto ensure the same normalization across the solvers and FIM/SEQ - do not compute
RdisplacementinSolidMechanicsLagrangeContact::calculateContactResidualNormand rely directly on equivalent computed bySolidMechanicsLagrangianFEM::calculateResidualNorm - keep the same (relative) logic for
Rtractionfor now but remove confusingRtotal
Side thing: add derivative
dRdT( i, 0 ) = Ja * traction[kfe][i] * dLimitTau_dNormalTraction / vauxNorm;
in SolidMechanicsLagrangeContact::assembleTractionResidualDerivativeWrtDisplacementAndTraction, it seems missing and once added improves convergence for some cases.
Codecov Report
Attention: Patch coverage is 0% with 27 lines in your changes are missing coverage. Please review.
Project coverage is 53.26%. Comparing base (
6ee3428) to head (8e3f408).
| Files | Patch % | Lines |
|---|---|---|
| ...sSolvers/contact/SolidMechanicsLagrangeContact.cpp | 0.00% | 27 Missing :warning: |
Additional details and impacted files
@@ Coverage Diff @@
## develop #3049 +/- ##
===========================================
+ Coverage 53.24% 53.26% +0.02%
===========================================
Files 989 989
Lines 83565 83529 -36
===========================================
Hits 44491 44491
+ Misses 39074 39038 -36
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
In SolidMechanicsLagrangianFEM::calculateResidualNorm, Rdisplacement is actually computed. I agree to remove Rtotal, which is a bit confusing; but suggest to keep both Rdisplacement and Rtraction for SolidMechanicsLagrangeContact::calculateContactResidualNorm to check the convergence for different primary variables.
In
SolidMechanicsLagrangianFEM::calculateResidualNorm,Rdisplacementis actually computed. I agree to removeRtotal, which is a bit confusing; but suggest to keep bothRdisplacementandRtractionforSolidMechanicsLagrangeContact::calculateContactResidualNormto check the convergence for different primary variables.
My understanding is that Rdisplacement is the same thing as Rsolid (up to normalization). Both are checking momentum equation rhs, L2 norm.