cyclic boundary with same geometric size but different number of faces?
Hi
I am just wondering if this is possible. I have a 3D rectangular domain. It is meshed in ICEM with unstructured grid, save to fluent .msh and converted in openfoam using fluent3DMeshToFoam. But when I try to run it, it says the number of faces does not match on the two patches that I set as cyclic. Is there a way to work this out without remeshing the faces with a structured grid? If not, does my way of generating and exporting mesh works when I put a structured surface mesh on both sides? Thanks in advance Cheers, Tom |
sorry to bump this up but can anyone give me an idea on how to put on cyclic BC on an unstructured mesh?
Many thanks |
The original cyclic condition requires point matched faces. However, the cyclicAMI condition allows you to use a cyclic condition without point matching. It's available in OF 2.1.
|
Yes, it is possible. In ICEM you need to define the mesh as periodic in Mesh>Global Mesh Setup>Set up periodicity.
And then, after converting to OpenFoam format, you will need to use createPatch (there are a lot of post about this here) to define your periodic boundary. I am also new to OpenFoam so, I am not sure if this will work for every case, but for me it did. Best regards, Bruno |
Thanks Michael and Bruno for your reply.
I will take a look into both methods after I finish my work on hand and I will let you know how it works out |
1 Attachment(s)
Quote:
I have just tried my case with the cyclicAMI BC and it works if i run it serial. But when I try to use decomposePar and run in parallel with mpirun, error occurs. Do you have clue on what might be wrong? Thanks very much for your time Cheers, Tom attached is the error log file |
Any chance you can upload the case somewhere so I can take a closer look? If it's not too big, you can e-mail it to me at mahlmann@ucdavis.edu
|
Hello,
I had the same questions months ago and in my opinion the best option was to use the extend version of OpenFOAM. It has General Interface Grid implemented. There's more information available on internet. https://cmg.soton.ac.uk/community/at...LloydAug11.pdf http://www.tfd.chalmers.se/~hani/kur...dy_2010_OP.pdf Good luck. |
Update:
I have posted this on the bug tracker and got a reply with working solution: Quote:
|
decompose par for cyclicAMI bc
Hi Tom Li,
When you are using any cyclic boundary in decomposePar you have to set both cyclic planes on one processor then only it will work on parallel processors. Quote:
|
Quote:
I am trying to simulate for over a bifurcating channel with surface film on it. The solver I'm trying to use is reactingParcelFilmFoam. But i face the following error: AMI: Creating addressing and weights between 56 source faces and 101 target faces --> FOAM Warning : From function void Foam::AMIMethod<SourcePatch, TargetPatch>::checkPatches() const [with SourcePatch = Foam::PrimitivePatch<Foam::face, Foam::SubList, const Foam::Field<Foam::Vector<double> >&>; TargetPatch = Foam::PrimitivePatch<Foam::face, Foam::SubList, const Foam::Field<Foam::Vector<double> >&>] in file lnInclude/AMIMethod.C at line 57 Source and target patch bounding boxes are not similar source box span : (0.05119999904 0.05118754041 1.52368e-006) target box span : (0.1997277537 0.04618446137 0.0378344416) source box : (-0.02559999952 -0.02559712399 -0.1000011034) (0.02559999952 0.02559041642 -0.09999957972) target box : (-0.09986398835 -0.02308501394 0.1047726057) (0.0998637653 0.02309944743 0.1426070473) inflated target box : (-0.1102869948 -0.03350802035 0.09434959929) (0.1102867717 0.03352245384 0.1530300537) --> FOAM FATAL ERROR: Unable to find initial target face From function bool Foam::AMIMethod<SourcePatch, TargetPatch>::initialise(Foam::labelListList&, Foam::scalarListList&, Foam::labelListList&, Foam::scalarListList&, Foam::label&, Foam::label&) [with SourcePatch = Foam::PrimitivePatch<Foam::face, Foam::SubList, const Foam::Field<Foam::Vector<double> >&>; TargetPatch = Foam::PrimitivePatch<Foam::face, Foam::SubList, const Foam::Field<Foam::Vector<double> >&>; Foam::labelListList = Foam::List<Foam::List<int> >; Foam::scalarListList = Foam::List<Foam::List<double> >; Foam::label = int] in file lnInclude/AMIMethod.C at line 127. FOAM aborting For creating the surface film I use extrudeToRegionMesh. Is there any way to run this case without having the new surface films boundaries as cyclic? The polymesh generated by default after extrudeToRegionMesh is as follows: ( INLET { type patch; nFaces 56; startFace 23224; } OUTLETS { type patch; nFaces 101; startFace 23280; } wallFilmFaces_top { type patch; nFaces 15535; startFace 23381; } region0_to_wallFilmRegion_wallFilmFaces { type mappedWall; inGroups 1(wall); nFaces 15535; startFace 38916; sampleMode nearestPatchFace; sampleRegion region0; samplePatch region0_to_wallFilmRegion_wallFilmFaces; offsetMode nonuniform; offsets nonuniform List<vector> Thank you |
You could try using cyclicACMI instead of plain AMI or work with the BC's transform/rotate/translate entry to align your patches.
|
Quote:
I did try using cyclicACMI but it gave me the following error: --> FOAM FATAL ERROR: Inconsistent ACMI patches INLET and region0_to_wallFilmRegion_wallFilmFaces. Patches should have identical topology From function virtual Foam::label Foam::cyclicACMIPolyPatch::nonOverlapPatchID() const in file AMIInterpolation/patches/cyclicACMI/cyclicACMIPolyPatch/cyclicACMIPolyPatch.C at line 481. And if I do want to transform the boundary, I'm not sure how to go about it as the outlets are diverging in the opposite directions. My geometry is something along these lines. https://www.google.com/search?rlz=1C...K_ZQadEpl-Q8UM Will transforming the boundary here, physically alter my actual mesh and geometry? Thank you |
All times are GMT -4. The time now is 13:59. |