55 lines
3.4 KiB
Plaintext
55 lines
3.4 KiB
Plaintext
|
<?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","Lpguess = Lpguess_old","residuum = residuum_old"" comment="" color="ffffff" rotated="0"></instruction>
|
||
|
</qTrue>
|
||
|
<qFalse>
|
||
|
<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>
|
||
|
<instruction text=""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>
|