more parameters and friction
This commit is contained in:
parent
54bda855e5
commit
a783afbc7e
1 changed files with 13 additions and 1 deletions
|
@ -21,6 +21,9 @@ def main():
|
||||||
tau = 0.6 # collision timescale
|
tau = 0.6 # collision timescale
|
||||||
Nt = 80000 # number of timesteps
|
Nt = 80000 # number of timesteps
|
||||||
plotRealTime = True # switch on for plotting as the simulation goes along
|
plotRealTime = True # switch on for plotting as the simulation goes along
|
||||||
|
render_frequency = 10
|
||||||
|
close_up_frequency = 10
|
||||||
|
friction = 0.0001
|
||||||
|
|
||||||
params = FluidSimParameter(Ny)
|
params = FluidSimParameter(Ny)
|
||||||
# params = WaterParameter(Ny)
|
# params = WaterParameter(Ny)
|
||||||
|
@ -180,6 +183,8 @@ def main():
|
||||||
# uy += g / 2.0
|
# uy += g / 2.0
|
||||||
|
|
||||||
# u_length = np.maximum(np.abs(ux), np.abs(uy))
|
# u_length = np.maximum(np.abs(ux), np.abs(uy))
|
||||||
|
|
||||||
|
# safe guard against supersonic streams WIP
|
||||||
u_length1 = np.sqrt(np.square(ux) + np.square(uy1))
|
u_length1 = np.sqrt(np.square(ux) + np.square(uy1))
|
||||||
u_length2 = np.sqrt(np.square(ux) + np.square(uy2))
|
u_length2 = np.sqrt(np.square(ux) + np.square(uy2))
|
||||||
|
|
||||||
|
@ -195,6 +200,11 @@ def main():
|
||||||
uy1 = (uy1 / u_max_length) * np.sqrt(2)
|
uy1 = (uy1 / u_max_length) * np.sqrt(2)
|
||||||
uy2 = (uy2 / u_max_length) * np.sqrt(2)
|
uy2 = (uy2 / u_max_length) * np.sqrt(2)
|
||||||
|
|
||||||
|
# apply friction
|
||||||
|
ux *= (1 - friction)
|
||||||
|
uy1 *= (1 - friction)
|
||||||
|
uy2 *= (1 - friction)
|
||||||
|
|
||||||
print('max vector part: %f' % u_max_length)
|
print('max vector part: %f' % u_max_length)
|
||||||
# ux /= u_max_length
|
# ux /= u_max_length
|
||||||
# uy /= u_max_length
|
# uy /= u_max_length
|
||||||
|
@ -286,8 +296,10 @@ def main():
|
||||||
print('min Temp: %f' % np.min(np.sum(temperature, 2)[no_cylinder_mask]))
|
print('min Temp: %f' % np.min(np.sum(temperature, 2)[no_cylinder_mask]))
|
||||||
print('max Temp: %f' % np.max(np.sum(temperature, 2)))
|
print('max Temp: %f' % np.max(np.sum(temperature, 2)))
|
||||||
|
|
||||||
|
if it > render_frequency:
|
||||||
|
render_frequency = close_up_frequency
|
||||||
# plot in real time - color 1/2 particles blue, other half red
|
# plot in real time - color 1/2 particles blue, other half red
|
||||||
if (plotRealTime and (it % 10) == 0) or (it == Nt - 1):
|
if (plotRealTime and (it % render_frequency) == 0) or (it == Nt - 1):
|
||||||
fig.clear()
|
fig.clear()
|
||||||
plt.cla()
|
plt.cla()
|
||||||
ux[cylinder] = 0
|
ux[cylinder] = 0
|
||||||
|
|
Loading…
Reference in a new issue