Я работаю над задачей потока в полости, управляемой крышкой, используя дискретизированные версии уравнений завихренности Навье-Стокса:
По какой-то причине моя потоковая функция работает (по крайней мере, я так думаю) ), но мои графики завихренности мне кажутся немного странными. Я изменил кое-что на основе предложений, и теперь у меня есть... интересный результат.
Полный код:
Я работаю над задачей потока в полости, управляемой крышкой, используя дискретизированные версии уравнений завихренности Навье-Стокса: [img]https://i.sstatic.net/TwPUTqJj.png[/img]
По какой-то причине моя потоковая функция работает (по крайней мере, я так думаю) ), но мои графики завихренности мне кажутся немного странными. Я изменил кое-что на основе предложений, и теперь у меня есть... интересный результат. Полный код: [code]import numpy as np import matplotlib.pyplot as plt
#Initialising Parameters: N = 50 L = 1.0 Re = 5 dt = 0.0001 Vwall = 1.0 h = L/(N-1)
#Initialising Arrays: u = np.zeros((N, N)) w = np.zeros((N,N)) Vx = np.zeros((N, N)) Vy = np.zeros((N, N)) P = np.zeros((N, N))
#Update stream function using 1a (Using SOR): def updateStreamfn(u, w, h, tolerance=1e-6, maxIter=1000, omega=1.3): #SOR for solving Poisson Equation (iterating using while & for loops): maxDiff = tolerance + 1 iter = 0
#New while loop replacing for loop: while maxDiff > tolerance and iter < maxIter: uOld = np.copy(u)
for i in range(1, u.shape[0] - 1): for j in range(1, u.shape[1] - 1):
if iter_count >= maxIter: print("Vorticity update reached max iterations without full convergence.") break
return wNew
#Task 4 plots: def plotStreamfnFin(u, Vx, Vy, title="Stream Function (u)", time_step=None): plt.figure(figsize=(8, 6)) plt.contourf(u, levels=50, cmap='viridis') plt.colorbar(label='Stream Function Value')
#Plotting time steps: if time_step is not None: plt.title(f"{title} at Time Step {time_step}") else: plt.title(title) plt.xlabel("Grid X") plt.ylabel("Grid Y")
#Streamlines to indicate flow direction: Y, X = np.mgrid[0:u.shape[0], 0:u.shape[1]] plt.streamplot(X, Y, Vx, Vy, color='white', linewidth=0.5) plt.show()
def plotStreamfnInt(u, title="Stream Function (u)", time_step=None): plt.figure(figsize=(8, 6)) plt.contourf(u, levels=50, cmap='viridis') plt.colorbar(label='Stream Function Value')
#Plotting time steps: if time_step is not None: plt.title(f"{title} at Time Step {time_step}") else: plt.title(title) plt.xlabel("Grid X") plt.ylabel("Grid Y")
#Title and labels: if time_step is not None: plt.title(f"{title} at Time Step {time_step}") else: plt.title(title) plt.xlabel("Grid X") plt.ylabel("Grid Y") plt.show()
#Plotting the results at the final timestep plotStreamfnFin(u, Vx, Vy, title="Final Stream Function (u)") plotVorticity(w, title="Final Vorticity (w)") [/code] Теперь мои окончательные графики (поток и завихренность) выглядят так: [img]https: //i.sstatic.net/QsCOcrGn.png[/img]
[img]https://i.sstatic.net/bmfL6M1U.png[/img]
Честно говоря, я не уверен, что происходит с графиком завихренности. Он все еще не выглядит... как ожидалось по завихренности? Я ошибаюсь?
Я работаю над задачей потока в полости, управляемой крышкой, используя дискретные версии уравнений Навье-Стокса для завихренности:
Уравнения Навье-Стокса в дискретной форме завихренности
По какой-то причине моя функция потока работает (по крайней...
Я работаю над задачей потока в полости, управляемой крышкой, используя дискретные версии уравнений Навье-Стокса для завихренности:
Уравнения Навье-Стокса в дискретной форме завихренности
По какой-то причине моя функция потока работает (по крайней...
Я работаю над задачей потока в полости, управляемой крышкой, используя дискретные версии уравнений Навье-Стокса для завихренности:
Уравнения Навье-Стокса в дискретной форме завихренности
По какой-то причине моя функция потока работает (по крайней...
Я работаю над задачей потока в полости, управляемой крышкой, используя дискретные версии уравнений Навье-Стокса для завихренности:
Уравнения Навье-Стокса в дискретной форме завихренности
По какой-то причине моя функция потока работает (по крайней...