CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (http://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Cyclic vs ggi vs directMapped Patches (http://www.cfd-online.com/Forums/openfoam-solving/58027-cyclic-vs-ggi-vs-directmapped-patches.html)

jens_klostermann September 22, 2008 05:09

I have two conformal non plana
 
I have two conformal non planar patches (basically the same patch translated by an offset) which I want to couple as periodic in-/outlets:
http://www.cfd-online.com/OpenFOAM_D...ges/1/9268.png


With cyclics I was able to create those cyclic patches but as soon as I start calculation I get face matching errors.
1. How/Where does the cyclic boundary condition calculate the transformation (rotation, translation) tensor.
2. Is there a possibility to tell (force) the cyclic to a translation instead of rotation? Also tell it the direction? ...
3. ...similar to the directMapped patch, which I suppose works only on planar patches?

A last possibility is to use the ggi patch from 1.4.1-dev implemented by Martin Beaudoin:
4. How is the status on this?
5. How is the interpolation done for conformal patches?

fra76 September 22, 2008 13:30

Did you use the "createPatche"
 
Did you use the "createPatche" utility for creating the cyclic patches?

Francesco

jens_klostermann September 22, 2008 14:27

Hi Francesco, yes! I just
 
Hi Francesco,

yes!
I just read something that only works for planar faces and I figured out that it is possible to give OpenFoam-1.5 the choice whether the cyclic is rotational, translational or unknown in the boundary file. Now I have to figure out to use it the right way!

Jens

jens_klostermann September 22, 2008 15:20

Ok I try to answer some of the
 
Ok I try to answer some of the questions myself:

@1: The dirty stuff seems to be done in:
cyclicPolyPatch (which lives in $FOAM_SRC/OpenFOAM/meshes/polymesh/polyPatches/constraint/cyclic)
so I digg further there!

@2a: yes in the boundary file (OF-1.5)
@2b: It doesn't look like?! at least not like in directMapped patch. (OF-1.5 and OF-1.4.1-dev)

4. and 5. still open and

6. Does ggi work on non planar patches as it can be seen on the pictures above?
Jens

PS
There was some nice PseudoCode regading cyclics by Andrew Heather (Heather) on Wednesday, January 19, 2005 (quite some time ago), but it probably gut never really in the code because of the problems Mattijs pointed out later in the thread.

jens_klostermann September 29, 2008 11:18

I love to monologize! I dev
 
I love to monologize!

I devided my two patches in several ones with same face normal vector. Now it is possible to combine all patches with the parallel or antiparallel face normal vector.
First I got some http://www.cfd-online.com/OpenFOAM_D...ges/1/9357.png.
This was because in OF-1.4.x-dev the decision if face normal vectors are parallel or antiparallel which is done in src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic:
if (mag(n0 & n1) < 1 - SMALL)
is to tight in some cases. I just replaced it with
if (mag(n0 & n1) < 1 - cyclicPolyPatch::areaMatchTol)
which is done similar in OF-1.5. Unfortunately in OF-1.5 it still doesn't work.

Jens

jens_klostermann January 15, 2009 12:20

Hi Hrv, Hi Martin, I just d
 
Hi Hrv, Hi Martin,

I just downloaded OpenFOAM-1.5-dev_2009-01-12.tgz form http://powerlab.fsb.hr/ped/kturbo/OpenFOAM/ and was hoping cyclic on nonconformal meshes is working, but my tests show only segmentation faults.

Since you are the ggi professionals, can one of you (or both) give me some hints on the STATUS of ggi and cyclicGgi?! Are they ready for testing?

Best regards Jens

PS: Here my testfiles , which are related to http://www.cfd-online.com/OpenFOAM_Discus/messages/1/4824.html and http://www.cfd-online.com/OpenFOAM_Discus/messages/1/4701.html

jens_klostermann January 15, 2009 12:22

Hi Hrv, Hi Martin, I just d
 
Hi Hrv, Hi Martin,

I just downloaded OpenFOAM-1.5-dev_2009-01-12.tgz form http://powerlab.fsb.hr/ped/kturbo/OpenFOAM/ and was hoping cyclic on nonconformal meshes is working, but my tests show only segmentation faults.

Since you are the ggi professionals, can one of you (or both) give me some hints on the STATUS of ggi and cyclicGgi?! Are they ready for testing?

Best regards Jens

PS: Here my testfiles , which are related to http://www.cfd-online.com/OpenFOAM_Discus/messages/1/4824.html and http://www.cfd-online.com/OpenFOAM_Discus/messages/1/4701.html

mbeaudoin January 15, 2009 21:53

Hello Jens, Please provide
 
Hello Jens,

Please provide your complete test case.

Martin

jens_klostermann January 16, 2009 04:18

Hi Martin, I will try again
 
Hi Martin,

I will try again

Jens

jens_klostermann January 16, 2009 04:49

Hi Martin, I sent you an em
 
Hi Martin,

I sent you an email.

Jens

hjasak January 20, 2009 05:20

Hi Jens, For your info, I h
 
Hi Jens,

For your info, I have tried both your cases and they work fine. There was an error in the definition of cyclicGGI (relative rotation angles must have opposite sign), and once this got fixed, the latest snapshot works.

Hrv

jens_klostermann January 28, 2009 07:00

Hi Hrv, Hi Martin, ggiCycli
 
Hi Hrv, Hi Martin,

ggiCyclic in general works, at least with the testcase described above - which is good, but I 've got some more questions + Problems:

I test now the cyclicGgi with channel395 channelOoodles:

1. What means bridgeOverlap? If I am switching it off I get some Error:
ggi patch inoutA has 750 uncovered master faces and 750 uncovered slave faces. Bridging is switched off.

From function label ggiPolyPatch::shadowIndex() const
in file meshes/polyMesh/polyPatches/constraint/ggi/ggiPolyPatch.C at line 285.


Which I don't understand!

If i turn it on it runs but produces wrong results: http://www.cfd-online.com/OpenFOAM_D...your_image.gif. The values for the pressure are not the same on both patches, which may have its origin in the additional source term (gradP)? Maybe I am missusing cyclicGgi?

2. I want to use an AMG solver with cyclicGgi which one can I use?
RREAMG
MPEAMG
FPEAMG
GAMG - doesn't work
amgSolver - doesn't work


Jens

mbeaudoin January 28, 2009 10:04

Hello Jens, I have sent you
 
Hello Jens,

I have sent you a reply through email.

I will get back to you a bit later with some more comments.

Martin

mbeaudoin January 29, 2009 21:40

Hello Jens, A fix for handl
 
Hello Jens,

A fix for handling separation-only cyclicGGI is now available on the SVN.

Give it a spin, and don't hesitate to report any problem.

Martin

mou_mi March 26, 2009 12:03

1 Attachment(s)
Hello,

I compiled OpenFoam-1.5-dev, I made a test case to test cyclicGgi. the geometry is a simple box with cyclic in inlet and outlet, walls in top and bottom, and cyclicGgi in front and back. I attached the test case to this thread. When I ran that with icoFoam it gave me this error:

Create time

Create mesh for time = 0

Reading transportProperties

Reading field p

Cannot find 'value' entry on patch side1 of field p in file "/home/mou/OpenFOAM/mou-1.5-dev/run/mou_cases/cyclicGgi/0/p"
which is required to set the values of the generic patch field.
(Actual type cyclicGgi)

Please add the 'value' entry to the write function of the user-defined boundary-condition
or link the boundary-condition into libfoamUtil.so

file: /home/mou/OpenFOAM/mou-1.5-dev/run/mou_cases/cyclicGgi/0/p::side1 from line 34 to line 34.

From function genericFvPatchField<Type>::genericFvPatchField(con st fvPatch&, const Field<Type>&, const dictionary&)
in file fields/fvPatchFields/basic/generic/genericFvPatchField.C at line 72.

FOAM exiting

would you look at to the case files? I am thankful for any comment or advise?

mou




olivier March 30, 2009 16:19

try to update your version of the ggi try svn update. It should work

mou_mi April 1, 2009 12:41

Thank you Olivier. I updated the new version and now it works.

From the forum, if there is rotation periodicity, we can adjust periodic parameters in "boundary" file as for example:

separationOffset (0 0 0);
rotationAxis (1 0 0);
rotationAngle -90;

but for translational periodicity how can I adjust these parameters?

Thank you
mou

mbecker September 17, 2009 15:07

cyclicGGI error with OpenFOAM 1.6 and 1.6.x
 
Hello,

I tried to use cyclicGGI with OpenFOAM 1.6 and a self-compiled 1.6.x from today and got exactly
the same error as mou_mi with his test example.

Running the test example gives me the error as well:

Create time

Create mesh for time = 0

// using new solver syntax:
p
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}

