Skip to content

Commit 0de6b00

Browse files
committed
add val to swm_cartesian.py
1 parent f462d60 commit 0de6b00

File tree

1 file changed

+84
-1
lines changed

1 file changed

+84
-1
lines changed

swm_python/swm_cartesian.py

+84-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
L_OUT = True # args.L_OUT
1717
VIS = False
1818
VIS_DT=10
19-
ITMAX = 4000
19+
VAL=True
20+
ITMAX = 1000
2021
dt = 90.
2122
tdt = dt
2223
dx = 100000.
@@ -77,6 +78,32 @@ def live_plot3(fu, fv, fp, title=''):
7778
#plt.ylabel('y')
7879
plt.show()
7980

81+
def read_arrays(u_file, v_file, p_file):
82+
u_v = np.loadtxt(u_file,)
83+
v_v = np.loadtxt(v_file)
84+
p_v = np.loadtxt(p_file)
85+
return u_v, v_v, p_v
86+
87+
def live_plot_val(fu, fv, fp, title=''):
88+
mxu = fu.max()
89+
mxv = fv.max()
90+
mxp = fp.max()
91+
clear_output(wait=True)
92+
fig, (ax1, ax2, ax3) = plt.subplots(figsize=(13, 3), ncols=3)
93+
94+
pos1 = ax1.imshow(fp, cmap='Blues', vmin=-mxp, vmax=mxp,interpolation='none')
95+
ax1.set_title('p')
96+
plt.colorbar(pos1,ax=ax1)
97+
pos2 = ax2.imshow(fu, cmap='Reds', vmin=-mxu, vmax=mxu,interpolation='none')
98+
ax2.set_title('u')
99+
plt.colorbar(pos2,ax=ax2)
100+
pos3 = ax3.imshow(fv, cmap='Greens',vmin=-mxv, vmax=mxv,interpolation='none')
101+
ax3.set_title('v')
102+
plt.colorbar(pos3, ax=ax3)
103+
104+
fig.suptitle(title)
105+
plt.show()
106+
80107
# Initial values of the stream function and p
81108
# for i in range(M + 1):
82109
# for j in range(N + 1):
@@ -425,6 +452,34 @@ def copy_var(
425452
print("t200: ",dt2)
426453
print("t300: ",dt3)
427454

455+
if VAL:
456+
457+
u_val_f = 'ref/u.64.64.IT4000.txt'
458+
v_val_f = 'ref/v.64.64.IT4000.txt'
459+
p_val_f = 'ref/p.64.64.IT4000.txt'
460+
uval = np.zeros((M_LEN, N_LEN))
461+
vval = np.zeros((M_LEN, N_LEN))
462+
pval = np.zeros((M_LEN, N_LEN))
463+
464+
uref, vref, pref = read_arrays(v_val_f, u_val_f, p_val_f)
465+
uval = uref-unew[:,:,0]
466+
vval = vref-vnew[:,:,0]
467+
pval = pref-pnew[:,:,0]
468+
469+
uLinfN= np.linalg.norm(uval, np.inf)
470+
vLinfN= np.linalg.norm(vval, np.inf)
471+
pLinfN= np.linalg.norm(pval, np.inf)
472+
473+
474+
475+
live_plot_val(uval, vval, pval, "Val")
476+
print("uLinfN: ", uLinfN)
477+
print("vLinfN: ", vLinfN)
478+
print("pLinfN: ", pLinfN)
479+
print("udiff max: ",uval.max())
480+
print("vdiff max: ",vval.max())
481+
print("pdiff max: ",pval.max())
482+
428483

429484
# gt4py NEXT part!!!!!!!!!!!!!!!!!!!!
430485

@@ -547,3 +602,31 @@ def calc_h_program(
547602
print(" diagonal elements of p:\n", pnew[:,:,0].diagonal()[:-1])
548603
print(" diagonal elements of u:\n", unew[:,:,0].diagonal()[:-1])
549604
print(" diagonal elements of v:\n", vnew[:,:,0].diagonal()[:-1])
605+
606+
if VAL:
607+
print("val")
608+
u_val_f = 'ref/u.64.64.IT4000.txt'
609+
v_val_f = 'ref/v.64.64.IT4000.txt'
610+
p_val_f = 'ref/p.64.64.IT4000.txt'
611+
uval = np.zeros((M_LEN, N_LEN))
612+
vval = np.zeros((M_LEN, N_LEN))
613+
pval = np.zeros((M_LEN, N_LEN))
614+
615+
uref, vref, pref = read_arrays(v_val_f, u_val_f, p_val_f)
616+
uval = uref-unew
617+
vval = vref-vnew
618+
pval = pref-pnew
619+
620+
uLinfN= np.linalg.norm(uval, np.inf)
621+
vLinfN= np.linalg.norm(vval, np.inf)
622+
pLinfN= np.linalg.norm(pval, np.inf)
623+
624+
625+
626+
live_plot_val(uval, vval, pval, "Val")
627+
print("uLinfN: ", uLinfN)
628+
print("vLinfN: ", vLinfN)
629+
print("pLinfN: ", pLinfN)
630+
print("udiff max: ",uval.max())
631+
print("vdiff max: ",vval.max())
632+
print("pdiff max: ",pval.max())

0 commit comments

Comments
 (0)