CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Pre-Processing (
-   -   Manual Decomposition Method (

smraniaki November 20, 2013 20:50

Manual Decomposition Method

I am intending to decompose a large scale (cm size) domain into 5 portion but I want one of the portions to be further divided(decomposed) into another 5 part.
I am pretty sure none of the common decomposition methods(metis, scotch, simple, hierarchical) is able to do it as they do it arbitrary based on the weight of the cells at the beginning.
The reason I'm doing this is I am investigation the behavior of MicroFluidics at specific part of my domain which usually falls into one portion of the decomposed domain and this portion has to carry most of the computation. I guess using manual decomposition I should be able to specify where and how the domain to be decomposed. Does anybody have any clue how to handle this?

Thanks :)

wyldckat November 21, 2013 08:27

Greetings smraniaki,

I know there is a post somewhere that explains how to use manual decomposition... but I can't find it right now.

As for decomposing in parts, check the option "multiLevel", as mentioned in this post: post #8

Best regards,

mturcios777 November 21, 2013 13:08

I don't know if this is the method used by the post you mentioned, but the following worked for me in 2.2.x.

First, I created volumes in STL format whose intersection with my domain subdivided it into the required subdomains.

Then, I created a volScalarField called procDist that is intially 0, and used setFields to set the value of procDist in each subdomain to be the number of the processor. The source you can use is surfaceToCell. Note that you can use any of the cell sources listed in topoSetDict, so you don't have to use STL volumes unless your decomposition can't be made by the default sources (box, rotated box, sphere, cylinder, plane, etc).

Finally, once procDist has the required values written in it, all you need is the internal field by itself (the scalarField) so trim the unneeded portions of the file and copy it to constant/$fileName, where $fileName is the file sepecified as the dataFile in manualCoeffs.

Hope this helps.

ngj November 24, 2013 17:53


The following contains more information on manual decomposition approaches:

Good luck,


All times are GMT -4. The time now is 22:51.