コード例 #1
0
ファイル: grate2.py プロジェクト: boutproject/BOUT-dev
def avgrate(p, y=None, tind=None):

    if tind is None : tind =0

    rmsp_f=moment_xyzt(p, 'RMS').rms

    ni=np.shape(rmsp_f)[1]
    nj=np.shape(rmsp_f)[2]

    growth=np.zeros((ni,nj))

    with np.errstate(divide='ignore'):


        for i in range(ni):
            for j in range(nj):
                growth[i,j]=np.gradient(np.log(rmsp_f[tind::,i,j]))[-1]

    d=np.ma.masked_array(growth,np.isnan(growth))

# masked arrays
# http://stackoverflow.com/questions/5480694/numpy-calculate-averages-with-nans-removed

    print('Total average growth rate= ', np.mean(np.ma.masked_array(d,np.isinf(d))))
    if y is not None : print('Growth rate in plane', y, '= ', np.mean(np.ma.masked_array(growth[:,y],np.isnan(growth[:,y]))))
コード例 #2
0
ファイル: grate2.py プロジェクト: swun90/BOUT-dev
def avgrate(p, y=None, tind=None):

    if tind == None: tind = 0

    rmsp_f = moment_xyzt(p, 'RMS').rms

    ni = np.shape(rmsp_f)[1]
    nj = np.shape(rmsp_f)[2]

    growth = np.zeros((ni, nj))

    with np.errstate(divide='ignore'):

        for i in range(ni):
            for j in range(nj):
                growth[i, j] = np.gradient(np.log(rmsp_f[tind::, i, j]))[-1]

    d = np.ma.masked_array(growth, np.isnan(growth))

    # masked arrays
    # http://stackoverflow.com/questions/5480694/numpy-calculate-averages-with-nans-removed

    print('Total average growth rate= ',
          np.mean(np.ma.masked_array(d, np.isinf(d))))
    if y != None:
        print(
            'Growth rate in plane', y, '= ',
            np.mean(np.ma.masked_array(growth[:, y], np.isnan(growth[:, y]))))
コード例 #3
0
ファイル: grate2.py プロジェクト: JosephThomasParker/BOUT-dev
def gr(p):
        rmsp_f=moment_xyzt(p, 'RMS').rms

        ni=np.shape(rmsp_f)[1]
        nj=np.shape(rmsp_f)[2]

        growth=np.zeros((ni,nj))

        for i in range(ni):
                for j in range(nj):
                         growth[i,j]=np.gradient(np.log(rmsp_f[ik::,i,j]))[-1]

        return growth
コード例 #4
0
ファイル: grate2.py プロジェクト: xj361685640/BOUT-dev
def gr(p):
    rmsp_f = moment_xyzt(p, 'RMS').rms

    ni = np.shape(rmsp_f)[1]
    nj = np.shape(rmsp_f)[2]

    growth = np.zeros((ni, nj))

    for i in range(ni):
        for j in range(nj):
            growth[i, j] = np.gradient(np.log(rmsp_f[ik::, i, j]))[-1]

    return growth
コード例 #5
0
ファイル: plotcollapse.py プロジェクト: xj361685640/BOUT-dev
if not os.path.exists('image'):
    os.makedirs('image')

g = file_import('../cbm18_dens8.grid_nx68ny64.nc')
psi = old_div((g['psixy'][:, 32] - g['psi_axis']),
              (g['psi_bndry'] - g['psi_axis']))

path = './data'

plt.figure()

p0 = collect('P0', path=path)

p = collect('P', path=path)
res = moment_xyzt(p, 'RMS', 'DC')
rmsp = res.rms
dcp = res.dc
nt = dcp.shape[2]

plt.plot(psi, p0[:, 32], 'k--', label='t=0')
plt.plot(psi,
         p0[:, 32] + dcp[old_div(nt, 4), :, 32],
         'r-',
         label='t=' + np.str(old_div(nt, 4)))
