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

Cyclic boundary condition

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 11, 2008, 18:26
Default Dear all I tried following tw
  #1
Member
 
Quinn Tian
Join Date: Mar 2009
Posts: 62
Rep Power: 17
qtian is on a distinguished road
Dear all
I tried following two different ways to create cyclic boundary condition, but failed

I did search on the forum and could not find much information related to this. Can anyone please give me a hint? Thanks.

SidewallR and SidewallL are planar hybrid meshes.


Way 1:
I created two patches named SidewallR and SidewallL and after that I used createPatch to define the "logical patch". Here is the error and warning message I got.

Create polyMesh for time = 0

Reading createPatchDict

Copying patch wall-4 at position 0
Copying patch Inlet-5 at position 1
Copying patch TopWall-6 at position 2
Copying patch Outlet-7 at position 3
Copying patch SidewallR-8 at position 4
Copying patch SidewallL-9 at position 5
Adding new patch SidesCyclic of type cyclic as patch 6
Moving faces from patch SidewallL-9 to patch 6
Moving faces from patch SidewallR-8 to patch 6

Removing empty patch SidewallR-8
Removing empty patch SidewallL-9
Compacted patches:
wall-4 size:58164 start:7196504
Inlet-5 size:6328 start:7254668
TopWall-6 size:37164 start:7260996
Outlet-7 size:6328 start:7298160
SidesCyclic size:0 start:7304488
--> FOAM Warning :
From function min(const UList<type>&)
in file lnInclude/FieldFunctions.C at line 342
empty field, returning zero
--> FOAM Warning :
From function max(const UList<type>&)
in file lnInclude/FieldFunctions.C at line 322
empty field, returning zero
--> FOAM Warning :
From function min(const UList<type>&)
in file lnInclude/FieldFunctions.C at line 342
empty field, returning zero
--> FOAM Warning :
From function max(const UList<type>&)
in file lnInclude/FieldFunctions.C at line 322
empty field, returning zero


#0 Foam::error::printStack(Foam:stream&)
#1 Foam::sigFpe::sigFpeHandler(int)
#2 Uninterpreted: [0xffffe420]
#3 Foam::globalPoints::coupledPoints(Foam::cyclicPoly Patch const&)
#4 Foam::globalPoints::receivePatchPoints(Foam::HashS et<int,> >&)
#5 Foam::globalPoints::globalPoints(Foam::polyMesh const&)
#6 Foam::globalMeshData::updateMesh()
#7 Foam::globalMeshData::globalMeshData(Foam::polyMes h const&)
#8 Foam::polyMesh::globalData() const
#9 Foam::polyMesh::resetPrimitives(int, Foam::Field<foam::vector<double> > const&, Foam::List<foam::face> const&, Foam::List<int> const&, Foam::List<int> const&, Foam::List<int> const&, Foam::List<int> const&, bool)
#10 Foam::polyTopoChanger::changeMesh(Foam::polyMesh&, Foam::polyTopoChange const&)
#11 Foam::repatchPolyTopoChanger::repatch()
#12 main
#13 __libc_start_main
#14 __gxx_personality_v0 at /usr/src/packages/BUILD/glibc-2.3/csu/../sysdeps/i386/elf/start.S:122
Floating point exception (core dumped)


Way 2:

I created one "logical patch" first with the meshing software. After I run couplePatch to reorder the face first time. It works and create another polymesh folder. After I replace the /constant/polymsh with the new one, I rerun couplePatch and got following error message.



