while - no converge
Publicado por javier (1 intervención) el 31/10/2022 21:47:54
Hola, tengo el siguiente ciclo y no logro hacerlo converger, En el ciclo, llamo datos de la secuencia anterior para el primer calculo y luego ya que tengo el primer dato, que haga el ciclo de convergencia, hasta la diferencia sea menor que 12 E-10 pero no le doy. Que tal ustedes?
FLO100= 1.5E3
FLOWPC=100
FLOW=FLOWPC*FLO100/100.
print(FLOW)
H=3.65
NND=12 # numero total de secciones
DZ=H/NND # alto
print(DZ)
POW100=0.45E9
POWPC=100
POW=POWPC*POW100/100.
print(POW)
SUM=0
SUM=SUM/NND
F1=NND+2.5
F2=NND+2
I=1
AFLOW=3.98
HG=2.77E6
HL=1.25E6
X0=0.0
XZ=X0
XKC=30.0
XKS=0.8
RCOEF=3.97
RHOL=0.74E3 # SATURATED WATER DENSITY Kg/m3
RHOG=0.035E3 # SATURATED STEAM DENSITY Kg/m3
ETA=(RHOL-RHOG)/RHOL
print("eta", ETA)
PSHP=np.zeros(NND)
XZ=np.zeros(NND)
for I in range(NND):
PSHP[I]=np.sqrt(abs(math.sin(3.14*((F1-I/F2)**2))))
SUM=SUM+PSHP[I]
PSHP[I]=POW*PSHP[I]/SUM
#MUL=DZ*PSHP1/(AFLOW*FLOW*(HG-HL))
XZ[I]=XZ[I-1]+DZ*PSHP[I]/(AFLOW*FLOW*(HG-HL))
print(XZ, XZ[0])
YZ=np.zeros(NND)
SUMA=0.
YZ[0]=XZ[0] #primera aprox
ALF=YZ[0]
SLIP = (1 - ALF) / (XKS - ALF + (1 - XKS) * (ALF ** RCOEF))
YZ[0] = XZ[0] / (SLIP * (1 - ETA) + XZ[0] * (1 - SLIP * (1 - ETA)))
print(ALF, YZ[0])
SUMA = SUMA + abs(ALF - YZ[0])
print(SUMA)
CONV = NND * 1.E-10
while SUMA >= CONV:
for I in range(NND):
ALF=YZ[I]
SLIP = (1 - ALF) / (XKS - ALF + (1 - XKS) * (ALF ** RCOEF))
YZ[I] = XZ[I] / (SLIP * (1 - ETA) + XZ[I] * (1 - SLIP * (1 - ETA)))
print(SUMA)
#print(K)
print(YZ)
print(SUMA)
print(ALF)
FLO100= 1.5E3
FLOWPC=100
FLOW=FLOWPC*FLO100/100.
print(FLOW)
H=3.65
NND=12 # numero total de secciones
DZ=H/NND # alto
print(DZ)
POW100=0.45E9
POWPC=100
POW=POWPC*POW100/100.
print(POW)
SUM=0
SUM=SUM/NND
F1=NND+2.5
F2=NND+2
I=1
AFLOW=3.98
HG=2.77E6
HL=1.25E6
X0=0.0
XZ=X0
XKC=30.0
XKS=0.8
RCOEF=3.97
RHOL=0.74E3 # SATURATED WATER DENSITY Kg/m3
RHOG=0.035E3 # SATURATED STEAM DENSITY Kg/m3
ETA=(RHOL-RHOG)/RHOL
print("eta", ETA)
PSHP=np.zeros(NND)
XZ=np.zeros(NND)
for I in range(NND):
PSHP[I]=np.sqrt(abs(math.sin(3.14*((F1-I/F2)**2))))
SUM=SUM+PSHP[I]
PSHP[I]=POW*PSHP[I]/SUM
#MUL=DZ*PSHP1/(AFLOW*FLOW*(HG-HL))
XZ[I]=XZ[I-1]+DZ*PSHP[I]/(AFLOW*FLOW*(HG-HL))
print(XZ, XZ[0])
YZ=np.zeros(NND)
SUMA=0.
YZ[0]=XZ[0] #primera aprox
ALF=YZ[0]
SLIP = (1 - ALF) / (XKS - ALF + (1 - XKS) * (ALF ** RCOEF))
YZ[0] = XZ[0] / (SLIP * (1 - ETA) + XZ[0] * (1 - SLIP * (1 - ETA)))
print(ALF, YZ[0])
SUMA = SUMA + abs(ALF - YZ[0])
print(SUMA)
CONV = NND * 1.E-10
while SUMA >= CONV:
for I in range(NND):
ALF=YZ[I]
SLIP = (1 - ALF) / (XKS - ALF + (1 - XKS) * (ALF ** RCOEF))
YZ[I] = XZ[I] / (SLIP * (1 - ETA) + XZ[I] * (1 - SLIP * (1 - ETA)))
print(SUMA)
#print(K)
print(YZ)
print(SUMA)
print(ALF)
Valora esta pregunta


0