import numpy as np
import util
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 2})
matplotlib.rcParams.update({'figure.figsize': (8, 6)})
axis_font = {'fontname': 'Bitstream Vera Sans', 'weight': 'bold', 'size': '22'}

s_deim = io.read_PETSc_vec("reduced_basis/full_trajectory/6000/s_DEIM.petsc")

s_pod = io.read_PETSc_vec("reduced_basis/full_trajectory/6000/s_POD.petsc")

pod_k = util.computePODError(np.square(s_pod), 1e-5)
deim_m = util.computePODError(np.square(s_deim), 1e-5)
print(pod_k, deim_m)
util.plotSingular(np.square(s_pod), np.square(s_deim), 1e-6, bounds=False)
plt.xlabel(r'\textbf{Sigma }  $i$', **axis_font)
plt.ylabel(r'\textbf{Value}', **axis_font)
plt.legend(["Singular values FS", "Singular values of q"], loc='upper right')
#plt.title(r'\textbf{Singularvalues of SVD 12\_6000}',**axis_font)
plt.savefig('singularvalues_12_6000.png', bbox_inches='tight')
plt.show()
import numpy as np
import util
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 2})
matplotlib.rcParams.update({'figure.figsize': (8, 6)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}



s_deimN = io.read_PETSc_vec("reduced_basis/N-DOP/1000/s_DEIMN.petsc")


s_podN = io.read_PETSc_vec("reduced_basis/N-DOP/1000/s_PODN.petsc")
s_deimDOP = io.read_PETSc_vec("reduced_basis/N-DOP/1000/s_DEIMDOP.petsc")


s_podDOP = io.read_PETSc_vec("reduced_basis/N-DOP/1000/s_PODDOP.petsc")


#pod_k  = util.computePODError(np.square(s_pod),1e-5)
#deim_m = util.computePODError(np.square(s_deim),1e-5)
#print(pod_k,deim_m)
util.plotSingular(np.square(s_podN),np.square(s_deimN),1e-6, bounds=False)
plt.xlabel(r'\textbf{Sigma }  $i$',**axis_font)
plt.ylabel(r'\textbf{Value}',**axis_font)
plt.legend(["Singular values FS","Singular values of q"],loc='upper right')
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 22})
plt.rcParams.update({'font.weight': 'bold'})
plt.rcParams.update({'lines.linewidth': 2})
plt.rcParams.update({'figure.figsize': (12, 10)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')


Y_red = np.zeros((52749,3000))
for i in range(3000):
    Y_red[:,i] = io.read_PETSc_vec('simulation/reduced/full_trajectory/POD_100_DEIM_50_+5/sp' + str(i).zfill(4) + 'ts2879N.petsc')

Y_hd = np.zeros((52749,3000))
for i in range(3000):
    Y_hd[:,i] = io.read_PETSc_vec('simulation/full_trajectory_+5/sp' + str(i).zfill(4) + 'ts2879N.petsc')


hdnorm= np.linalg.norm(Y_hd,axis=0)
data1 = np.linalg.norm(Y_hd - Y_red,axis=0)/hdnorm

for i in range(3000):
    Y_red[:,i] = io.read_PETSc_vec('simulation/POD_DEIM/sp' + str(i).zfill(4) + 'ts2879N.petsc')

hdnorm= np.linalg.norm(Y_hd,axis=0)
data6 = np.linalg.norm(Y_hd - Y_red,axis=0)/hdnorm
Ejemplo n.º 4
0
import numpy as np
import util
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 2})
matplotlib.rcParams.update({'figure.figsize': (8, 6)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}



s_deim = io.read_PETSc_vec("reduced_basis/full_trajectory/one_month/s_DEIM.petsc")


s_pod = io.read_PETSc_vec("reduced_basis/full_trajectory/one_month/s_POD.petsc")


pod_k  = util.computePODError(np.square(s_pod),1e-5)
deim_m = util.computePODError(np.square(s_deim),1e-5)
print(pod_k,deim_m)
util.plotSingular(np.square(s_pod),np.square(s_deim),1e-6,bounds=False)
plt.xlabel(r'\textbf{Sigma }  $i$',**axis_font)
plt.ylabel(r'\textbf{Value}',**axis_font)
plt.legend(["Singular values FS","Singular values of q"],loc='upper right')
#plt.title(r'\textbf{Singularvalues of SVD 3\_3000}',**axis_font)
plt.savefig('singularvalues_3_3000.png', bbox_inches='tight')
plt.show()
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 22})
plt.rcParams.update({'font.weight': 'bold'})
plt.rcParams.update({'lines.linewidth': 2})
plt.rcParams.update({'figure.figsize': (13, 11)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')


Y_red = np.zeros((52749,3000))
for i in range(3000):
    Y_red[:,i] = io.read_PETSc_vec('simulation/reduced/last_year/POD_150_DEIM_150/2000/sp' + str(i).zfill(4) + 'ts2879N.petsc')

Y_hd = np.zeros((52749,3000))
for i in range(3000):
    Y_hd[:,i] = io.read_PETSc_vec('simulation/POD_DEIM/sp' + str(i).zfill(4) + 'ts2879N.petsc')


hdnorm= np.linalg.norm(Y_hd,axis=0)
data1 = np.linalg.norm(Y_hd - Y_red,axis=0)/hdnorm


#Y_red = np.zeros((52749,3000))
for i in range(3000):
        Y_hd[:,i] = io.read_PETSc_vec('simulation/POD_DEIM/sp2999ts2879N.petsc')

hdnorm= np.linalg.norm(Y_hd,axis=0)
Ejemplo n.º 6
0
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 22})
plt.rcParams.update({'font.weight': 'bold'})
plt.rcParams.update({'lines.linewidth': 2})
plt.rcParams.update({'figure.figsize': (12, 10)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')


Y_red = np.zeros((52749,3000))
for i in range(3000):
    Y_red[:,i] = io.read_PETSc_vec('simulation/reduced/10_lhc/1000/POD300DEIM300/lhc_0/sp' + str(i).zfill(4) + 'ts2879N.petsc')

Y_hd = np.zeros((52749,3000))
for i in range(3000):
    Y_hd[:,i] = io.read_PETSc_vec('simulation/lhc/0/sp' + str(i).zfill(4) + 'ts2879N.petsc')


hdnorm= np.linalg.norm(Y_hd,axis=0)
data1 = np.linalg.norm(Y_hd - Y_red,axis=0)/hdnorm

#Y_red = np.zeros((52749,3000))
for i in range(3000):
    Y_red[:,i] = io.read_PETSc_vec('simulation/reduced/full_trajectory/POD_100_DEIM_50_lhc_0/sp' + str(i).zfill(4) + 'ts2879N.petsc')

data2 = np.linalg.norm(Y_hd - Y_red,axis=0)/hdnorm
import numpy as np
import util
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 2})
matplotlib.rcParams.update({'figure.figsize': (8, 6)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}



s_deim = io.read_PETSc_vec("reduced_basis/10_lhc/1000/s_DEIM.petsc")


s_pod = io.read_PETSc_vec("reduced_basis/10_lhc/1000/s_POD.petsc")


pod_k  = util.computePODError(np.square(s_pod),1e-5)
deim_m = util.computePODError(np.square(s_deim),1e-5)
print(pod_k,deim_m)
util.plotSingular(np.square(s_pod),np.square(s_deim),1e-6, bounds=True)
plt.xlabel(r'\textbf{Sigma }  $i$',**axis_font)
plt.ylabel(r'\textbf{Value}',**axis_font)
plt.legend(["Singular values FS","Singular values of q"],loc='upper right')
#plt.title(r'\textbf{Singularvalues of SVD 10 LHC 1000}',**axis_font)
plt.savefig('singularvalues_10_lhc_1000.png', bbox_inches='tight')
plt.show()
import numpy as np
import util
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 2})
matplotlib.rcParams.update({'figure.figsize': (8, 6)})
axis_font = {'fontname': 'Bitstream Vera Sans', 'weight': 'bold', 'size': '22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')

