- stop on convergence
This commit is contained in:
+19
-3
@@ -53,13 +53,29 @@ A = 0*T
|
|||||||
Pa = [0 0 0 0]';
|
Pa = [0 0 0 0]';
|
||||||
Pp = [M_CaSO4; M_CaCl2; M_MgSO4; M_NaCl];
|
Pp = [M_CaSO4; M_CaCl2; M_MgSO4; M_NaCl];
|
||||||
|
|
||||||
Dn = 1;
|
CONV_COUNTER_RELOAD = 10;
|
||||||
while Dn > 0.5,
|
Dn0 = 1;
|
||||||
[A1, Pa, Dn] = vecfit(Pp,mask,T,A,Pa, 0.0001.*(1-exp(-Dn)))
|
conv_counter = CONV_COUNTER_RELOAD;
|
||||||
|
while true,
|
||||||
|
[A1, Pa, Dn1] = vecfit(Pp,mask,T,A,Pa, 0.0001.*(1-exp(-Dn0)))
|
||||||
|
Dc = round_n(Dn1,3);
|
||||||
|
if Dn0 == Dc,
|
||||||
|
if conv_counter == 0,
|
||||||
|
break;
|
||||||
|
else
|
||||||
|
conv_counter -= 1
|
||||||
|
end
|
||||||
|
else
|
||||||
|
conv_counter = CONV_COUNTER_RELOAD
|
||||||
|
end
|
||||||
|
Dn0 = Dc;
|
||||||
end
|
end
|
||||||
T=T
|
T=T
|
||||||
A1=A1
|
A1=A1
|
||||||
Pa=Pa
|
Pa=Pa
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function zr = round_n(z, n)
|
||||||
|
zr = round(z*10^n)/10^n;
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user