if MPI: nxcpu = 2 num_mpi = 8 num_cpus = multiprocessing.cpu_count() os.environ['OMP_NUM_THREADS'] = str(int(np.max([2, num_cpus / num_mpi]))) else: nxcpu = 1 util.make_dir(TMP_DIR) os.chdir('../prob/mhdmodes3d/') copyfile('build.py', TMP_BUILD) # COMPILE CODE AT MULTIPLE RESOLUTIONS USING SEPARATE BUILD FILE for n in range(len(RES)): util.change_cparm('N1TOT', RES[n], TMP_BUILD) util.change_cparm('N2TOT', RES[n], TMP_BUILD) util.change_cparm('N3TOT', RES[n], TMP_BUILD) util.change_cparm('N1CPU', nxcpu, TMP_BUILD) util.change_cparm('N2CPU', nxcpu, TMP_BUILD) util.change_cparm('N3CPU', nxcpu, TMP_BUILD) util.change_cparm('OPENMP', 'True', TMP_BUILD) args = [sys.executable, TMP_BUILD, '-dir', TMP_DIR] if TABLE: args.append('-table') call(args) call([ 'cp', os.path.join(os.getcwd(), TMP_DIR, 'bhlight'), '../../test/' + TMP_DIR + '/bhlight_' + str(RES[n]) ])
AUTO = False for arg in sys.argv: if arg == '-auto': AUTO = True RES = [16, 32, 64]#, 128] util.make_dir(TMP_DIR) os.chdir('../prob/mhdmodes2d/') copyfile('build.py', TMP_BUILD) # COMPILE CODE AT MULTIPLE RESOLUTIONS USING SEPARATE BUILD FILE for n in xrange(len(RES)): util.change_cparm('N1TOT', RES[n], TMP_BUILD) util.change_cparm('N2TOT', RES[n], TMP_BUILD) call(['python', TMP_BUILD, '-dir', TMP_DIR]) call(['cp', os.path.join(os.getcwd(), TMP_DIR, 'bhlight'), '../../test/' + TMP_DIR + '/bhlight_' + str(RES[n])]) copyfile(os.path.join(os.getcwd(), TMP_DIR, 'param_template.dat'), '../../test/' + TMP_DIR + '/param_template.dat') util.safe_remove(TMP_BUILD) util.safe_remove(TMP_DIR) os.chdir('../../test/') # LOOP OVER EIGENMODES MODES = [3] NAMES = ['ENTROPY', 'SLOW', 'ALFVEN', 'FAST'] NVAR = 8 VARS = ['rho', 'u', 'u1', 'u2', 'u3', 'B1', 'B2', 'B3']
AUTO = True if '-idim' in sys.argv: IDIM = int(sys.argv[sys.argv.index('-idim') + 1]) else: IDIM = 1 RES = [64, 128, 256, 512] util.make_dir(TMP_DIR) os.chdir('../prob/mhdmodes1d/') copyfile('build.py', TMP_BUILD) # COMPILE CODE AT MULTIPLE RESOLUTIONS USING SEPARATE BUILD FILE for n in range(len(RES)): util.change_cparm('N{}TOT'.format(IDIM), RES[n], TMP_BUILD) #util.change_cparm('RECONSTRUCTION', 'PARA', TMP_BUILD) call(['python', TMP_BUILD, '-dir', TMP_DIR, '-idim', str(IDIM)]) call([ 'cp', os.path.join(os.getcwd(), TMP_DIR, 'bhlight'), '../../test/' + TMP_DIR + '/bhlight_' + str(RES[n]) ]) 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/') # LOOP OVER EIGENMODES MODES = [0, 1, 2, 3]
IDIM = 1 RES = [128, 256, 512] kwave = 2 * np.pi amp = 1.0 kcenter = 0.5 cadv = 0.5 util.make_dir(TMP_DIR) os.chdir('../prob/' + PROBLEM) copyfile('build.py', TMP_BUILD) # COMPILE CODE AT MULTIPLE RESOLUTIONS USING SEPARATE BUILD FILE for n, res in enumerate(RES): util.change_cparm('N{}TOT'.format(IDIM), res, TMP_BUILD) call([sys.executable, TMP_BUILD, '-dir', TMP_DIR, '-idim', str(IDIM)]) call([ 'cp', os.path.join(os.getcwd(), TMP_DIR, 'bhlight'), '../../test/' + TMP_DIR + '/bhlight_' + str(res) ]) 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/') os.chdir(TMP_DIR) def phi1_true(t, x):
util.make_dir(TMP_DIR) os.chdir('../prob/' + PROBLEM) copyfile('build.py', TMP_BUILD) # Since this test is designed to run on a single machine (no batch scripts) # set openmpi to only use a few threads. Let MPI handle the rest. if MPI: num_mpi = 8 num_cpus = multiprocessing.cpu_count() os.environ['OMP_NUM_THREADS'] = str(int(np.max([2, num_cpus / num_mpi]))) # COMPILE CODE AT MULTIPLE RESOLUTIONS USING SEPARATE BUILD FILE for n, res in enumerate(RES): 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)
import shutil shocks = [0, 1, 2, 3] #,4,5,6] TMP_DIR = 'TMP' util.safe_remove(TMP_DIR) PROBLEM = 'kshocks' AUTO = False 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')
cgs = units.get_cgs() TMP_BUILD = 'build_tmp.py' TMP_DIR = 'TMP' util.safe_remove(TMP_DIR) PROBLEM = 'bhtherm' AUTO = False for arg in sys.argv: if arg == '-auto': AUTO = True os.chdir('../prob/' + PROBLEM) # SET RESOLUTION copyfile('build.py', TMP_BUILD) util.change_cparm('N1TOT', 128, TMP_BUILD) 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)