s_deim = io.read_PETSc_vec("reduced_basis/last_year/s_DEIM.petsc")

s_pod = io.read_PETSc_vec("reduced_basis/last_year/s_POD.petsc")

pod_k = util.computePODError(np.square(s_pod), 1e-5)
deim_m = util.computePODError(np.square(s_deim), 1e-5)
print(pod_k, deim_m)
util.plotSingular(np.square(s_pod), np.square(s_deim), 1e-6, bounds=False)
plt.xlabel(r'\textbf{Sigma } $i$', **axis_font)
plt.ylabel(r'\textbf{Value}', **axis_font)
plt.legend(["Singular values FS", "Singular values of q"], loc='best')
#plt.title(r'\textbf{Singularvalues of SVD 12\_3000}',**axis_font)
plt.savefig('singularvalues_last_year.png', bbox_inches='tight')
plt.show()
Ejemplo n.º 9
0
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 22})
plt.rcParams.update({'font.weight': 'bold'})
plt.rcParams.update({'lines.linewidth': 2})
plt.rcParams.update({'figure.figsize': (12, 10)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')


Y_red = np.zeros((52749,2600))
for i in range(2600):
    Y_red[:,i] = io.read_PETSc_vec('simulation/reduced/MITgcm/POD300DEIM300/PRO/sp' + str(i).zfill(4) + 'ts2879PO4.petsc')

Y_hd = np.zeros((52749,2600))
for i in range(2600):
    Y_hd[:,i] = io.read_PETSc_vec('simulation/MITgcm/sp' + str(i).zfill(4) + 'ts2879PO4.petsc')


hdnorm= np.linalg.norm(Y_hd,axis=0)
data1 = np.linalg.norm(Y_hd - Y_red,axis=0)/hdnorm

Y_red = np.zeros((52749,2600))
for i in range(2600):
    Y_red[:,i] = io.read_PETSc_vec('simulation/reduced/MITgcm/POD300DEIM300/PRO/sp' + str(i).zfill(4) + 'ts2879DOP.petsc')

Y_hd = np.zeros((52749,2600))
for i in range(2600):
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 22})
plt.rcParams.update({'font.weight': 'bold'})
plt.rcParams.update({'lines.linewidth': 2})
plt.rcParams.update({'figure.figsize': (12, 10)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')

spinnorm = np.zeros((52749,3000))
for i in range(3000):
    spinnorm[:,i] = io.read_PETSc_vec('simulation/reduced/last_year/POD_150_DEIM_150/sp' + str(i).zfill(4) + 'ts2879N.petsc')

snorm= np.zeros(2999)
for i in range(2999):
    snorm[i] = np.linalg.norm(spinnorm[:,i+1] - spinnorm[:,i])
    
    
spinnorm = np.zeros((52749,3000))
for i in range(3000):
    spinnorm[:,i] = io.read_PETSc_vec('simulation/POD_DEIM/sp' + str(i).zfill(4) + 'ts2879N.petsc')



snorm_hd= np.zeros(2999)
for i in range(2999):
    snorm_hd[i] = np.linalg.norm(spinnorm[:,i+1] - spinnorm[:,i])
Ejemplo n.º 11
0
plt.rcParams.update({'figure.figsize': (16, 10)})
axis_font = {'fontname': 'Bitstream Vera Sans', 'weight': 'bold', 'size': '22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')

ny = 52749
nspinup = 1
timesteps = 1000
Y_hd_python = np.empty([ny, np.int_(nspinup * timesteps - 4)], dtype='float_')
#Y_DOP = np.empty([ny,np.int_(ndistribution * nspinup *(ntimestep-starttimestep))],dtype='float_')
counter = 0
for s in range(0, nspinup):
    for i in range(timesteps):
        if (i % 240 != 238):
            Y_hd_python[:, counter] = io.read_PETSc_vec(
                'simulation/compare/exp01/' + "sp%.4dts%.4dN.petsc" % (s, i))
            counter += 1
Y_hd = np.empty([ny, np.int_(nspinup * timesteps - 4)], dtype='float_')
#Y_DOP = np.empty([ny,np.int_(ndistribution * nspinup *(ntimestep-starttimestep))],dtype='float_')
counter = 0
for s in range(0, nspinup):
    for i in range(timesteps):
        if (i % 240 != 238):
            Y_hd[:, counter] = io.read_PETSc_vec('simulation/POD_DEIM/' +
                                                 "sp%.4dts%.4dN.petsc" %
                                                 (s, i + 1))
            counter += 1

data1 = np.linalg.norm(Y_hd - Y_hd_python[:, :Y_hd.shape[1]], axis=0)

plt.plot(data1, color='darkgray', linestyle='--', linewidth=3)
    )[:10])
