CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM

Problem with cyclic boundaries in Openfoam 1.5

Register Blogs Community New Posts Updated Threads Search

Like Tree11Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   January 30, 2012, 11:26
Default
  #21
Member
 
Aqua
Join Date: Oct 2011
Posts: 96
Rep Power: 15
aqua is on a distinguished road
Quote:
Originally Posted by fs82 View Post
Yeah I found the problem. For everyone who is dealing with the same problem concerning cyclic boundaries in OpenFoam try the following:

1) as mentioned above from chegdan, make sure that you have linked all your faces correctly (Reverse orientation switch in Gambit have to be ON)

2) if you have split your perodic boundaries into parts to help gambit for meshing, put every part of your periodic boundary into one patch. Do not put both faces which should be periodic into the same boundary patch. They have to be separate patches.

3) export mesh with Gambit

4) use fluentMeshToFoam

5) create a CreatePatchDict dictionary in system/ folder and combine your separate perodic patches to one. For type use cyclic. Do not touch constant/polymesh/boundary for this step.

Example:
{
name pz_1;
type cyclic;
constructFrom patches;
patches (pz_1 pz_1shadow);
set f0;
}

6) run createPatch utility. This will combine the periodic patches to one and renumber it for OpenFoam.

7) open constant/polymesh/boundary and change wall to cyclic for your periodic boundaries. Do not forget to change your createPatchDict, because you have combined two patches to one right before.

8) rerun createPatch for making your boundaries perodic

This should work und looks good for me. I guess the problem ist Gambit, which numbers the faces without any order if you put both parts of your perodic boundary into one patch. I think fluent does not care about the numbering of the boundary faces but OpenFoam (CreatePatch) does. So for me it works :-D

Thx chegdan for your help.

Fabian

Edit: If you still have Problems: Make sure you have set WritePrecision in controlDict to a value greater than 10. Also try to remove functions from controlDict (comment them out).
Dear Fabian,
I created my mesh by blockMesh, snappyHexmesh, but still have the problem
"face 391 area does not match neighbour 791 by 0.0136179% -- possible face ordering problem."
I also set writeprecision as 10..
Could you please give some suggestion? Thank you so much!
Aqua
aqua is offline   Reply With Quote

Old   March 6, 2012, 20:21
Default
  #22
Member
 
Vishal Achasrya
Join Date: Nov 2011
Posts: 38
Rep Power: 15
vishalsacharya is on a distinguished road
Dear aqua,

In "createPatchDict" file from the applications/utilities/mesh/manipulation folder, you will see the following...

// 2. Correct incorrect cyclic:
// This will usually fail upon loading:
// "face 0 area does not match neighbour 2 by 0.0100005%"
// " -- possible face ordering problem."
// - in polyMesh/boundary file:
// - loosen matchTolerance of all cyclics to get case to load
// - or change patch type from 'cyclic' to 'patch'
// and regenerate cyclic as above

So, you can loosen matchTolerance of your cyclics to get it to work or change the patch type to patch from cyclic and use createPatch to make your cyclic. Hope this helps, let me know.
vishalsacharya is offline   Reply With Quote

Old   March 7, 2012, 05:38
Default
  #23
Member
 
Aqua
Join Date: Oct 2011
Posts: 96
Rep Power: 15
aqua is on a distinguished road
Quote:
Originally Posted by vishalsacharya View Post
Dear aqua,

In "createPatchDict" file from the applications/utilities/mesh/manipulation folder, you will see the following...

// 2. Correct incorrect cyclic:
// This will usually fail upon loading:
// "face 0 area does not match neighbour 2 by 0.0100005%"
// " -- possible face ordering problem."
// - in polyMesh/boundary file:
// - loosen matchTolerance of all cyclics to get case to load
// - or change patch type from 'cyclic' to 'patch'
// and regenerate cyclic as above

So, you can loosen matchTolerance of your cyclics to get it to work or change the patch type to patch from cyclic and use createPatch to make your cyclic. Hope this helps, let me know.
Dear vishalsacharya,
Thank you so much for your kind reply. I knew the matchTolerance, so I tried to give it a big value, even 3. but it still didn't work.
For me the interesting thing was:
I could create the cyclic in OF2.0 with a matchTolerance of 0.001;
But I couldn't create the cyclic in OF 1.6-ext even the matchTolerance was 3...

So I assumed that OF1.6ext has something not that right...

