varialble Dm balance terms

This commit is contained in:
ignis 2021-12-12 13:47:29 +09:00
parent d244ac4a43
commit 82da593064

View file

@ -129,6 +129,17 @@ class ConditionalMeanBinning:
np.savez(self.name, **self.average()) np.savez(self.name, **self.average())
print("saved ", self.name) print("saved ", self.name)
def sutherland(c, dm0=0.02*4./3., rvis=5., pre=2.10e4, ac=26.7, bc=3.):
t0 = 1
t1 = 1 + bc
Ts = (rvis * t1 - (t1**(3. / 2.))) / (t1**(3. / 2.) - rvis)
As = t0 + Ts
theta = (1 + bc * c)
return dm0 * As * np.sqrt(theta) / (1. + Ts / theta)
cs = CompactScheme(nx, ny, nz, False, True, True, 4, 2, 2) cs = CompactScheme(nx, ny, nz, False, True, True, 4, 2, 2)
@ -136,6 +147,10 @@ cs = CompactScheme(nx, ny, nz, False, True, True, 4, 2, 2)
cmean_verify = np.zeros(len(x_indices)) cmean_verify = np.zeros(len(x_indices))
# Conditional Average Objects # Conditional Average Objects
avg_objs_ddxdmddxc = [ConditionalMeanBinning(var='ddxdmddxc', case=casename, loc=xi) for xi in x_indices]
avg_objs_ddydmddyc = [ConditionalMeanBinning(var='ddydmddyc', case=casename, loc=xi) for xi in x_indices]
avg_objs_ddzdmddzc = [ConditionalMeanBinning(var='ddzdmddzc', case=casename, loc=xi) for xi in x_indices]
avg_objs_ddxc = [ConditionalMeanBinning(var='ddxc', case=casename, loc=xi) for xi in x_indices] avg_objs_ddxc = [ConditionalMeanBinning(var='ddxc', case=casename, loc=xi) for xi in x_indices]
avg_objs_ddyc = [ConditionalMeanBinning(var='ddyc', case=casename, loc=xi) for xi in x_indices] avg_objs_ddyc = [ConditionalMeanBinning(var='ddyc', case=casename, loc=xi) for xi in x_indices]
avg_objs_ddzc = [ConditionalMeanBinning(var='ddzc', case=casename, loc=xi) for xi in x_indices] avg_objs_ddzc = [ConditionalMeanBinning(var='ddzc', case=casename, loc=xi) for xi in x_indices]
@ -147,8 +162,6 @@ avg_objs_uddxc = [ConditionalMeanBinning(var='uddxc', case=casename, loc=xi) for
avg_objs_vddyc = [ConditionalMeanBinning(var='vddyc', case=casename, loc=xi) for xi in x_indices] avg_objs_vddyc = [ConditionalMeanBinning(var='vddyc', case=casename, loc=xi) for xi in x_indices]
avg_objs_wddzc = [ConditionalMeanBinning(var='wddzc', case=casename, loc=xi) for xi in x_indices] avg_objs_wddzc = [ConditionalMeanBinning(var='wddzc', case=casename, loc=xi) for xi in x_indices]
avg_objs_ddxcddxc = [ConditionalMeanBinning(var='ddxcddxc', case=casename, loc=xi) for xi in x_indices]
targets=[ 'ddxc', 'ddyc', 'ddzc', 'd2dxc', 'd2dyc', 'd2dzc', 'uddxc', 'vddyc', 'wddzc', ] targets=[ 'ddxc', 'ddyc', 'ddzc', 'd2dxc', 'd2dyc', 'd2dzc', 'uddxc', 'vddyc', 'wddzc', ]
mean_array = np.zeros((10, nx)) mean_array = np.zeros((10, nx))
@ -162,27 +175,38 @@ for i, fname in enumerate(case.data_files[:n_timestep]):
u = u+u0 u = u+u0
y = scalar[-1] y = scalar[-1]
c = (1. - y) c = (1. - y)
dm = sutherland(c)
d2dxc = cs.d2dx(c) d2dxc = cs.d2dx(c)
d2dyc = cs.d2dy(c) d2dyc = cs.d2dy(c)
d2dzc = cs.d2dz(c) d2dzc = cs.d2dz(c)
ddxdm = cs.ddx(dm)
ddydm = cs.ddy(dm)
ddzdm = cs.ddz(dm)
ddzc = cs.ddz(c) ddzc = cs.ddz(c)
ddyc = cs.ddy(c) ddyc = cs.ddy(c)
ddxc = cs.ddx(c) ddxc = cs.ddx(c)
ddxcddxc = ddxc * ddxc
uddxc = u*ddxc uddxc = u*ddxc
vddyc = v*ddyc vddyc = v*ddyc
wddzc = w*ddzc wddzc = w*ddzc
ddxdmddxc = ddxdm*ddxc
ddydmddyc = ddydm*ddyc
ddzdmddzc = ddzdm*ddzc
for idx, field in enumerate([u, v, w, c, ddxc, ddyc, ddzc, d2dxc, d2dyc, d2dzc]): for idx, field in enumerate([u, v, w, c, ddxc, ddyc, ddzc, d2dxc, d2dyc, d2dzc]):
mean_array[idx] += field.sum(axis=(0,1)) mean_array[idx] += field.sum(axis=(0,1))
for j, xi in enumerate(x_indices): for j, xi in enumerate(x_indices):
mask = avg_objs_ddxc[j].calculate_conditional_mask(c[:,:,xi]) mask = avg_objs_ddxc[j].calculate_conditional_mask(c[:,:,xi])
avg_objs_ddxdmddxc[j].feed_samples(c[:,:,xi], ddxdmddxc[:,:,xi], mask)
avg_objs_ddydmddyc[j].feed_samples(c[:,:,xi], ddydmddyc[:,:,xi], mask)
avg_objs_ddzdmddzc[j].feed_samples(c[:,:,xi], ddzdmddzc[:,:,xi], mask)
avg_objs_ddxc[j].feed_samples(c[:,:,xi], ddxc[:,:,xi], mask) avg_objs_ddxc[j].feed_samples(c[:,:,xi], ddxc[:,:,xi], mask)
avg_objs_ddyc[j].feed_samples(c[:,:,xi], ddyc[:,:,xi], mask) avg_objs_ddyc[j].feed_samples(c[:,:,xi], ddyc[:,:,xi], mask)
avg_objs_ddzc[j].feed_samples(c[:,:,xi], ddzc[:,:,xi], mask) avg_objs_ddzc[j].feed_samples(c[:,:,xi], ddzc[:,:,xi], mask)
@ -191,8 +215,6 @@ for i, fname in enumerate(case.data_files[:n_timestep]):
avg_objs_d2dyc[j].feed_samples(c[:,:,xi], d2dyc[:,:,xi], mask) avg_objs_d2dyc[j].feed_samples(c[:,:,xi], d2dyc[:,:,xi], mask)
avg_objs_d2dzc[j].feed_samples(c[:,:,xi], d2dzc[:,:,xi], mask) avg_objs_d2dzc[j].feed_samples(c[:,:,xi], d2dzc[:,:,xi], mask)
avg_objs_ddxcddxc[j].feed_samples(c[:,:,xi], ddxcddxc[:,:,xi], mask)
avg_objs_uddxc[j].feed_samples(c[:,:,xi], uddxc[:,:,xi], mask) avg_objs_uddxc[j].feed_samples(c[:,:,xi], uddxc[:,:,xi], mask)
avg_objs_vddyc[j].feed_samples(c[:,:,xi], vddyc[:,:,xi], mask) avg_objs_vddyc[j].feed_samples(c[:,:,xi], vddyc[:,:,xi], mask)
avg_objs_wddzc[j].feed_samples(c[:,:,xi], wddzc[:,:,xi], mask) avg_objs_wddzc[j].feed_samples(c[:,:,xi], wddzc[:,:,xi], mask)
@ -216,6 +238,10 @@ def save_cmean_result (fmt, obj_list):
for j, xi in enumerate(x_indices): for j, xi in enumerate(x_indices):
obj_list[j].save_to_file() obj_list[j].save_to_file()
save_cmean_result("cavg_ddxdmddxc_c_{}_{}", avg_objs_ddxdmddxc)
save_cmean_result("cavg_ddydmddyc_c_{}_{}", avg_objs_ddydmddyc)
save_cmean_result("cavg_ddzdmddzc_c_{}_{}", avg_objs_ddzdmddzc)
save_cmean_result("cavg_ddxc_c_{}_{}", avg_objs_ddxc) save_cmean_result("cavg_ddxc_c_{}_{}", avg_objs_ddxc)
save_cmean_result("cavg_ddyc_c_{}_{}", avg_objs_ddyc) save_cmean_result("cavg_ddyc_c_{}_{}", avg_objs_ddyc)
save_cmean_result("cavg_ddzc_c_{}_{}", avg_objs_ddzc) save_cmean_result("cavg_ddzc_c_{}_{}", avg_objs_ddzc)
@ -227,5 +253,3 @@ save_cmean_result("cavg_wddzc_c_{}_{}", avg_objs_wddzc)
save_cmean_result("cavg_d2dxc_c_{}_{}", avg_objs_d2dxc) save_cmean_result("cavg_d2dxc_c_{}_{}", avg_objs_d2dxc)
save_cmean_result("cavg_d2dyc_c_{}_{}", avg_objs_d2dyc) save_cmean_result("cavg_d2dyc_c_{}_{}", avg_objs_d2dyc)
save_cmean_result("cavg_d2dzc_c_{}_{}", avg_objs_d2dzc) save_cmean_result("cavg_d2dzc_c_{}_{}", avg_objs_d2dzc)
save_cmean_result("cavg_ddxcddxc_c_{}_{}", avg_objs_ddxcddxc)