December 1, 2016, 11:54
|
Calculation diverges, Liquid behavior around a rotating object
|
#1
|
New Member
Toru Kizaki
Join Date: Nov 2016
Posts: 1
Rep Power: 0
|
Hi,
I am trying to simulate liquid behavior around a rotating object using the solver "interFoam".
The problem is that a calculation always diverges. I suspect the reason is a very small gap in the model (though the small gap is necessary for my task.).
The small gap induces a large difference of a mesh size in the model. I ended up with no solutions for this problem though I have repeated the calculation with many different conditions including different mesh sizes.
I would really appreciate if you give me some advice or hints.
- Model description
Model type: 2D
<Calculation area>
Shape: rectangular
Size: 1000 mm * 1600 mm
<Rotating object>
Shape and size of the rotating object: circle (cylinder in 3D), 400 mm in diameter
Circumferential speed: 30 m/s
Position: the rotating object is placed at the position where the distance between its circumference and the bottom edge of the calculation area becomes 0.1 mm.- the model picture
1.jpg
- the detail pictures showing the position where the gap is 0.1 mm
2.jpg
3.jpg
<Liquid>
Type: water
Initial condition: Initially no liquid exist in the area. It is supplied through a nozzle placed near the rotating object. The initial speed is 20 m/s.
<Solver, Turbulence model>
interFoam, k-epsilon
- Problematic results
- Last snaps before the calculation has diverged (3 msec after an initial state).
4.jpg
5.jpg
- Some codes
- controlDict
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1606+ |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application interFoam;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 1;
deltaT 0.000001;
writeControl adjustableRunTime;
writeInterval 0.001;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep on;
maxCo 1;
maxAlphaCo 1;
maxDeltaT 1;
// ************************************************************************* //
- fvSchemes
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1606+ |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
div(rhoPhi,U) Gauss linearUpwind grad(U);
div(phi,alpha) Gauss vanLeer;
div(phirb,alpha) Gauss linear;
div(phi,k) Gauss upwind;
div(phi,epsilon) Gauss upwind;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
// ************************************************************************* //
- fvSolution
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1606+ |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"alpha.water.*"
{
nAlphaCorr 2;
nAlphaSubCycles 1;
cAlpha 1;
MULESCorr yes;
nLimiterIter 2;
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-8;
relTol 0;
}
pcorr
{
solver PCG;
preconditioner DIC;
tolerance 1e-5;
relTol 0;
}
p_rgh
{
solver PCG;
preconditioner DIC;
tolerance 1e-07;
relTol 0.05;
}
p_rghFinal
{
$p_rgh;
relTol 0;
}
"(U|k|epsilon).*"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-06;
relTol 0;
minIter 1;
}
}
PIMPLE
{
momentumPredictor yes;
nOuterCorrectors 200;
nCorrectors 1;
nNonOrthogonalCorrectors 0;
turbOnFinalIterOnly false;
residualControl
{
U
{
tolerance 1e-5;
relTol 0;
}
p_rgh
{
tolerance 5e-4;
relTol 0;
}
alpha.water
{
tolerance 1e-2;
relTol 0;
}
}
}
relaxationFactors
{
fields
{
p_rgh 0.3;
p_rghFinal 1;
}
equations
{
"U|k|epsilon" 0.3;
"(U|k|epsilon)Final" 1;
}
}
// ************************************************************************* //
Last edited by toru; December 1, 2016 at 14:10.
|
|
|