Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

TAX

Differential vector calculus

This topic is 5304 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have been pulling my hair out, because I cant seem to figure out how to expand a part of the incompressible navier stokes equations: du/dt=-(u.nabla)u (the convection part) I am really rusty in vector multiplication, dot product, matrix product etc. + The notation is confusing me. What operations are used where?

Share this post


Link to post
Share on other sites
Advertisement
∇ means the gradiant of a vector. Given a vector Ai + Bj + Ck with functions A(x,y,z), B(x,y,z), and C(x,y,z), you differentiate A, B and C with respect to x, y, and z respectively, and you end up with the vector (dA/dx)i + (dB/dy)j + (dC/dz)k, which is the gradiant.

I've never seen the notation (u . ∇ )u before, but when I checked out the equation at MathWorld, it appears to simply mean u . ∇u, which is straightforward. The dot product simply evaluates to AxBx + AyBy + AzBz, where A and B are your two vectors. The output is a scalar.

[edited by - Zipster on April 14, 2004 3:14:54 PM]

Share this post


Link to post
Share on other sites
I have an exam on this next wednesday, so I really should know, fortunately it''s of little importance and Vector Calculus is only an eighth of the 3 hour exam, if it''s represented at all.

I think what it means is du/dt = -(dux/dx + duy/dy + duz/dz)u

where u = (ux, uy, uz)

an alternative notation would be du/dt = -(div u)u

Share this post


Link to post
Share on other sites
nabla = (d/dx, d/dy, d/dz)
u = (ux, uy, uz)

=>
-du/dt = (u*nabla)u = [u*(d/dx, d/dy, d/dz)]u = [ux*(d/dx) + uy*(d/dy) + uz*(d/dz)]u = ux*(du/dx) + uy*(du/dy) + uz*(du/dz).

The output of course is a vector since du/dx, du/dy and du/dz are vectors. Otherwise the equation wouldn´t make any sense since (du/dt) is a vector.

the more I think about that the more I get confused... I should go to bed now.

Share this post


Link to post
Share on other sites
quote:
Original post by Atheist
The output of course is a vector since du/dx, du/dy and du/dz are vectors. Otherwise the equation wouldn´t make any sense since (du/dt) is a vector.

I meant of the dot product.

And believe it or not I also have an exam on this stuff in a few weeks, but what difference does that make.

Share this post


Link to post
Share on other sites
Thanx everyone! I was able to make an example in one dimension last night.
I tried to model how one period of the function: u(x,t)=1-cos(x)

I try to project the function forward in time by:

u(x,t+timestep)=u(x,t)+timestep*du(x,t)/dt

I think its called the Euler method?

This would allow me to show a "wave" that roll towards right. It is very sensitive to the timestep though. Looks ok when timestep=0.1 but goes crazy when timestep=0.3 or larger.


Am I naive when I am trying to show the effect of the advection in this manner?

Share this post


Link to post
Share on other sites
du/dt=-(u.nabla)u you should really be able to figure out just by knowing the definitions of u=Xi+Yj+Zk (some generic vector-function components), nabla (or del as I know it) nabla=∂/∂x*i + ∂/∂y*j + ∂/∂z*k, and the dot product = x1*x2 + y1*y2 + z1*z2

So u.nabla = X*∂/∂x + Y*∂/∂y + Z*∂/∂z
So (u.nabla)u = X*∂u/∂x + Y*∂u/∂y + Z*∂u/∂z
So (u.nabla)u = X*∂(Xi+Yj+Zk)/∂x + Y*∂(Xi+Yj+Zk)/∂y + Z*∂(Xi+Yj+Zk)/∂z

The rest would require you to know how u (thus how X, Y, and Z) behaves.

Etc. I think. Anyway, my point is if you know how things are defined it should not be a real problem working through the actual algebra of it.

EDIT: Fucked up a couple of times, I'll get it right eventually.

[edited by - Doc on April 15, 2004 4:13:05 AM]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Euler integration is Taylor expansion of first degree. If, for a period of time, the derivate is more or less constant then it''s ok. During the time ''timeStep'' you move in the direction of the derivate

f(t0+timeStep)=f(t0)+f''(t0)*timeStep

This is as you said very sensitive to the size of the timeStep, for more stability you need another integration schema such as Runge-Kutta or so, basically you need more terms in your Taylor expansion. For more information on integration see http://www.darwin3d.com/gamedev/articles/col0499.pdf

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!