data12 = time_hd / np.mean(
    np.load(
        'simulation/reduced/N-DOP/1000/POD300DEIM300/sp0009ts2879N.petsc_timeings.npy'
    )[:10])
#data13 = time_hd/np.mean(np.load('simulation/reduced/full_trajectory/3_snapshots_per_month/1000/POD100DEIM50/sp0009ts2879N.petsc_timeings.npy')[:10])
#data14 = time_hd/np.mean(np.load('simulation/reduced/full_trajectory/3_snapshots_per_month/1000/POD300DEIM300/sp0009ts2879N.petsc_timeings.npy')[:10])
print('\\text{Base}  & P100D50 & P300D300 & FOM\\\\')
print(format_s1 % ('S_P', data11, data12, 1))

#print(formatd % ('S_R',1/data11 *1000 +2028,1/data12 *1000 +1995,1/data13 *1000 +2114,1/data14 *1000 +1996,0))
#print(formatd % ('S_R',1/data11 *3000 +1711,1/data12 *3000 +40,1/data13 *3000 +2755,1/data14 *3000 +758,0))

y0 = np.ones(52749) * 2.17
y0DOP = np.ones(52749) * 1.e-4
volumes = io.read_PETSc_vec('data/TMM/2.8/Geometry/volumes.petsc')
v0 = np.sum(y0 * volumes)
v0DOP = np.sum(y0DOP * volumes)

