Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2019:04_05

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
commit:2019:04_05 [2019/04/05 11:30] – created laruellecommit:2019:04_05 [2019/04/05 13:55] (current) laruelle
Line 1: Line 1:
 ====== Commit 2019-05-04 ====== ====== Commit 2019-05-04 ======
-===== Stabilization of the ===== +===== Stabilization of the “Souza” method in ContinuousDamageEvpIsoHHypoMaterial===== 
-In the last commit the preprocessing using Trapezoid and Lobatto integration for big cases was way longer than expected, the SfIntegratorTemplate<DIMSF>::match function had not been modified to recognize Lobatto and Trapezoid Integrators+Some test cases using the "Souza" method for stress computation in the ContinuousDamageEvpIsoHHypoMaterial were not working only on my computer (apps.monosMaterials2.EvpIsoDamageLemaitreSouza). After looking into it I noticed that even on the other machines some of the test cases were a bit unstable or had an abnormally high number of steps/iterations. The problem occurred in the tests where a force was first appliedincreasing the damage in the material, and then the force stopped, which should result in no modification of the damage in the rest of the simulation. An example is EvpIsoDamageLemaitreSouza.TracRot3DNumEas where we have first a traction and then a simple rotation of the Element. Those tests had convergence issues in the part of the simulation where the damage evolution should be 0.  
-===== Cleaning test cases===== + 
-As advised by RomainI cleaned the new test cases to avoid copy/paste.+To solve this problem I first checked the implementation of all the equations and found no mistakes. 
 + 
 +I concluded that the problem might be purely numerical so I tried to improve the code and made the following changes: 
 + 
 +1) I changed the computation of the derivative of the residue with respect to deltaR (effective plastic strain increment) to compute seperately the term relative to the damage (dResD) and to the damage evolution function (dResDD). Those two terms having different order of magnitude in the case where the damage should not change, this should result in less numerical errors. 
 + 
 +2) I changed the minimum allowed deltaR (effective plastic strain increment) from 1.0e-16 to 0.0
 + 
 +3) In the N-R, there was no check to see if "deltaR<deltaRMin" and the check on deltaRMax was simply: 
 +<code> 
 +                if(deltaR>deltaRMax) 
 +                { 
 +                    deltaR deltaRMax; 
 +                } 
 +</code> 
 +I changed this for a better convergence of N-R to: 
 +<code> 
 +                if(deltaR<deltaRMin) 
 +                { 
 +                    deltaR (deltaRMax + deltaRMin) / 2.0; 
 +                } 
 +                if (deltaR>deltaRMax) 
 +                { 
 +                    deltaR (deltaRMax+deltaRMin)/2.0; 
 +                } 
 +</code> 
 + 
 +With those modificationsall tests converged on my machine and the convergence of the tests which had an abnormal number of steps/iterations on every machines got improved.  
 +For example the test:  
 +apps.monosMaterials2.EvpIsoDamageLemaitreSouza - PureShear3DKeepSNumEas  
 + 
 +Got his number of steps decreased from 81 (abnormaly high) to 26 (normal) on Gaston. 
 +   
 + 
  
 ===== Added [a] / deleted [d] / modified [m] / renamed [r] files ====== ===== Added [a] / deleted [d] / modified [m] / renamed [r] files ======
 ====Code:==== ====Code:====
 <code> <code>
-[m] mtShapeFunctions/SfIntegrator.h +[m]mtMaterials/volumes/ContinuousDamageEvpIsoHHypoMaterial.cpp
-[m] mtShapeFunctions/SfIntegratorSet.cpp +
-[m] mtShapeFunctions/SfIntegratorSet.h +
-[m] mtShapeFunctions/SfIntegratorTemplate.h +
-[m] mtShapeFunctions/SfIntegratorTemplate.hpp+
 </code> </code>
 ====Tests:==== ====Tests:====
 <code> <code>
-[m] apps/monosMaterials2/EvpIsoDamageLemaitreSouza.py +[m]apps/monosMaterials2/EvpIsoDamageLemaitreSouza.py
-[m] apps/monosMeca/IntGauss2d2Nip.py +
-[m] apps/monosMeca/IntGauss2d2NipElast.py +
-[m] apps/monosMeca/IntGauss2d3Nip.py +
-[m] apps/monosMeca/IntGauss2d4Nip.py +
-[m] apps/monosMeca/IntGauss3d2Nip.py +
-[m] apps/monosMeca/IntGauss3d3Nip.py +
-[m] apps/monosMeca/IntGauss3d4Nip.py +
-[m] apps/monosMeca/IntGauss3dElast.py +
-[m] apps/monosMeca/IntLobatto2d2Nip.py +
-[m] apps/monosMeca/IntLobatto2d2NipElast.py +
-[m] apps/monosMeca/IntLobatto2d3Nip.py +
-[m] apps/monosMeca/IntLobatto2d4Nip.py +
-[m] apps/monosMeca/IntLobatto3d2Nip.py +
-[m] apps/monosMeca/IntLobatto3d2NipElast.py +
-[m] apps/monosMeca/IntLobatto3d3Nip.py +
-[m] apps/monosMeca/IntLobatto3d4Nip.py +
-[m] apps/monosMeca/IntTrapezoid2d2Nip.py +
-[m] apps/monosMeca/IntTrapezoid2d2NipElast.py +
-[m] apps/monosMeca/IntTrapezoid2d3Nip.py +
-[m] apps/monosMeca/IntTrapezoid2d4Nip.py +
-[m] apps/monosMeca/IntTrapezoid3d2Nip.py +
-[m] apps/monosMeca/IntTrapezoid3d2NipElast.py +
-[m] apps/monosMeca/IntTrapezoid3d3Nip.py +
-[m] apps/monosMeca/IntTrapezoid3d4Nip.py +
-[m] apps/qs/cont2IntLobatto.py +
-[m] apps/qs/cont2IntTrapezoid.py +
 </code> </code>
  
- --- //[[Cedric.Laruelle@ULiege.be|Cédric Laruelle]] 2019/01/24 //+ --- //[[Cedric.Laruelle@ULiege.be|Cédric Laruelle]] 2019/05/04 //
  
  
  
commit/2019/04_05.1554456624.txt.gz · Last modified: 2019/04/05 11:30 by laruelle

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki