Differential vector calculus

Started by
6 comments, last by TAX 20 years ago
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?
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]
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
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.
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.
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?
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]
My stuff.Shameless promotion: FreePop: The GPL god-sim.
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

This topic is closed to new replies.

Advertisement