data31 = np.abs(
    np.sum(
        io.read_PETSc_vec(
            'simulation/reduced/N-DOP/1000/POD100DEIM50/sp0999ts2879N.petsc') *
        volumes) - v0) / v0
data32 = np.abs(
    np.sum(
        io.read_PETSc_vec(
            'simulation/reduced/N-DOP/1000/POD300DEIM300/sp0999ts2879N.petsc')
        * volumes) - v0) / v0
data33 = np.abs(
    np.sum(
Ejemplo n.º 13
0
import numpy as np
import util
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 2})
matplotlib.rcParams.update({'figure.figsize': (8, 6)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}



s_deim = io.read_PETSc_vec("reduced_basis/full_trajectory/3_snapshots_per_month/1000/s_DEIM.petsc")


s_pod = io.read_PETSc_vec("reduced_basis/full_trajectory/3_snapshots_per_month/1000/s_POD.petsc")


pod_k  = util.computePODError(np.square(s_pod),1e-5)
deim_m = util.computePODError(np.square(s_deim),1e-5)
print(pod_k,deim_m)
util.plotSingular(np.square(s_pod),np.square(s_deim),1e-6, bounds=False)
plt.xlabel(r'\textbf{Sigma }  $i$',**axis_font)
plt.ylabel(r'\textbf{Value}',**axis_font)
plt.legend(["Singular values FS","Singular values of q"],loc='upper right')
#plt.title(r'\textbf{Singularvalues of SVD 36\_3000}',**axis_font)
plt.savefig('singularvalues_36_1000.png', bbox_inches='tight')
plt.show()
Ejemplo n.º 14
0
import numpy as np
import util
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 2})
matplotlib.rcParams.update({'figure.figsize': (8, 6)})
axis_font = {'fontname': 'Bitstream Vera Sans', 'weight': 'bold', 'size': '22'}

s_deimN = io.read_PETSc_vec("reduced_basis/MITgcm/s_DEIMPO4.petsc")

s_podN = io.read_PETSc_vec("reduced_basis/MITgcm/s_PODPO4.petsc")
s_deimDOP = io.read_PETSc_vec("reduced_basis/MITgcm/s_DEIMDOP.petsc")

s_podDOP = io.read_PETSc_vec("reduced_basis/MITgcm/s_PODDOP.petsc")

#pod_k  = util.computePODError(np.square(s_pod),1e-5)
#deim_m = util.computePODError(np.square(s_deim),1e-5)
#print(pod_k,deim_m)
util.plotSingular(np.square(s_podN), np.square(s_deimN), 1e-6, bounds=False)
plt.xlabel(r'\textbf{Sigma }  $i$', **axis_font)
plt.ylabel(r'\textbf{Value}', **axis_font)
plt.legend(["Singular values FS", "Singular values of q"], loc='upper right')
#plt.title(r'\textbf{Singularvalues of SVD 36\_1000 of tracer N}',**axis_font)
plt.savefig('singularvalues_MITgcm_PO4.png', bbox_inches='tight')
plt.show()

util.plotSingular(np.square(s_podDOP),
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 2})
matplotlib.rcParams.update({'figure.figsize': (8, 6)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')



s_deim = io.read_PETSc_vec("reduced_basis/last_year/s_DEIM.petsc")


s_pod = io.read_PETSc_vec("reduced_basis/last_year/s_POD.petsc")


pod_k  = util.computePODError(np.square(s_pod),1e-5)
deim_m = util.computePODError(np.square(s_deim),1e-5)
print(pod_k,deim_m)
util.plotSingular(np.square(s_pod),np.square(s_deim),1e-6,bounds=False)
plt.xlabel(r'\textbf{Sigma } $i$',**axis_font)
plt.ylabel(r'\textbf{Value}',**axis_font)
plt.legend(["Singular values FS","Singular values of q"],loc='best')
#plt.title(r'\textbf{Singularvalues of SVD 12\_3000}',**axis_font)
plt.savefig('singularvalues_last_year.png', bbox_inches='tight')
plt.show()
Ejemplo n.º 16
0
import numpy as np
import util
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 2})
matplotlib.rcParams.update({'figure.figsize': (8, 6)})
axis_font = {'fontname': 'Bitstream Vera Sans', 'weight': 'bold', 'size': '22'}

s_deim = io.read_PETSc_vec("reduced_basis/10_lhc/1000/s_DEIM.petsc")

s_pod = io.read_PETSc_vec("reduced_basis/10_lhc/1000/s_POD.petsc")