cheers!

Aqua
aqua is offline   Reply With Quote

Old   January 23, 2013, 10:25
Default
  #24
Member
 
ali jafari
Join Date: Sep 2012
Posts: 50
Rep Power: 14
ali jafari is on a distinguished road
hi

I found out that PointWise dont need these steps such as Gambit. is this true ?
ali jafari is offline   Reply With Quote

Old   April 18, 2013, 09:31
Default problem with fan and createPatch
  #25
New Member
 
Jose
Join Date: Oct 2012
Posts: 6
Rep Power: 14
llidito is on a distinguished road
Hi everyone,

I am having trouble dealing with cyclic boundary conditions, namely with the fan boundary condition since I want to simulate a jump pressure between two parts of my system.

First I will describe a little bit my case. I have two different tubes. At the outlet of the first tube I want to simulate a pressure drop of 0,2bar before the flow continues through the other tube (see picture 1 attached).

My problem is that the patches "a and b" do not match each other ( the error says "area does not match neighbour 2520 by...") after mesh-conversion to OF. Therefore the createPatch utility must be run.

The process IŽve carried out so far is:

1. Mesh-generation/export with ANSYS

2. Coversion with fluent3DMEshtoFOAM

3. Creation of createPatchDict to combine the separated periodic patches to one (a und b to a)

4. Run createPatch utility. Folder /1/polyMesh is created

5. Copy of the contents of /1/polyMesh to constant/polymesh/

6. Change wall type to cyclic for the new created "a" patch

7. Now I need the NeighbourPatch for the new created "a" patch... What should I do here?

Fabian says that createPatch directory should be changed and then createPatch re-run again. I do know how this new createPatchDict should look like... I mean, what should be written there in order to get the right second patch?

Another way I came up with would be to use cyclicAMIs instead of cyclics one. On this way, the createPatch-process would be avoided but then the fan b.c. could not be used (the error "attempt to cast type cyclicAMI to type cyclic" appears)..

Other possibility would be to use groovyBC... but I am not sure about it.

I am running out of ideas anklöäd I would really appreciate any kind of help in this topic.

I wish you a nice Thursday,
José.
Attached Images
File Type: jpg Bild1.jpg (40.8 KB, 68 views)
llidito is offline   Reply With Quote

Old   April 22, 2013, 08:54
Default
  #26
Senior Member
 
maddalena's Avatar
 
maddalena
Join Date: Mar 2009
Posts: 436
Rep Power: 23
maddalena will become famous soon enough
Hi Josè. What OF version are you using? you did not mention it in your post.

mad
maddalena is offline   Reply With Quote

Old   April 22, 2013, 13:45
Default
  #27
New Member
 
Jose
Join Date: Oct 2012
Posts: 6
Rep Power: 14
llidito is on a distinguished road
Hi Maddalena,

I am using OF 2.1.1.

Regards,
José.
llidito is offline   Reply With Quote

Old   April 22, 2013, 14:19
Default
  #28
Senior Member
 
maddalena's Avatar
 
maddalena
Join Date: Mar 2009
Posts: 436
Rep Power: 23
maddalena will become famous soon enough
Quote:
Originally Posted by llidito View Post
Hi Maddalena,

I am using OF 2.1.1.

Regards,
José.
Then this is not the right place where to look for infos... Cyclic definition has changed since OF 2.1. You can find something more here: http://www.cfd-online.com/Forums/ope...aries-21x.html
maddalena is offline   Reply With Quote

Old   April 23, 2013, 09:35
Default
  #29
New Member
 
Jose
Join Date: Oct 2012
Posts: 6
Rep Power: 14
llidito is on a distinguished road
Thank you Maddalena!

I went through this post (and the post inside it) and I am still having some trouble after modifying my case.
I will be post my case there. I will be very grateful if you could take a look at it.

Greets,
José.
llidito is offline   Reply With Quote

Old   April 12, 2014, 06:33
Post problem in creation of Cyclic Boundaries
  #30
Senior Member
 
Join Date: Sep 2013
Location: Bangalore India
Posts: 134
Rep Power: 13
sam.ho is on a distinguished road
Quote:
Originally Posted by fs82 View Post
Yeah I found the problem. For everyone who is dealing with the same problem concerning cyclic boundaries in OpenFoam try the following:

1) as mentioned above from chegdan, make sure that you have linked all your faces correctly (Reverse orientation switch in Gambit have to be ON)

