This offering is not approved or endorsed by Silicon Graphics International Corp.,
the producer of the OpenFOAM® software and owner of the OpenFOAM® trade mark.
top
logo


Welcome, Guest
Please Login or Register.  Lost Password?

Bad divergence with MRFSimpleFoam in Turbo 3D
(1 viewing) (1) Guest
Special Interest Group on Turbomachinery Group Forum: The OpenFOAM® Turbomachinery Working Group was initiated at the Second OpenFOAM® Workshop in Zagreb, June 2007.

Responsibles: Maryse Page, Martin Beaudoin (Hydro-Québec) and Hakan Nilsson (Chalmers).

The group has lots of contributions in the OpenFOAM® Wiki:
openfoamwiki.net/index.php/Sig_Turbomachinery
Go to bottomPage: 1
TOPIC: Bad divergence with MRFSimpleFoam in Turbo 3D
#229
Bad divergence with MRFSimpleFoam in Turbo 3D 10 Months ago Karma: 0
Hello! After successfull 2D steady-state Ercoftac results I transfered settings (boundary conditions) to 3D Ercoftac. it runs firm with no error message, but there it diverges very bad.



I have attached the files which I suppose to be important for you. I would be glad, if someone will check it and give me some hints. (Sorry for c&p the files, but couldn't attach normal text files)

FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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

internalField uniform 0;

boundaryField
{
INTERFACE_R //innenliegender rotierender GGI-Teil
{
type ggi;
// value uniform 0;
}
EINTRITT // hier strömt die Luft in die Maschine
{
type zeroGradient;
// value uniform 0;
}
ROTOR_EINTRITT //Ende des Einlaufkanals und Übergang in den Rotor
{
type ggi;

}
INTERFACE //außenliegender stehender GGI-Teil; Gegenstück zu INTERFACE_R
{
type ggi;
// value uniform 0;
}
EINTRITT_WAND //begrenzt den Einlaufkanal
{
type zeroGradient;
}
EINTRITT_INTERFACE //
{
type ggi;
}
HUB_R
{
type zeroGradient;
}
WAND_ROT
{
type zeroGradient;
}
WAND_STAT
{
type zeroGradient;
}

OUTLET
{
type fixedMeanValue;
meanValue 0;
}
}


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

FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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

internalField uniform (0 0 0);

boundaryField
{
INTERFACE_R //innenliegender rotierender GGI-Teil
{
type ggi;
value uniform (0 0 0);
}
EINTRITT // hier strömt die Luft in die Maschine
{
type flowRateInletVelocity;
flowRate 0.292;
value uniform (0 0 0);
}
ROTOR_EINTRITT //Ende des Einlaufkanals und Übergang in den Rotor
{
type ggi; //
}
INTERFACE //außenliegender stehender GGI-Teil; Gegenstück zu INTERFACE_R
{
type ggi;
value uniform (0 0 0);
}
EINTRITT_WAND //begrenzt den Einlaufkanal
{
type fixedValue;
value uniform (0 0 0);
}
EINTRITT_INTERFACE
{
type ggi;
}
HUB_R //"Halbkugel" auf dem 1.GGI
{
type movingRotatingWallVelocity;
centre (0 0 0);
axis (0 0 -1);
rpm 2000;
value uniform (0 0 0);
}
WAND_ROT
{
type movingRotatingWallVelocity;
centre (0 0 0);
axis (0 0 -1);
rpm 2000;
value uniform (0 0 0);
}
WAND_STAT // Boden, außen, stillstehend
{
type fixedValue;
value uniform (0 0 0);
}

OUTLET
{
type zeroGradient;
}
}


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

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

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

ddtSchemes
{
default backward;
}

gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
}

divSchemes
{
default none;
div(phi,U) Gauss linearUpwind Gauss;
div((nuEff*dev(grad(U).T()))) Gauss linear;
div(phi,epsilon) Gauss upwind;
div(phi,k) Gauss upwind;
}

laplacianSchemes
{
default none;
laplacian(nu,U) Gauss linear corrected;
laplacian(rAU,pcorr) Gauss linear corrected;
laplacian(rAU,p) Gauss linear corrected;
laplacian(nuEff,U) Gauss linear corrected;
laplacian((1|A(U)),p) Gauss linear corrected;
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
laplacian(DkEff,k) Gauss linear corrected;
laplacian(1,p) Gauss linear corrected;
}