--> FOAM FATAL ERROR : face 1350 and 10158 areas do not match by 197.906% -- possible face ordering problem#0 Foam::error::printStack(Foam:stream&)
#1 Foam::error::abort()
#2 Foam::cyclicFvPatch::makeWeights(Foam::Field<doubl e>&) const
#3 Foam::surfaceInterpolation::makeWeights() const
#4 Foam::surfaceInterpolation::weights() const
#5 Foam::fvPatch::weights() const
#6 Foam::coupledFvPatchField<double>::evaluate()
#7 Foam::cyclicFvPatchField<double>::cyclicFvPatchFie ld(Foam::fvPatch const&, Foam::Field<double> const&, Foam::dictionary const&)
#8 Foam::fvPatchField<double>::adddictionaryConstruct orToTable<foam::cyclicfvpatchf ield<double> >::New(Foam::fvPatch const&, Foam::Field<double> const&, Foam::dictionary const&)
#9 Foam::fvPatchField<double>::New(Foam::fvPatch const&, Foam::Field<double> const&, Foam::dictionary const&)
#10 Foam::GeometricField<double,>::GeometricBoundaryFi eld::GeometricBoundaryField(Fo am::fvBoundaryMesh const&, Foam::Field<double> const&, Foam::dictionary const&)
#11 Foam::GeometricField<double,>::readField(Foam::Ist ream&)
#12 Foam::GeometricField<double,>::GeometricField(Foam ::IOobject const&, Foam::fvMesh const&)
#13 main
#14 __libc_start_main
#15 Foam::regIOobject::readIfModified()


From function cyclicFvPatch::makeWeights(scalarField& w) const
in file fvMesh/fvPatches/derivedFvPatches/cyclicFvPatch/cyclicFvPatch.C at line 58.
qtian is offline   Reply With Quote

Old   November 12, 2008, 02:46
Default If you like to create a cyclic
  #2
Member
 
Matthias Kern
Join Date: Mar 2009
Location: Karlsruhe, Germany
Posts: 36
Rep Power: 17
make is on a distinguished road
If you like to create a cyclic boundary keep care of two thinks first:

both sides have to be in one patch. So your first approach will not work.

Both sides have to fit absolutely to one transformation matrix. In icem for example you can define a mesh periodicity. In your second run the couplePatch seems to be complaining about that.

After you have a mesh which fits to both criterias convert it to a polyMesh and change the patch type in constante/polyMesh/boundary to cyclic, if you haven't yet. Then run couplePatches on it. After this the new mesh is in the time directory of your first time step. Copy that one to const/polyMesh. Finsished. Why did you run couplepatch a second time?

Hope I helped you,
Matthias
make is offline   Reply With Quote

Old   November 12, 2008, 21:23
Default Matthias, For the first way,
  #3
Member
 
Quinn Tian
Join Date: Mar 2009
Posts: 62
Rep Power: 17
qtian is on a distinguished road
Matthias,
For the first way, I used createPatch to combine those two sides into one patch and define cyclic boundary condition. The error message is from createPatch. I have successfully defined a cyclic boundary condition for a simple geometry through this way. I don't know why it didn't work for this case.

For the second way, I did exactly what you mentioned. However it didn't work for me also. Maybe I didn't understand "Both sides have to fit absolutely to one transformation matrix." well. could you please explain more?

The reason I run couplePatch second time is because even though there is no error message for the first time I run couplePatch, the same error message will appear after I start my simulation.

The other thing I am worried about is the hybrid mesh (triangle and rectangular ) on both sides. Will this be the problem? The meshes on both sides are symmetry about Z=0 plane.

If anyone can answer me question, please do. I really appreciate your help.
qtian is offline   Reply With Quote

Old   November 12, 2008, 22:23
Default Hello Quinn, Are the two cy
  #4
Senior Member
 
Martin Beaudoin
Join Date: Mar 2009
Posts: 332
Rep Power: 22
mbeaudoin will become famous soon enough
Hello Quinn,

Are the two cyclic sides conformal (one-to-one matching) once you apply a proper transformation matrix (either rotation or translation)?

If so, the ordering of the faces for a cyclic patch is also important.

For a cyclic patch composed of "n" facets:

Master facet #0 has to match with shadow facet #n/2
Master facet #1 has to match with shadow facet #n/2+1

And so on.

Martin
mbeaudoin 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
Cyclic Boundary Condition Luiz Eduardo Bittencourt Sampaio (Sampaio) OpenFOAM Running, Solving & CFD 36 July 2, 2012 13:23
Cyclic jump boundary condition hjasak OpenFOAM Running, Solving & CFD 10 April 16, 2010 16:35
Cyclic Boundary Condition SG Siemens 0 June 1, 2008 15:56
Cyclic boundary condition in Multi-Block. Las Phoenics 0 November 9, 2002 11:39
About Partial Cyclic Boundary Condition Jiaying Xu Siemens 2 October 31, 2002 21:12


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