NAMES = ['ENTROPY', 'SLOW', 'ALFVEN', 'FAST'] NVAR = 8 VARS = ['rho', 'u', 'u1', 'u2', 'u3', 'B1', 'B2', 'B3'] amp = 1.e-4 k1 = 2.*np.pi k2 = 2.*np.pi var0 = np.zeros(NVAR) var0[0] = 1. var0[1] = 1. var0[5] = 1. L1 = np.zeros([len(MODES), len(RES), NVAR]) powerfits = np.zeros([len(MODES), NVAR]) for n in xrange(len(MODES)): util.change_rparm('nmode', MODES[n], TMP_DIR + '/param_template.dat') os.chdir(TMP_DIR) print os.getcwd() # EIGENMODES dvar = np.zeros(NVAR) if MODES[n] == 0: # ENTROPY dvar[0] = 1. if MODES[n] == 1: # SLOW/SOUND dvar[0] = 0.558104461559 dvar[1] = 0.744139282078 dvar[2] = -0.277124827421 dvar[3] = 0.0630348927707 dvar[5] = -0.164323721928 dvar[6] = 0.164323721928 if MODES[n] == 2: # ALFVEN
import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import pylab as pl os.chdir('../prob/' + PROBLEM) # COMPILE CODE call(['python', 'build.py', '-dir', TMP_DIR]) os.chdir('../../test') call(['mv', '../prob/' + PROBLEM + '/' + TMP_DIR, './']) # RUN EXECUTABLE os.chdir(TMP_DIR) if FAST: util.change_rparm('tf', str(TF), 'param_template.dat') call_string = ['./bhlight', '-p', 'param_template.dat'] bcall(call_string) os.chdir('../') # READ SIMULATION OUTPUT dfiles = np.sort(glob.glob(os.path.join(TMP_DIR, '') + '/dumps/dump*.h5')) Nd = len(dfiles) hdr = io.load_hdr(dfiles[0]) geom = io.load_geom(hdr) t_code = np.zeros(Nd) Te_code = np.zeros(Nd) Tr_code = np.zeros(Nd) #Tr2_code = np.zeros(Nd) Etot = np.zeros(Nd) #ng = 2.38e18
for d in [1, 2, 3]: util.change_cparm('N{}TOT'.format(d), res, TMP_BUILD) if MPI: for d in [1, 2, 3]: util.change_cparm('N{}CPU'.format(d), 2, TMP_BUILD) call([sys.executable, TMP_BUILD, '-dir', TMP_DIR]) parm_src = os.path.join(os.getcwd(), TMP_DIR, 'param_template.dat') parm_dest = '../../test/' + TMP_DIR + '/param.dat' call([ 'cp', os.path.join(os.getcwd(), TMP_DIR, 'bhlight'), '../../test/' + TMP_DIR + '/bhlight_' + str(res) ]) copyfile(parm_src, parm_dest) if BIGRUN: util.change_rparm('tf', 0.1, parm_dest) util.change_rparm('DTd', 0.05, parm_dest) util.change_rparm('DTl', 0.05, parm_dest) util.safe_remove(TMP_BUILD) util.safe_remove(TMP_DIR) os.chdir('../../test/') os.chdir(TMP_DIR) # and convergence plot print("Convergence test...") errs = [None for res in RES] for n, res in enumerate(RES): print("Res = {}".format(res)) call_string = ['./bhlight_' + str(res), '-p', 'param.dat'] if MPI: bcall(call_string, int(num_mpi))
copyfile(os.path.join(os.getcwd(), TMP_DIR, 'param_template.dat'), '../../test/' + TMP_DIR + '/param.dat') util.safe_remove(TMP_BUILD) util.safe_remove(TMP_DIR) os.chdir('../../test/') NVAR = 8 L1 = np.zeros(len(RES)) os.chdir(TMP_DIR) # RUN PROBLEM FOR EACH RESOLUTION AND ANALYZE RESULT for m in range(len(RES)): print(['./bhlight_' + str(RES[m]), '-p', 'param.dat']) util.change_rparm('tf', 50, 'param.dat') call(['./bhlight_' + str(RES[m]), '-p', 'param.dat']) dfiles = np.sort(glob.glob('dumps/dump*.h5')) hdr = io.load_hdr(dfiles[0]) geom = io.load_geom(hdr) dump0 = io.load_dump(dfiles[0], geom) dump1 = io.load_dump(dfiles[-1], geom) r = geom['r'][:, 0, 0] imin = 0 while r[imin] < hdr['Reh']: imin += 1 rho0 = np.mean(dump0['RHO'][imin:, :, 0], axis=1) rho1 = np.mean(dump1['RHO'][imin:, :, 0], axis=1)
for arg in sys.argv: if arg == '-auto': AUTO = True os.chdir('../prob/' + PROBLEM) # COMPILE CODE util.change_cparm('N1TOT', 512, 'build.py') call(['python', 'build.py', '-dir', TMP_DIR]) os.chdir('../../test/') call(['mv', '../prob/' + PROBLEM + '/' + TMP_DIR, './']) # RUN EXECUTABLE os.chdir(TMP_DIR) for shock in shocks: util.change_rparm('shock', str(shock), 'param_template.dat') call(['./bhlight', '-p', 'param_template.dat']) shutil.move('dumps', 'dumps_%d' % shock) os.chdir('../') # HIGH RESOLUTION VETTED SOLUTION soln = np.loadtxt('data/kshocks.txt') if AUTO: data = {} data['SOLX'] = [] data['SOLY'] = [] data['CODEX'] = [] data['CODEY'] = [] for shock in shocks: dfiles = np.sort(
util.change_cparm('N2TOT', 1, TMP_BUILD) util.change_cparm('N3TOT', 1, TMP_BUILD) util.change_cparm('N1CPU', 1, TMP_BUILD) util.change_cparm('N2CPU', 1, TMP_BUILD) util.change_cparm('N3CPU', 1, TMP_BUILD) # COMPILE CODE call(['python', TMP_BUILD, '-dir', TMP_DIR]) os.remove(TMP_BUILD) call(['cp', 'init.txt', TMP_DIR]) os.chdir('../../test/') call(['mv', '../prob/' + PROBLEM + '/' + TMP_DIR, './']) # RUN EXECUTABLE os.chdir(TMP_DIR) util.change_rparm('nph_per_proc', 1.e5, 'param_template.dat') util.change_rparm('tf', 50, 'param_template.dat') call(['./bhlight', '-p', 'param_template.dat']) os.chdir('../') # READ SIMULATION OUTPUT dfiles = np.sort(glob.glob(os.path.join(TMP_DIR, '') + '/dumps/dump*.h5')) hdr = io.load_hdr(dfiles[0]) geom = io.load_geom(hdr) dump = io.load_dump(dfiles[-1], geom) Er = np.zeros([hdr['N1'], hdr['N2'], hdr['N3']]) Rmunu = dump['Rmunu'][:, :, :, :, :] ucov = dump['ucov'][:, :, :, :] ucon = dump['ucon'][:, :, :, :] for i in range(hdr['N1']):