interpolationSchemes
{
default linear;
interpolate(HbyA) linear;
interpolate(1|A) linear;
}

snGradSchemes
{
default corrected;
}

fluxRequired
{
default no;
pcorr;
p;
}


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

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

solvers
{
p
{
solver GAMG;
tolerance 1e-8;
relTol 0.05;

smoother GaussSeidel;

cacheAgglomeration true;

nCellsInCoarsestLevel 20;
agglomerator faceAreaPair;
mergeLevels 1;
}

U
{
solver smoothSolver;
smoother GaussSeidel;
nSweeps 2;
tolerance 1e-7;
relTol 0.1;
}

k
{
solver smoothSolver;
smoother GaussSeidel;
nSweeps 2;
tolerance 1e-7;
relTol 0.1;
}

epsilon
{
solver smoothSolver;
smoother GaussSeidel;
nSweeps 2;
tolerance 1e-7;
relTol 0.1;
}
}

SIMPLE
{
nNonOrthogonalCorrectors 2;
pRefCell 0;
pRefValue 0;
}

relaxationFactors
{
p 0.3;
U 0.7;
k 0.5;
epsilon 0.5;
}

// ************************************************************************* //
Christian-Henrik Walter
Fresh Boarder
Posts: 9
graphgraph
User Offline Click here to see the profile of this user
Last Edit: 2011/07/19 12:05 By ChristianE46.Reason: not able to upload boundary files
The administrator has disabled public write access.
 
#232
Re:Bad divergence with MRFSimpleFoam in Turbo 3D 10 Months ago Karma: 0
So now I can add a little warning for everyone:

If you make a conversion from icemcfd to OpenFoam by typing Fluent3DMeshToFoam check the size of your mesh in Paraview. mm Can be changed into meters.

So you'll have to add fluent3DMeshToFoam -scale 0.001

Remember that! (I hope my mistake will help to avoid such problems at other simulations people do).

Best regards
Christian
Christian-Henrik Walter
Fresh Boarder
Posts: 9
graphgraph
User Offline Click here to see the profile of this user
The administrator has disabled public write access.
 
#234
Re:Bad divergence with MRFSimpleFoam in Turbo 3D 10 Months ago Karma: 1
Dear Christian and other OpenFOAM® users,

It is good practice to run checkMesh before running any simulation. There you can see the domain extent as a bounding box. The problem you describe is typical when you don't remember that you have made the mesh in mm. You can also see if OpenFOAM® consider any of your control volumes to have negative volume, or any faces to be negative. Note that such things are evaluated differently, so even if your mesh generator sais that the mesh is ok, you should also ask your solver OpenFOAM®/CFX/Fluent... OpenFOAM® might in fact run with negative volumes and faces, but I wouldn't rely much in the results!

When you convert a mesh from any format to any other format, you simply re-organize the point positions and miscellaneous definitions into a new format. That means that if you have a mesh defined in mm, the converted mesh will be in mm. Then you will have to tell your solver that the mesh is in mm so that it can transform it. OpenFOAM® uses m only, so the mesh must be transformed before it is used. As you mention, it can be done with -scale, but also with:
transformPoints -scale "(1e-3 1e-3 1e-3)"

In other CFD solvers you might do it differently, but you need to do it somehow. As they say: Garbage in, garbage out. There is no magic.

Best regards,
Håkan.
Håkan Nilsson
Fresh Boarder
Posts: 9
graphgraph
User Offline Click here to see the profile of this user
The administrator has disabled public write access.
 
Go to topPage: 1
Joomla SEO powered by JoomSEF


bottom
top

OpenFOAM®-Extend World

You need to upgrade your Flash Player

bottom
Legal | Imprint
©Copyright 2012 The OpenFOAM® Extend Project 

Powered by Joomla! Designed by Joomla Templates, ecommerce web hosting, Thanks to J! Developer Goran Gligorin for support! Joomla SEF URLs by Artio. Powered by Staff Master v0.9.8 Valid: XHTML and CSS

Friends Online