Unable to fix the vector plot appropriately based on outflow boundary conditions
    3 views (last 30 days)
  
       Show older comments
    
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)
Answers (0)
See Also
Categories
				Find more on Crystals in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!