പ്രമാണം:Navier Stokes Laminar.svg

Page contents not supported in other languages.
വിക്കിപീഡിയ, ഒരു സ്വതന്ത്ര വിജ്ഞാനകോശം.

പൂർണ്ണ വലിപ്പം(എസ്.വി.ജി. പ്രമാണം, നാമമാത്രമായ 900 × 720 പിക്സലുകൾ, പ്രമാണത്തിന്റെ വലിപ്പം: 9.37 എം.ബി.)

ചുരുക്കം

വിവരണം
English: SVG illustration of the classic Navier-Stokes obstructed duct problem, which is stated as follows. There is air flowing in the 2-dimensional rectangular duct. In the middle of the duct, there is a point obstructing the flow. We may leverage Navier-Stokes equation to simulate the air velocity at each point within the duct. This plot gives the air velocity component of the direction along the duct. One may refer to [1], in which Eq. (3) is a little simplified version compared with ours.
തീയതി
സ്രോതസ്സ്

സ്വന്തം സൃഷ്ടി

Brief description of the numerical method

The following code leverages some numerical methods to simulate the solution of the 2-dimensional Navier-Stokes equation.

We choose the simplified incompressible flow Navier-Stokes Equation as follows:

The iterations here are based on the velocity change rate, which is given by

Or in X coordinates:

The above equation gives the code. The case of Y is similar.
സ്രഷ്ടാവ് IkamusumeFan
മറ്റു പതിപ്പുകൾ
SVG വികസനം
InfoField
 
എസ്.വി.ജി.യുടെ സ്രോതസ് കോഡ് സാധുവാണ്.
 
വെക്റ്റർ ചിത്രം സൃഷ്ടിച്ചത് Matplotlib ഉപയോഗിച്ചാണ്.
സോഴ്സ് കോഡ്(കമ്പ്യൂട്ടിംഗ്)
InfoField

Python code

from __future__ import division
from numpy import arange, meshgrid, sqrt, zeros, sum
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.ticker import ScalarFormatter
from matplotlib import rcParams
 
rcParams['font.family'] = 'serif'
rcParams['font.size'] = 16 

# the layout of the duct laminar
x_max = 5 # duct length
y_max = 1 # duct width

# draw the frames, including the angles and labels
ax = Axes3D(plt.figure(figsize=(10, 8)), azim=20, elev=20)
ax.set_xlabel(r"$x$", fontsize=20)
ax.set_ylabel(r"$y$", fontsize=20)
ax.zaxis.set_rotate_label(False)
ax.set_zlabel(r"$v_x$", fontsize=20, rotation='horizontal')
formatter = ScalarFormatter(useMathText=True)
formatter = ScalarFormatter()
formatter.set_scientific(True)
formatter.set_powerlimits((-2,2))
ax.w_zaxis.set_major_formatter(formatter)
ax.set_xlim([0, x_max])
ax.set_ylim([0, y_max])

# initial speed of the air
ini_v = 3e-3
mu = 1e-5
rho = 1.3

# the acceptable difference when termination
accept_diff = 1e-5
# time interval
time_delta = 1.0
# coordinate interval
delta = 1e-2;
X = arange(0, x_max + delta, delta)
Y = arange(0, y_max + delta, delta)
# number of coordinate points
x_size = len(X) - 1
y_size = len(Y) - 1
Vx = zeros((len(X), len(Y)))
Vy = zeros((len(X), len(Y)))
new_Vx = zeros((len(X), len(Y)))
new_Vy = zeros((len(X), len(Y)))

# initial conditions
Vx[1: x_size - 1, 2:y_size - 1] = ini_v


