61 lines
1.5 KiB
Python
Executable file
61 lines
1.5 KiB
Python
Executable file
#!/usr/bin/python
|
|
#
|
|
|
|
import os, sys
|
|
|
|
import shutil
|
|
|
|
import csv
|
|
|
|
import subprocess as sp
|
|
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("test_set", help="Cantera 1-D flame result csv file used as a test set")
|
|
parser.add_argument("cases_dir", help="directory where dummy OpenFOAM cases for test are created")
|
|
args = parser.parse_args()
|
|
|
|
cases_dir = args.cases_dir
|
|
|
|
test_set_file = args.test_set
|
|
|
|
|
|
os.mkdir(cases_dir)
|
|
|
|
exit_code=0
|
|
|
|
error_cases=[]
|
|
|
|
|
|
FNULL = open(os.devnull, 'w')
|
|
|
|
with open('./c2h6_diffusion.csv', 'rb') as csvfile:
|
|
spamreader = csv.reader(csvfile) # , delimiter=' ', quotechar='|')
|
|
|
|
header = spamreader.next()
|
|
|
|
print header
|
|
species = header[5:]
|
|
|
|
for row in spamreader:
|
|
record = { k.split()[0]:v for k, v in zip(header, row)}
|
|
|
|
case = os.path.join(cases_dir, record['z'])
|
|
case_ic = os.path.join(case, "constant/initialConditions")
|
|
|
|
shutil.copytree("gri2", case)
|
|
# sp.check_call(("echo foamDictionary -entry fractions -set '{}' cases2/"+record['z']+"/constant/initialConditions").split())
|
|
|
|
sp.check_call(("foamDictionary -entry Tl -set ").split() + [record["T"] , case_ic], stdout=FNULL)
|
|
|
|
for s in species:
|
|
sp.check_call(("foamDictionary -entry fractions." + s + " -set ").split() + [record[s] , case_ic], stdout=FNULL)
|
|
|
|
error = sp.call(("./canteraTest -case " + case).split())
|
|
|
|
error_cases.append(error)
|
|
|
|
print error_cases
|
|
|
|
sys.exit(sum(error_cases))
|