# Keyframing Fluid Painted Flud Velocity

#1

Hi Guys,

I am trying to set up a fluid simulation for air flow through a jet engine. I have painted the fluid velocity vectors for the intital state to guide the air into the engine. This is fine at first, but naturally when you run the simulation the velocity rapidy dissapates within a few frames. However a jet engine would continually suck in this air. In short I need the initialy painted velocity to apply for future frames too, since the engine is continually sucking in through the animation.

Is there any way to keyframe the painted velocity, so it continues to apply over future frames?

I have some MEL ability, but the velocity direction across the fluid box is too complex to loop through and set using code, since the movement has to be very precise.

Is there a way to grab the velocity vectors and their respective voxels, and store the value to be re applied in future frames?

Am I approaching this wrong? Is there another way?

I am using a 3D container and generating the fluid at the min x boundary of the container each frame using MEL (as in many of the fluid examples) and then blowing it into the container.

I understand the fluid container has to balance, so I have got a pretty high resolution and ensured there is a lot of extra space left in the container, so the flow is not disrupted too much.

In short, any way of maintaining or animating those velocity vectors over time would be great. I hope there is an easy way to do this, I simply am not very experienced with fluid, and am really struggling.

Thanks guys,

Yannis

#2

make your fluid with particles - this is the best way and it`s flexibble - u can make a many wariations - finaly effect be great - give to particles Gravity, and turbulance fields, i cannot explain here now how works particles, u need to know this, go to the Gnomon workshop, there is many tutorials about Dynamics

#3

this expression will take particle velocity and transfer it into a fluid. Maybe try using this with a particle curve flow to help guide your fluid. Apply it to your particle runtime expression and replace “fluid1” with your fluids name. Theres more information in this thread

Hope that helps!

vector \$voxel;

//get paricle position
vector \$pos = particleShape1.worldPosition;

\$px = \$pos.x;
\$py = \$pos.y;
\$pz = \$pos.z;

//get which voxel
vector \$voxel = `fluidVoxelInfo -voxel \$px \$py \$pz fluid1`;

\$vX = \$voxel.x;
\$vY = \$voxel.y;
\$vZ = \$voxel.z;

//get particle velocity
vector \$vel = particleShape1.velocity;

\$velX = \$vel.x;
\$velY = \$vel.y;
\$velZ = \$vel.z;