CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   TurbDyMFoam Tuning (https://www.cfd-online.com/Forums/openfoam-solving/74101-turbdymfoam-tuning.html)

mparodi March 24, 2010 09:52

TurbDyMFoam Tuning
 
Hello Everyone,

I wish to simulate a blower using a turbulent solver; I have chosen the turbDyMFoam solver provided with release 1.5-dev. I am testing it with the "Ercofact" centrifugal pump described in:

http://openfoamwiki.net/index.php/Si...vaned_diffuser

I have modified the MRFSimpleFoam example, that works great :D, and I have chosen the kepsilon model, but I have little experience and maybe I did not setup correctly the problem.

I keep the time step rather low (I also used automatic time stepping), and apparently the job starts correcly, but after a while the solution suddenly diverges and returns a Floating Point Exception Error :confused:.

Can anybody euggest me some hints?

Is any tutorial / example on this specific issue available?

Many thanks for your time!

My controlDict file is:

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

application turbDyMFoam;

startFrom startTime;

startTime 0;

stopAt endTime;

endTime 1;

deltaT .000005;

writeControl timeStep;

writeInterval 20;

purgeWrite 0;

writeFormat ascii;

writePrecision 8;

writeCompression compressed;

timeFormat general;

timePrecision 6;

runTimeModifiable no;

adjustTimeStep no;

maxCo 0.5;

maxDeltaT .01;


functions
(
trackDictionaryContent
{
type trackDictionary;
// Where to load it from (if not already in solver)
functionObjectLibs ("libsimpleFunctionObjects.so");
// Names of dictionaries to track.
dictionaryNameList
(
"system/controlDict"
"system/fvSchemes"
"system/fvSolution"
"constant/transportProperties"
"constant/RASProperties"
);
// Section separators (optional)
// If the string "_sectionIdToken_" explicitely appears in the
// specification of the following section separators, this token
// string will be replaced by the name of the dictionary beeing
// dumped to the console, plus the file modification date and time.
sectionStartSeparator "############ Start of: _sectionIdToken_############";
sectionEndSeparator "############ End of: _sectionIdToken_############";
}

ggiCheck
{
// Type of functionObject
type ggiCheck;
phi phi;
// Where to load it from (if not already in solver)
functionObjectLibs ("libsampling.so");
}
);

libs ("libOpenFoamTurbo.so");
// ************************************************** *********************** //

My fvSolution file:

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.3 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/

FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
p PCG
{
preconditioner DIC;
tolerance 1e-05;
relTol 0.0002;
minIter 2; maxIter 500;
};
pFinal PCG
{
preconditioner DIC;
tolerance 1e-05;
relTol 0.0001;
minIter 2; maxIter 500;
};
U BiCGStab
{
preconditioner { type DILU; }
minIter 1; maxIter 5;
tolerance 1e-07;
relTol 0;
};
k BiCGStab
{
preconditioner { type DILU; }
minIter 1; maxIter 5;
tolerance 1e-07;
relTol 0;
};
epsilon BiCGStab
{
preconditioner { type DILU; }
minIter 1; maxIter 5;
tolerance 1e-07;
relTol 0;
};
}

PISO
{
nCorrectors 2;
nOuterCorrectors 5;
nNonOrthogonalCorrectors 0;
correctPhi false;
}
relaxationFactors
{
p 0.3;
U 0.75;
k 0.5;
epsilon 0.5;
}
// ************************************************** *********************** //

mparodi March 25, 2010 02:06

Running after restart
 
Hi,

After a few restarts from the latest sensible solution the job looks to be running fine now :).

I think that the solver is rather sensitive to the initial conditions and I believe that its is worthwhile wotking in this direction.

I guess that starting with a ramp instead of an abrupt rotational speed mught help also.

Cheers,

Mauro.

NickG August 4, 2010 08:07

I use turbDyMfoam a lot and my solvers are BiCGStab for p/pcorr/pFinal and PBiCG for the rest. I tried a few including GAMG but these seemed the fastest. 85% of each time step is spent calculating the pEqn for my cases.

I see that you've set the relTol to 0 in some cases. I've left mine at 0.01 for all except pFinal (set to 0) as I figured that I don't need to converge to the final tolerance until the final loop (pFinal). I don't know if that's right but it made sense to me.

Regarding tolerance: with my case (vertical axis turbine) it's the pressure that is the most important and so I have that set at 1e-8 at the moment although I relax it to 5e-8 or 1e-7 on slower machines.

With my case relaxation made no difference to the time taken so I commented it all out.

Currently I'm checking the effect of the outer loop (nOuterCorrectors) but I'm surprised that you have no nNonOrthogonalCorrectors.

I've also found that initial conditions are important.

If you search transientSimpleDyMFoam this is also being used for similar cases.


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