Pressure Field From Velocity Field
16 次查看(过去 30 天)
显示 更早的评论
I have a velocity field in MATLAB as two 641x861 arrays (Vx and Vy) and I need to convert it to a pressure field to determine the pressure difference / gradient between two points. I've tried a handful of approaches (pressure Poisson, Euler equation, etc.) but am struggling with the fact that I already have the velocity field over time and don't need to find u* / v*, u^n+1 / v^n+1.
Right now, I'm trying to use the attached equations but the pressure field values don't seem correct. Do I need to set up a separate mesh even though I already have the velocity at specific points? I assumed that I could use the size of my Vx and Vy arrays as my mesh. I'm also unsure how to appropriately integrate the partial derivatives over a path.
Here's my current code:
imin = 2; imax = m;
jmin = 2; jmax = n;
Px = zeros(imax,jmax);
Py = zeros(imax,jmax);
dx = 1;
dy = 1;
for j = jmin:jmax
for i = imin:imax
Px(i,j) = -rho*(Vx(i,j)*((Vx(i+1,j)-Vx(i-1,j))*0.5*dx)+Vy(i,j)*((Vx(i,j+1)-Vx(i,j-1))*0.5*dy));
Py(i,j) = -rho*(Vx(i,j)*((Vy(i+1,j)-Vy(i-1,j))*0.5*dx)+Vy(i,j)*((Vy(i,j+1)-Vy(i,j-1))*0.5*dy));
end
end
Should I be going about this a different way? Thank you in advance for any feedback!
回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!