[Other] Equal decomposition of cylindrical fluid domain

 Register Blogs Members List Search Today's Posts Mark Forums Read

 January 22, 2019, 09:52 Equal decomposition of cylindrical fluid domain #1 Member   Sean Gorry Join Date: Feb 2018 Posts: 48 Rep Power: 7 I'm just wondering how I could equally decompose a cylindrical fluid domain so that each processor has the same number of cells. I can quarter the domain using simple but I want to divide it further. The simulation crashes unless each processor has the same number of cells, the picture below is of the YZ plane.

 January 23, 2019, 08:16 #2 Senior Member   anonymous Join Date: Jan 2016 Posts: 416 Rep Power: 13 Hi! The simplest if you use scotch. It'll try to reduce the common faces of the proc. regions (smaller processor patches -> less communication between processors) It is easy to use, you only have to specify the number of processors.

 January 23, 2019, 09:50 #3 Member   Sean Gorry Join Date: Feb 2018 Posts: 48 Rep Power: 7 I tried using scotch but the simulation crashes. The only time the mesh motion solver hasn't crashed is when each processor has the same amount of cells. simple (1 2 2) Code: ```Processor 0 Number of cells = 320640 Number of faces shared with processor 1 = 10736 Number of faces shared with processor 2 = 10736 Number of processor patches = 2 Number of processor faces = 21472 Number of boundary faces = 12320 Processor 1 Number of cells = 320640 Number of faces shared with processor 0 = 10736 Number of faces shared with processor 3 = 10736 Number of processor patches = 2 Number of processor faces = 21472 Number of boundary faces = 12320 Processor 2 Number of cells = 320640 Number of faces shared with processor 0 = 10736 Number of faces shared with processor 3 = 10736 Number of processor patches = 2 Number of processor faces = 21472 Number of boundary faces = 12320 Processor 3 Number of cells = 320640 Number of faces shared with processor 1 = 10736 Number of faces shared with processor 2 = 10736 Number of processor patches = 2 Number of processor faces = 21472 Number of boundary faces = 12320 Number of processor faces = 42944 Max number of cells = 320640 (0% above average 320640) Max number of processor patches = 2 (0% above average 2) Max number of faces between processors = 21472 (0% above average 21472) Time = 0 Processor 0: field transfer Processor 1: field transfer Processor 2: field transfer Processor 3: field transfer End``` scotch (4 equally weighted processors) Code: ```Processor 0 Number of cells = 321064 Number of faces shared with processor 1 = 5353 Number of faces shared with processor 2 = 5336 Number of processor patches = 2 Number of processor faces = 10689 Number of boundary faces = 10773 Processor 1 Number of cells = 319067 Number of faces shared with processor 0 = 5353 Number of faces shared with processor 3 = 5082 Number of processor patches = 2 Number of processor faces = 10435 Number of boundary faces = 10655 Processor 2 Number of cells = 321884 Number of faces shared with processor 0 = 5336 Number of processor patches = 1 Number of processor faces = 5336 Number of boundary faces = 15494 Processor 3 Number of cells = 320545 Number of faces shared with processor 1 = 5082 Number of processor patches = 1 Number of processor faces = 5082 Number of boundary faces = 12358 Number of processor faces = 15771 Max number of cells = 321884 (0.3879741% above average 320640) Max number of processor patches = 2 (33.33333% above average 1.5) Max number of faces between processors = 10689 (35.5526% above average 7885.5) Time = 0 Processor 0: field transfer Processor 1: field transfer Processor 2: field transfer Processor 3: field transfer End```

 February 12, 2019, 03:34 #4 Senior Member   Zander Meiring Join Date: Jul 2018 Posts: 125 Rep Power: 6 Do you have a cyclic domain boundary? If so, it's important to have those two boundaries on the same processor. This can be done with scotch by using the 'singleProcessorFaceSets' option. For example: Code: ```FoamFile { version 2; format ascii; class dictionary; object decomposeParDict; } numberOfSubdomains 24; method scotch; singleProcessorFaceSets ( ( cyclic -1 ) );``` where cyclic is a faceSet I defined in a topoSetDict: Code: ```FoamFile { version 2.0; format ascii; class dictionary; object topoSetDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // actions ( { name cyclic; type faceSet; action new; source patchToFace; sourceInfo { name side1; } } { name cyclic; type faceSet; action add; source patchToFace; sourceInfo { name side2; } } }```