added scripts for transforming runs into sqlite db, and a file to analyze said db
This commit is contained in:
parent
9a0d0a3e10
commit
bc976ffc56
43
gmsh/01_merge_output.py
Normal file
43
gmsh/01_merge_output.py
Normal file
@ -0,0 +1,43 @@
|
||||
import sys
|
||||
import numpy as np
|
||||
|
||||
indexes = {
|
||||
2: {
|
||||
'order' : 0,
|
||||
'ep' : 1,
|
||||
'final' : 6,
|
||||
'exact' : 7,
|
||||
'time' : 8,
|
||||
},
|
||||
3: {
|
||||
'order' : 0,
|
||||
'ep' : 1,
|
||||
'final' : 7,
|
||||
'exact' : 8,
|
||||
'time' : 9,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
files = sys.argv[1:]
|
||||
|
||||
prefixes = set((i[0] for i in files))
|
||||
if len(prefixes) != 1:
|
||||
print "must only feed either 3- or 2-D files, not mixed"
|
||||
sys.exit(1)
|
||||
|
||||
dim = int(prefixes.pop())
|
||||
|
||||
for cur_filename in files:
|
||||
resolution = int(cur_filename.split('.')[1])
|
||||
lines = np.loadtxt(cur_filename)
|
||||
for line in lines:
|
||||
print "%d %d %d %e %e %e" % (
|
||||
resolution,
|
||||
line[indexes[dim]['order']],
|
||||
line[indexes[dim]['ep' ]],
|
||||
line[indexes[dim]['final']],
|
||||
line[indexes[dim]['exact']],
|
||||
line[indexes[dim]['time' ]],
|
||||
)
|
26
gmsh/02_merge_to_sqlite.py
Normal file
26
gmsh/02_merge_to_sqlite.py
Normal file
@ -0,0 +1,26 @@
|
||||
import sys
|
||||
import numpy as np
|
||||
import sqlite3
|
||||
from optparse import OptionParser
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = OptionParser(usage = "usage: %s <input text file> <output db file>")
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
if len(args) != 2:
|
||||
parser.print_usage()
|
||||
sys.exit(1)
|
||||
|
||||
data_file_name, sql_file_name = args
|
||||
|
||||
data = np.loadtxt(data_file_name)
|
||||
|
||||
con = sqlite3.connect(sql_file_name)
|
||||
cur = con.cursor()
|
||||
cur.execute('DROP TABLE IF EXISTS results')
|
||||
cur.execute('CREATE TABLE results (res INTEGER, ord INTEGER, ep INTEGER, final FLOAT, exact FLOAT, time FLOAT)')
|
||||
cur.executemany("insert into results values(?,?,?,?,?,?)", data)
|
||||
con.commit()
|
||||
cur.close()
|
||||
con.close()
|
23
gmsh/03_plotter.py
Normal file
23
gmsh/03_plotter.py
Normal file
@ -0,0 +1,23 @@
|
||||
import sqlite3
|
||||
import numpy as np
|
||||
|
||||
con = sqlite3.connect('data.db')
|
||||
cur = con.cursor()
|
||||
|
||||
|
||||
orders = np.array(cur.execute('select distinct ord from results').fetchall())[:,0]
|
||||
eps = np.array(cur.execute('select distinct ep from results').fetchall())[:,0]
|
||||
print "#", orders, eps
|
||||
|
||||
with open('time.out', 'w') as time_file:
|
||||
for ep in eps:
|
||||
time_file.write("%d " % ep)
|
||||
for order in orders:
|
||||
cur_results = cur.execute('select time from results where res = 1 and ep = ? and ord = ?',
|
||||
(int(ep),int(order)))
|
||||
cur_time = np.array(cur_results.fetchall()).mean()
|
||||
time_file.write("%e " % cur_time)
|
||||
time_file.write("\n")
|
||||
|
||||
|
||||
print "%e" % np.array(cur.execute('select abs(exact - final) from results').fetchall()).mean()
|
Loading…
Reference in New Issue
Block a user