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?
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: http://www.cfd-online.com/Forums/ope...tml#post367979 post #8
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.
The following contains more information on manual decomposition approaches:
|All times are GMT -4. The time now is 02:58.|