# start evolution and computation
res = 1 + accept_diff
rounds = 0
alpha = mu/(rho * delta**2)
while (res>accept_diff and rounds<100):
    """
    The iterations here are based on the velocity change rate, which
    is given by
    
    \frac{\partial v}{\partial t} = \alpha\nabla^2 v - v \cdot \nabla v
    
    with \alpha = \mu/\rho.
    """
    new_Vx[2:-2, 2:-2] = Vx[2:-2, 2:-2] +  time_delta*(alpha*(Vx[3:-1, 2:-2] +
        Vx[2:-2, 3:-1] - 4*Vx[2:-2, 2:-2] + Vx[2:-2, 1:-3] + Vx[1:-3, 2:-2]) -
        0.5/delta * (Vx[2:-2, 2:-2] * (Vx[3:-1, 2:-2] - Vx[1:-3, 2:-2]) +
        Vy[2:-2, 2:-2]*(Vx[2:-2, 3:-1] - Vx[2:-2, 1:-3])))

    new_Vy[2:-2, 2:-2] = Vy[2:-2, 2:-2] + time_delta*(alpha*(Vy[3:-1, 2:-2] +
        Vy[2:-2, 3:-1] - 4*Vy[2:-2, 2:-2] + Vy[2:-2, 1:-3] + Vy[1:-3, 2:-2]) -
        0.5/delta * (Vy[2:-2, 2:-2] * (Vy[2:-2, 3:-1] - Vy[2:-2, 3:-1]) +
        Vx[2:-2, 2:-2]*(Vy[3:-1, 2:-2] - Vy[1:-3, 2:-2])))
        
    rounds = rounds + 1
    
    # copy the new values
    Vx[2:-2, 2:-2] = new_Vx[2:-2, 2:-2]
    Vy[2:-2, 2:-2] = new_Vy[2:-2, 2:-2]


    # set free boundary conditions: dv_x/dx = dv_y/dx = 0.
    Vx[-1, 1:-1] = Vx[-3, 1:-1]
    Vx[-2, 1:-1] = Vx[-3, 1:-1]
    Vy[-1, 1:-1] = Vy[-3, 1:-1]
    Vy[-2, 1:-1] = Vy[-3, 1:-1]

    # there exists a still object in the plane
    Vx[x_size//3:x_size//1.5, y_size//2.0] = 0
    Vy[x_size//3:x_size//1.5, y_size//2.0] = 0

    # calculate the residual of Vx
    res = (Vx[3:-1, 2:-2] + Vx[2:-2, 3:-1] -
           Vx[1:-3, 2:-2] - Vx[2:-2, 1:-3])**2
    res = sum(res)/(4 * delta**2 * x_size * y_size)

# prepare the plot data
Z = sqrt(Vx**2)

# refine the region boundary
Z[0, 1:-2] = Z[1, 1:-2]
Z[-2, 1:-2] = Z[-3, 1:-2]
Z[-1, 1:-2] = Z[-3, 1:-2]

Y, X = meshgrid(Y, X);
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap="summer", lw=0.1,
                edgecolors="k")
plt.savefig("Navier_Stokes_Laminar.svg")

അനുമതി

ഈ സൃഷ്ടിയുടെ പകർപ്പവകാശ ഉടമയായ ഞാൻ, താഴെ പറയുന്ന അനുമതിയിൽ ഈ സൃഷ്ടി ഇതിനാൽ പ്രസിദ്ധീകരിക്കുന്നു:
w:ml:ക്രിയേറ്റീവ് കോമൺസ്
കടപ്പാട് ഇതു പോലെ പങ്ക് വെയ്ക്കുക
ഈ പ്രമാണത്തിന് അനുമതി നൽകപ്പെട്ടിരിക്കുന്നത് ക്രിയേറ്റീവ് കോമൺസ് ആട്രിബ്യൂഷൻ -ഷെയർ എലൈക് 4.0 അന്താരാഷ്ട്ര അനുവാദപത്ര പ്രകാരമാണ്.
താങ്കൾക്കുള്ള സ്വാതന്ത്ര്യങ്ങൾ:
  • പങ്ക് വെയ്ക്കൽ – കൃതി പകർത്താനും, വിതരണം ചെയ്യാനും, പ്രസരിപ്പിക്കാനും
  • പുനഃമിശ്രണം ചെയ്യൽ – കൃതി അനുയുക്തമാക്കാൻ
താഴെ പറയുന്ന ഉപാധികൾ പാലിക്കുക:
  • കടപ്പാട് – രചയിതാവോ അനുമതിയുള്ളയാളോ വ്യക്തമാക്കിയിട്ടുള്ള വിധത്തിൽ കൃതിയ്ക്കുള്ള കടപ്പാട് താങ്കൾ നൽകിയിരിക്കണം. താങ്കൾക്കിത് ഏത് വിധത്തിൽ വേണമെങ്കിലും ചെയ്യാവുന്നതാണ്, പക്ഷേ അത് അവർ താങ്കളേയോ താങ്കളുടെ ഉപയോഗത്തേയോ അടിച്ചേൽപ്പിച്ചതു പോലെയാവരുത്.
  • ഇതു പോലെ പങ്ക് വെയ്ക്കുക – ഈ സൃഷ്ടിയെ പുനഃമിശ്രണം ചെയ്തോ രൂപാന്തരപ്പെടുത്തിയോ അടിസ്ഥാനപ്പെടുത്തിയോ ഉണ്ടാക്കുന്നവ; താങ്കളുടെ സംഭാവനയടക്കമുള്ള സൃഷ്ടി യഥാർത്ഥ സൃഷ്ടിയുടെ അതേ അല്ലെങ്കിൽ അനുരൂപമായ ഉപയോഗാനുമതിയിൽ മാത്രമേ താങ്കൾ വിതരണം ചെയ്യാവൂ.
  1. Fan, Chien, and Bei-Tse Chao. "Unsteady, laminar, incompressible flow through rectangular ducts." Zeitschrift für angewandte Mathematik und Physik ZAMP 16, no. 3 (1965): 351-360.

തലവാചകങ്ങൾ

ഈ പ്രമാണം എന്തിനെ പ്രതിനിധീകരിക്കുന്നുവെന്ന ഒറ്റവരി വിശദീകരണം ചേർക്കുക
project

ഈ പ്രമാണത്തിൽ ചിത്രീകരിച്ചിരിക്കുന്ന ഇനങ്ങൾ

സൃഷ്ടിയിലുള്ളത്

പ്രമാണ നാൾവഴി

ഏതെങ്കിലും തീയതി/സമയ കണ്ണിയിൽ ഞെക്കിയാൽ പ്രസ്തുതസമയത്ത് ഈ പ്രമാണം എങ്ങനെയായിരുന്നു എന്നു കാണാം.

തീയതി/സമയംലഘുചിത്രംഅളവുകൾഉപയോക്താവ്അഭിപ്രായം
നിലവിലുള്ളത്01:06, 15 മാർച്ച് 201601:06, 15 മാർച്ച് 2016-ലെ പതിപ്പിന്റെ ലഘുചിത്രം900 × 720 (9.37 എം.ബി.)NicoguaroSmaller version
00:58, 15 മാർച്ച് 201600:58, 15 മാർച്ച് 2016-ലെ പതിപ്പിന്റെ ലഘുചിത്രം900 × 720 (11.08 എം.ബി.)NicoguaroChange the jet colormap, since it is recognized as a bad option, in general. Formatting, and pythonic code (and vectorized operations).
23:34, 6 നവംബർ 201423:34, 6 നവംബർ 2014-ലെ പതിപ്പിന്റെ ലഘുചിത്രം720 × 540 (14.23 എം.ബി.)IkamusumeFanUser created page with UploadWizard

താഴെ കാണുന്ന താളിൽ ഈ ചിത്രം ഉപയോഗിക്കുന്നു:

പ്രമാണത്തിന്റെ ആഗോള ഉപയോഗം

താഴെ കൊടുത്തിരിക്കുന്ന മറ്റ് വിക്കികൾ ഈ പ്രമാണം ഉപയോഗിക്കുന്നു:

ഈ പ്രമാണത്തിന്റെ കൂടുതൽ ആഗോള ഉപയോഗം കാണുക.

മെറ്റാഡാറ്റ

"https://ml.wikipedia.org/wiki/പ്രമാണം:Navier_Stokes_Laminar.svg" എന്ന താളിൽനിന്ന് ശേഖരിച്ചത്