pod_k = util.computePODError(np.square(s_pod), 1e-5)
deim_m = util.computePODError(np.square(s_deim), 1e-5)
print(pod_k, deim_m)
util.plotSingular(np.square(s_pod), np.square(s_deim), 1e-6, bounds=True)
plt.xlabel(r'\textbf{Sigma }  $i$', **axis_font)
plt.ylabel(r'\textbf{Value}', **axis_font)
plt.legend(["Singular values FS", "Singular values of q"], loc='upper right')
#plt.title(r'\textbf{Singularvalues of SVD 10 LHC 1000}',**axis_font)
plt.savefig('singularvalues_10_lhc_1000.png', bbox_inches='tight')
plt.show()
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 22})
plt.rcParams.update({'font.weight': 'bold'})
plt.rcParams.update({'lines.linewidth': 2})
plt.rcParams.update({'figure.figsize': (12, 10)})
axis_font = {'fontname': 'Bitstream Vera Sans', 'weight': 'bold', 'size': '22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')

Y_red = np.zeros((52749, 3000))
for i in range(3000):
    Y_red[:, i] = io.read_PETSc_vec(
        'simulation/reduced/full_trajectory/POD_100_DEIM_50_+5/sp' +
        str(i).zfill(4) + 'ts2879N.petsc')

Y_hd = np.zeros((52749, 3000))
for i in range(3000):
    Y_hd[:, i] = io.read_PETSc_vec('simulation/full_trajectory_+5/sp' +
                                   str(i).zfill(4) + 'ts2879N.petsc')

hdnorm = np.linalg.norm(Y_hd, axis=0)
data1 = np.linalg.norm(Y_hd - Y_red, axis=0) / hdnorm

for i in range(3000):
    Y_red[:, i] = io.read_PETSc_vec('simulation/POD_DEIM/sp' +
                                    str(i).zfill(4) + 'ts2879N.petsc')

hdnorm = np.linalg.norm(Y_hd, axis=0)
Ejemplo n.º 18
0
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 22})
plt.rcParams.update({'font.weight': 'bold'})
plt.rcParams.update({'lines.linewidth': 2})
plt.rcParams.update({'figure.figsize': (12, 10)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')

spinnorm = np.zeros((52749,3000))
for i in range(3000):
    spinnorm[:,i] = io.read_PETSc_vec('simulation/reduced/N-DOP/1000/POD100DEIM50/sp' + str(i).zfill(4) + 'ts2879N.petsc')

snormN= np.zeros(2999)
for i in range(2999):
    snormN[i] = np.linalg.norm(spinnorm[:,i+1] - spinnorm[:,i])
    
    
spinnorm = np.zeros((52749,3000))
for i in range(3000):
    spinnorm[:,i] = io.read_PETSc_vec('simulation/N-DOP/sp' + str(i).zfill(4) + 'ts2879N.petsc')



snorm_hdN= np.zeros(2999)
for i in range(2999):
    snorm_hdN[i] = np.linalg.norm(spinnorm[:,i+1] - spinnorm[:,i])
import numpy as np
import util
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 2})
matplotlib.rcParams.update({'figure.figsize': (8, 6)})
axis_font = {'fontname': 'Bitstream Vera Sans', 'weight': 'bold', 'size': '22'}

s_deimN = io.read_PETSc_vec("reduced_basis/N-DOP/1000/s_DEIMN.petsc")

s_podN = io.read_PETSc_vec("reduced_basis/N-DOP/1000/s_PODN.petsc")
s_deimDOP = io.read_PETSc_vec("reduced_basis/N-DOP/1000/s_DEIMDOP.petsc")

s_podDOP = io.read_PETSc_vec("reduced_basis/N-DOP/1000/s_PODDOP.petsc")

#pod_k  = util.computePODError(np.square(s_pod),1e-5)
#deim_m = util.computePODError(np.square(s_deim),1e-5)
#print(pod_k,deim_m)
util.plotSingular(np.square(s_podN), np.square(s_deimN), 1e-6, bounds=False)
plt.xlabel(r'\textbf{Sigma }  $i$', **axis_font)
plt.ylabel(r'\textbf{Value}', **axis_font)
plt.legend(["Singular values FS", "Singular values of q"], loc='upper right')
#plt.title(r'\textbf{Singularvalues of SVD 36\_1000 of tracer N}',**axis_font)
plt.savefig('singularvalues_N-DOP_1000_N.png', bbox_inches='tight')
plt.show()

