TLUSTY/gui/opa.py
2026-07-21 22:25:14 +08:00

107 lines
2.0 KiB
Python

def opa(file,indt=0,indr=0):
import matplotlib.pyplot as plt
import numpy as np
import sys
try:
f = open(file)
lines = f.readlines()
except:
print('Error: Could not open %s' % modfile)
return()
ntrow = 6
i = 40
x=lines[i]
nfre = int(x.split()[0])
ntem = int(x.split()[1])
nrho = int(x.split()[2])
print(nfre,ntem,nrho)
i = i+2
nreat = ntem//ntrow
if ntem % ntrow != 0:
nreat = nreat + 1
temp = []
j = 0
while j < nreat:
x = lines[i]
val = x.split()
k = 0
while k < ntrow:
if (j*ntrow + k) < ntem:
temp.append(float(val[k]))
k+= 1
j+= 1
i+= 1
print(np.exp(temp))
i+= 1
nrear = nrho//ntrow
if nrho % ntrow != 0:
nrear = nrear + 1
dens = []
j = 0
while j < nrear:
x = lines[i]
val = x.split()
k = 0
while k < ntrow:
if (j*ntrow + k) < nrho:
dens.append(float(val[k]))
k+= 1
j+= 1
i+= 1
i+= 1
print(np.exp(dens))
nl = ntem*nrho
nrel = nl//ntrow
if nl % ntrow != 0:
nrel = nrel + 1
i=i+nrel
lamb=[]
abso=[]
ilam = 0
while ilam < nfre:
i+= 1
x = lines[i]
val = x.split()
lamb.append(float(val[5]))
i = i+2
it = 0
ir = 0
while ir < nrho:
j = 0
abt=[]
while j < nreat:
x = lines[i]
val = x.split()
k = 0
while k < ntrow:
if(j*ntrow + k) < ntem:
abt.append(float(val[k]))
k+=1
j+=1
i+=1
if ir == indr:
abso.append(abt[indt])
ir+=1
ilam += 1
lamb = np.array(lamb)
abso = np.array(abso)
print(ilam)
return(lamb,abso)