CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Cyclic boundary conditions - not parallel patches (https://www.cfd-online.com/Forums/openfoam-solving/138766-cyclic-boundary-conditions-not-parallel-patches.html)

Villo July 10, 2014 10:04

Cyclic boundary conditions - not parallel patches
 
1 Attachment(s)
Dears, i`m troubling to set up a cyclic boundary condition for the attached geometry. The image is a cross-section along the stream-wise direction of a (particular) channel, i need to set-up the following cyclic condition:
- outlet from B1 as cyclic inlet for A1
- outlet from A2 as cyclic inlet for B2
My idea was to use createPatch, creating new cyclic patches. For each patch, the general form that I`m applying is

// Patches to create.
patches
(
{
// Name of new patch
name cyc_left1;

// Dictionary to construct new patch from
patchInfo
{
type cyclic;
neighbourPatch cyc_right1;
}
matchTolerance 1E-04;
constructFrom patches;
patches (left1);
// set f0;
}




But... this is the error:

[...]
Cannot find point in pts1 matching point 8510 coord:(0.07695659 -0.0005434099 1.308155) in pts0 when using tolerance 3.627474e-07
Searching started from:8693 in pts1
Compared coord: (-0.001621672 0.07587833 1.308155) at index 8693 with difference to point 0.1096122
Compared coord: (-0.0005434102 0.07695659 1.308155) at index 8694 with difference to point 0.1096016
cyclicPolyPatch::order : Writing neighbour faces to OBJ file "/scratch/villoresi/Hooper/Hooper_LES/cyc_left2_faces.obj"
cyclicPolyPatch::order : Writing my faces to OBJ file "/scratch/villoresi/Hooper/Hooper_LES/cyc_right2_faces.obj"
cyclicPolyPatch::order : Dumping currently found cyclic match as lines between corresponding face centres to file "/scratch/villoresi/Hooper/Hooper_LES/cyc_right2_faceCentres.obj"
--> FOAM Serious Error :
From function cyclicPolyPatch::order(const primitivePatch&, labelList&, labelList&) const
in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 1376
Patch:cyc_right2 : Cannot match vectors to faces on both sides of patch
Perhaps your faces do not match? The obj files written contain the current match.
Continuing with incorrect face ordering from now on!


--> FOAM FATAL ERROR:
face 0 area does not match neighbour by 192.442% -- possible face ordering problem.
patch:cyc_left1 my area:2.098791e-07 neighbour area:1.089771e-05 matching tolerance:0.0001
Mesh face:3278944 fc:(-0.04950794 0.02799206 1.308155)
Neighbour fc:(0.07695659 0.0005434099 1.308155)
If you are certain your matching is correct you can increase the 'matchTolerance' setting in the patch dictionary in the boundary file.
Rerun with cyclic debug flag set for more information.

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

FOAM exiting


I`m sure that faces have same number of cells and, so, area.
I tried also to renumber the mesh (not useful, but i tried anyway).
I found that in OpenFoam 1.7 there was an impossibility to apply cyclic conditions for boundaries with rotations higher than 180, check it out
http://www.openfoam.org/mantisbt/view.php?id=138
Is this bug present also in OpenFoam 2.2.0?

Any suggestion?

ZengYoujie July 12, 2014 08:46

This is the nearest news about the cyclicBC creating problem (: Cannot match vectors to faces on both sides of patch,Perhaps your faces do not match? The obj files written contain the current match. Continuing with incorrect face ordering from now on!).the same situation with my mesh. It was encountering by many people and discussing frequently in the Forums , but no exactly method found. It still exist in my case and i am getting crazy these days. I used the fluentMeshToFoam and createPatchDict utilities, if you find the way or some other informations, tell me please.

I think the coupled face mesh quality might be the point of the problem, in my text processes, cyclicBC creating fine with part of my mesh, which is full with hex mesh and fine geometry shape. but as the Tet/Hybrid part adding the creating process comes out with above error report. I

Villo July 14, 2014 05:28

Hi Youije!
Spending more time on the implementation of my createPatchDict i was finally able to manage this problem.
You have to pay attention on definitions of rotation center and rotation axis (in respect to the right-hand rule).

// Patches to create.
patches
(
{
// Name of new patch
name cyc_left1;

// Dictionary to construct new patch from
patchInfo
{
type cyclic;
neighbourPatch cyc_right1;
matchTolerance 1E-04;
transform rotational; rotationAxis (1 0 0); rotationCentre (0 0 0);
}

constructFrom patches;
patches (left1);
// set f0;
}
I realize the presence of other problems with my geometry just when i used reconstructPar and foamToVTK in order to visualize the field, with the effect that cannot be applied any form of interpolation during the graphical visualization with paraview. This error can be found also with checkMesh that give... PrintStackError! ... I had no time to understand why.

#0 Foam::error::printStack(Foam::Ostream&) in "/software/OpenFOAM/OpenFOAM-2.2$
#1 Foam::sigFpe::sigHandler(int) in "/software/OpenFOAM/OpenFOAM-2.2.0/platfor$
#2 __restore_rt at sigaction.c:0
#3 __ieee754_acos at interp.c:0
#4 acos in "/lib64/libm.so.6"
#5 Foam::polyMesh::checkFaceOrthogonality(Foam::Field <Foam::Vector<double> > c$
#6 Foam::checkGeometry(Foam::polyMesh const&, bool) in "/software/OpenFOAM/Ope$
#7 main in "/software/OpenFOAM/OpenFOAM-2.2.0/platforms/linux64Gcc45DPOpt/bin/$
#8 __libc_start_main in "/lib64/libc.so.6"
#9 Foam::UOPstream::write(char) in "/software/OpenFOAM/OpenFOAM-2.2.0/platform$

Anyway, a strange fact is that for RANS computation i obtain the expected flow behaviour and velocity magnitude, for LES computation i obtain the expected flow behaviour but not velocity magnitude: it goes to 0 with the increasing of the simulated time. I will have to trouble a lot on it, but any suggestion is welcome!

ZengYoujie July 14, 2014 22:50

Hi Tommy!

It does not work on my case,i am looking for other methods.thanks for your proposal. For your problem at the bottom i have not met yet. if i know some method to that, i will let you know.


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