CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   interFoam (http://www.cfd-online.com/Forums/openfoam/74427-interfoam.html)

andrea.pasquali March 31, 2010 11:23

interFoam
 
2 Attachment(s)
Hello,
I'd like to simulate a rotating gear system into oil. I choose the solver interFoam.
U: I compiled new BC to set a ramp of velocity of rotation (timeVaryingRotatingWallVelocity) for my rotating elements (http://www.cfd-online.com/Forums/ope...edvalue.html);
p: I used the totalPressure for the atmosphere patch and zeroGradient for all other walls and rotating element;
k-epsilon model for the turbulence.
First I tried with epsilon = 100 and my simulation died after 0.06 seconds.
Then I increased the value of epsilon = 1000 and my simulation died at 0.84 seconds.
I attached the plots of residuals and Courant number.
You can see that in the end of simulation k and epsilon start increasing very fast and bring the calculation to die in a very little time!

Now I'm thinking to run new analysis increasing the value of epsilon, but before I have some question:
1) Is it correct use k-epsilon for rotating element?
2) If yes, how can calculate the correct value of k and epsilon without find it by tentative? I try to use the formulas that are in OF user guide but I don't know how can use them with rotating elements or if are correct for rotating elements

Thanks anyone for any suggestion

Andrea

andrea.pasquali May 10, 2010 09:19

2 Attachment(s)
Hello I spent much time about my case,
I think I improved my analysis but I'm still far to obtain the correct solution.
The problem is I cannot extend the analysis longer than 1.04 sec.
I want explain my problem:
- My run looks good until 1.04 sec (it has "just" buonding k from 0.5 sec). I used ramp of velocity until 0.25 sec. You can see the residuals in the pictures I attached.
- Suddenly the calculation crash! I can see in the error message the rown "floating point exception".
- So, how I found in http://www.cfd-online.com/Forums/ope...implefoam.html , I commented the row //export FOAM_SIGFPE= in etc/bashrc file.
- Then I restart the analysis from 1.04 and this is what I obtain:
Quote:

Courant Number mean: 0.0222972 max: 0.895581
deltaT = 0.000163178
Time = 1.05054

MULES: Solving for alpha1
Liquid phase volume fraction = 0.194044 Min(alpha1) = -1.51761e-20 Max(alpha1) = 1
MULES: Solving for alpha1
Liquid phase volume fraction = 0.194043 Min(alpha1) = -1.54389e-20 Max(alpha1) = 1
MULES: Solving for alpha1
Liquid phase volume fraction = 0.194043 Min(alpha1) = -1.70812e-21 Max(alpha1) = 1
GAMG: Solving for p, Initial residual = 0.0650721, Final residual = 9.71882e-08, No Iterations 22
GAMG: Solving for p, Initial residual = 0.0147061, Final residual = 9.55896e-08, No Iterations 20
GAMGPCG: Solving for p, Initial residual = 0.00283393, Final residual = 2.7137e-08, No Iterations 7
time step continuity errors : sum local = 2.74705e-11, global = 4.61938e-13, cumulative = -1.65011e-11
smoothSolver: Solving for omega, Initial residual = 0.0012319, Final residual = 3.73989e-07, No Iterations 6
smoothSolver: Solving for k, Initial residual = 0.000760956, Final residual = 9.41354e-07, No Iterations 14
bounding k, min: 7.9354e-16 max: 100 average: 0.209985
ExecutionTime = 4141.07 s ClockTime = 4166 s

Courant Number mean: 0.0222973 max: 0.898009
deltaT = 0.000163178
Time = 1.0507

MULES: Solving for alpha1
Liquid phase volume fraction = 0.194043 Min(alpha1) = -1.85544e-20 Max(alpha1) = 1
MULES: Solving for alpha1
Liquid phase volume fraction = 0.194042 Min(alpha1) = -1.56878e-21 Max(alpha1) = 1
MULES: Solving for alpha1
Liquid phase volume fraction = 0.194042 Min(alpha1) = -6.60323e-21 Max(alpha1) = 1
GAMG: Solving for p, Initial residual = 0.0651744, Final residual = 5.8543e+44, No Iterations 1000
GAMG: Solving for p, Initial residual = 1, Final residual = 2.10904e+42, No Iterations 1000
GAMGPCG: Solving for p: solution singularity
time step continuity errors : sum local = 2.54116e+222, global = 2.54116e+222, cumulative = 2.54116e+222
smoothSolver: Solving for omega, Initial residual = nan, Final residual = nan, No Iterations 1000
smoothSolver: Solving for k, Initial residual = nan, Final residual = nan, No Iterations 1000
ExecutionTime = 5874.96 s ClockTime = 5900 s

Courant Number mean: 1.30829e+117 max: 1.25004e+229
deltaT = 2.34969e-234
Time = 1.0507