2) if you have split your perodic boundaries into parts to help gambit for meshing, put every part of your periodic boundary into one patch. Do not put both faces which should be periodic into the same boundary patch. They have to be separate patches.

3) export mesh with Gambit

4) use fluentMeshToFoam

5) create a CreatePatchDict dictionary in system/ folder and combine your separate perodic patches to one. For type use cyclic. Do not touch constant/polymesh/boundary for this step.

Example:
{
name pz_1;
type cyclic;
constructFrom patches;
patches (pz_1 pz_1shadow);
set f0;
}

6) run createPatch utility. This will combine the periodic patches to one and renumber it for OpenFoam.

7) open constant/polymesh/boundary and change wall to cyclic for your periodic boundaries. Do not forget to change your createPatchDict, because you have combined two patches to one right before.

8) rerun createPatch for making your boundaries perodic

This should work und looks good for me. I guess the problem ist Gambit, which numbers the faces without any order if you put both parts of your perodic boundary into one patch. I think fluent does not care about the numbering of the boundary faces but OpenFoam (CreatePatch) does. So for me it works :-D

Thx chegdan for your help.

Fabian

Edit: If you still have Problems: Make sure you have set WritePrecision in controlDict to a value greater than 10. Also try to remove functions from controlDict (comment them out).
Hi ,