plt.plot(psi,
         p0[:, 32] + dcp[old_div(nt, 2), :, 32],
         'g-',
         label='t=' + np.str(old_div(nt, 2)))
plt.plot(psi,
         p0[:, 32] + dcp[3 * nt / 4, :, 32],
コード例 #6
0
ファイル: read_elmsize.py プロジェクト: boutproject/BOUT-dev
p0=collect('P0', path=path)
save('p0.dat', p0)


# n0=collect('n0', path=path)
# save('n0.dat', n0
# ti0=collect('ti0', path=path)
# save('ti0.dat', ti0)
# te0=collect('te0', path=path)
# save('te0.idl.dat', te0)

gfile=file_import('./cbm18_dens8.grid_nx68ny64.nc')

p=collect('P', path=path)
save('p.dat', p)
res=moment_xyzt(p,'RMS','DC')
rmsp=res.rms
dcp=res.dc
save('rmsp.dat', rmsp)
save('dcp.dat',  dcp)
elmsp=elm_size(dcp,p0,gfile,yind=32,Bbar=gfile['bmag'])
save('elmsp.dat',  elmsp)

figure(0)
plot(t_array,elmsp.s2, 'k-')
xlabel('t/Ta')
ylabel('Elm size')
title('Elm size, P')
tight_layout()
show()
コード例 #7
0
if not os.path.exists('image'):
   os.makedirs('image')

g = file_import('../cbm18_dens8.grid_nx68ny64.nc')
psi = old_div((g['psixy'][:, 32] - g['psi_axis']), (g['psi_bndry'] - g['psi_axis']))

path = './data'

plt.figure()

#p0 = transpose(readsav(os.path.join(path, 'p0.idl.dat'))['p0'])
p0=collect('P0', path=path)

#dcp = transpose(readsav(os.path.join(path, 'dcp.idl.dat'))['dcp'])
p=collect('P', path=path)
res = moment_xyzt(p,'RMS','DC')
rmsp = res.rms
dcp = res.dc
nt = dcp.shape[2]

plt.plot(psi, p0[:, 32], 'k--', label='t=0')
plt.plot(psi, p0[:, 32] + dcp[old_div(nt,4), :, 32], 'r-', label='t='+np.str(old_div(nt,4)))
plt.plot(psi, p0[:, 32] + dcp[old_div(nt,2), :, 32], 'g-', label='t='+np.str(old_div(nt,2)))
plt.plot(psi, p0[:, 32] + dcp[3*nt/4, :, 32], 'b-', label='t='+np.str(3*nt/4))
plt.plot(psi, p0[:, 32] + dcp[-1, :, 32], 'c-', label='t='+np.str(nt))

plt.legend()
#plt.xlim(0.6, 1.0)
plt.xlabel(r'Normalized poloidal flux ($\psi$)')
plt.ylabel(r'$\langle p\rangle_\xi$')
plt.title(r'Pressure')
コード例 #8
0
ファイル: post.py プロジェクト: xj361685640/BOUT-dev
         xycoords='axes fraction',
         horizontalalignment='center',
         verticalalignment='center',
         color='r',
         size=30)
xlabel('Radial $\psi$', fontsize=25)
ylabel('$\Omega(\psi)/\omega_A$', fontsize=25)
ylim([-.05, 0])
xlim([0.4, 1.2])
fig.set_tight_layout(True)
show(block=False)

p_f0 = collect("P", path=path0)
p_f = collect("P", path=path1)
#
rmsp_f0 = moment_xyzt(p_f0, 'RMS').rms
rmsp_f = moment_xyzt(p_f, 'RMS').rms
#

fig = figure(figsize=(10, 8))
plot(np.gradient(np.log(rmsp_f0[:, 34, 32])), color='k', linewidth=3)
plot(np.gradient(np.log(rmsp_f[:, 34, 32])), color='red', linewidth=3)

