Exemple #1
0
energ_normed = vars['tropenergy'][:, 0, 0] / np.max(vars['tropenergy'][:, 0,
                                                                       0])
energ_theory = np.exp(-(dims['t'] - pulse_len) / tau_exact)
energ_approx = np.exp(-(dims['t'] - pulse_len) / tau_approx)
energ_off = np.exp(-(dims['t'] - pulse_len) / tau_off)
energ_normed_2D = vars['te'][:, 0, :].T / np.max(vars['te'][:, 0, :].T)

dp.make_1D_plot(sim_name + '/energytest.pdf',
                dims['t'],
                simulation=energ_normed,
                theory=energ_theory,
                offmode=energ_off)

dp.make_2D_plot(sim_name + '/tetest.pdf', (dims['t'], dims['z'] / 1000.),
                energ_normed_2D,
                title='Total Energy',
                xlabel='time (s)',
                ylabel='height (km)')
u_wnd = vars['uu'][-1, :, :].T
b_init = vars['b3d'][2, :, :].T
dp.make_2D_plot(sim_name + '/b_snap.pdf',
                (dims['x'] / 1000., dims['z'] / 1000.),
                b_init,
                title='buoyancy at the beginning',
                xlabel='x (km)',
                ylabel='z (km)')

#
#plt.pcolormesh(t,z, te[:,0,:].T)
#plt.colorbar()
#plt.title('total energy' )
Exemple #2
0
    
    energ_normed = vars['tropenergy'][:,0,0]/np.max(vars['tropenergy'][:,0,0])
    taufit.taufit(energ_normed,dims, m, k, eps, Lx, Lz, archive_list) 

    #tau_approx = Lx*np.pi*m**2/(2.*Lz*eps*N1*k*2.)
    #tau_exact = tau_approx + eps * (Lx/Lz) * (2. * (m*np.pi)**2 - 3.)/(12. * N1 * k * np.pi * 2.)
    #tau_off = Lx*(6 + np.pi**2*m**2*(1.+3.*eps**2))/(6.*eps*N1*k*np.p

    energ_normed = vars['tropenergy'][:,0,0]/np.max(vars['tropenergy'][:,0,0])
    energ_theory = np.exp(-(dims['t'] - pulse_len )/tau_exact)
    energ_approx  = np.exp(-(dims['t'] - pulse_len )/tau_approx)
    #energ_off  = np.exp(-(dims['t'] - pulse_len)/tau_off)

    dp.make_1D_plot(sim_name+'/energytest.pdf', dims['t'], simulation = energ_normed, 
        theory = energ_theory, approx = energ_approx)
    dp.make_2D_plot(sim_name+'/binit.pdf', (dims['x']/1000., dims['z']/1000.),vars['b3d'][1,:,:].T , title='b initial', xlabel = 'x (km)', ylabel = 'z (km)')
    plt.clf()   
    plt.plot(dims['t'], np.log(energ_normed))
    plt.plot(dims['t'], -1./tau_exact*dims['t'], label = 'theory')
    plt.legend()
    plt.savefig(sim_name + '/regresstest.pdf') 
    plt.clf() 

taufit.plot_taus(archive_list) 

import pickle 
outfile = open( "eps02_m2.p", "wb" )
pickle.dump(archive_list, outfile) 
    #dp.make_1D_plot(sim_name+'/energytest.pdf', dims['t'], simulation = energ_normed, 
    #    theory = energ_theory, offmode = energ_off)
data = h5py.File(filepath, "r")
dict_vars = {'te':'total e profile','b3d':'buoyancy', 'tropenergy':'tropo energy'}

vars = dp.read_vars(data, dict_vars)
dims = dp.read_dims(data)
data.close()

#parameters 
pulse_len = 300 
m = 1.5 
k = 10. 
N1 = 0.01 
eps = 1
Lx, Lz = (2000000, 10000)


tau_approx = Lx*np.pi*m**2/(2.*Lz*eps*N1*k)
tau_exact = tau_approx + eps * (Lx/Lz) * (2. * (m*np.pi)**2 - 3.)/(12. * N1 * k * np.pi)

tau_off = Lx*(6 + np.pi**2*m**2*(1.+3.*eps**2))/(6.*eps*N1*k*np.pi*Lz)


