cantera/interfaces/python/MixMaster/newflow.py
Ray Speth 6cb4bd93ce Cleaned up whitespace in all Python files using reindent.py
4 spaces per indentation level, no tabs, no trailing whitespace,
and a single newline at end of each file.
2012-02-27 18:13:05 +00:00

130 lines
4.3 KiB
Python

from Tkinter import *
from tkFileDialog import askopenfilename
import tkMessageBox
from Cantera.gases import IdealGasMix
from Cantera import *
class NewFlowDialog:
def __init__(self, parent):
top = self.top = Toplevel(parent)
pl = Label(top, text='Pressure')
pl.grid(row = 0, column = 0)
geom = Frame(top, bd=2, relief=GROOVE)
geom.grid(row = 1, column = 0)
lb = Listbox(geom)
for item in ["One-Dimensional", "Stagnation"]:
lb.insert(END, item)
lb.grid(row = 0, column = 0)
glb = Listbox(geom)
for item in ["Axisymmetric","2D"]:
glb.insert(END, item)
glb.grid(row = 1, column = 0)
# ------------- pressure input ----------------
self.p = DoubleVar()
self.pbox = Entry(top, textvariable = self.p)
self.pbox.grid(row = 0, column = 1)
# ------------- gas file name input -----------
gasf = Frame(top, bd=2, relief=GROOVE)
gasf.grid(row = 4, column = 0, columnspan=2)
gl = Label(gasf, text='Gas Mixture Specification')
gl.grid(row = 0, column = 0)
self.infile = StringVar()
Label(gasf, text='Mixture Input File').grid(row = 1, column = 0)
Entry(gasf, textvariable = self.infile).grid(row = 1, column = 1)
Button(gasf, text='Browse..', command=self.getinfile).grid(row = 1,
column = 2)
self.spfile = StringVar()
Label(gasf, text='Species Database').grid(row = 2, column = 0)
Entry(gasf, textvariable = self.spfile).grid(row = 2, column = 1)
Button(gasf, text='Browse..', command=self.getspfile).grid(row = 2,
column = 2)
self.trfile = StringVar()
Label(gasf, text='Transport Database').grid(row = 3, column = 0)
Entry(gasf, textvariable = self.trfile).grid(row = 3, column = 1)
Button(gasf, text='Browse..', command=self.gettrfile).grid(row = 3,
column = 2)
# ------------- grid -------------------------
gf = Frame(top, bd=2, relief=GROOVE)
gf.grid(row = 5, column = 0, columnspan=2)
gr = Label(gf, text='Initial Grid')
gr.grid(row = 0, column = 0)
self.zleft = DoubleVar()
self.zright = DoubleVar()
ll = Label(gf, text='Left boundary at ')
rl = Label(gf, text='Right boundary at ')
lbb = Entry(gf, textvariable = self.zleft)
rbb = Entry(gf, textvariable = self.zright)
ll.grid(row = 1, column = 0)
rl.grid(row = 2, column = 0)
lbb.grid(row = 1, column = 1)
rbb.grid(row = 2, column = 1)
ok = Button(top, text = 'OK', command=self.ok)
ok.grid(row = 20, column = 20)
def ok(self):
p = self.p.get()
try:
infile = self.infile.get()
spfile = self.spfile.get()
trfile = self.trfile.get()
if spfile and trfile:
self.gas = IdealGasMix(import_file = infile,
thermo_db = spfile,
transport_db = trfile)
elif spfile:
self.gas = IdealGasMix(import_file = infile,
thermo_db = spfile)
else:
self.gas = IdealGasMix(import_file = infile)
except:
tkMessageBox.showerror('Create Gas',
'Error reading file %s. See log file for more information.' % infile)
#self.flow = Flow1D(flow_type = ftype, flow_geom = fgeom,
# pressure = p, grid = gr, gas = g)
self.top.destroy()
def getinfile(self):
pathname = askopenfilename(filetypes=[
("Input Files", "*.xml *.inp"),
("All Files", "*.*")])
self.infile.set(pathname)
def getspfile(self):
pathname = askopenfilename(filetypes=[
("Species Data Files", "*.xml *.dat"),
("All Files", "*.*")])
self.spfile.set(pathname)
def gettrfile(self):
pathname = askopenfilename(filetypes=[
("Transport Data Files", "*.xml *.dat"),
("All Files", "*.*")])
self.trfile.set(pathname)