<?xml version="1.0" encoding="ISO-8859-1"?> <root text=""crystallite_integrateStress LpLoop"" comment="" color="ffffff" type="sub" style="nice"> <children> <instruction text=""NiterationStress = NiterationStress + 1"" comment="" color="ffffff" rotated="0"></instruction> <alternative text=""NiterationStress > nStress"" comment="" color="ffffff"> <qTrue> <instruction text=""TOO MANY ITERATIONS: return"" comment="" color="ffffff" rotated="0"></instruction> </qTrue> <qFalse> </qFalse> </alternative> <instruction text=""B = math_i3 - crystallite_subdt(g,i,e)*Lpguess","Tstar_v = 0.5 * C * (B^T * A * B - math_I3)","p_hydro = sum(Tstar_v(1:3))/3.0","forall (i=1:3) Tstar_v(i) = Tstar_v(i) - p_hydro"" comment="" color="ffffff" rotated="0"></instruction> <call text=""[Lp_constitutive, dLp_constitutive] = constitutive_LpAndItsTangent (Tstar_v, crystallite_Temperature)"" comment="" color="ffffff"></call> <instruction text=""residuum = Lpguess - Lp_constitutive"" comment="" color="ffffff" rotated="0"></instruction> <alternative text=""no NaN ocuured in residuum",".and. (residuum below absolute tolerance .or. (above relevant strain .and. residuum below relative tolerance))"" comment="" color="ffffff"> <qTrue> <jump text=""LOOP CONVERGED: exit LpLoop"" comment="" color="ffffff"></jump> </qTrue> <qFalse> </qFalse> </alternative> <alternative text=""NaN occured in residuum .and. leapfrog == 1.0"" comment="" color="ffffff"> <qTrue> <instruction text=""NO CONVERGENCE: return"" comment="" color="ffffff" rotated="0"></instruction> </qTrue> <qFalse> <alternative text=""leapfrog > 1.0",".and. (worse residuum .or. residuum changed sign .or. NaN occured)"" comment="" color="ffffff"> <qTrue> <instruction text=""maxleap = 0.5 * leapfrog","leapfrog = 1.0","jacoCounter = 0","Lpguess = Lpguess_old","residuum = residuum_old"" comment="""" color="ffffff" rotated="0"></instruction> </qTrue> <qFalse> <alternative text=""mod(jacoCounter,iJacoLpresiduum) == 0"" comment="""" color="ffffff"> <qTrue> <instruction text=""dTdLp = - 0.5 * crystallite_subdt * C * (A*B + B^T*A)","dRdLp = math_identity2nd(9) - dLp_constitutive * dTdLp"" comment="" color="ffffff" rotated="0"></instruction> <call text=""[invdRdLp,dummy,error] = math_invert(9,dRdLp)"" comment="" color="ffffff"></call> <alternative text=""error"" comment="" color="ffffff"> <qTrue> <instruction text=""INVERSION FAILED: return"" comment="" color="ffffff" rotated="0"></instruction> </qTrue> <qFalse> </qFalse> </alternative> </qTrue> <qFalse> </qFalse> </alternative> <instruction text=""jacoCounter = jacoCounter + 1","residuum_old = residuum","Lpguess_old = Lpguess"" comment="""" color="ffffff" rotated="0"></instruction> <alternative text=""NiterationStress > 1 .and. leapfrog < maxleap"" comment="" color="ffffff"> <qTrue> <instruction text=""leapfrog = 2.0 * leapfrog"" comment="" color="ffffff" rotated="0"></instruction> </qTrue> <qFalse> </qFalse> </alternative> </qFalse> </alternative> </qFalse> </alternative> <instruction text=""Lpguess = Lpguess - leapfrog * invdRdLp * residuum"" comment="" color="ffffff" rotated="0"></instruction> </children> </root>