|
[Sponsors] |
November 11, 2008, 18:26 |
Dear all
I tried following tw
|
#1 |
Member
Quinn Tian
Join Date: Mar 2009
Posts: 62
Rep Power: 17 |
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. |
|
November 12, 2008, 02:46 |
If you like to create a cyclic
|
#2 |
Member
Matthias Kern
Join Date: Mar 2009
Location: Karlsruhe, Germany
Posts: 36
Rep Power: 17 |
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 |
|
November 12, 2008, 21:23 |
Matthias,
For the first way,
|
#3 |
Member
Quinn Tian
Join Date: Mar 2009
Posts: 62
Rep Power: 17 |
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. |
|
November 12, 2008, 22:23 |
Hello Quinn,
Are the two cy
|
#4 |
Senior Member
Martin Beaudoin
Join Date: Mar 2009
Posts: 332
Rep Power: 22 |
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 |
|
|
|
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 |