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
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)
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()
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])
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(
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()
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()
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)
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),
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
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')
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])
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()
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:]))