MULES: Solving for alpha1
Liquid phase volume fraction = 0.194042 Min(alpha1) = -6.60323e-21 Max(alpha1) = 1
MULES: Solving for alpha1
Liquid phase volume fraction = 0.194042 Min(alpha1) = -6.60323e-21 Max(alpha1) = 1
MULES: Solving for alpha1
Liquid phase volume fraction = 0.194042 Min(alpha1) = -6.60323e-21 Max(alpha1) = 1
GAMG: Solving for p, Initial residual = nan, Final residual = nan, No Iterations 1000
GAMG: Solving for p, Initial residual = nan, Final residual = nan, No Iterations 1000
GAMGPCG: Solving for p: solution singularity
time step continuity errors : sum local = nan, global = nan, cumulative = nan
smoothSolver: Solving for omega, Initial residual = nan, Final residual = nan, No Iterations 1000

...
I think this is very stange.
Just in 1 iteration the p equation in the 2^ loop is not solved and in 3^ loop has "solution singulatiy", the time step continuity error grows up and I have "not a number" in k and epsilon!!!

Can anyone explain this?
Why I have this error?

Thanks

Andrea

andrea.pasquali May 29, 2010 09:36

2 Attachment(s)
Hello,
I'm still trying with my model and with interFoam.

Now I try the BC "buoyantPressure" in p file for each patch, like in interFoam tutorial, instead of "zeroGradient".
If you see the alpha1 plot (attached) you can see that for "zeroGradient" alpha1 decrease, for "buoyantPressure" is costant (my model is a closed volume, no inlet no outlet and the liquid can't exit from the atmosphere patch).

I can't understand why...
The buoyantPressure BC is not for thermal analysis or where the density change?
Could anyone help me?

Thanks

Andrea

idrama May 30, 2010 08:50

The solving for alpha is okay. It is high likely that you face a convection-dominace. Have you tried or even applied flux limiter vor div(rho*phi,U) term? I not try as a guess limitedLinearV 1; Properly, this will avoid the blow up.

cheers

idrama May 30, 2010 08:52

Addtionally, it seems that you carry out to less PISO loops. At this point in iteration, increase them to five. If you should have an orthogonal mesh then set non-Orthogonal-correction to zero otherwise 1 and try again.

andrea.pasquali May 30, 2010 09:56

Hi Claus,
thank you very much for your reply!

For div(rho*phi,U) I have "Gauss limitedLinearV 1"

For PISO loop I have:
nCorrectors 3
nNonOrthogonalCorrectors 0 --> This check is OK with checkMesh
nAlphaCorr 1
nAlphaSubCycles 3
cAlpha 1

Another thing, I saw the solution at 0.5 seconds:
with p zeroGradient I have a field from -1850 to +1880 Pa
with p buoyantPressure the field goes from -1850 to +3800 Pa

I don't know what is the correct way...
Can you help me?

Thanks

Andrea

idrama May 30, 2010 12:20

At now, I don't know it either. Could you please post your p file and alpha1 file; i'd like to take a look!

andrea.pasquali May 30, 2010 12:45

Hi Claus,
here "p"

Quote:

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [1 -1 -2 0 0 0 0];

internalField uniform 0;

boundaryField
{
shell
{
type zeroGradient;
//type buoyantPressure;
//value uniform 0;
}

walls
{
type zeroGradient;
//type buoyantPressure;
//value uniform 0;
}

shaft
{
type zeroGradient;
//type buoyantPressure;
//value uniform 0;
}
bearingA
{
type zeroGradient;
//type buoyantPressure;
//value uniform 0;
}
bearingB
{
type zeroGradient;
//type buoyantPressure;
//value uniform 0;
}
differentialGear
{
type zeroGradient;
//type buoyantPressure;
//value uniform 0;
}
wheel1
{
type zeroGradient;
//type buoyantPressure;
//value uniform 0;
}
wheel2
{
type zeroGradient;
//type buoyantPressure;
//value uniform 0;
}
atmosphere
{
type totalPressure;
p0 uniform 0;
U U;
phi phi;
rho rho;
psi none;
gamma 1;
value uniform 0;
}
}

// ************************************************** *********************** //
and here "alpha1"

Quote:

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object alpha1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 0 0 0 0 0 0];

internalField uniform 0;

boundaryField
{
shell
{
type zeroGradient;
}

walls
{
type zeroGradient;
}

shaft
{
type zeroGradient;
}
bearingA
{
type zeroGradient;
}
bearingB
{
type zeroGradient;
}
differentialGear
{
type zeroGradient;
}
wheel1
{
type zeroGradient;
}

wheel2
{
type zeroGradient;
}
atmosphere
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
}

// ************************************************** *********************** //
For p BC I used first "zeroGradient" and then "buoyantPressure".

Thank you

Andrea


All times are GMT -4. The time now is 05:59.