// using new solver syntax:
U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}

Reading field p


Cannot find 'value' entry on patch side1 of field p in file "/tmp/cyclic/cyclicGgi/0/p"
which is required to set the values of the generic patch field.
(Actual type cyclicGgi)

Please add the 'value' entry to the write function of the user-defined boundary-condition
or link the boundary-condition into libfoamUtil.so

file: /tmp/cyclic/cyclicGgi/0/p::side1 from line 34 to line 34.

From function genericFvPatchField<Type>::genericFvPatchField(con st fvPatch&, const Field<Type>&, const dictionary&)
in file fields/fvPatchFields/basic/generic/genericFvPatchField.C at line 72.

FOAM exiting


Looks like the bug is not fixed in the recent OpenFOAM release and 1.6.x.
What can I do to make it work?

Martin

olivier September 17, 2009 15:45

Hello Martin,

The GGi interface, as well as cyclicGgi, is a developpement that has been realized in the developpement version of OpenFOAM. It has been developped by Martin Beaudoin och Hrvoje Hjasak.
That is the reason why it doesn't work. The error that you get is just that OpenFOAM is not recognizing the patch type cyclicGgi. If you want to use the Ggi interface, as well as cyclicGgi, you need to use the -dev version. So far, the OpenFOAM-1.6-dev is not out, so the latest version that you can use is OpenFOAM-1.5-dev. If you use it, it will work.

