added Nassi-Schneidermann-Diagrams for two more functions
This commit is contained in:
parent
7b638d7b94
commit
f4095e4127
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<root text=""crystallite_stressAndItsTangent"" comment="" color="ffffff" type="sub" style="nice">
|
||||
<children>
|
||||
<alternative text=""crystallite_requested"" comment="" color="ffffff">
|
||||
<qTrue>
|
||||
<instruction text=""constitutive_subState0 = constitutive_partionedState0 crystallite_subFrac = 0.0","crystallite_subFp0 = crystallite_partionedFp0 crystallite_subStep = 2.0","crystallite_subLp0 = crystallite_partionedLp0 crystallite_onTrack = .true.","crystallite_subF0 = crystallite_partionedF0 crystallite_converged = .false."" comment="" color="ffffff" rotated="0"></instruction>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
<instruction text=""NiterationCrystallite = 0"" comment="" color="ffffff" rotated="0"></instruction>
|
||||
<while text=""CRYSTALLITE LOOP: any: crystallite_subStep > subStepMin"" comment="" color="ffffff">
|
||||
<qWhile>
|
||||
<instruction text=""(see crystallite_stressAndItsTangent_CrystalliteLoop.nsd)"" comment="" color="ffffff" rotated="0"></instruction>
|
||||
</qWhile>
|
||||
</while>
|
||||
<alternative text="".not. crystallite_converged"" comment="" color="ffffff">
|
||||
<qTrue>
|
||||
<instruction text=""ELASTIC RESPONSE:"" comment="" color="ffffff" rotated="0"></instruction>
|
||||
<call text=""Fe_guess = crystallite_partionedF * crystallite_partionedFp0 ^ -1"" comment="" color="ffffff"></call>
|
||||
<call text=""Tstar = 0.5 * constitutive_homogenizedC * ( Fe_guess ^ T * Fe_guess - math_I3 )"" comment="" color="ffffff"></call>
|
||||
<call text=""crystallite_P = Fe_guess * Tstar * crystallite_partionedFp0 ^ -T"" comment="" color="ffffff"></call>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
<alternative text=""updateJaco"" comment="" color="ffffff">
|
||||
<qTrue>
|
||||
<instruction text=""STIFFNESS CALCULATION: (see crystallite_stressAndItsTangent_StiffnessCalculation.nsd)"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
</children>
|
||||
</root>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,56 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<root text=""crystallite_stressAndItsTangent (Crystallite Loop)"" comment="""" color="ffffff" type="sub" style="nice">
|
||||
<children>
|
||||
<instruction text=""NiterationCrystallite = NiterationCrystallite + 1"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
<alternative text=""any: .not. crystallite_converged .and. .not. crystallite_localConstitution"" comment="""" color="ffffff">
|
||||
<qTrue>
|
||||
<instruction text=""all: crystallite_converged = crystallite_converged .and. crystallite_localConstitution"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
<alternative text=""crystallite_converged"" comment="" color="ffffff">
|
||||
<qTrue>
|
||||
<instruction text=""WINDING FORWARD: ","crystallite_subFrac = crystallite_subFrac + crystallite_subStep","crystallite_subStep = min(1.0 - _crystallite_subFrac, 2.0 * crystallite_subStep)"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
<alternative text=""crystallite_subStep > subStepMin"" comment="" color="ffffff">
|
||||
<qTrue>
|
||||
<instruction text=""crystallite_subF0 = crystallite_subF","crystallite_subFp0 = crystallite_Fp","crystallite_subLp0 = crystallite_Lp","constitutive_subState0 = crystallite_state"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
<instruction text=""CUTBACK:","crystallite_subStep = 0.5 * crystallite_subStep","crystallite_Fp = crystallite_subFp0","crystallite_Lp = crystallite_subLp0","constitutive_state = crystallite_subState0"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
<instruction text=""crystallite_onTrack = crystallite_subStep > subStepMin"" comment="" color="ffffff" rotated="0"></instruction>
|
||||
<alternative text=""crystallite_onTrack"" comment="" color="ffffff">
|
||||
<qTrue>
|
||||
<instruction text=""crystallite_subF = crystallite_subF0 + crystallite_subStep * ( crystallite_partionedF - crystallite_partionedF0)","crystallite_subdt = crystallite_subStep * crystallite_dt","crystallite_converged = .false."" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
<instruction text=""NiterationState = 0"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
<for text=""STATE LOOP: any: crystallite_requested .and. crystallite_onTrack .and. .not. crystallite_converged"," .and. NiterationState < ncryst"" comment="""" color="ffffff">
|
||||
<qFor>
|
||||
<instruction text=""NiterationState = NiterationState + 1"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
<alternative text=""crystallite_requested .and. crystallite_onTrack"" comment="""" color="ffffff">
|
||||
<qTrue>
|
||||
<call text=""crystallite_onTrack = crystallite_integrateStress"" comment="" color="ffffff"></call>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
<alternative text=""crystallite_requested .and. crystallite_onTrack"" comment="""" color="ffffff">
|
||||
<qTrue>
|
||||
<call text=""crystallite_converged = crystallite_updateState"" comment="" color="ffffff"></call>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
</qFor>
|
||||
</for>
|
||||
</children>
|
||||
</root>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<root text=""crystallite_stressAndItsTangent (stiffness calculation)"" comment="" color="ffffff" type="sub" style="nice">
|
||||
<children>
|
||||
<alternative text=""crystallite_converged"" comment="""" color="ffffff">
|
||||
<qTrue>
|
||||
<instruction text=""myState = constitutive_state","myF = crystallite_subF","myFp = crystallite_Fp","myFe = crystallite_Fe","myLp = crystallite_Lp","myP = crystallite_P"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
<for text=""k = 1 , 3"" comment="""" color="ffffff">
|
||||
<qFor>
|
||||
<while text=""l = 1 , 3"" comment="""" color="ffffff">
|
||||
<qWhile>
|
||||
<instruction text=""crystallite_subF(:,:) = myF","crystallite_subF(k,l) = crystallite_subF(k,l) + pert_Fg"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
<instruction text=""onTrack = .true.","converged = .false.","NiterationState = 0"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
<for text=""STIFFNESS LOOP: .not. converged .and. onTrack .and. NiterationState < nState"" comment="""" color="ffffff">
|
||||
<qFor>
|
||||
<instruction text=""NiterationState = NiterationState + 1"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
<call text=""onTrack = crystallite_integrateStress"" comment="""" color="ffffff"></call>
|
||||
<alternative text=""onTrack"" comment="""" color="ffffff">
|
||||
<qTrue>
|
||||
<call text=""converged = crystallite_updateState"" comment="""" color="ffffff"></call>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
</qFor>
|
||||
</for>
|
||||
<alternative text=""converged"" comment="""" color="ffffff">
|
||||
<qTrue>
|
||||
<instruction text=""crystallite_dPdF = ( crystallite_P - myP ) / pert_Fg"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
<instruction text=""constitutive_state = myState","crystallite_Fp = myFp","crystallite_Fe = myFe","crystallite_Lp = myLp","crystallite_P = myP"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
</qWhile>
|
||||
</while>
|
||||
</qFor>
|
||||
</for>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
<instruction text=""crystallite_dPdF = crystallite_fallbackdPdF"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
</children>
|
||||
</root>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<root text=""crystallite_updateState"" comment="" color="ffffff" type="sub" style="nice">
|
||||
<children>
|
||||
<instruction text=""residuum = ( constitutive_state - constitutive_subState0 ) - constitutive_subdt * constitutive_dotState ( ... )"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
<alternative text=""NaN occured in residuum"" comment="""" color="ffffff">
|
||||
<qTrue>
|
||||
<instruction text=""NO CONVERGENCE: return"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
</qTrue>
|
||||
<qFalse>
|
||||
</qFalse>
|
||||
</alternative>
|
||||
<instruction text=""constitutive_state = constitutive_state - residuum"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
<instruction text=""crystallite_updateState = abs ( residuum / constitutive_state ) < rTol_crystalliteState"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
<instruction text=""return"" comment="""" color="ffffff" rotated="0"></instruction>
|
||||
</children>
|
||||
</root>
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue