Permalink
Browse files

functionObjectList::readFunctionObject: Added support for region spec…

…ification

Now the postProcess utility '-region' option works correctly, e.g. for
the chtMultiRegionSimpleFoam/heatExchanger case

postProcess -region air -func "mag(U)"

calculates 'mag(U)' for all the time steps in region 'air'.
  • Loading branch information...
1 parent 8efaef8 commit 168b29e2cfc8062867ed30928d824188e0858630 Henry Weller committed Sep 9, 2016
@@ -151,7 +151,8 @@ bool Foam::functionObjectList::readFunctionObject
(
const string& funcNameArgs,
dictionary& functionsDict,
- HashSet<word>& requiredFields
+ HashSet<word>& requiredFields,
+ const word& region
)
{
// Parse the optional functionObject arguments:
@@ -291,6 +292,12 @@ bool Foam::functionObjectList::readFunctionObject
funcDict.set(entry::New(entryStream).ptr());
}
+ // Insert the region name if specified
+ if (region != word::null)
+ {
+ funcDict.set("region", region);
+ }
+
// Merge this functionObject dictionary into functionsDict
dictionary funcArgsDict;
funcArgsDict.add(string::validate<word>(funcNameArgs), funcDict);
@@ -352,6 +359,14 @@ Foam::autoPtr<Foam::functionObjectList> Foam::functionObjectList::New
dictionary& functionsDict = controlDict.subDict("functions");
+ word region = word::null;
+
+ // Set the region name if specified
+ if (args.optionFound("region"))
+ {
+ region = args["region"];
+ }
+
if
(
args.optionFound("dict")
@@ -377,7 +392,13 @@ Foam::autoPtr<Foam::functionObjectList> Foam::functionObjectList::New
if (args.optionFound("func"))
{
- readFunctionObject(args["func"], functionsDict, requiredFields);
+ readFunctionObject
+ (
+ args["func"],
+ functionsDict,
+ requiredFields,
+ region
+ );
}
if (args.optionFound("funcs"))
@@ -386,7 +407,13 @@ Foam::autoPtr<Foam::functionObjectList> Foam::functionObjectList::New
forAll(funcs, i)
{
- readFunctionObject(funcs[i], functionsDict, requiredFields);
+ readFunctionObject
+ (
+ funcs[i],
+ functionsDict,
+ requiredFields,
+ region
+ );
}
}
@@ -218,7 +218,8 @@ public:
(
const string& funcNameArgs0,
dictionary& functionsDict,
- HashSet<word>& requiredFields
+ HashSet<word>& requiredFields,
+ const word& region = word::null
);
//- Read and set the function objects if their data have changed

0 comments on commit 168b29e

Please sign in to comment.