Menu

#151 cyclicGgi boundary condition does not work in OpenFoam-1.6-ext

new
nobody
None
normal
feature
always
none
General Grid Interface (GGI)
2012-09-14
2012-08-21
No

I am trying to use cyclicGgi's with ONLY a separationOffset in 1.6-ext.

I can run a case fine in 1.5-dev but the solver complains in 1.6-ext saying that all the faces on each cyclicGgi patch are uncovered. It also does not work in 1.6-ext when rotationAxis and rotationAngle is specified.

The actual error with bridgeOverlap set to on is:-

Create mesh for time = 0

Initializing the GGI interpolator between master/shadow patches: sides1/sides2

From function void GGIInterpolation<MasterPatch, SlavePatch>::rescaleWeightingFactors() const
in file /Users/declancarolan/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude/GGIInterpolationWeights.C at line 544
Uncovered faces found. On master: 80 on slave: 80

The error with bridgeOverlap is fatal.

I have compared as much code as I can find in /src/ between each version and can't find where the problem is.
---- additional_information ----
Bug tested on 1.6-ext on Mac OSX with gcc compiler, 1.6-ext on Linux system with Intel compiler

Works on 1.5-dev on Linux system with Intel compiler

Martin Beaudoin has tested case on his development branch mixingPlane_RC1 and reports that it works.

Discussion

  • Hrvoje Jasak

    Hrvoje Jasak - 2012-08-21

    You made an error in definition of transform - use the debug switch to see the transformed slave patch as vtk surface.Œ This is user error, not a bug.

     
  • Cosimo Bianchini

    I indeed believe it is a bug (I was also able to reproduce it for translational periodic patches).
    In fact when calcPatchToPatch() is called for the master patch, shadow().separation() = 0() because it is not already constructed, soŒ ggiZoneInterpolation constructor have a null separation vector. As a consequence the two cyclic ggi patches are not seen as overlapping even though the separation vector is correctly specified (same set up works in 1.5-dev).
    A possible bug fix (it worked in my tests) is to specify the separation vector as the opposite of the master to slave separation in such a manner:

    ŒŒŒ patchToPatchPtr_ =
    ŒŒŒŒŒŒŒŒŒŒŒ new ggiZoneInterpolation
    ŒŒŒŒŒŒŒŒŒŒŒ (
    ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ zone()(),ŒŒŒŒŒŒŒŒŒŒ // This zone reference
    ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ shadow().zone()(),Œ // This shadow zone reference
    ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ forwardT(),
    ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ reverseT(),
    ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ -separation(), // Slave-to-master separation. Bug fix
    ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ 0,ŒŒŒŒŒŒŒŒŒŒŒŒ // Non-overlapping face tolerances
    ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ 0,ŒŒŒŒŒŒŒŒŒŒŒŒ // HJ, 24/Oct/2008
    ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ true,ŒŒŒŒŒŒŒŒŒ // Rescale weighting factors.Œ Bug fix, MB.
    //ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ ggiInterpolation::AABB
    ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ ggiInterpolation::BB_OCTREEŒ // Octree search, MB.
    ŒŒŒŒŒŒŒŒŒŒŒ );

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.