CFD Online Discussion Forums

CFD Online Discussion Forums (
-   CFX (
-   -   Problems with object-viscosity while remeshing (

Wolf July 16, 2010 10:19

Problems with object-viscosity while remeshing
4 Attachment(s)

I want to analyse a checkvalve in CFX with moving mesh + automatic remeshing. On the basis of the checkvalve (CFX tutorial) and the automatic remesh tutorials ( I set up my simulation which principally works.

BUT the velocity of the ball jumps between the last iteration of the old mesh and the new remeshed mesh. My conclusion is that the adjustments for the mapping are not right (Maybe the part list, ... ). I have chosen the adjustments as shown in the appendix.

How can I determine the Ball (Object) velocity in a different way than using the variable
areaAve(Mesh Velocity v)@Ball ?

Can somebody explain me how I have do the adjustments.

Thank you very much for your help!

Yours sincerely


ghorrocks July 18, 2010 06:22

Why do you say the areaAve function is a problem?

It is using a trick in CFX to get the velocity at the previous timestep, as the CEL expression is evaluated before the mesh is moved so it gives you the velocity in the previous time step. I do not know of any other way to do it, except by using fortran.

Don't forget you can do this using the 6DOF solver in V12 or later.

Wolf July 22, 2010 08:59

Remesh Problems - Cyclic dependency
Thank you ghorrocks for your response!

You are right, those functions are working right.
I took a longer look at the OUT-files and did some changes in the timeStep, remeshCondition and other parameters.

By comparing the min/max values of the variables like pressure, I could figure out that the mapping process works. But after having loaded the new mesh, a much to high pressure leading to the extremely high rise of the velocity of the ball is calculated in the next iterations .

Now I think that the variable
dBallOld = aveArea(Total Centruid Displacement Y)@Ball is the Problem, since its values determine the displacement after the re-mesh.

I tried to calculate this displacement on my own. But I need a cyclic dependency with one expression. This means

dBallNew = dBallOld + dBallTemp

dBallOld = areaAve(Mesh Displacement Y)@Ball

dBallTemp = if(t==0[s], 0, if(remeshCondition == true, dBallTemp + dBallOld, dBallTemp))

BUT this is not acceptable due to cyclic dependency between expressions.

What should I do to handle this problem? I would mail you my source files if it helps you (approx. 8 MB)

Thank you for your help!


ghorrocks July 23, 2010 00:57

Like the CEL interpreter I have no idea what you are trying to say with your dBallTemp expression. For example if t<>0 and not remeshing then dBallTemp=dBallTemp - I have no idea what this is supposed to mean but it is definitely wrong.

All times are GMT -4. The time now is 16:56.