mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: region-wise decomposition specification for decomposeParDict
Within decomposeParDict, it is now possible to specify a different decomposition method, methods coefficients or number of subdomains for each region individually. The top-level numberOfSubdomains remains mandatory, since this specifies the number of domains for the entire simulation. The individual regions may use the same number or fewer domains. Any optional method coefficients can be specified in a general "coeffs" entry or a method-specific one, eg "metisCoeffs". For multiLevel, only the method-specific "multiLevelCoeffs" dictionary is used, and is also mandatory. ---- ENH: shortcut specification for multiLevel. In addition to the longer dictionary form, it is also possible to use a shorter notation for multiLevel decomposition when the same decomposition method applies to each level.
This commit is contained in:
@ -25,7 +25,14 @@ Class
|
||||
Foam::geomDecomp
|
||||
|
||||
Description
|
||||
Geometrical domain decomposition
|
||||
Base for geometrical domain decomposition methods
|
||||
|
||||
Base coefficients:
|
||||
\table
|
||||
Property | Description | Required | Default
|
||||
n | (nx ny nz) | yes
|
||||
delta | delta for rotation matrix | no | 0.001
|
||||
\endtable
|
||||
|
||||
SourceFiles
|
||||
geomDecomp.C
|
||||
@ -42,36 +49,56 @@ namespace Foam
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class geomDecomp Declaration
|
||||
Class geomDecomp Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class geomDecomp
|
||||
:
|
||||
public decompositionMethod
|
||||
{
|
||||
// Private Member Functions
|
||||
|
||||
//- Read input values and initialize the rotDelta_
|
||||
void readCoeffs();
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
const dictionary& geomDecomDict_;
|
||||
//- Coefficients for all derived methods
|
||||
const dictionary& coeffsDict_;
|
||||
|
||||
Vector<label> n_;
|
||||
|
||||
//- Default = 0.001
|
||||
scalar delta_;
|
||||
|
||||
tensor rotDelta_;
|
||||
|
||||
public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct given the decomposition dictionary
|
||||
// and the derived type name
|
||||
//- Construct for derived type name and decomposition dictionary
|
||||
geomDecomp
|
||||
(
|
||||
const dictionary& decompositionDict,
|
||||
const word& derivedType
|
||||
const word& derivedType,
|
||||
const dictionary& decompDict,
|
||||
int select = selectionType::DEFAULT
|
||||
);
|
||||
|
||||
//- Construct for derived type name, decomposition dictionary
|
||||
//- and region name
|
||||
geomDecomp
|
||||
(
|
||||
const word& derivedType,
|
||||
const dictionary& decompDict,
|
||||
const word& regionName,
|
||||
int select = selectionType::DEFAULT
|
||||
);
|
||||
|
||||
|
||||
//- Return for every coordinate the wanted processor number.
|
||||
virtual labelList decompose
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user