Source code for gwemlightcurves.BOXFit


import os, sys
import numpy as np
from scipy.interpolate import interpolate as interp
import scipy

[docs]def lightcurve(boxfitDir,tini,tmax,dt,theta_0,E,n,theta_obs,p,epsilon_B,epsilon_E,ksi_N): tt = np.arange(tini,tmax,dt) lbol = 1e43*np.ones(tt.shape) filts = ["u","g","r","i","z","y","J","H","K"] lambdas = np.array([3561.8,4866.46,6214.6,6389.4,7127.0,7544.6,8679.5,9633.3,12350.0,16620.0,21590.0])*1e-10 nu_0s = 3e8/lambdas exampleIni = "%s/boxfit.ini"%boxfitDir mag = [] for filt, nu_0 in zip(filts,nu_0s): ini = [] for line in open(exampleIni).readlines(): line = line.replace("xxx_boxfitDir",boxfitDir) line = line.replace("xxx_nu0","%.5e"%nu_0) line = line.replace("xxx_theta0","%.5f"%theta_0) line = line.replace("xxx_E","%.5e"%E) line = line.replace("xxx_n","%.5f"%n) line = line.replace("xxx_theta_obs","%.5f"%theta_obs) line = line.replace("xxx_p","%.5f"%p) line = line.replace("xxx_epsilon_B","%.5e"%epsilon_B) line = line.replace("xxx_epsilon_E","%.5e"%epsilon_E) line = line.replace("xxx_ksi_N","%.5f"%ksi_N) ini.append(line) paramFile = "boxfitsettings.txt" open(paramFile,'w').write("".join(ini)) system_command = "mpiexec %s/boxfit > %s/out"%(boxfitDir,boxfitDir) os.system(system_command) filename = "%s/out"%(boxfitDir) data_out = np.loadtxt(filename,delimiter=",") t = data_out[:,1]/86400.0 mJy = data_out[:,3] Jy = 1e-3 * mJy mag_d = -48.6 + -1*np.log10(Jy/1e23)*2.5 ii = np.where(np.isfinite(mag_d))[0] f = interp.interp1d(t[ii], mag_d[ii], fill_value='extrapolate') maginterp = f(tt) mag.append(maginterp) return tt, lbol, mag