CFD Online Discussion Forums

CFD Online Discussion Forums (
-   CFX (
-   -   Momentum Source in an accelerating frame (

fakir November 24, 2006 03:22

Momentum Source in an accelerating frame

i am trying to add a momentum term to account for an accelerating (sinusoidal translation) reference frame

I have added a sub domain as follows


SUBDOMAIN: Body Forces Translation

Coord Frame = local

Location = Assembly


Option = Use Volume Fraction



Momentum Source X Component = - x_accel * density

Momentum Source Y Component = - y_accel * density

Momentum Source Z Component = - z_accel * density

Option = Cartesian Components





but this doesn't seem to change the simulation at all, even when the amplitude of the accelerations is very large. Two questions

1) Is my CFX set-up correct? 2) Is my physics correct?

Any advice on the advice would be appreciated

Robin November 24, 2006 10:09

Re: Momentum Source in an accelerating frame
Hi Fakir,

If there is no density variation, the acceleration is purely linear (i.e. no rotation) and you have a closed control volume without pressure boundaries, these will have no effect because all the forces balance out. If your accelerations account for rotation, then you might see something.

If it is purely acceleration you are trying to add, I would do so by using adding gravitional acceleration in the domain object instead.

Regards, Robin

fakir November 24, 2006 19:04

Re: Momentum Source in an accelerating frame

I am adding both translation and rotation.

The rotation is calculated by a similar momentum source addition, as well as a rotation of the gravity vectors.

The density is non-constant, as it is a multi-phase flow

I may just have to try setting one of the momentum source terms to a constant, and see if that has an effect

Thanks for the advice

Robin November 27, 2006 11:43

Re: Momentum Source in an accelerating frame
Hi Fakir,

Are you adding momentum sources AND gravity? This would not be advisable and you may be cancelling your source terms out. You should be able to do the entire thing by adding the appropriate acceleration vectors in the gravity section. It is perhaps unfortunate that CFX calls this gravity, as it is just acceleration.


fakir November 29, 2006 03:17

Re: Momentum Source in an accelerating frame
Hi Robin,

That is an excellent suggestion, and one I had thought of, but possibly not applicable just here. Let me digress a bit.

There are basically two interacting mechanisms here

1) Accelerations set up due to the translational acceleration. This can easily be included in the gravity terms

2) Acceleration set up due to rotational acceleration, which I can't so easily incorporate.

(There is also gravity, but I guess you could include that in the above)

The basically formula for (2) is well known and is given by

a = d^2r/dt^2-2*(omega cross v)-omega cross (omega cross r)- (d(omega)dt cross r)

Basically I have evaluated this component wise in order to get a matrix [a_x,a_y_a_z]

For example a_x = pitch_accel * z - yaw_accel * y + pitch_rate * (roll_rate * y - pitch_rate * x) - yaw_rate+(-roll_rate*z+yaw_rate*x)+2*(pitch_rate*Water.w - yaw_rate*Water.v)

assuming the physics and maths is correct!

There are similar a_y and a_z

Then for the rotation for we add a momentum source in the x component "-density * (Xx * ax + Yx * ay + Zx * az)" where Xx, Yx, Zx are rotation components (eg Zx = sin(Pitch) * cos(Roll) )

If the expression Xx * ax + Yx * ay + Zx * az is attempted to be added to gravity this is flagged as an error, as ax contains x,y,z,u,w, which cannot be used in gravity expressions.

I hope there is an easier way to calculate these!!

fakir November 30, 2006 02:52

Re: Momentum Source in an accelerating frame
Here is the (possible) source of the problem

If I define the momentum source in the x direction as

-density * (a * omega^2 * sin(omega*t))

I get (possibly) correct results.

If I define an expression 'Surge Accel = a * omega^2 * sin(omega*t)' then set the momentum source to -density * (Surge Accel)

I get nothing. This doesn't seem to make sense! In the end the accel's will be read in from a file, so I may just try that.

Robin December 1, 2006 20:13

Re: Momentum Source in an accelerating frame
Both can be included in the gravity box. Just decompose your centrifugal acceleration into the x, y and z components and add them to your translational acceleration.

An alternative to all of this is to use the moving mesh and specify the actual motion of your domain in a subdomain over your entire mesh. The mesh will end up moving as a solid body and the fluid will react accordingly. Nice thing about this method is you will see the whole thing moving in Post. Just remember to specify the mesh motion at your boundaries with either the same equations as the subdomain, or as "unspecified".

Regards, Robin

fakir December 2, 2006 05:00

Re: Momentum Source in an accelerating frame
Hi Robin,

Thanks again for the help. I will give it another go, but CFX wouldn't let me add the rotational terms to gravity as they are functions of x,y,z (the 'r' vector'), and the liquid velocity (the 'v' vector).

As an aside I tried reading the whole thing in from a text file, and got the type of motion I expected (albeit larger amplitudes then I thought, but that may be a whole other story)

All times are GMT -4. The time now is 15:45.