These changes make it unnecessary to copy header files around during the build process, which tends to confuse IDEs and debuggers. The headers which comprise Cantera's external C++ interface are now in the 'include' directory. All of the samples and demos are now in the 'samples' subdirectory.
123 lines
3.2 KiB
Python
123 lines
3.2 KiB
Python
import os, math
|
|
from Tkinter import *
|
|
from Cantera import *
|
|
#from Cantera.ck2ctml import ck2ctml
|
|
from tkFileDialog import askopenfilename
|
|
|
|
class ImportFrame(Frame):
|
|
def __init__(self,top):
|
|
self.master = Toplevel()
|
|
self.master.title('Convert and Import CK File')
|
|
self.master.protocol("WM_DELETE_WINDOW",self.hide)
|
|
|
|
Frame.__init__(self,self.master)
|
|
self.config(relief=GROOVE, bd=4)
|
|
self.top = top
|
|
self.infile = StringVar()
|
|
|
|
Label(self,text="Input File").grid(row=0,column=0)
|
|
Entry(self, width=40,
|
|
textvariable=self.infile).grid(column=1,row=0)
|
|
Button(self, text='Browse',
|
|
command=self.browseForInput).grid(row=0,column=2)
|
|
|
|
self.thermo = StringVar()
|
|
Label(self,text="Thermodynamic Database").grid(row=1,column=0)
|
|
Entry(self, width=40,
|
|
textvariable=self.thermo).grid(column=1,row=1)
|
|
Button(self, text='Browse',
|
|
command=self.browseForThermo).grid(row=1,column=2)
|
|
|
|
|
|
self.transport = StringVar()
|
|
Label(self,text="Transport Database").grid(row=2,column=0)
|
|
Entry(self, width=40,
|
|
textvariable=self.transport).grid(column=1,row=2)
|
|
Button(self, text='Browse',
|
|
command=self.browseForTransport).grid(row=2,column=2)
|
|
|
|
bframe = Frame(self)
|
|
bframe.config(relief=GROOVE, bd=1)
|
|
bframe.grid(row=100,column=0)
|
|
Button(bframe, text='OK', width=8, command=self.importfile).grid(row=0,column=0)
|
|
self.grid(column=0,row=0)
|
|
Button(bframe, text='Cancel', width=8, command=self.hide).grid(row=0,column=1)
|
|
self.grid(column=0,row=0)
|
|
self.hide()
|
|
|
|
def browseForInput(self, e=None):
|
|
pathname = askopenfilename(
|
|
filetypes=[("Reaction Mechanism Files",
|
|
("*.inp","*.mech","*.ck2")),
|
|
("All Files", "*.*")])
|
|
if pathname:
|
|
self.infile.set(pathname)
|
|
self.show()
|
|
|
|
def browseForThermo(self, e=None):
|
|
pathname = askopenfilename(
|
|
filetypes=[("Thermodynamic Databases",
|
|
("*.dat","*.inp","*.therm")),
|
|
("All Files", "*.*")])
|
|
if pathname:
|
|
self.thermo.set(pathname)
|
|
self.show()
|
|
|
|
def browseForTransport(self, e=None):
|
|
pathname = askopenfilename(
|
|
filetypes=[("Transport Databases", "*.dat"),
|
|
("All Files", "*.*")])
|
|
if pathname:
|
|
self.transport.set(pathname)
|
|
self.show()
|
|
|
|
|
|
def importfile(self):
|
|
ckfile = self.infile.get()
|
|
thermdb = self.thermo.get()
|
|
trandb = self.transport.get()
|
|
p = os.path.normpath(os.path.dirname(ckfile))
|
|
fname = os.path.basename(ckfile)
|
|
ff = os.path.splitext(fname)
|
|
nm = ""
|
|
if len(ff) > 1: nm = ff[0]
|
|
else: nm = ff
|
|
outfile = p+os.sep+nm+'.xml'
|
|
try:
|
|
print 'not supported.'
|
|
#ck2ctml(infile = ckfile, thermo = thermdb,
|
|
# transport = trandb, outfile = outfile,
|
|
# id = nm)
|
|
self.hide()
|
|
return
|
|
|
|
except:
|
|
print 'Errors were encountered. See log file ck2ctml.log'
|
|
self.hide()
|
|
return
|
|
|
|
self.top.loadmech(nm,outfile,1)
|
|
self.hide()
|
|
|
|
## cmd = 'ck2ctml -i '+ckfile+' -o '+outfile
|
|
## if thermdb <> "":
|
|
## cmd += ' -t '+thermdb
|
|
## if trandb <> "":
|
|
## cmd += ' -tr '+trandb
|
|
## cmd += ' -id '+nm
|
|
## ok = os.system(cmd)
|
|
## if ok == 0:
|
|
## self.top.loadmech(nm,outfile,1)
|
|
|
|
|
|
def hide(self):
|
|
#self.vis.set(0)
|
|
self.master.withdraw()
|
|
|
|
def show(self):
|
|
#v = self.vis.get()
|
|
#if v == 0:
|
|
# self.hide()
|
|
# return
|
|
|
|
self.master.deiconify()
|