functionObjectList: Search for functions in multi-region cases in a more logical order

When operating on multi-region cases, function files are now searched
for in the following order:

 - First the $FOAM_CASE/system/<region> directory is searched

 - Second the $FOAM_CASE/system directory is searched

 - Finally a search is done through the preconfigured functions in
   $WM_PROJECT_DIR/etc

Previously, in a multi-region case, preconfigured objects were
considered before those in the case's (non-region) system directory.
This was considered counter-intuitive. Functions residing in the system
directory should always take precedence, whether they are in the region
subdirectory or not.
This commit is contained in:
Will Bainbridge
2019-12-04 11:31:35 +00:00
parent da50aba2c4
commit 435b894d2c
2 changed files with 31 additions and 63 deletions

View File

@ -194,31 +194,6 @@ public:
// - $WM_PROJECT_DIR/etc/caseDicts/postProcessing
static void list();
//- Search for functionObject dictionary file for given region
// and the user/group/shipped directories.
// The search scheme allows for version-specific and
// version-independent files using the following hierarchy:
// - \b user settings:
// - ~/.OpenFOAM/\<VERSION\>/caseDicts/postProcessing
// - ~/.OpenFOAM/caseDicts/postProcessing
// - \b group (site) settings (when $WM_PROJECT_SITE is set):
// - $WM_PROJECT_SITE/\<VERSION\>/etc/caseDicts/postProcessing
// - $WM_PROJECT_SITE/etc/caseDicts/postProcessing
// - \b group (site) settings (when $WM_PROJECT_SITE is not set):
// - $WM_PROJECT_INST_DIR/site/\<VERSION\>/etc/
// caseDicts/postProcessing
// - $WM_PROJECT_INST_DIR/site/etc/caseDicts/postProcessing
// - \b other (shipped) settings:
// - $WM_PROJECT_DIR/etc/caseDicts/postProcessing
//
// \return The path of the functionObject dictionary file if found
// otherwise null
static fileName findRegionDict
(
const word& funcPath,
const word& region = word::null
);
//- Search for functionObject dictionary file for given region
// and if not present also search the case directory as well as the
// user/group/shipped directories.