CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   Problem using GGI (https://www.cfd-online.com/Forums/openfoam/78874-problem-using-ggi.html)

besto August 4, 2010 10:34

Problem using GGI
 
Hello dearest community,

well, i'm trying to run the old well know problem of a rotating cylinder in a static (closed) domain. After looking at different options for this problem i tried to use the ggi of version 1.5-dev.
However the simulation does not run, but stops with a floating point exception. The output is:

Quote:

/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5-dev |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Exec : turbDyMFoam
Date : Aug 03 2010
Time : 16:03:53
Host : laptop
PID : 12707
Case : test2
nProcs : 1

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create dynamic mesh for time = 0

Selecting dynamicFvMesh mixerGgiFvMesh
void mixerGgiFvMesh::addZonesAndModifiers() : Zones and modifiers already present. Skipping.
Mixer mesh:
origin: (0 0 0)
axis : (1 0 0)
rpm : 40
Reading field p

Reading field U

Reading/calculating face flux field phi

Rescaling of weighting factor:
Largest slave weighting factor correction : 0 average: 0
Largest master weighting factor correction: 8.9695158e-07 average: 1.0775447e-07
Selecting incompressible transport model Newtonian
Selecting RAS turbulence model kOmegaSST

Floating point exception
Basicly i kept the setup in the way it is described by http://www.openfoamworkshop.org/2009/4th_Workshop/4_Mesh_Generation_and_Handling/OFW4_2009_Jasak_slides.pdf
. The output suggests, it could be something with the turbulence model (k-omega SST). However if i turn it off in the RASproperties, there is no change.

Here are the main setup files:

boundary:
Code:

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

5
(
    CYLINDER
    {
        type            ggi;
        nFaces          2166;
        startFace      211296;
        shadowPatch    CYLINDER2;
        bridegOverlap  false;
        zone            CYLINDER_ZONE;
        }
    GEOM
    {
        type            wall;
        nFaces          7143;
        startFace      213462;
    }
    INFLOW
    {
        type            patch;
        nFaces          399;
        startFace      220605;
    }
    OUTFLOW
    {
        type            patch;
        nFaces          5208;
        startFace      221004;
    }
    CYLINDER2
    {
        type            ggi;
        nFaces          2166;
        startFace      226212;
        shadowPatch    CYLINDER;
        bridgeOverlap  false;
        zone            CYLINDER2_ZONE;
    }
)

dynamicMeshDict
Code:

dynamicFvMesh        mixerGgiFvMesh;
dynamicFvMeshLib      "libtopoChangerFvMesh.so";

mixerGgiFvMeshCoeffs
{
        coordinateSystem
        {
                type    cylindrical;
                origin  (0 0 0);
                axis    (1 0 0);
                direction (0 0 1);
        }
    rpm    40;
      slider
    {
        moving      CYLINDER;
        static      CYLINDER2;
    }

U
Code:

    #include "fixedInlet"

    OUTFLOW
    {
        type            inletOutlet;
        inletValue      $internalField;
        value          $internalField;
    }

    GEOM
    {
        type            fixedValue;
        value          uniform (0 0 0);
  }

    INFLOW
    {
        type            fixedValue;
        value          uniform (10 0 0);
    }

    CYLINDER2
    {
        type            ggi;
    }

    CYLINDER
    {
        type            ggi;
    }

p
Code:

internalField  uniform $pressure;

boundaryField
{
    INFLOW
    {
        type            zeroGradient;
    }

    OUTFLOW
    {
        type            fixedValue;
        value          $internalField;
    }

    GEOM
    {
        type            zeroGradient;
    }
 
    CYLINDER2
    {
        type            ggi;
    }

    CYLINDER
    {
        type            ggi;
    }

Anybody has an idea what's wrong?

Bernhard

Ohbuchi August 4, 2010 21:05

Hello, Bernd !
Did you check non-rotating case ?
If you could run the case by turbFoam, setting for GGI might be OK
and the problem would be setting for dynamicMesh.

mbeaudoin August 4, 2010 22:56

Hello,

Not enough information.

Please specify the Svn revision number of your local 1.5-dev source code working copy.

Please enable the FOAM_ABORT env. variable so we can see the stack trace dump when your error occurs.

Martin

besto August 5, 2010 09:56

Not all information
 
Hi,

thanx for the response. Sad but true, i used an old version without subversion. So do not have a subversion number (Sorry). The file has a date however:
OpenFOAM-1.5-dev.General_2009-01-20.tgz
Setting FOAM_ABORT i get:

Code:

Selecting RAS turbulence model kOmegaSST

#0  Foam::error::printStack(Foam::Ostream&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libOpenFOAM.so"
#1  Foam::sigFpe::sigFpeHandler(int) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libOpenFOAM.so"
#2  ?? in "/lib/libc.so.6"
#3  Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libOpenFOAM.so"
#4  void Foam::divide<Foam::fvPatchField, Foam::volMesh>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#5  Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::operator/<Foam::fvPatchField, Foam::volMesh>(Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&, Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#6  Foam::incompressible::RASModels::kOmegaSST::F2() const in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#7  Foam::incompressible::RASModels::kOmegaSST::kOmegaSST(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#8  Foam::incompressible::RASModel::adddictionaryConstructorToTable<Foam::incompressible::RASModels::kOmegaSST>::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#9  Foam::incompressible::RASModel::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#10  main in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/applications/bin/linux64GccDPOpt/turbDyMFoam"
#11  __libc_start_main in "/lib/libc.so.6"
#12  _start at /build/buildd/eglibc-2.10.1/csu/../sysdeps/x86_64/elf/start.S:116
Floating point exception

Does this help?

Bernhard

besto August 5, 2010 10:01

Further
 
Now looking at the output i posted, i found that, even if i set the turbulence in RASproperties to off, the k-omega SST was chosen.
So i set it now to laminar. This did make a change - however this still doesn't work. I get:
Unknown GAMGInterface type ggi.
Valid GAMGInterface types are :
2
(
cyclic
processor
)

Obviously i do have to change the schemes as well. However i will need the turbulence model ...

besto August 5, 2010 10:44

O.k.! Using PCG instead of GAMG as solver works (laminar). So only the problem using the k-omega SST remains ...

besto August 5, 2010 10:50

And the conditions are ..
 
Yes, as this is the case - here are the initial conditions for the turbulence:

Code:

boundaryField
{

    OUTFLOW
    {
        type            inletOutlet;
        inletValue      $internalField;
        value          $internalField;
    }

    GEOM
    {
        type            zeroGradient;
    }

    INFLOW
    {
        type            fixedValue;
        value          $internalField;
    }

    CYLINDER2
    {
        type            ggi;
    }

    CYLINDER
    {
        type            ggi;
    }

}

and the values for the $internalField are:
turbulentKE 0.24;
turbulentOmega 1.78;

Bernhard

mbeaudoin August 6, 2010 10:25

1: your version of OF-1.5-dev is too old. Many bug fixes have been contributed since then, including improvements to the GGI interfaces.

2: From your stack trace information, we can see that your case is crashing because of a division by zero in the method KOmegaSST::F2() when evaluating a patch field. Go check the list of fields being used for division in that method, and check your boundary fields dictionnary definitions or your kOmegaSST parameters.

Martin


Quote:

Originally Posted by besto (Post 270409)
Hi,

thanx for the response. Sad but true, i used an old version without subversion. So do not have a subversion number (Sorry). The file has a date however:
OpenFOAM-1.5-dev.General_2009-01-20.tgz
Setting FOAM_ABORT i get:

Code:

Selecting RAS turbulence model kOmegaSST

#0  Foam::error::printStack(Foam::Ostream&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libOpenFOAM.so"
#1  Foam::sigFpe::sigFpeHandler(int) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libOpenFOAM.so"
#2  ?? in "/lib/libc.so.6"
#3  Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libOpenFOAM.so"
#4  void Foam::divide<Foam::fvPatchField, Foam::volMesh>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#5  Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::operator/<Foam::fvPatchField, Foam::volMesh>(Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&, Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#6  Foam::incompressible::RASModels::kOmegaSST::F2() const in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#7  Foam::incompressible::RASModels::kOmegaSST::kOmegaSST(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#8  Foam::incompressible::RASModel::adddictionaryConstructorToTable<Foam::incompressible::RASModels::kOmegaSST>::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#9  Foam::incompressible::RASModel::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&) in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#10  main in "/home/bstoeve/OpenFOAM/OpenFOAM-1.5-dev/applications/bin/linux64GccDPOpt/turbDyMFoam"
#11  __libc_start_main in "/lib/libc.so.6"
#12  _start at /build/buildd/eglibc-2.10.1/csu/../sysdeps/x86_64/elf/start.S:116
Floating point exception

Does this help?

Bernhard


besto August 23, 2010 03:40

This solved it so far
 
Hi,

well, downloading the new version did not solve the problem directly - but the error messages were a lot better! Thus i could resolve this problem (got new ones, but new problem should get new threads).

Thanx

Bernd

kalle August 30, 2010 03:24

Hi Bernd,

Is it possible you share your solution? I am experiencing a similar problem using 1.5-dev from August 19. I try to run a simulation of a two-stroke engine, but the simulation can only start if I select laminar as turbulence 'model'. All other RANS models I tried fails with the same output:

Code:

Reading field U

Reading/calculating face flux field phi

Creating turbulence model

Selecting RAS turbulence model kEpsilon
Floating point exception

I've tried setting all patches to 0, 1e-10 and 'zeroGradient' and internally I use epsilon=0.000765 m2/s3 and k=3.5 m2/s2. I tried a few solvers, which works with the same settings on k and epsion for other cases but without dynamic meshes, and there it works. It seems to me that it is the sliding interfaces which fails. (For this case I don't use GGI). If you or anyone have any idea how to solve this, I would be very happy!

Regards,
Kalle

besto August 30, 2010 03:41

Solution
 
Hi Kalle,

well, the solution was rather simple: First there was a spelling error in the boundary file. Afterwards there was another similar error. So it was really simple.
The point was to set FOAM_ABORT (for detailed error messages) and use a new version. Due to the new version i actually got the error output that told me what's wrong.
So always try to use new versions!
I'm now at subversion number 1816 and 1817

kalle August 30, 2010 07:12

Hi,

Thanks for your reply!

The only thing I could find out from the full error message was that there was a floating point exception as the kEpsilon object was created (if I understood it right). Since all fields seemed reasonable, including p and T, I did the classical way: Start with something that works and add things until the error appears. It turned out to be that viscosity was set to zero in the thermophysicalProperties. Having that fixed, it works fine! One should be careful to be too quick when setting up test cases by copying files from various tutorials :)

Regards,
Kalle

bschnepf October 29, 2010 13:36

ggi problem
 
Hello everybody!
I try to get the mixerGgi tutorial working but I get the following error message:

/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5-dev |
| \\ / A nd | Revision: exported |
| \\/ M anipulation | Web: http://www.OpenFOAM.org |
\*---------------------------------------------------------------------------*/
Exec : icoDyMFoam
Date : Oct 29 2010
Time : 19:16:13
Host : linux-3zx0.site
PID : 18771
Case : /home/bschnepf/OpenFOAM/OpenFOAM-1.5-dev/tutorials/icoDyMFoam/mixerGgi
nProcs : 1

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create dynamic mesh for time = 0

Selecting dynamicFvMesh mixerGgiFvMesh
void mixerGgiFvMesh::addZonesAndModifiers() : Zones and modifiers already present. Skipping.
Mixer mesh:
origin: (0 0 0)
axis : (1.51863e-314 2.122e-314 -6.22849e-49)
rpm : 60
Reading transportProperties

Reading field p

Reading field U

Reading/calculating face flux field phi

Initializing the GGI interpolator between master/shadow patches: insideSlider/outsideSlider
Evaluation of GGI weighting factors:

From function void GGIInterpolation<MasterPatch, SlavePatch>::rescaleWeightingFactors() const
in file /home/bschnepf/OpenFOAM/OpenFOAM-1.5-dev/src/OpenFOAM/lnInclude/GGIInterpolationWeights.C at line 534
Uncovered faces found. On master: 8 on slave: 20
Largest slave weighting factor correction : 1 average: 0.362385
Largest master weighting factor correction: 0.903086 average: 0.103186

Reading field rAU if present


Starting time loop

Volume: new = 0.0147948 old = 0.0147948 change = 0 ratio = 0
Courant Number mean: 0 max: -0 velocity magnitude: 0
deltaT = 0.006
--> FOAM Warning :
From function dlLibraryTable::open(const dictionary& dict, const word& libsEntry, const TablePtr tablePtr)
in file lnInclude/dlLibraryTableTemplates.C at line 68
library "libsampling.so" did not introduce any new entries

Creating ggi check
Time = 0.006

Initializing the GGI interpolator between master/shadow patches: insideSlider/outsideSlider
Evaluation of GGI weighting factors:


plane normal has got zero length

From function plane::plane(const point&, const vector&)
in file meshes/primitiveShapes/plane/plane.C at line 148.

FOAM aborting

Abgebrochen

I guess the error is a consequence of the bad definition of the axis:
Mixer mesh:
origin: (0 0 0)
axis : (1.51863e-314 2.122e-314 -6.22849e-49)
rpm : 60
Hopefully you are able to help me on this one, thank you!
(I downloaded my release of OpenFOAM 1.5-dev from the svn platform on October 27, 2010)

Bastian

bschnepf October 30, 2010 07:34

addition
 
1 Attachment(s)
I realized that there is something wrong with blockMesh, too, since it is not able to create the arc edges of the mesh.
I compiled OpenFOAM 1.5-dev again because I thought the errors were a result of an incorrect compiling process, but the problem stays the same.
The system compiler was used (gcc4.5.0) and the OS is OpenSUSE 11.3.

Thanks in advance!

I attached the log of Allwmake:


All times are GMT -4. The time now is 00:45.