Skip to content
Snippets Groups Projects

Dev test

Merged Matthieu Boileau requested to merge dev-test into master
Compare and
8 files
+ 1159
8
Preferences
Compare changes
Files
8
+ 10
3
@@ -9,6 +9,8 @@ import godunov as godunov_python
import numpy as np
import timeit
KERNELS = set(('python', 'pythran', 'numpy', 'numba', 'fortran'))
def compute_sol(tmax, nmax, kernel='python'):
"""Solve Godunov problem using the selected kernel"""
@@ -20,6 +22,9 @@ def compute_sol(tmax, nmax, kernel='python'):
elif kernel == 'numpy':
import godunov_numpy
return godunov_numpy.timeloop(tmax, nmax)
elif kernel == 'numba':
import godunov_numba
return godunov_numba.timeloop(tmax, nmax)
elif kernel == 'fortran':
import godunov_fortran
# Allocate Fortran-ordered numpy arrays
@@ -53,7 +58,8 @@ def main(tmax, nmax, profile=False, plot=False, kernel='python'):
wex = np.vectorize(godunov_python.sol_exact)(xm, tmax)
print("L2 error = {}".format(L2_err(wn, wex)))
error = L2_err(wn, wex)
print("L2 error = {}".format(error))
if plot:
import matplotlib.pyplot as plt
@@ -62,6 +68,8 @@ def main(tmax, nmax, profile=False, plot=False, kernel='python'):
plt.legend()
plt.show()
return error
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="Solve Burgers problem")
@@ -73,8 +81,7 @@ if __name__ == '__main__':
help="activate profiling")
parser.add_argument('--plot', action='store_true',
help="activate plotting")
parser.add_argument('--kernel', choices=['python', 'pythran', 'numpy',
'fortran'],
parser.add_argument('--kernel', choices=KERNELS,
default='python', help="select kernel type")
args = parser.parse_args()