File:N S Laminar.svg
From Wikimedia Commons, the free media repository
Jump to navigation
Jump to search
Size of this PNG preview of this SVG file: 616 × 524 pixels. Other resolutions: 282 × 240 pixels | 564 × 480 pixels | 903 × 768 pixels | 1,204 × 1,024 pixels | 2,408 × 2,048 pixels.
Original file (SVG file, nominally 616 × 524 pixels, file size: 15.42 MB)
File information
Structured data
Captions
Summary
[edit]DescriptionN S Laminar.svg |
English: SVG illustration of the Navier-Stokes Laminar problem. There is a laminar flow within a plane duct. A object obstructs the flow at the center of the duct. One may use Navier-Stokes equation by numeric method to simulate the air velocity at each point in the duct. |
Date | |
Source | Own work |
Author | IkamusumeFan |
Other versions | |
SVG development InfoField | |
Source code InfoField | MATLAB code% The original author was User A1
% Retouch & Additional Comments by Ika
% Date: 11/06/2014
%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;
% the following iterations only seem plausible
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;
% the second velY should be velX, but this is still plausible
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)
xlabel('Length (m)')
ylabel('Width (m)')
zlabel('Air Velocity (m/s, length component)')
view([110,20]) % choose a viewpoint
colorbar
% Save to file
print -depsc N_S_Laminar.eps;
|
Licensing
[edit]I, the copyright holder of this work, hereby publish it under the following license:
This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license.
- You are free:
- to share – to copy, distribute and transmit the work
- to remix – to adapt the work
- Under the following conditions:
- attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 23:26, 6 November 2014 | 616 × 524 (15.42 MB) | IkamusumeFan (talk | contribs) | User created page with UploadWizard |
You cannot overwrite this file.
File usage on Commons
The following 2 pages use this file:
File usage on other wikis
The following other wikis use this file:
- Usage on tr.wikipedia.org
Metadata
This file contains additional information such as Exif metadata which may have been added by the digital camera, scanner, or software program used to create or digitize it. If the file has been modified from its original state, some details such as the timestamp may not fully reflect those of the original file. The timestamp is only as accurate as the clock in the camera, and it may be completely wrong.
Width | 616.25 |
---|---|
Height | 523.75 |