util.plotSingular(np.square(s_podDOP),
Ejemplo n.º 20
0
matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 5})
matplotlib.rcParams.update({'figure.figsize': (10, 8)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}

plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')

nspinup = 100
timesteps = 12
bases = [5,20,50,80,100,120,140,160,180,200,250,300]
Y_hd = util.constructSnapshotMatrix('simulation/POD_DEIM/',"sp%.4dts%.4dN.petsc",nspinup,12,timesteps)
sPOD = io.read_PETSc_vec('reduced_basis/full_trajectory/s_POD.petsc')
sDEIM = io.read_PETSc_vec('reduced_basis/full_trajectory/s_DEIM.petsc')
U = np.load('reduced_basis/full_trajectory/fixed_deim/pod_5/U_DEIM_truncated.npy')
P = np.load('reduced_basis/full_trajectory/fixed_deim/pod_5/PT.npy')
PTU = np.linalg.inv(P.T.dot(U))
errorDEIM = np.linalg.norm(PTU,ord=2) * sDEIM[150]

err1 = np.zeros(len(bases),dtype=np.float_)
err2 = np.zeros(len(bases),dtype=np.float_)

j = 0
for i in bases:
    
    Y_reduced = util.constructSnapshotMatrix('simulation/reduced/full_trajectory/fixed_deim/pod_'+ str(i) +'/',"sp%.4dts%.4dN.petsc",nspinup,12,timesteps)
    err1[j] = np.sum(np.linalg.norm(Y_hd - Y_reduced)/np.linalg.norm(Y_hd)/nspinup)
    err2[j] = np.sum(np.square(sPOD[i:]))
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 22})
plt.rcParams.update({'font.weight': 'bold'})
plt.rcParams.update({'lines.linewidth': 2})
plt.rcParams.update({'figure.figsize': (12, 10)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')

spinnorm = np.zeros((52749,2600))
for i in range(2600):
    spinnorm[:,i] = io.read_PETSc_vec('simulation/reduced/MITgcm/POD300DEIM300/PRO/sp' + str(i).zfill(4) + 'ts2879PO4.petsc')

snormN= np.zeros(2599)
for i in range(2599):
    snormN[i] = np.linalg.norm(spinnorm[:,i+1] - spinnorm[:,i])
    
    
spinnorm = np.zeros((52749,3000))
for i in range(3000):
    spinnorm[:,i] = io.read_PETSc_vec('simulation/MITgcm/sp' + str(i).zfill(4) + 'ts2879PO4.petsc')



snorm_hdN= np.zeros(2999)
for i in range(2999):
    snorm_hdN[i] = np.linalg.norm(spinnorm[:,i+1] - spinnorm[:,i])
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 22})
plt.rcParams.update({'font.weight': 'bold'})
plt.rcParams.update({'lines.linewidth': 2})
plt.rcParams.update({'figure.figsize': (12, 10)})
axis_font = {'fontname': 'Bitstream Vera Sans', 'weight': 'bold', 'size': '22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')

spinnorm = np.zeros((52749, 3000))
for i in range(3000):
    spinnorm[:, i] = io.read_PETSc_vec(
        'simulation/reduced/N-DOP/1000/POD100DEIM50/sp' + str(i).zfill(4) +
        'ts2879N.petsc')

snormN = np.zeros(2999)
for i in range(2999):
    snormN[i] = np.linalg.norm(spinnorm[:, i + 1] - spinnorm[:, i])

spinnorm = np.zeros((52749, 3000))
for i in range(3000):
    spinnorm[:, i] = io.read_PETSc_vec('simulation/N-DOP/sp' +
                                       str(i).zfill(4) + 'ts2879N.petsc')

