|
[Sponsors] |
December 13, 2016, 13:35 |
preservepatches for cyclicAMI
|
#1 |
New Member
Jialin Su
Join Date: Mar 2015
Posts: 4
Rep Power: 11 |
Hi Foamers,
I am using 2.4-0 at the moment. I am running a simulation that requires the use of the boundary condition "cyclicAMI". It's not possible to create the mesh in such a way that the matching patches have the same number of cells. The single phase flow case runs no problem. But I also need to inject particles into the simulation as well. Then I ran into this problem: --> FOAM FATAL ERROR: Particle tracking across AMI patches is only currently supported for cases where the AMI patches reside on a single processor From function void Foam::Cloud<ParticleType>::initCloud(const bool) in file /work/y07/y07/cse/openfoam/2.4.0/build2/OpenFOAM-2.4.0/src/lagrangian/basic/lnInclude/Cloud.C at line 59. FOAM parallel run aborting So I presume I would need to preserve the patches that are "cyclicAMI". I added the following line in the decomposeParDict: preserveFaceZones (SIDE1 SIDE2); But this doesn't actually help to preserve the patches SIDE1 and SIDE2. They are still split into different processors. And the simulation still crashes with the same error message. I looked up different threads here. But can't really find a solution. Is there any way to preserve the two "cyclicAMI" when decomposing the mesh? Or have I missed any other options in decomposePar? I thought of using "simple". But I need to decompose a complex mesh into over 200 partitions. "simple" doesn't seem to apply here. Any suggestions will be really appreciated. Thank you in advance. Best Regards, Jialin Su |
|
December 14, 2016, 15:01 |
|
#2 |
New Member
Jialin Su
Join Date: Mar 2015
Posts: 4
Rep Power: 11 |
I just realised that not just each individual cyclicAMI patch needs to be completely in the same processor for the simulation to run. Actually both patches (SIDE1 and SIDE2) need to be in one processor for the simulation to run.
Is there any way to instruct OpenFOAM to decompose in such a way? Thank you in advance. |
|
July 8, 2017, 16:30 |
|
#3 | |
Member
Yousef
Join Date: Feb 2015
Posts: 40
Rep Power: 11 |
Quote:
Did you find the solution? I running into the same error. your parameters looks fine. PreservePatch should keep the cells in the same processor. I have done this thousands of times and it worked very well. But now I am facing this error with a particular grid. decomposition does not preserve patch. |
||
June 19, 2020, 14:08 |
|
#4 | |
Senior Member
Ehsan Asgari
Join Date: Apr 2010
Posts: 473
Rep Power: 18 |
Quote:
Same here. I wonder if there is a trick to force decomposePar to preserve patches. Did you find a solution? Regards, Syavash |
||
June 19, 2020, 15:14 |
|
#5 | |
Member
Ardalan
Join Date: Jul 2012
Location: Atlanta, USA
Posts: 77
Rep Power: 14 |
Quote:
Please see the link below. https://www.openfoam.com/documentati...-parallel.html With adding constraints in decomposeParDict you can reach your intention. Ardalan |
||
June 19, 2020, 15:34 |
|
#6 | |
Senior Member
Ehsan Asgari
Join Date: Apr 2010
Posts: 473
Rep Power: 18 |
Quote:
Thanks for your response. The issue is that despite using those constraints, my patch still gets splitted between multi processes. The last option nonetheless looks promising, however I am using an older version of foam on cluster, so it's not really an option! Please let me know if you had sth in mind. Kind regards, Syavash |
||
November 12, 2020, 05:14 |
cyclicAMI patches on the same processor
|
#7 |
New Member
Join Date: Nov 2020
Posts: 2
Rep Power: 0 |
Hi,
I am currently using OpenFOAM 4.1 with a 3D axisymmetric geometry. Using singleProcessorFaceSets dictionary in decomposeParDict singleProcessorFaceSet ( (front -1) (back -1) ); which is based on faces named "back" and "front" defined in /system/topoSetDict from the patches as : actions ( { name front; type faceSet; action new; source patchToFace; sourceInfo { name "front"; } } { name back; type faceSet; action new; source patchToFace; sourceInfo { name "back"; } } ); This tends to put all “front” and “back” cell faces so both cyclicAMI patches on the same processor. However, this solution is not optimized regarding processor communications in my case. I don’t have the solution to reach a fair decomposition of connected cell faces between processors with cyclic boundary conditions in OpenFOAM. Best regards |
|
September 24, 2021, 15:53 |
|
#8 | |
Senior Member
qutadah
Join Date: Jun 2021
Location: USA
Posts: 101
Rep Power: 5 |
Quote:
I have added as per link the following to my decomposeParDict """constraints / processors { type singleProcessorFaceSets; sets ((f1 -1)); enabled true; } """ unfortunately i recieve the following error.... --> FOAM FATAL IO ERROR: keyword singleProcessorFaceSets is undefined in dictionary "/hsmstorage/work/rababqjt/3D_Pump_SinglePhase/02_3D_Pumpe_M1_IncreasedGap_Qw68_CyclicAMI_SST_pim ple/system/decomposeParDict.constraints.processors" file: /hsmstorage/work/rababqjt/3D_Pump_SinglePhase/02_3D_Pumpe_M1_IncreasedGap_Qw68_CyclicAMI_SST_pim ple/system/decomposeParDict.constraints.processors from line 49 to line 51. From function const Foam::entry& Foam::dictionary::lookupEntry(const Foam::word&, bool, bool) const in file db/dictionary/dictionary.C at line 566. FOAM exiting what might be the issue? thanks |
||
September 24, 2021, 15:58 |
|
#9 |
Senior Member
qutadah
Join Date: Jun 2021
Location: USA
Posts: 101
Rep Power: 5 |
I have tried your solution but get following error..
--> FOAM FATAL IO ERROR: keyword singleProcessorFaceSets is undefined in dictionary "/hsmstorage/work/rababqjt/3D_Pump_SinglePhase/02_3D_Pumpe_M1_IncreasedGap_Qw68_CyclicAMI_SST_pim ple/system/decomposeParDict.constraints.processors" file: /hsmstorage/work/rababqjt/3D_Pump_SinglePhase/02_3D_Pumpe_M1_IncreasedGap_Qw68_CyclicAMI_SST_pim ple/system/decomposeParDict.constraints.processors from line 49 to line 53. From function const Foam::entry& Foam::dictionary::lookupEntry(const Foam::word&, bool, bool) const in file db/dictionary/dictionary.C at line 566. any suggestions?? i would also like to preserve cyclicAMI on same processor.. thanks! |
|
October 11, 2021, 03:54 |
|
#10 |
Member
Join Date: Feb 2020
Posts: 79
Rep Power: 6 |
Hi,
Could you share your decomposeParDict ? Best regards, |
|
October 11, 2021, 10:37 |
decomposeParDict
|
#11 |
Senior Member
qutadah
Join Date: Jun 2021
Location: USA
Posts: 101
Rep Power: 5 |
Hello,
hier is attached my decomposeParDict Last edited by qutadah.r; October 11, 2021 at 14:08. |
|
October 11, 2021, 14:07 |
|
#12 |
Senior Member
qutadah
Join Date: Jun 2021
Location: USA
Posts: 101
Rep Power: 5 |
Hi,
here is my decomposeParDict ! Thanks for looking into it! |
|
October 11, 2021, 15:53 |
|
#13 |
Member
Join Date: Feb 2020
Posts: 79
Rep Power: 6 |
Hi,
front and back are the names of the AMI patch. replace these terms by INT_BLADE_2-SIDE-1 and INT_BLADE_2-SIDE-2and it should work. |
|
October 12, 2021, 08:28 |
|
#14 |
Senior Member
qutadah
Join Date: Jun 2021
Location: USA
Posts: 101
Rep Power: 5 |
Hi,
what does the front -1 mean? what is the 1 exactly? in my case I have 16 AMI patches defined each as follows.. INT_IMP_VOL-SIDE-2 { type cyclicAMI; inGroups 1(cyclicAMI); nFaces 35280; startFace 14261224; matchTolerance 0.0001; transform coincidentFullMatch; neighbourPatch INT_IMP_VOL-SIDE-1; method faceAreaWeightAMI; } INT_SP_IMP-SIDE-1 { type cyclicAMI; inGroups 1(cyclicAMI); nFaces 5020; startFace 14296504; matchTolerance 0.0001; transform coincidentFullMatch; neighbourPatch INT_SP_IMP-SIDE-2; method faceAreaWeightAMI; } these were just two examples... I have entered them in the preserve patches as you suggested processors { type singleProcessorFaceSets; sets ( (INT_BLADE_1-SIDE-1 -1) //(f1 -1) (INT_BLADE_1-SIDE-2 -1) (INT_BLADE_2-SIDE-2 -1) (INT_BLADE_2-SIDE-2 -1) (INT_BLADE_3-SIDE-1 -1) (INT_BLADE_3-SIDE-2 -1) (INT_BLADE_4-SIDE-1 -1) (INT_BLADE_4-SIDE-2 -1) (INT_BLADE_5-SIDE-1 -1) (INT_BLADE_5-SIDE-2 -1) (INT_BLADE_6-SIDE-1 -1) (INT_BLADE_6-SIDE-2 -1) (INT_IMP_VOL-SIDE-1 -1) (INT_IMP_VOL-SIDE-2 -1) (INT_SP_IMP-SIDE-1 -1) (INT_SP_IMP-SIDE-2 -1) ); enabled true; } --- however im still recieving an error. any suggestion? thanks! |
|
October 12, 2021, 08:35 |
|
#15 |
Senior Member
qutadah
Join Date: Jun 2021
Location: USA
Posts: 101
Rep Power: 5 |
I did as well change the topoSetDict as follows....
actions ( { name INT_BLADE_1-SIDE-1; type faceSet; action new; source patchToFace; sourceInfo { name "INT_BLADE_1-SIDE-1"; } } { name INT_BLADE_1-SIDE-2; type faceSet; action new; source patchToFace; sourceInfo { name "INT_BLADE_1-SIDE-2"; } } ); is this correct? ofcourse for all the sets.... |
|
October 28, 2021, 06:35 |
|
#16 | ||
Member
Join Date: May 2017
Posts: 31
Rep Power: 9 |
Hello
Quote:
Quote:
( front 1 ) would put all faces in front, on processor 1, and ( front -1 ) would put all faces in front on the same processor, without caring which (this normally gives better decomposition as it can choose the best processor to put the faces on) (so it could be processor 0, processor 1, etc, whatever gives the best decomposition) Assuming that the error you're getting is that it's still splitting the patches between processors: It's probably because you're making a separate set for each side of each blade, so while all the faces in INT_BLADE_1-SIDE-1 are on the same processor, all the faces of INT_BLADE_1-SIDE-2 might be on a different processor. You could fix this by putting both sides into the same faceSet, so Code:
actions ( { name INT_BLADE_1; type faceSet; action new; source patchToFace; sourceInfo { name "INT_BLADE_1-SIDE-1"; } } { name INT_BLADE_1; type faceSet; action add; source patchToFace; sourceInfo { name "INT_BLADE_1-SIDE-2"; } } ); You'd then need Code:
processors { type singleProcessorFaceSets; sets ( (INT_BLADE_1 -1) ... (There's also a potential issue you might run into if two of your patches are next to each other, sharing a point/cell: singleProcessorFaceSets actually takes all points of the faces of a faceSet, then all cells touching any of those points, then keeps those cells on the same processor, so nearby patches can end up forced to all be on the same processor - there's another thread on here about how to deal with that) |
|||
November 8, 2021, 19:00 |
Foam fatal io error
|
#17 |
Senior Member
qutadah
Join Date: Jun 2021
Location: USA
Posts: 101
Rep Power: 5 |
Thanks for the explanation, I have tried your method and still get the following error, which also states teh error is in the lines of my processor sets in the decomposeParDict....
--> FOAM FATAL IO ERROR: keyword singleProcessorFaceSets is undefined in dictionary "/hsmstorage/work/rababqjt/3D_Pump_singlephase/02_3D_Pumpe_M1_IncreasedGap_Qw68_CyclicAMI_SST_pim ple/system/decomposeParDict.constraints.processors" Do you have any suggestions? Thanks alot! |
|
November 9, 2021, 08:22 |
|
#18 |
Member
Join Date: May 2017
Posts: 31
Rep Power: 9 |
Hello
Having a look at the decomposeParDict in OpenFOAM-8 (the one I'm using), singleProcessorFaceSets looks like: Code:
constraints { singleProcessorFaceSets { type singleProcessorFaceSets; singleProcessorFaceSets ( ( set1 -1 ) ( set2 -1 ) ...more sets.... ); } } |
|
November 9, 2021, 08:41 |
|
#19 |
Senior Member
qutadah
Join Date: Jun 2021
Location: USA
Posts: 101
Rep Power: 5 |
I have tried doing that, it says following: I am using OF- version 6
--> FOAM FATAL IO ERROR: unexpected class name cellSet expected faceSet while reading object region0 file: /hsmstorage/work/rababqjt/3D_Pump_singlephase/02_3D_Pumpe_M1_IncreasedGap_Qw68_CyclicAMI_SST_pim ple/constant/polyMesh/sets/region0 at line 15. From function Foam::Istream& Foam::regIOobject::readStream(const Foam::word&, bool) in file db/regIOobject/regIOobjectRead.C at line 166. the sets in the polymesh folder are of class cellSet... that seems to be the error.. Any idea how to fix this? Should i be adjusting the class of my sets to "faceSet" ? Last edited by qutadah.r; November 9, 2021 at 08:45. Reason: OF version |
|
November 9, 2021, 08:42 |
|
#20 |
Senior Member
qutadah
Join Date: Jun 2021
Location: USA
Posts: 101
Rep Power: 5 |
keep in mind i did adjust the set names to region0, region1, region2, because it gave me an error that INT_BLADE_1, ... is not found in sets ..... I believe the sets should be also defined...
|
|
Tags |
cyclicami, preservepatches |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
CyclicAMI BC preservePatches Parallel Run - again!?! | hxaxtma | OpenFOAM Pre-Processing | 4 | August 31, 2015 18:47 |
The preservePatches Option in decomposePar | Hisham | OpenFOAM Pre-Processing | 4 | November 19, 2012 18:45 |
Cyclic patches and parallel postprocessing problems | askjak | OpenFOAM Bugs | 18 | October 27, 2010 04:35 |