energ_normed = vars['tropenergy'][:,0,0]/np.max(vars['tropenergy'][:,0,0]) 
energ_theory = np.exp(-(dims['t'] - pulse_len)/tau_exact)
energ_approx  = np.exp(-(dims['t'] - pulse_len)/tau_approx)
energ_off  = np.exp(-(dims['t'] - pulse_len)/tau_off)
energ_normed_2D = vars['te'][:,0,:].T/np.max(vars['te'][:,0,:].T)  
dp.make_1D_plot('energytest.pdf', dims['t'], simulation = energ_normed, theory = energ_theory, off = energ_off)  
dp.make_2D_plot('tetest.pdf', (dims['t'], dims['z']/1000.), energ_normed_2D, title = 'Total Energy', xlabel = 'time (s)', ylabel = 'height (km)')  

pulse_len = 300
m = 1.5
k = 10.
N1 = 0.01
eps = 1
Lx, Lz = (2000000, 10000)

tau_approx = Lx * np.pi * m**2 / (2. * Lz * eps * N1 * k)
tau_exact = tau_approx + eps * (Lx / Lz) * (2. * (m * np.pi)**2 -
                                            3.) / (12. * N1 * k * np.pi)

tau_off = Lx * (6 + np.pi**2 * m**2 *
                (1. + 3. * eps**2)) / (6. * eps * N1 * k * np.pi * Lz)

energ_normed = vars['tropenergy'][:, 0, 0] / np.max(vars['tropenergy'][:, 0,
                                                                       0])
energ_theory = np.exp(-(dims['t'] - pulse_len) / tau_exact)
energ_approx = np.exp(-(dims['t'] - pulse_len) / tau_approx)
energ_off = np.exp(-(dims['t'] - pulse_len) / tau_off)
energ_normed_2D = vars['te'][:, 0, :].T / np.max(vars['te'][:, 0, :].T)
dp.make_1D_plot('energytest.pdf',
                dims['t'],
                simulation=energ_normed,
                theory=energ_theory,
                off=energ_off)
dp.make_2D_plot('tetest.pdf', (dims['t'], dims['z'] / 1000.),
                energ_normed_2D,
                title='Total Energy',
                xlabel='time (s)',
                ylabel='height (km)')
if PULSE == True: 
    k = 4. 
tau_approx = Lx*np.pi*m**2/(2.*Lz*eps*N1*k) 
tau_exact = tau_approx + eps * (Lx/Lz) * (2. * (m*np.pi)**2 - 3.)/(12. * N1 * k * np.pi) 
tau_off = Lx*(6 + np.pi**2*m**2*(1.+3.*eps**2))/(6.*eps*N1*k*np.pi*Lz)

energ_normed = vars['tropenergy'][:,0,0]/np.max(vars['tropenergy'][:,0,0])
energ_theory = np.exp(-(dims['t'] - pulse_len)/tau_exact)
energ_approx  = np.exp(-(dims['t'] - pulse_len)/tau_approx)
energ_off  = np.exp(-(dims['t'] - pulse_len)/tau_off)
energ_normed_2D = vars['te'][:,0,:].T/np.max(vars['te'][:,0,:].T)

dp.make_1D_plot(sim_name+'/energytest.pdf', dims['t'], simulation = energ_normed, 
        theory = energ_theory, offmode = energ_off)

dp.make_2D_plot(sim_name+'/tetest.pdf', (dims['t'], dims['z']/1000.), energ_normed_2D, 
        title = 'Total Energy', xlabel = 'time (s)', ylabel = 'height (km)')
u_wnd = vars['uu'][-1,:,:].T
b_init = vars['b3d'][2,:,:].T
dp.make_2D_plot(sim_name + '/b_snap.pdf', (dims['x']/1000., dims['z']/1000.) , b_init, title='buoyancy at the beginning', xlabel = 'x (km)', ylabel = 'z (km)' )


#
#plt.pcolormesh(t,z, te[:,0,:].T)
#plt.colorbar()
#plt.title('total energy' )
#figpath = sim_name + "/tetest.pdf"
#plt.savefig(figpath) 
#plt.clf() 
#
#plt.pcolormesh(t,z, buoy[:,0,:].T)
#plt.colorbar()