snorm_hdN = np.zeros(2999)
for i in range(2999):
    snorm_hdN[i] = np.linalg.norm(spinnorm[:, i + 1] - spinnorm[:, i])
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 22})
plt.rcParams.update({'font.weight': 'bold'})
plt.rcParams.update({'lines.linewidth': 2})
plt.rcParams.update({'figure.figsize': (12, 10)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')


Y_red = np.zeros((52749,3000))
for i in range(3000):
    Y_red[:,i] = io.read_PETSc_vec('simulation/reduced/10_lhc/1000/POD300DEIM300/+50/sp' + str(i).zfill(4) + 'ts2879N.petsc')

Y_hd = np.zeros((52749,3000))
for i in range(3000):
    Y_hd[:,i] = io.read_PETSc_vec('simulation/full_trajectory_+50/sp' + str(i).zfill(4) + 'ts2879N.petsc')


hdnorm= np.linalg.norm(Y_hd,axis=0)
data1 = np.linalg.norm(Y_hd - Y_red,axis=0)/hdnorm

#Y_red = np.zeros((52749,3000))
for i in range(3000):
    Y_red[:,i] = io.read_PETSc_vec('simulation/reduced/full_trajectory/3_snapshots_per_month/POD300DEIM300/+50/sp' + str(i).zfill(4) + 'ts2879N.petsc')

data2 = np.linalg.norm(Y_hd - Y_red,axis=0)/hdnorm
Ejemplo n.º 24
0
import numpy as np
import petsc_io as io 
np.set_printoptions(precision=20)

y_m3d = io.read_PETSc_vec("m3d_y.petsc")
y_py = io.read_PETSc_vec("py_y.petsc")

print("norm y_py - y_m3d: ", np.linalg.norm(y_py[:5]-y_m3d[:5])) 
print("python first 5 values: ", y_py[:5])
print("m3d  first 5 values: ", y_m3d[:5])
print("forth entry error: ", y_py[4] -y_m3d[4] )
 

y_eq = io.read_PETSc_vec("yeq_sec_block.petsc")
A = io.read_PETSc_mat("A_sec_block_fst_row.petsc")
y = A.dot(y_eq)
io.write_PETSc_vec(y,"y_sec_block_fst_row_py.petsc")

y_m3d = io.read_PETSc_vec("y_sec_block_fst_row_m3d.petsc")

print ("compare the multyplication of that entry:\n", y_m3d -y )


A = io.read_PETSc_mat("A_sec_block.petsc")
y = np.zeros(4)
y = A.dot(y_eq)
io.write_PETSc_vec(y,"y_sec_block_py.petsc")

y_m3d = io.read_PETSc_vec("y_sec_block_m3d.petsc")

print ("compare the multyplication of the whole 4x4 block:\n", y_m3d -y )
import numpy as np
import util
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 2})
matplotlib.rcParams.update({'figure.figsize': (8, 6)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}



s_deimN = io.read_PETSc_vec("reduced_basis/MITgcm/s_DEIMPO4.petsc")


s_podN = io.read_PETSc_vec("reduced_basis/MITgcm/s_PODPO4.petsc")
s_deimDOP = io.read_PETSc_vec("reduced_basis/MITgcm/s_DEIMDOP.petsc")


s_podDOP = io.read_PETSc_vec("reduced_basis/MITgcm/s_PODDOP.petsc")


#pod_k  = util.computePODError(np.square(s_pod),1e-5)
#deim_m = util.computePODError(np.square(s_deim),1e-5)
#print(pod_k,deim_m)
util.plotSingular(np.square(s_podN),np.square(s_deimN),1e-6, bounds=False)
plt.xlabel(r'\textbf{Sigma }  $i$',**axis_font)
plt.ylabel(r'\textbf{Value}',**axis_font)
plt.legend(["Singular values FS","Singular values of q"],loc='upper right')
Ejemplo n.º 26
0
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 22})
plt.rcParams.update({'font.weight': 'bold'})
plt.rcParams.update({'lines.linewidth': 2})
plt.rcParams.update({'figure.figsize': (13, 11)})
axis_font = {'fontname': 'Bitstream Vera Sans', 'weight': 'bold', 'size': '22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')

Y_red = np.zeros((52749, 3000))
for i in range(3000):
    Y_red[:, i] = io.read_PETSc_vec(
        'simulation/reduced/last_year/POD_150_DEIM_150/2000/sp' +
        str(i).zfill(4) + 'ts2879N.petsc')

Y_hd = np.zeros((52749, 3000))
for i in range(3000):
    Y_hd[:, i] = io.read_PETSc_vec('simulation/POD_DEIM/sp' + str(i).zfill(4) +
                                   'ts2879N.petsc')

hdnorm = np.linalg.norm(Y_hd, axis=0)
data1 = np.linalg.norm(Y_hd - Y_red, axis=0) / hdnorm

#Y_red = np.zeros((52749,3000))
for i in range(3000):
    Y_hd[:, i] = io.read_PETSc_vec('simulation/POD_DEIM/sp2999ts2879N.petsc')

hdnorm = np.linalg.norm(Y_hd, axis=0)
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 22})
plt.rcParams.update({'font.weight': 'bold'})
plt.rcParams.update({'lines.linewidth': 2})
plt.rcParams.update({'figure.figsize': (12, 10)})
axis_font = {'fontname':'Bitstream Vera Sans', 'weight':'bold' ,'size':'22'}
plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [r'\boldmath']
plt.rc('font', family='Bitstream Vera Sans', size=22, weight='bold')

spinnorm = np.zeros((52749,3000))
for i in range(3000):
    spinnorm[:,i] = io.read_PETSc_vec('simulation/reduced/full_trajectory/POD_100_DEIM_50/sp' + str(i).zfill(4) + 'ts2879N.petsc')

snorm= np.zeros(2999)
for i in range(2999):
    snorm[i] = np.linalg.norm(spinnorm[:,i+1] - spinnorm[:,i])
    
    