If you have some problems understanding the difference between the 2 versions, you can read this thread:
http://www.cfd-online.com/Forums/ope...x-1-5-dev.html

I hope this answers the question.

Olivier

mauscher December 4, 2009 13:16

uncovered faces
 
Hello,

I'm just writing my thesis and I have a problem with the cyclic ggi boundary. First I want described what I've done and then what the problem is.

1. createPatch -> sidewallright and sidewallleft cyclicGgi
from the boundary-file ->

sidewallleft
{
type cyclicGgi;
nFaces 10176;
startFace 3583008;
shadowPatch sidewallright;
zone zonesidewallleft;
bridgeOverlap true;
rotationAxis (0 0 1);
rotationAngle 0;
separationOffset (0 0 0.075);
}
sidewallright
{
type cyclicGgi;
nFaces 10176;
startFace 3593184;
shadowPatch sidewallleft;
zone zonesidewallright;
bridgeOverlap true;
rotationAxis (0 0 1);
rotationAngle 0;
separationOffset (0 0 -0.075);
}

2. faceSet from Patches sidewallright and sidewallleft

3. setsToZones -noFlipMap

4. decomposePar (2 processors)

5. mpirun ....

6. From the log-file->

Evaluation of GGI weighting factors:

From function void GGIInterpolation<MasterPatch, SlavePatch>::rescaleWeightingFactors() const
in file /home/cluster/cmau/OpenFOAM/OpenFOAM-1.5-dev/src/OpenFOAM/lnInclude/GGIInterpolationWeights.C at line 533
Uncovered faces found. On master: 5088 on slave: 5088
Largest slave weighting factor correction : 0 average: 0
Largest master weighting factor correction: 0 average: 0

The calculation works, but one half of the sidewallpatch is calculated wrong. So where is the problem?


\\mauscher


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