Eulerian Position and Velocity Updates - Compressible Fluid Dynamics
显示 更早的评论
Hello Everyone,
It is my first time writing in this forum, so please be patient with me :)
I am writing a code following Smoothed Particle Computation (SPC) method for solving a Compressible Fluid Dynamics Problem.
In my code I got to a point where I need to do the following:
Basically, say at time = 0, I have a certain velocity u, a position x and acceleration a.
Now, I want to update u and x for an amount of time steps, using the following fomulae:
u (t+1) = u(t) + acceleration*dt
x(t+1) = x(t) + u(t+1)*dt
t = original time/time index
t+1 = new time
dt = 1 (for example), acceleration = same for every time step. In my case I would like to have 10 time steps.
How do I do it?
Thanks, Fed
Here is my code so far, just for fashion :
clc, clear
N=61; sigma = 5; m = 1; a=1;
j = 1:61;
x_j = j - 1 + 0.5*sign((N+1)/2 - j).*(1-exp(-0.2.*( j-(N+1)./2).^2) )
for x_i = [1:61]
ro = m/(sqrt(pi)*sigma).*exp((-(x_i-x_j).^2)./sigma^2)
del_ro = (2*m)/(sqrt(pi)*sigma^3).*(x_i-x_j).^2.*exp((-(x_i-x_j).^2)./sigma^2)
u_j = (-(a^2.*log(ro)))./2
acc = (- a^2./ro).*del_ro
end
for k = 1:10
u_j_new(k+1) = u_j(k) +acc(k)
x_j_new(k+1) = [x_j(k).*u_j_new(k)]
ro_new(k+1) = m/(sqrt(pi)*sigma).*exp((-(x_i-x_j_new).^2)./sigma^2)
end
采纳的回答
更多回答(3 个)
dwight nwaigwe
2011-4-20
0 个投票
whoops, the second line should be
x_j = x_j+u_j_new
dwight nwaigwe
2011-4-26
0 个投票
Hi Federico, Well, the loop over k is responsible for the evolution of your points in time. Is your first loop for initialization? Where does del_ro come into play?
I'm not into CFD but I am familiar with fluid mechanics and numerical methods (although I may be rusty).
Are you new to programming? If so, don't be afraid because it's not that hard. You just have to learn the "rules" of programming.
类别
在 帮助中心 和 File Exchange 中查找有关 Fluid Dynamics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!