Unable to fix the vector plot appropriately based on outflow boundary conditions

2 visualizaciones (últimos 30 días)
Hello all, Hope everyone is doing good.
Here is my code attached for reference. The code explicitly (FDM) solves velocities (u and v) and pressure based on the source term.
In my rectangular domain, the left and top sides are considered as two vents (outlets) in this problem. But the vector plot from the code shows the gas flow moving outwards only along the left boundary, not towards the top. The same case was analysed implicitly in OpenFOAM based on FVM. The diagram (attached) depicts the movement of gas flowing outwards in both the left and top boundaries.
I tried cross-checking the equations and discretizations, and everything looks good. Still, I couldn't understand the behaviour of the vector plot. Can someone help me understand what I might be missing in order to execute it properly?
Thank you
clear; clc; close all;
W =5; L=0.25;
Ny=200; %row
Nx=10; %column
x = linspace(0,L,Nx);
y = linspace(0,W,Ny);
[X, Y] =ndgrid(x,y);
dx = L/Nx; dy = W/Ny;
k1 = dx/dy;
k2 = dx^2/dy^2;
rhoo = 0.8; por = 0.3; mu =0.8E-5; dia = 0.003;
u = zeros(Ny, Nx);
v = zeros(Ny, Nx);
P = 101325 * ones(Ny, Nx);
F1 = zeros(Ny, Nx);
F2 = zeros(Ny, Nx);
F1_dx = zeros(Ny, Nx);
Pcheck = zeros(Ny, Nx);
GVecx = zeros(Ny,Nx);
GVecy = zeros(Ny,Nx);
FR = zeros(Ny,Nx);
logG = zeros(Ny,Nx);
% Boundary conditions
u(1,:) = u(2,:); %0 % left
v(1,:) = v(2,:); % left
P(1,:) = 101325;
u(:,1) = u(:,2); %0 % top - open to atmosphere
v(:,1) = v(:,2); % top - open to atmosphere
P(:,1) = 101325;
u(Ny,:) = u(Ny-1,:); % right - symmetry
v(Ny,:) = v(Ny-1,:); % right - symmetry
P(Ny,:) = P(Ny-1,:); % right - symmetry
u(:,Nx) = 0; % bottom
v(:,Nx) = 0; % bottom
P(:,Nx) = P(:,Nx-1);
S = [
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0.212295524355938 0.212295524355938 0.212295524355938 0.212295524355938 0 0 0 0 0 0
0.192880563670326 0.192880563670326 0.192880563670326 0 0 0 0 0 0 0
0.145833333333333 0.145833333333333 0.212295524355938 0 0 0 0 0 0 0
0 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333333 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
9.71445146547012e-16 0.192880563670326 0.212295524355938 0 0 0 0 0 0 0
0.145833333333331 0.145833333333331 0.212295524355938 0 0 0 0 0 0 0
0.192880563670326 0.192880563670326 0.192880563670326 0 0 0 0 0 0 0
0.212295524355935 0.212295524355935 0.212295524355935 0.212295524355935 0 0 0 0 0 0
1.44328993201270e-15 1.44328993201270e-15 1.44328993201270e-15 1.44328993201270e-15 1.44328993201270e-15 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
];
uold = u; vold = v; Pold = P;
PPrime = P.^2;
mag_vector = @(vec_x, vec_y)(sqrt(vec_x.^2 + vec_y.^2));
err_uvelocity = 1; err_vvelocity = 1; err_pressure = 1;
while err_uvelocity > 1e-10 || err_vvelocity > 1e-10 || err_pressure > 1e-10
%for test = 1:1
for i=2:Ny-1
for j=2:Nx-1
%%%%%%%%%%%%%%%%%%%%%
u(1,:) = u(2,:); %0 % left
v(1,:) = v(2,:); % left
u(:,1) = u(:,2); %0 % top - open to atmosphere
v(:,1) = v(:,2); % top - open to atmosphere
u(Ny,:) = u(Ny-1,:); % right - symmetry
v(Ny,:) = v(Ny-1,:); % right - symmetry
P(Ny,:) = P(Ny-1,:); % right - symmetry
P(:,Nx) = P(:,Nx-1); % bottom
%%%%%%%%%%%%%%%%%%%%%
% INITIAL VALUES
GVecx(i,j) = rhoo*u(i,j);
GVecy(i,j) = rhoo*v(i,j);
G_mag_ij = mag_vector(GVecx(i,j), GVecy(i,j));
F1(i,j) = (300*((1-por)^2)*P(i,j)*mu)/(rhoo*(dia^2)*(por^3));
F2(i,j) = (3.5*(1-por)*P(i,j))/(rhoo*dia*(por^3));
FR(i,j) = F1(i,j) + (F2(i,j)*(G_mag_ij));
logG(i,j) = log(FR(i,j));
%%%%%%%%%%%%%%%%%%%%%
dudx=(u(i+1,j)-u(i,j))/dx;
dvdy=(v(i,j+1)-v(i,j))/dy;
u(i,j) = u(i+1,j) - ( ((S(i,j)/rhoo)-dvdy)* dx);
%%%%%%%%%%%%%%%%%%%%%
c1x = (logG(i+1,j)-logG(i,j))/(dx);
c2y = (logG(i,j+1)-logG(i,j))/(dy);
numerator1 = (-k1*(S(i,j)/rhoo)) - (c2y* (u(i+1,j)) - ((S(i,j)*dx/rhoo))) - ((1/dy)* (u(i,j+1) -u(i+1,j))) + (v(i+1,j)/dx) + ((v(i,j+1)/dy)* (k1-(c2y*dx)));
denominator1 = (1/dx) + (k1/dy) + c1x - (c2y*k1);
v(i,j) = numerator1/denominator1;
%%%%%%%%%%%%%%%%%%%%%
% Solve pressure
FRx = (FR(i+1,j)-FR(i,j))/(dx);
FRy = (FR(i,j+1)-FR(i,j))/(dy);
RHS_source = - FR(i,j)*S(i,j) - ( (GVecx(i,j)*FRx) + (GVecy(i,j)*FRy) );
P(i,j) = sqrt( ( (RHS_source*dx^2) - (k2*( PPrime(i,j-1)+PPrime(i,j+1)) ) - PPrime(i-1,j) - PPrime(i+1,j) ) / (-2*(1+k2)) );
%%%%%%%%%%%%%%%%%%%%%
Pcheck(i,j) = P(i,j)/1E+5;
err_uvelocity = norm(uold(i,j) - u(i,j));
err_vvelocity = norm(vold(i,j) - v(i,j));
err_pressure = norm(Pold(i,j) - P(i,j));
end
end
uold=u;
vold=v;
Pold = P;
PPrime = P.^2;
end
% contourf(x, y, v);
% colorbar;
% contourf(x, y, u);
% colorbar;
div = divergence(x,y,u,v);
hold on
contourf(x,y,div)
quiver(x,y,u,v,'AutoScaleFactor',0.2,'MaxHeadSize',50)

Respuestas (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by