I have followed the steps mentioned above to create cyclic boundaries but i am getting following error
Code:
sml5kor@BMH301562:~/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1$ createPatch 
/*---------------------------------------------------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM Extend Project: Open source CFD        |
|  \\    /   O peration     | Version:  1.6-ext                               |
|   \\  /    A nd           | Web:      www.extend-project.de                 |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
Build  : 1.6-ext
Exec   : createPatch
Date   : Apr 12 2014
Time   : 14:50:47
Host   : BMH301562
PID    : 30912
Case   : /home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).

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

Reading createPatchDict.

Create polyMesh for time = 0

Adding new patch ROTOR_PER_1 as patch 20 from 
{
    type            cyclic;
    transform       rotational;
    rotationAxis    ( 0 0 1 );
    rotationCentre  ( -2.411051e-05 1.067036e-06 0 );
    rotationAngle   32.727272;
}

Adding new patch ROTOR_PER_2 as patch 21 from 
{
    type            cyclic;
    transform       rotational;
    rotationAxis    ( 0 0 1 );
    rotationCentre  ( -2.411051e-05 1.067036e-06 0 );
    rotationAngle   -32.727272;
}

Adding new patch UPS_PER_1 as patch 22 from 
{
    type            cyclic;
    transform       rotational;
    rotationAxis    ( 0 0 1 );
    rotationCentre  ( -2.411051e-05 1.067036e-06 0 );
    rotationAngle   32.727272;
}

Adding new patch UPS_PER_2 as patch 23 from 
{
    type            cyclic;
    transform       rotational;
    rotationAxis    ( 0 0 1 );
    rotationCentre  ( -2.411051e-05 1.067036e-06 0 );
    rotationAngle   -32.727272;
}

Adding new patch DWS_PER_1 as patch 24 from 
{
    type            cyclic;
    transform       rotational;
    rotationAxis    ( 0 0 1 );
    rotationCentre  ( -2.411051e-05 1.067036e-06 0 );
    rotationAngle   32.727272;
}

Adding new patch DWS_PER_2 as patch 25 from 
{
    type            cyclic;
    transform       rotational;
    rotationAxis    ( 0 0 1 );
    rotationCentre  ( -2.411051e-05 1.067036e-06 0 );
    rotationAngle   -32.727272;
}


Moving faces from patch PERIODIC1 to patch 20
Moving faces from patch PERIODIC2 to patch 21
Moving faces from patch PER1_UPS to patch 22
Moving faces from patch PER2_UPS to patch 23
Moving faces from patch PER1_DWS to patch 24
Moving faces from patch PER2_DWS to patch 25

Doing topology modification to order faces.

cyclicPolyPatch::getGeometricHalves : Writing half0 faces to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/ROTOR_PER_1_half0_faces.obj"
cyclicPolyPatch::getGeometricHalves : Writing half1 faces to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/ROTOR_PER_1_half1_faces.obj"
cyclicPolyPatch::getGeometricHalves : Writing half0 face centres to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/ROTOR_PER_1_half0.obj"
cyclicPolyPatch::getGeometricHalves : Writing half1 face centres to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/ROTOR_PER_1_half1.obj"
--> FOAM Serious Error : 
    From function cyclicPolyPatch::getGeometricHalves(const primitivePatch&, labelList&, labelList&) const
    in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 567
    Patch ROTOR_PER_1 gets decomposed in two zones ofinequal size: 4216 and 0
This means that the patch is either not two separate regions or one region where the angle between the different regions is not sufficiently sharp.
Please adapt the featureCos setting.
Continuing with incorrect face ordering from now on!
cyclicPolyPatch::getGeometricHalves : Writing half0 faces to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/ROTOR_PER_2_half0_faces.obj"
cyclicPolyPatch::getGeometricHalves : Writing half1 faces to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/ROTOR_PER_2_half1_faces.obj"
cyclicPolyPatch::getGeometricHalves : Writing half0 face centres to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/ROTOR_PER_2_half0.obj"
cyclicPolyPatch::getGeometricHalves : Writing half1 face centres to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/ROTOR_PER_2_half1.obj"
--> FOAM Serious Error : 
    From function cyclicPolyPatch::getGeometricHalves(const primitivePatch&, labelList&, labelList&) const
    in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 567
    Patch ROTOR_PER_2 gets decomposed in two zones ofinequal size: 4216 and 0
This means that the patch is either not two separate regions or one region where the angle between the different regions is not sufficiently sharp.
Please adapt the featureCos setting.
Continuing with incorrect face ordering from now on!
cyclicPolyPatch::getGeometricHalves : Writing half0 faces to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/UPS_PER_1_half0_faces.obj"
cyclicPolyPatch::getGeometricHalves : Writing half1 faces to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/UPS_PER_1_half1_faces.obj"
cyclicPolyPatch::getGeometricHalves : Writing half0 face centres to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/UPS_PER_1_half0.obj"
cyclicPolyPatch::getGeometricHalves : Writing half1 face centres to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/UPS_PER_1_half1.obj"
--> FOAM Serious Error : 
    From function cyclicPolyPatch::getGeometricHalves(const primitivePatch&, labelList&, labelList&) const
    in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 567
    Patch UPS_PER_1 gets decomposed in two zones ofinequal size: 1302 and 0
This means that the patch is either not two separate regions or one region where the angle between the different regions is not sufficiently sharp.
Please adapt the featureCos setting.
Continuing with incorrect face ordering from now on!
cyclicPolyPatch::getGeometricHalves : Writing half0 faces to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/UPS_PER_2_half0_faces.obj"
cyclicPolyPatch::getGeometricHalves : Writing half1 faces to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/UPS_PER_2_half1_faces.obj"
cyclicPolyPatch::getGeometricHalves : Writing half0 face centres to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/UPS_PER_2_half0.obj"
cyclicPolyPatch::getGeometricHalves : Writing half1 face centres to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/UPS_PER_2_half1.obj"
--> FOAM Serious Error : 
    From function cyclicPolyPatch::getGeometricHalves(const primitivePatch&, labelList&, labelList&) const
    in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 567
    Patch UPS_PER_2 gets decomposed in two zones ofinequal size: 1302 and 0
This means that the patch is either not two separate regions or one region where the angle between the different regions is not sufficiently sharp.
Please adapt the featureCos setting.
Continuing with incorrect face ordering from now on!
cyclicPolyPatch::getGeometricHalves : Writing half0 faces to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/DWS_PER_1_half0_faces.obj"
cyclicPolyPatch::getGeometricHalves : Writing half1 faces to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/DWS_PER_1_half1_faces.obj"
cyclicPolyPatch::getGeometricHalves : Writing half0 face centres to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/DWS_PER_1_half0.obj"
cyclicPolyPatch::getGeometricHalves : Writing half1 face centres to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/DWS_PER_1_half1.obj"
--> FOAM Serious Error : 
    From function cyclicPolyPatch::getGeometricHalves(const primitivePatch&, labelList&, labelList&) const
    in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 567
    Patch DWS_PER_1 gets decomposed in two zones ofinequal size: 2728 and 0
This means that the patch is either not two separate regions or one region where the angle between the different regions is not sufficiently sharp.
Please adapt the featureCos setting.
Continuing with incorrect face ordering from now on!
cyclicPolyPatch::getGeometricHalves : Writing half0 faces to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/DWS_PER_2_half0_faces.obj"
cyclicPolyPatch::getGeometricHalves : Writing half1 faces to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/DWS_PER_2_half1_faces.obj"
cyclicPolyPatch::getGeometricHalves : Writing half0 face centres to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/DWS_PER_2_half0.obj"
cyclicPolyPatch::getGeometricHalves : Writing half1 face centres to OBJ file "/home/sml5kor/OpenFOAM/sml5kor-1.6-ext/run/Turbine_Passage_cyclic_1/DWS_PER_2_half1.obj"
--> FOAM Serious Error : 
    From function cyclicPolyPatch::getGeometricHalves(const primitivePatch&, labelList&, labelList&) const
    in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 567
    Patch DWS_PER_2 gets decomposed in two zones ofinequal size: 2728 and 0
This means that the patch is either not two separate regions or one region where the angle between the different regions is not sufficiently sharp.
Please adapt the featureCos setting.
Continuing with incorrect face ordering from now on!

    From function void polyMesh::initMesh()
    in file meshes/polyMesh/polyMeshInitMesh.C at line 82
    Truncating neighbour list at 1813845 for backward compatibility


--> FOAM FATAL ERROR: 
face 2107 area does not match neighbour 4215 by 152.364% -- possible face ordering problem.
patch:ROTOR_PER_1 my area:3.03748e-08 neighbour area:4.10639e-09 matching tolerance:0.0001
Mesh face:1871106 vertices:4((0.00653842 -0.00288073 0.0114033) (0.00657244 -0.00290527 0.0114147) (0.00637971 -0.0029294 0.0120858) (0.00634532 -0.00290463 0.0120763))
Neighbour face:1873214 vertices:4((0.0147695 -0.00953986 0.0184802) (0.0147895 -0.00955175 0.0184814) (0.0147846 -0.00955927 0.0186456) (0.0147618 -0.00954592 0.0186455))
Other errors also exist, only the largest is reported. Please rerun with cyclic debug flag set for more information.

    From function cyclicPolyPatch::calcTransforms()
    in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 294.

FOAM aborting

Aborted (core dumped)
Anybody know whats the problem ?
sam.ho is offline   Reply With Quote

Old   June 4, 2014, 05:03
Default problems with Cyclic and simpleSRFFoam in OF-ext 3.0
  #31
New Member
 
Join Date: Oct 2012
Posts: 19
Rep Power: 14
CFD-Cat is on a distinguished road
Hi,
I think that I have a problem with cyclic interface. I'm running a pump blade passage in simpleSRFFoam in foam-extend 3.0 The mesh is fully hexahedral made with a commercial software and the cyclic interface has been created with create patch. The checkMesh is OK and my BC are

Boundary

Code:
inlet
    {
        type            patch;
          }
    outlet
    {
        type            patch;
          }
    wall
    {
        type            wall;
    }
    cyclic
    {
        type            cyclic;
        nFaces          3108;
        startFace       114735;
        featureCos      0.9;
        transform       rotational;
        rotationAxis    (0 0 1);
        rotationCentre  (0 0 0);
        rotationAngle   51.42857143;
    }
Urel

Code:
 wall
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }

    inlet    
    {
        type            SRFVelocity;
    inletValue      uniform (0 0 6);
        relative        yes;
        value           uniform (0 0 0);
    }

    outlet
    {
     type            zeroGradient;
    }

    cyclic
    {
        type            cyclic;
    }
p

Code:
     wall
     {
        type            zeroGradient;
    }
    inlet
    {
        type            zeroGradient;
    } 
      
    outlet
    {
        type            fixedValue;
    value             uniform 0;
    }
    cyclic
    {
        type            cyclic;
    }

the simulation diverges really quickly:

Code:
/*---------------------------------------------------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | foam-extend: Open Source CFD                    |
|  \\    /   O peration     | Version:  3.0                                   |
|   \\  /    A nd           | Web:         http://www.extend-project.de       |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
Build    : 3.0-83767105dac9
Exec     : simpleSRFFoam
Date     : Jun 03 2014
Time     : 18:19:34
Host     : ale-XPS-M1530
PID      : 9432
CtrlDict : /home/ale/OpenFOAM/OpenFOAM-extend-3.0/etc/controlDict
Case     : /home/ale/OpenFOAM/ale-3.0/run/impeller_Ale_noPrism_Ext3
nProcs   : 1
SigFpe   : Enabling floating point exception trapping (FOAM_SIGFPE).

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

Create mesh for time = 1

Reading field p

Reading field Urel

Reading/calculating face flux field phi

Selecting incompressible transport model Newtonian
Selecting RAS turbulence model kOmegaSST
kOmegaSSTCoeffs
{
    alphaK1         0.85034;
    alphaK2         1;
    alphaOmega1     0.5;
    alphaOmega2     0.85616;
    gamma1          0.5532;
    gamma2          0.4403;
    beta1           0.075;
    beta2           0.0828;
    betaStar        0.09;
    a1              0.31;
    c1              10;
    Cmu             0.09;
}

Creating SRF model

Selecting SRFModel rpm

Starting time loop

Time = 2

DILUPBiCG:  Solving for Urelx, Initial residual = 1, Final residual = 2.79903e-05, No Iterations 4
DILUPBiCG:  Solving for Urely, Initial residual = 1, Final residual = 6.0469e-05, No Iterations 4
DILUPBiCG:  Solving for Urelz, Initial residual = 1, Final residual = 4.8147e-05, No Iterations 5
DICPCG:  Solving for p, Initial residual = 1, Final residual = 0.000950259, No Iterations 175
DICPCG:  Solving for p, Initial residual = 0.110069, Final residual = 9.65805e-05, No Iterations 169
DICPCG:  Solving for p, Initial residual = 0.10585, Final residual = 9.1452e-05, No Iterations 168
time step continuity errors : sum local = 0.094795, global = 0.000555515, cumulative = 0.000555515
DILUPBiCG:  Solving for omega, Initial residual = 0.0533918, Final residual = 7.19262e-05, No Iterations 1
bounding omega, min: -0.012838 max: 670192 average: 3721.31
DILUPBiCG:  Solving for k, Initial residual = 1, Final residual = 1.65011e-05, No Iterations 2
ExecutionTime = 1.88 s  ClockTime = 2 s

Time = 3

DILUPBiCG:  Solving for Urelx, Initial residual = 0.999251, Final residual = 3.87368e-05, No Iterations 4
DILUPBiCG:  Solving for Urely, Initial residual = 0.999369, Final residual = 1.88171e-05, No Iterations 4
DILUPBiCG:  Solving for Urelz, Initial residual = 0.998988, Final residual = 8.33906e-05, No Iterations 22
DICPCG:  Solving for p, Initial residual = 0.08725, Final residual = 8.06568e-05, No Iterations 180
DICPCG:  Solving for p, Initial residual = 0.0148115, Final residual = 1.42158e-05, No Iterations 184
DICPCG:  Solving for p, Initial residual = 0.0181394, Final residual = 1.75546e-05, No Iterations 181
time step continuity errors : sum local = 2133.01, global = 18.4662, cumulative = 18.4667
DILUPBiCG:  Solving for omega, Initial residual = 0.999924, Final residual = 0.00080576, No Iterations 2
DILUPBiCG:  Solving for k, Initial residual = 0.992957, Final residual = 5.56803e-05, No Iterations 2
ExecutionTime = 3.36 s  ClockTime = 4 s

Time = 4

DILUPBiCG:  Solving for Urelx, Initial residual = 0.0678987, Final residual = 1.90842e+15, No Iterations 1000
DILUPBiCG:  Solving for Urely, Initial residual = 1, Final residual = 0.101565, No Iterations 1000
DILUPBiCG:  Solving for Urelz, Initial residual = 0.0626209, Final residual = 0.000292353, No Iterations 1000
DICPCG:  Solving for p, Initial residual = 1, Final residual = 0.000836971, No Iterations 186
DICPCG:  Solving for p, Initial residual = 0.030226, Final residual = 2.58344e-05, No Iterations 186
DICPCG:  Solving for p, Initial residual = 0.0220053, Final residual = 1.96485e-05, No Iterations 184
time step continuity errors : sum local = 5.59353e+19, global = 3.3388e+17, cumulative = 3.3388e+17
DILUPBiCG:  Solving for omega, Initial residual = 1, Final residual = 0.0018931, No Iterations 2
DILUPBiCG:  Solving for k, Initial residual = 0.094051, Final residual = 1.21682e-06, No Iterations 3
ExecutionTime = 17.64 s  ClockTime = 18 s

Time = 5

DILUPBiCG:  Solving for Urelx, Initial residual = 0.0742309, Final residual = 53801.3, No Iterations 1000
DILUPBiCG:  Solving for Urely, Initial residual = 0.999454, Final residual = 7.77307, No Iterations 1000
DILUPBiCG:  Solving for Urelz, Initial residual = 0.0590893, Final residual = 0.000159322, No Iterations 1000
DICPCG:  Solving for p, Initial residual = 1, Final residual = 0.000875957, No Iterations 200
DICPCG:  Solving for p, Initial residual = 0.0590136, Final residual = 5.01017e-05, No Iterations 200
DICPCG:  Solving for p, Initial residual = 0.0255778, Final residual = 2.29427e-05, No Iterations 194
time step continuity errors : sum local = 1.48812e+25, global = -9.59329e+22, cumulative = -9.59326e+22
DILUPBiCG:  Solving for omega, Initial residual = 0.999996, Final residual = 0.00330149, No Iterations 2
DILUPBiCG:  Solving for k, Initial residual = 0.0735992, Final residual = 3.5885e-07, No Iterations 3
ExecutionTime = 31.99 s  ClockTime = 32 s


Time = 34

Floating point exception (core dumped)
But if I use wall instead of cyclic it runs.

Do you have any suggestion?

Regards,
Ale
CFD-Cat is offline   Reply With Quote

Old   June 4, 2014, 05:17
Post
  #32
Senior Member
 
Join Date: Sep 2013
Location: Bangalore India
Posts: 134
Rep Power: 13
sam.ho is on a distinguished road
Hi,

Floating point error is bad because you can not get and error which is occurring while solving the problem.
Few things to check...
1. How many no of passages you have ( according to your input i can see there are 7 passages ) if not please correct accordingly.
2. Check your initial values for all fields are appropriate .
3. Most importantly your cyclic definition in commercial package while meshing should be very appropriate i.e point to point connection between the nodes.

Regards,
Sangamesh Hosur
sam.ho is offline   Reply With Quote

Old   June 4, 2014, 05:38
Default
  #33
New Member
 
Join Date: Oct 2012
Posts: 19
Rep Power: 14
CFD-Cat is on a distinguished road
Thank you for your reply.

1: The number of blade passage is correct
2: I think they are. But I will check it again.
3: The meshes on the cyclic boundary is conformal.

Seeing how fast it's diverging I think that the error has to be something evident but I couldn't find it yet.
CFD-Cat is offline   Reply With Quote

Old   June 4, 2014, 05:45
Default
  #34
Senior Member
 
Join Date: Sep 2013
Location: Bangalore India
Posts: 134
Rep Power: 13
sam.ho is on a distinguished road
Hi,

Check your k-omega BC's. Which are the major culprits for this floating point error .

by the way how have you evaluated k-omega values ?

Regards,
Sangamesh Hosur
sam.ho is offline   Reply With Quote

Old   June 4, 2014, 12:17
Default
  #35
New Member
 
Join Date: Oct 2012
Posts: 19
Rep Power: 14
CFD-Cat is on a distinguished road
the first time I calculated my k omega and epsilon with standard formula using the inlet velocity, the second time I took it from the results of the simulation that I'm using as benchmark and then I tried to run it as laminar with a reduced velocity but the results don't change that much. While setting the cyclic BC as wall the simulation runs with both sets of turbulent BC.
for example my k dictionary looks like:

Code:
boundaryField
{
    wall
     {
        type            kqRWallFunction;
        value           uniform 0.6;
    }
    inlet
     {
        type            fixedValue;
        value           uniform 0.15;
    }
    outlet
    {
        type            zeroGradient;
    }
    cyclic
    {
        type            cyclic;
        value           uniform 0.15;
    }

}
CFD-Cat is offline   Reply With Quote

Old   June 6, 2014, 13:02
Default
  #36
New Member
 
Join Date: Oct 2012
Posts: 19
Rep Power: 14
CFD-Cat is on a distinguished road
Yesterday I ran the complete impeller with the same BC and initial field and the results are fine, so I'm sure that my problem is related to cyclic BC.
I found a topic about problems of cyclic BCs applied to curved surface.

http://www.cfd-online.com/Forums/ope...-boundary.html

Mattijs

"Hi Håkan,

cyclics have to be planar for automatic matching (couplePatches, createPatch) to work since both transformation tensor and face-face correspondence have to be determined.

If they are non-planar you'll have to get your mesh generator to output the patch faces in the correct order. "

As far as I know the new definition of the cyclic BC (OF 2.1x), don't have anymore this limitation. I saw that the utility createPatch in OF-ext-3.0 is taken from OF-ext-1.6 and if I'm not wrong it uses the old cyclic definition, consequently I start to think that it can be the reason why my simulation diverges. Am I wrong?
Can you suggest me how can I check if my cells are in the correct order?

Regards,
Alessandro
CFD-Cat is offline   Reply With Quote

Old   January 7, 2015, 01:31
Default
  #37
New Member
 
Muhammad Omer Mughal
Join Date: Jul 2010
Location: Singapore
Posts: 22
Rep Power: 16
Muhammad Omer Mughal is on a distinguished road
Hi

I am using terrain block mesher to mesh my terrain .The problem with this tool is that it cannot generate cyclic boundary conditions.I therefore had to use the createPatchDict utlity to create the cyclic patches. the problem is that I have north,south east west patches as neighbours and I cannot combine them into two as you did for your case as each. I am attaching the boundary and createPatchDict and would appreciate if you can kindly suggest a solution to my problem.
Attached Files
File Type: zip cfd.zip (1.5 KB, 2 views)
Muhammad Omer Mughal is offline   Reply With Quote

Old   November 29, 2024, 11:15
Default
  #38
Member
 
Anurag
Join Date: Feb 2023
Posts: 78
Rep Power: 3
anubasu is on a distinguished road
Quote:
Originally Posted by fs82 View Post
Yeah I found the problem. For everyone who is dealing with the same problem concerning cyclic boundaries in OpenFoam try the following:

1) as mentioned above from chegdan, make sure that you have linked all your faces correctly (Reverse orientation switch in Gambit have to be ON)

2) if you have split your perodic boundaries into parts to help gambit for meshing, put every part of your periodic boundary into one patch. Do not put both faces which should be periodic into the same boundary patch. They have to be separate patches.

3) export mesh with Gambit

4) use fluentMeshToFoam

5) create a CreatePatchDict dictionary in system/ folder and combine your separate perodic patches to one. For type use cyclic. Do not touch constant/polymesh/boundary for this step.

Example:
{
name pz_1;
type cyclic;
constructFrom patches;
patches (pz_1 pz_1shadow);
set f0;
}

6) run createPatch utility. This will combine the periodic patches to one and renumber it for OpenFoam.

7) open constant/polymesh/boundary and change wall to cyclic for your periodic boundaries. Do not forget to change your createPatchDict, because you have combined two patches to one right before.

8) rerun createPatch for making your boundaries perodic

This should work und looks good for me. I guess the problem ist Gambit, which numbers the faces without any order if you put both parts of your perodic boundary into one patch. I think fluent does not care about the numbering of the boundary faces but OpenFoam (CreatePatch) does. So for me it works :-D

Thx chegdan for your help.

Fabian

Edit: If you still have Problems: Make sure you have set WritePrecision in controlDict to a value greater than 10. Also try to remove functions from controlDict (comment them out).
Hi Sir


I am trying to run periodic BC in a 3D pipe in OpenFOAM. I have created the mesh in ansys and converted to OpenFOAM using fluent3DMeshToFOAM, but after running interFoam, it is giving the following error which is attached. I have changed the 0/U, 0/p_rgh, etc to type cyclic and in the boundary file also i have given cyclic with neighbor patch. I have attached the error message and the boundary file. It is similar to a problem you were facing..

If i can get some help why the problem is occurring it will be great, thanks
Attached Images
File Type: png error_periodic_bc_1.png (45.6 KB, 0 views)
File Type: png boundary_file.png (22.2 KB, 0 views)
anubasu is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
OpenFOAM 1.5 installation on OpenSUSE 11.0 bigphil OpenFOAM Installation 16 April 29, 2009 07:28
64bitrhel5 OF installation instructions mirko OpenFOAM Installation 2 August 12, 2008 19:07
Solving a Riemann problem in OpenFoam srinath OpenFOAM Running, Solving & CFD 2 July 15, 2008 10:34
Adventure of fisrst openfoam installation on Ubuntu 710 jussi OpenFOAM Installation 0 April 24, 2008 15:25
Riemann problem at boundaries K. I. Chan Main CFD Forum 0 December 10, 2000 23:56


All times are GMT -4. The time now is 15:50.