ylabel('$\gamma / \omega_A$', fontsize=25)
xlabel('Time$(\\tau_A)$', fontsize=25)
annotate('w/o flow',
         xy=(.5, .7),
         xycoords='axes fraction',
         horizontalalignment='center',
         verticalalignment='center',
         size=30)
コード例 #9
0
save('t_array.dat', t_array)
p0 = collect('P0', path=path)
save('p0.dat', p0)

# n0=collect('n0', path=path)
# save('n0.dat', n0
# ti0=collect('ti0', path=path)
# save('ti0.dat', ti0)
# te0=collect('te0', path=path)
# save('te0.idl.dat', te0)

gfile = file_import('./cbm18_dens8.grid_nx68ny64.nc')

p = collect('P', path=path)
save('p.dat', p)
res = moment_xyzt(p, 'RMS', 'DC')
rmsp = res.rms
dcp = res.dc
save('rmsp.dat', rmsp)
save('dcp.dat', dcp)
elmsp = elm_size(dcp, p0, gfile, yind=32, Bbar=gfile['bmag'])
save('elmsp.dat', elmsp)

figure(0)
plot(t_array, elmsp.s2, 'k-')
xlabel('t/Ta')
ylabel('Elm size')
title('Elm size, P')
tight_layout()
show()
コード例 #10
0
ファイル: post.py プロジェクト: JosephThomasParker/BOUT-dev
fig=figure()
plot(psix,-Dphi0[:,32], 'r', linewidth=5)
plot(psix,Epsi,'k',linewidth=5)
annotate('w/o flow', xy=(.3, .7),  xycoords='axes fraction',horizontalalignment='center', verticalalignment='center', size=30)
annotate('w/ flow', xy=(.7, .4),  xycoords='axes fraction',horizontalalignment='center', verticalalignment='center', color='r', size=30)
xlabel('Radial $\psi$',fontsize=25)
ylabel('$\Omega(\psi)/\omega_A$',fontsize=25)
ylim([-.05,0])
xlim([0.4,1.2])
fig.set_tight_layout(True)
show(block=False)

p_f0 = collect("P", path=path0)
p_f = collect("P", path=path1)
#
rmsp_f0=moment_xyzt(p_f0, 'RMS').rms
rmsp_f=moment_xyzt(p_f, 'RMS').rms
#

fig=figure(figsize=(10, 8))
plot(np.gradient(np.log(rmsp_f0[:,34,32])), color='k',linewidth=3)
plot(np.gradient(np.log(rmsp_f[:,34,32])),color='red',linewidth=3)

ylabel('$\gamma / \omega_A$',fontsize=25)
xlabel('Time$(\\tau_A)$',fontsize=25)
annotate('w/o flow', xy=(.5, .7),  xycoords='axes fraction',horizontalalignment='center', verticalalignment='center', size=30)
annotate('w/ flow', xy=(.5, .4),  xycoords='axes fraction',horizontalalignment='center', verticalalignment='center', color='r', size=30)
ylim([0,0.5])
xlim([0,100])
fig.set_tight_layout(True)
show(block=False)
コード例 #11
0
from __future__ import print_function
######
# Computes the rms of a variable and prints the growth rate value at the last timestep
######

import numpy as np
from boutdata.collect import collect
from boututils.moment_xyzt import moment_xyzt

path = './data/'

p = collect('P', path=path)
rmsp_f = moment_xyzt(p[:, 34:35, 32:33, :], 'RMS').rms

print(np.gradient(np.log(rmsp_f[:, 0, 0]))[-1])
コード例 #12
0
ファイル: grate.py プロジェクト: JosephThomasParker/BOUT-dev
from __future__ import print_function
######
# Computes the rms of a variable and prints the growth rate value at the last timestep
######

import numpy as np
from boutdata.collect import collect
from boututils.moment_xyzt import moment_xyzt



path='./data/'


p=collect('P',path=path)
rmsp_f=moment_xyzt(p[:,34:35,32:33,:], 'RMS').rms


print(np.gradient(np.log(rmsp_f[:,0,0]))[-1])