Файл:Airflow-Obstructed-Duct.png
Матеріал з testwiki
Перейти до навігації
Перейти до пошуку
Розмір при попередньому перегляді: 800 × 571 пікселів. Інші роздільності: 320 × 229 пікселів | 640 × 457 пікселів | 1024 × 731 пікселів | 1270 × 907 пікселів.
Повна роздільність (1270 × 907 пікселів, розмір файлу: 85 КБ, MIME-тип: image/png)
Цей файл з Вікісховища і може використовуватися в інших проєктах. Далі наведена інформація з його сторінки опису.
Опис файлу
| ОписAirflow-Obstructed-Duct.png |
A simulation using the navier-stokes differential equations of the aiflow into a duct at 0.003 m/s (laminar flow). The duct has a small obstruction in the centre that is parallel with the duct walls. The observed spike is mainly due to numerical limitations. This script, which i originally wrote for scilab, but ported to matlab (porting is really really easy, mainly convert comments % -> // and change the fprintf and input statements) Matlab was used to generate the image.
%Matlab script to solve a laminar flow
%in a duct problem
%Constants
inVel = 0.003; % Inlet Velocity (m/s)
fluidVisc = 1e-5; % Fluid's Viscoisity (Pa.s)
fluidDen = 1.3; %Fluid's Density (kg/m^3)
MAX_RESID = 1e-5; %uhh. residual units, yeah...
deltaTime = 1.5; %seconds?
%Kinematic Viscosity
fluidKinVisc = fluidVisc/fluidDen;
%Problem dimensions
ductLen=5; %m
ductWidth=1; %m
%grid resolution
gridPerLen = 50; % m^(-1)
gridDelta = 1/gridPerLen;
XVec = 0:gridDelta:ductLen-gridDelta;
YVec = 0:gridDelta:ductWidth-gridDelta;
%Solution grid counts
gridXSize = ductLen*gridPerLen;
gridYSize = ductWidth*gridPerLen;
%Lay grid out with Y increasing down rows
%x decreasing down cols
%so subscripting becomes (y,x) (sorry)
velX= zeros(gridYSize,gridXSize);
velY= zeros(gridYSize,gridXSize);
newVelX= zeros(gridYSize,gridXSize);
newVelY= zeros(gridYSize,gridXSize);
%Set initial condition
for i =2:gridXSize-1
for j =2:gridYSize-1
velY(j,i)=0;
velX(j,i)=inVel;
end
end
%Set boundary condition on inlet
for i=2:gridYSize-1
velX(i,1)=inVel;
end
disp(velY(2:gridYSize-1,1));
%Arbitrarily set residual to prevent
%early loop termination
resid=1+MAX_RESID;
simTime=0;
while(deltaTime)
count=0;
while(resid > MAX_RESID && count < 1e2)
count = count +1;
for i=2:gridXSize-1
for j=2:gridYSize-1
newVelX(j,i) = velX(j,i) + deltaTime*( fluidKinVisc / (gridDelta.^2) * ...
(velX(j,i+1) + velX(j+1,i) - 4*velX(j,i) + velX(j-1,i) + ...
velX(j,i-1)) - 1/(2*gridDelta) *( velX(j,i) *(velX(j,i+1) - ...
velX(j,i-1)) + velY(j,i)*( velX(j+1,i) - velX(j,i+1))));
newVelY(j,i) = velY(j,i) + deltaTime*( fluidKinVisc / (gridDelta.^2) * ...
(velY(j,i+1) + velY(j+1,i) - 4*velY(j,i) + velY(j-1,i) + ...
velY(j,i-1)) - 1/(2*gridDelta) *( velY(j,i) *(velY(j,i+1) - ...
velY(j,i-1)) + velY(j,i)*( velY(j+1,i) - velY(j,i+1))));
end
end
%Copy the data into the front
for i=2:gridXSize - 1
for j = 2:gridYSize-1
velX(j,i) = newVelX(j,i);
velY(j,i) = newVelY(j,i);
end
end
%Set free boundary condition on inlet (dv_x/dx) = dv_y/dx = 0
for i=1:gridYSize
velX(i,gridXSize)=velX(i,gridXSize-1);
velY(i,gridXSize)=velY(i,gridXSize-1);
end
%y velocity generating vent
for i=floor(2/6*gridXSize):floor(4/6*gridXSize)
velX(floor(gridYSize/2),i) = 0;
velY(floor(gridYSize/2),i-1) = 0;
end
%calculate residual for
%conservation of mass
resid=0;
for i=2:gridXSize-1
for j=2:gridYSize-1
%mass continuity equation using central difference
%approx to differential
resid = resid + (velX(j,i+ 1)+velY(j+1,i) - ...
(velX(j,i-1) + velX(j-1,i)))^2;
end
end
resid = resid/(4*(gridDelta.^2))*1/(gridXSize*gridYSize);
fprintf('Time %5.3f \t log10Resid : %5.3f\n',simTime,log10(resid));
simTime = simTime + deltaTime;
end
mesh(XVec,YVec,velX)
deltaTime = input('\nnew delta time:');
end
%Plot the results
mesh(XVec,YVec,velX)
|
| Час створення | 24 лютого 2007 (дата завантаження оригінального файлу) |
| Джерело | Перенесено з en.wikipedia на Вікісховище. |
| Автор | User A1 з англійська Вікіпедія |
Ліцензування
| Public domainPublic domainfalsefalse |
| Ця робота була передана у суспільне надбання її автором, User A1 з англійська Вікіпедія. Це застосовується по всьому світу. У деяких країнах це не може бути юридично можливо, в такому випадку: User A1 дає кожному право на використання цієї роботи для будь-яких цілей, без будь-яких умов, якщо такі умови не вимагаються за законом.Public domainPublic domainfalsefalse |
Журнал завантажень локального файлу
Оригінальна сторінка опису знаходилась тут. Усі нижчезазначені імена користувачів стосуються en.wikipedia.
- 2007-02-24 05:45 User A1 1270×907×8 (86796 bytes) A simulation using the navier-stokes differential equations of the aiflow into a duct at 0.003 m/s (laminar flow). The duct has a small obstruction in the centre that is paralell with the duct walls. The observed spike is mainly due to numerical limitatio
Підписи
Додайте однорядкове пояснення, що саме репрезентує цей файл
Об'єкти, показані на цьому файлі
зображує
24 лютого 2007
image/png
44c13ef5152db60934799deeb8c6556bfa2816e6
86 796 байт
907 піксель
1270 піксель
Історія файлу
Клацніть на дату/час, щоб переглянути, як тоді виглядав файл.
| Дата/час | Мініатюра | Розмір об'єкта | Користувач | Коментар | |
|---|---|---|---|---|---|
| поточний | 16:52, 1 травня 2007 | 1270 × 907 (85 КБ) | wikimediacommons>Smeira | {{Information |Description=A simulation using the navier-stokes differential equations of the aiflow into a duct at 0.003 m/s (laminar flow). The duct has a small obstruction in the centre that is paralell with the duct walls. The observed spike is mainly |
Використання файлу
Така сторінка використовує цей файл: