def nbod_problem(): t0 = 0 tf = 0.08 y0 = fnbod.init_fnbod(2400) y_ref = np.loadtxt("reference.txt") # compare_speedup(nbod_func, y0, t0, tf, y_ref, "nbod_problem", run_odex_code=True) compare_speedup(nbod_func, y0, t0, tf, y_ref, "nbod_problem")
def nbod_problem_dense(num): t0 = 0 tf = 0.08 t = np.linspace(t0, tf, num=num, endpoint=True) y0 = fnbod.init_fnbod(2400) y_ref = np.loadtxt("reference_nbod_dense.txt") compare_performance_dense(nbod_func, y0, t, y_ref, "nbod_problem_dense")
def nbod_problem(): t0 = 0 tf = 0.08 y0 = fnbod.init_fnbod(2400) y_ref = np.loadtxt("reference.txt") results = compare_performance(nbod_func, y0, t0, tf, y_ref, "nbod_problem") return results
def test5(): bodys = 400 n = 6*bodys print("n = " + str(n)) t0 = 0 tf = 0.08 y0 = fnbod.init_fnbod(n) return tst_parallel_vs_serial(f_5, t0, tf, y0, title="tst_parallel_vs_serial w/ N = " + str(n))
def nbod_dense_reference(num): t0 = 0 tf = 0.08 y0 = fnbod.init_fnbod(2400) t = np.linspace(t0, tf, num=num, endpoint=True) tol = 1.e-15 nsteps = 10.e5 print 'computing reference solution to nbod problem (dense)' start_time = time.time() y = ex_p.ex_midpoint_explicit_parallel(nbod_func, None, y0, t, atol=tol, rtol=tol, mxstep=nsteps) y = y[1:] np.savetxt("reference_nbod_dense.txt", y.real) print 'reference solution saved in reference_nbod_dense.txt , it took', time.time() - start_time, ' s' return y
def cprofile_tst(): bodys = 200 n = 6*bodys tol = 10**(-6) print("n = " + str(n)) print("tol = " + str(tol)) t0 = 0 tf = 3 y0 = fnbod.init_fnbod(n) # print("serial") # _, _, h_avg, k_avg = ex_s.ex_midpoint_serial(f_5, t0, tf, y0, atol=tol, rtol=tol, adaptive="order") print("parallel") _, infodict = ex_p.ex_midpoint_parallel(f_5, y0, [t0, tf], atol=tol, rtol=tol, adaptive="order", full_output=True) h_avg, k_avg = infodict['h_avg'], infodict['k_avg'] print("h_avg = " + str(h_avg) + "\tk_avg = " + str(k_avg))
def nbody_rhs_reversed(t, y): return fnbod.fnbod(y, t) brusselator = brusselator_setup() kdv = kdv_setup() burgers = burgers_setup() nbody = Problem(name="nbody", rhs=nbody_rhs, rhs_reversed=nbody_rhs_reversed, jacobian=None, solout=None, output_times=[0, 0.08], y0=fnbod.init_fnbod(2400), atol=None, size=None) vdpol = Problem(name="vdpol", rhs=vdpol_rhs, rhs_reversed=vdpol_rhs_reversed, jacobian=vdpol_jac, solout=None, output_times=np.arange(0, 13, 1.), y0=np.array([2., 0.]), atol=None, size=None)