spinnorm = np.zeros((52749,5000))
for i in range(5000):
    spinnorm[:,i] = io.read_PETSc_vec('simulation/POD_DEIM/sp' + str(i).zfill(4) + 'ts2879N.petsc')



snorm_hd= np.zeros(4999)
for i in range(4999):
    snorm_hd[i] = np.linalg.norm(spinnorm[:,i+1] - spinnorm[:,i])
Ejemplo n.º 28
0
import numpy as np
import util
import petsc_io as io
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams.update({'font.size': 22})
matplotlib.rcParams.update({'font.weight': 'bold'})
matplotlib.rcParams.update({'lines.linewidth': 2})
matplotlib.rcParams.update({'figure.figsize': (8, 6)})
axis_font = {'fontname': 'Bitstream Vera Sans', 'weight': 'bold', 'size': '22'}

s_deim = io.read_PETSc_vec(
    "reduced_basis/full_trajectory/3_snapshots_per_month/1000/s_DEIM.petsc")

s_pod = io.read_PETSc_vec(
    "reduced_basis/full_trajectory/3_snapshots_per_month/1000/s_POD.petsc")

pod_k = util.computePODError(np.square(s_pod), 1e-5)
deim_m = util.computePODError(np.square(s_deim), 1e-5)
print(pod_k, deim_m)
util.plotSingular(np.square(s_pod), np.square(s_deim), 1e-6, bounds=False)
plt.xlabel(r'\textbf{Sigma }  $i$', **axis_font)
plt.ylabel(r'\textbf{Value}', **axis_font)
plt.legend(["Singular values FS", "Singular values of q"], loc='upper right')
#plt.title(r'\textbf{Singularvalues of SVD 36\_3000}',**axis_font)
plt.savefig('singularvalues_36_1000.png', bbox_inches='tight')
plt.show()
Ejemplo n.º 29
0
n = 3000
n_ = 1000
time_hd =275.8
data11 = time_hd/np.mean(np.load('simulation/reduced/full_trajectory/3_snapshots_per_month/POD_100_DEIM_50/sp0009ts2879N.petsc_timeings.npy')[:10])
data12 = time_hd/np.mean(np.load('simulation/reduced/full_trajectory/3_snapshots_per_month/sp0009ts2879N.petsc_timeings.npy')[:10])
data13 = time_hd/np.mean(np.load('simulation/reduced/full_trajectory/3_snapshots_per_month/1000/POD_100_DEIM_50/sp0009ts2879N.petsc_timeings.npy')[:10])
data14 = time_hd/np.mean(np.load('simulation/reduced/full_trajectory/3_snapshots_per_month/1000/POD_300_DEIM_300/sp0009ts2879N.petsc_timeings.npy')[:10])
print('\\text{Base}  & P100D50 & P300D300  & P100D50 & P300D300  & FOM\\\\')
print(formats % ('t_{setup} [s]','(9676,10,39)','(9676,870,327)','(2071,9,38)','(2071,989,350)','-'))
print(format_s % ('S_P',data11,data12,data13,data14,1))

print(formatd % ('S_R',1/data11 *1000 +2028,1/data12 *1000 +1995,1/data13 *1000 +2114,1/data14 *1000 +1996,0))
print(formatd % ('S_R',1/data11 *3000 +1711,1/data12 *3000 +40,1/data13 *3000 +2755,1/data14 *3000 +758,0))


sPOD = io.read_PETSc_vec('reduced_basis/full_trajectory/3_snapshots_per_month/s_POD.petsc')
sDEIM = io.read_PETSc_vec('reduced_basis/full_trajectory/3_snapshots_per_month/s_DEIM.petsc')
U = np.load('reduced_basis/full_trajectory/3_snapshots_per_month/POD_100_DEIM_50/U_DEIM_truncated.npy')
P = np.load('reduced_basis/full_trajectory/3_snapshots_per_month/POD_100_DEIM_50/PT.npy')
PTU = np.linalg.inv(P.T.dot(U))
data51 = np.linalg.norm(PTU,ord=2) * sDEIM[50]
data52 = np.sum(np.square(sPOD[100:]))

sPOD = io.read_PETSc_vec('reduced_basis/full_trajectory/3_snapshots_per_month/s_POD.petsc')
sDEIM = io.read_PETSc_vec('reduced_basis/full_trajectory/3_snapshots_per_month/s_DEIM.petsc')
U = np.load('reduced_basis/full_trajectory/3_snapshots_per_month/U_DEIM_truncated.npy')
P = np.load('reduced_basis/full_trajectory/3_snapshots_per_month/PT.npy')
PTU = np.linalg.inv(P.T.dot(U))
data53= np.linalg.norm(PTU,ord=2) * sDEIM[300]
data54 = np.sum(np.square(sPOD[300:]))