Merge branch 'update-scoped-dictionary' into 'develop'

ENH: change internal dictionary separator to '/' (#1073)

See merge request Development/openfoam!622
This commit is contained in:
Mattijs Janssens
2023-08-21 12:35:15 +00:00
40 changed files with 411 additions and 359 deletions

View File

@ -6,7 +6,7 @@
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Copyright (C) 2016-2017 OpenFOAM Foundation Copyright (C) 2016-2017 OpenFOAM Foundation
Copyright (C) 2017-2022 OpenCFD Ltd. Copyright (C) 2017-2023 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -78,23 +78,23 @@ Usage
- Change solver: - Change solver:
\verbatim \verbatim
foamDictionary system/fvSolution -entry solvers.p.solver -set PCG foamDictionary system/fvSolution -entry solvers/p/solver -set PCG
\endverbatim \endverbatim
- Print bc type: - Print bc type:
\verbatim \verbatim
foamDictionary 0/U -entry boundaryField.movingWall.type foamDictionary 0/U -entry boundaryField/movingWall/type
\endverbatim \endverbatim
- Change bc parameter: - Change bc parameter:
\verbatim \verbatim
foamDictionary 0/U -entry boundaryField.movingWall.value \ foamDictionary 0/U -entry boundaryField/movingWall/value \
-set "uniform (2 0 0)" -set "uniform (2 0 0)"
\endverbatim \endverbatim
- Change whole bc type: - Change whole bc type:
\verbatim \verbatim
foamDictionary 0/U -entry boundaryField.movingWall \ foamDictionary 0/U -entry boundaryField/movingWall \
-set "{type uniformFixedValue; uniformValue (2 0 0);}" -set "{type uniformFixedValue; uniformValue (2 0 0);}"
\endverbatim \endverbatim
@ -113,7 +113,7 @@ Usage
- Change patch type: - Change patch type:
\verbatim \verbatim
foamDictionary constant/polyMesh/boundary \ foamDictionary constant/polyMesh/boundary \
-entry entry0.fixedWalls.type -set patch -entry entry0/fixedWalls/type -set patch
\endverbatim \endverbatim
This uses special parsing of Lists which stores these in the This uses special parsing of Lists which stores these in the
dictionary with keyword 'entryDDD' where DDD is the position dictionary with keyword 'entryDDD' where DDD is the position
@ -140,21 +140,31 @@ using namespace Foam;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- Convert older ':' scope syntax to newer '.' scope syntax, //- Convert very old ':' scope syntax to less old '.' scope syntax,
// but leave anything with '/' delimiters untouched // but leave anything with '/' delimiters untouched
bool upgradeScope(word& entryName) bool upgradeScope(word& entryName)
{ {
if (!entryName.contains('/') && entryName.contains(':')) if (entryName.contains(':') && !entryName.contains('/'))
{ {
const wordList names(fileName(entryName).components(':')); InfoErr
<< "Warning: upgrading very old ':' scope syntax: \""
<< entryName << '"' << endl;
entryName.resize(0); // Make copy - cannot use stringOps::split
const wordList cmpts(fileName(entryName).components(':'));
for (const word& name : names) entryName.clear();
bool addSep = false;
for (const word& cmpt : cmpts)
{ {
if (entryName.size()) entryName.append("."); if (addSep) entryName += '.';
if (!cmpt.empty())
entryName.append(name); {
addSep = true;
entryName += cmpt;
}
} }
return true; return true;
@ -176,12 +186,12 @@ public:
dictAndKeyword(const word& scopedName) dictAndKeyword(const word& scopedName)
{ {
auto i = scopedName.rfind('/'); auto i = scopedName.rfind('/');
if (i == string::npos) if (i == std::string::npos)
{ {
i = scopedName.rfind('.'); i = scopedName.rfind('.');
} }
if (i != string::npos) if (i != std::string::npos)
{ {
dict_ = scopedName.substr(0, i); dict_ = scopedName.substr(0, i);
key_ = scopedName.substr(i+1); key_ = scopedName.substr(i+1);
@ -192,15 +202,9 @@ public:
} }
} }
inline const word& dict() const const word& dict() const noexcept { return dict_; }
{
return dict_;
}
inline const word& key() const const word& key() const noexcept { return key_; }
{
return key_;
}
}; };
@ -347,10 +351,7 @@ int main(int argc, char *argv[])
if (disableEntries) if (disableEntries)
{ {
// Report on stderr (once) to avoid polluting the output // Report on stderr (once) to avoid polluting the output
if (Pstream::master()) InfoErr<< "Not expanding variables or dictionary directives" << endl;
{
Serr<< "Not expanding variables or dictionary directives" << endl;
}
entry::disableFunctionEntries = true; entry::disableFunctionEntries = true;
} }
@ -359,11 +360,7 @@ int main(int argc, char *argv[])
const unsigned prec = args.getOrDefault<unsigned>("precision", 0u); const unsigned prec = args.getOrDefault<unsigned>("precision", 0u);
if (prec) if (prec)
{ {
// if (Pstream::master()) // InfoErr<< "Output write precision set to " << prec << endl;
// {
// Serr<< "Output write precision set to " << prec << endl;
// }
IOstream::defaultPrecision(prec); IOstream::defaultPrecision(prec);
Sout.precision(prec); Sout.precision(prec);
} }
@ -479,12 +476,12 @@ int main(int argc, char *argv[])
} }
changed = true; changed = true;
// Print the changed entry
const auto finder = dict.csearchScoped(scopedName, keyType::REGEX); const auto finder = dict.csearchScoped(scopedName, keyType::REGEX);
// Print the changed entry to stderr
if (finder.good()) if (finder.good())
{ {
Info<< finder.ref(); InfoErr<< finder.ref();
} }
} }
else if (args.found("remove")) else if (args.found("remove"))
@ -539,6 +536,7 @@ int main(int argc, char *argv[])
} }
else if (args.found("keywords")) else if (args.found("keywords"))
{ {
// Report keywords to stdout
for (const entry& e : finder.dict()) for (const entry& e : finder.dict())
{ {
Info<< e.keyword() << endl; Info<< e.keyword() << endl;
@ -546,32 +544,36 @@ int main(int argc, char *argv[])
} }
else if (args.found("value")) else if (args.found("value"))
{ {
// Report value to stdout
if (finder.isDict()) if (finder.isDict())
{ {
Info<< finder.dict(); Info<< finder.dict();
} }
else if (finder.ref().isStream()) else if (finder.ref().isStream())
{ {
bool addSep = false;
const tokenList& tokens = finder.ref().stream(); const tokenList& tokens = finder.ref().stream();
forAll(tokens, i)
for (const token& tok : tokens)
{ {
Info<< tokens[i]; if (addSep) Info<< token::SPACE;
if (i < tokens.size() - 1) addSep = true;
{ Info<< tok;
Info<< token::SPACE;
}
} }
Info<< endl; Info<< endl;
} }
} }
else else
{ {
// Report entry to stdout
Info<< finder.ref(); Info<< finder.ref();
} }
} }
} }
else if (args.found("keywords")) else if (args.found("keywords"))
{ {
// Report keywords to stdout
for (const entry& e : dict) for (const entry& e : dict)
{ {
Info<< e.keyword() << endl; Info<< e.keyword() << endl;
@ -579,11 +581,13 @@ int main(int argc, char *argv[])
} }
else if (optDiff) else if (optDiff)
{ {
// Report difference to stdout
removeDict(dict, diffDict); removeDict(dict, diffDict);
dict.write(Info, false); dict.write(Info, false);
} }
else else
{ {
// Report dictionary to stdout
dict.write(Info, false); dict.write(Info, false);
} }

View File

@ -153,7 +153,7 @@ Foam::dictionary::dictionary
parent_(parentDict) parent_(parentDict)
{ {
transfer(dict); transfer(dict);
name() = fileName::concat(parentDict.name(), name(), '.'); name() = fileName::concat(parentDict.name(), name(), '/');
} }
@ -658,7 +658,7 @@ Foam::entry* Foam::dictionary::add(entry* entryPtr, bool mergeEntry)
if (hashedEntries_.insert(entryPtr->keyword(), entryPtr)) if (hashedEntries_.insert(entryPtr->keyword(), entryPtr))
{ {
entryPtr->name() = entryPtr->name() =
fileName::concat(name(), entryPtr->keyword(), '.'); fileName::concat(name(), entryPtr->keyword(), '/');
if (entryPtr->keyword().isPattern()) if (entryPtr->keyword().isPattern())
{ {
@ -684,7 +684,7 @@ Foam::entry* Foam::dictionary::add(entry* entryPtr, bool mergeEntry)
if (hashedEntries_.insert(entryPtr->keyword(), entryPtr)) if (hashedEntries_.insert(entryPtr->keyword(), entryPtr))
{ {
entryPtr->name() = entryPtr->name() =
fileName::concat(name(), entryPtr->keyword(), '.'); fileName::concat(name(), entryPtr->keyword(), '/');
parent_type::push_back(entryPtr); parent_type::push_back(entryPtr);

View File

@ -43,35 +43,44 @@ Description
as a bootstrap dictionary for the objectRegistry data dictionaries. as a bootstrap dictionary for the objectRegistry data dictionaries.
Note Note
Within dictionaries, entries can be referenced by using the '$' syntax Within dictionaries, entries can be referenced by using the
familiar from shell programming. \c '$' syntax familiar from shell programming.
A '.' separator is used when referencing sub-dictionary entries. Similarly, the \c '/' separator is used when referencing
Leading '.' prefixes can be used to specify an entry from a parent sub-dictionary entries:
dictionary. - <b> "./" </b> : the current dictionary
An initial '^' anchor (or ':' for backward compatibility) specifies - <b> "../" </b> : the parent dictionary
starting from the top-level entry. - <b> "../../" </b> : the grandparent dictionary
For example, .
An initial \c '/' anchor specifies that the path starts from the
top-level entry. It is also possible to use the '${}' syntax for clarity.
For example,
\verbatim \verbatim
key1 val1; key1 val1;
key2 $key1; // use key1 value from current scope key2 $key1; // Use key1 value from current scope
key3 $.key1; // use key1 value from current scope key3 $./key1; // Use key1 value from current scope
subdict1 subdict1
{ {
key1 val1b; key1 val1b;
key2 $..key1; // use key1 value from parent key2 $../key1; // Use key1 value from parent
subdict2 subdict2
{ {
key2 val2; key2 val2;
key3 $...key1; // use key1 value from grandparent key3 $../../key1; // Use key1 value from grandparent
} }
} }
key4 $^subdict1.subdict2.key3; // lookup with absolute scoping key4 $/subdict1/subdict2/key3; // Lookup with absolute scoping
\endverbatim \endverbatim
It is also possible to use the '${}' syntax for clarity. Prior to OpenFOAM-v1712, a dot-scoping (.) syntax was used, which is
still supported (AUG-2023) but deprecated in favour of the
less ambiguous slash-scoping (/) syntax.
With dot-scoping, an initial \c '^' anchor, or an initial (:), was used
to specify that the path starts from the top-level entry.
SourceFiles SourceFiles
dictionary.C dictionary.C

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com \\ / A nd | www.openfoam.com
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Copyright (C) 2021 OpenCFD Ltd. Copyright (C) 2021-2023 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -59,15 +59,19 @@ inline Foam::fileName& Foam::dictionary::name() noexcept
inline Foam::word Foam::dictionary::dictName() const inline Foam::word Foam::dictionary::dictName() const
{ {
word scopedName(name_.name()); // With other (non-slash) separator. Eg, with '.'
// word scopedName(name_.name());
//
// const auto i = scopedName.rfind('.');
// if (i == std::string::npos)
// {
// return scopedName;
// }
//
// return scopedName.substr(i+1);
const auto i = scopedName.rfind('.'); // With '/' separator, this is just fileName::name()
if (i == std::string::npos) return name_.name();
{
return scopedName;
}
return scopedName.substr(i+1);
} }

View File

@ -39,7 +39,7 @@ Foam::dictionary::dictionary
bool keepHeader bool keepHeader
) )
: :
name_(fileName::concat(parentDict.name(), name, '.')), name_(fileName::concat(parentDict.name(), name, '/')),
parent_(parentDict) parent_(parentDict)
{ {
read(is, keepHeader); read(is, keepHeader);

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com \\ / A nd | www.openfoam.com
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Copyright (C) 2017-2022 OpenCFD Ltd. Copyright (C) 2017-2023 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -38,7 +38,7 @@ namespace
template<class WcIterator, class ReIterator> template<class WcIterator, class ReIterator>
bool findInPatterns bool findInPatterns
( (
const bool patternMatch, const bool literal,
const Foam::word& keyword, const Foam::word& keyword,
WcIterator& wcIter, WcIterator& wcIter,
ReIterator& reIter ReIterator& reIter
@ -48,9 +48,9 @@ namespace
{ {
if if
( (
patternMatch literal
? reIter()->match(keyword) ? wcIter()->keyword() == keyword
: wcIter()->keyword() == keyword : reIter()->match(keyword)
) )
{ {
return true; return true;
@ -76,7 +76,7 @@ Foam::dictionary::const_searcher Foam::dictionary::csearchDotScoped
{ {
auto scopePos = keyword.find('.'); auto scopePos = keyword.find('.');
if (scopePos == string::npos) if (scopePos == std::string::npos)
{ {
// Normal, non-scoped search // Normal, non-scoped search
return csearch(keyword, matchOpt); return csearch(keyword, matchOpt);
@ -141,7 +141,7 @@ Foam::dictionary::const_searcher Foam::dictionary::csearchDotScoped
// Local entry: // Local entry:
finder = csearch(keyword.substr(0, scopePos), matchOpt); finder = csearch(keyword.substr(0, scopePos), matchOpt);
if (scopePos == string::npos) if (scopePos == std::string::npos)
{ {
// Parsed the whole word. Return entry or null. // Parsed the whole word. Return entry or null.
return finder; return finder;
@ -176,7 +176,7 @@ Foam::dictionary::const_searcher Foam::dictionary::csearchSlashScoped
const auto slash = keyword.find('/'); const auto slash = keyword.find('/');
if (slash == string::npos) if (slash == std::string::npos)
{ {
// No slashes: // No slashes:
// Can use normal (non-scoped) search at the current dictionary level // Can use normal (non-scoped) search at the current dictionary level
@ -282,8 +282,8 @@ Foam::dictionary::const_searcher Foam::dictionary::csearch
auto wcLink = patterns_.cbegin(); auto wcLink = patterns_.cbegin();
auto reLink = regexps_.cbegin(); auto reLink = regexps_.cbegin();
// Find in patterns using regular expressions only // Find in patterns : non-literal matching
if (findInPatterns(true, keyword, wcLink, reLink)) if (findInPatterns(false, keyword, wcLink, reLink))
{ {
finder.set(*wcLink); finder.set(*wcLink);
return finder; return finder;
@ -334,7 +334,7 @@ Foam::dictionary::const_searcher Foam::dictionary::csearchScoped
if (keyword[0] == ':' || keyword[0] == '^') if (keyword[0] == ':' || keyword[0] == '^')
{ {
// It is ':' scoped - force non-recusive searching // It is ':' scoped - force non-recursive searching
matchOpt = keyType::option(matchOpt & ~(keyType::RECURSIVE)); matchOpt = keyType::option(matchOpt & ~(keyType::RECURSIVE));
// Ascend to top-level // Ascend to top-level
@ -397,9 +397,9 @@ const Foam::dictionary* Foam::dictionary::cfindScopedDict
fileName path(dictPath); // Work on copy fileName path(dictPath); // Work on copy
path.clean(); // Remove unneeded ".." path.clean(); // Remove unneeded ".."
const wordList dictCmpts(path.components()); // Split on '/' auto dictCmpts = stringOps::split(path, '/'); // Split on '/'
for (const word& cmpt : dictCmpts) for (const auto& cmpt : dictCmpts)
{ {
if (cmpt == ".") if (cmpt == ".")
{ {
@ -424,10 +424,12 @@ const Foam::dictionary* Foam::dictionary::cfindScopedDict
} }
else else
{ {
// Non-recursive, no patternMatch // Non-recursive, no patternMatch:
// -> can do direct lookup, without csearch(cmpt, false, false); // do direct lookup, without csearch(cmpt, keyType::LITERAL)
auto iter = dictPtr->hashedEntries_.cfind(cmpt); const word cmptName(cmpt.str(), false);
auto iter = dictPtr->hashedEntries_.cfind(cmptName);
if (iter.good()) if (iter.good())
{ {
@ -440,7 +442,7 @@ const Foam::dictionary* Foam::dictionary::cfindScopedDict
else else
{ {
FatalIOErrorInFunction(*dictPtr) FatalIOErrorInFunction(*dictPtr)
<< "Found entry '" << cmpt << "Found entry '" << cmptName
<< "' but not a dictionary, while searching scoped" << "' but not a dictionary, while searching scoped"
<< nl << nl
<< " " << path << " " << path
@ -527,9 +529,9 @@ Foam::dictionary* Foam::dictionary::makeScopedDict(const fileName& dictPath)
} }
else else
{ {
// Non-recursive, no patternMatch // Non-recursive, no patternMatch:
// -> can do direct lookup, // do direct lookup, without csearch(cmptName, keyType::LITERAL)
// without csearch(cmptName, keyType::LITERAL);
const word cmptName(cmpt.str(), false); const word cmptName(cmpt.str(), false);
auto iter = dictPtr->hashedEntries_.find(cmptName); auto iter = dictPtr->hashedEntries_.find(cmptName);
@ -589,8 +591,8 @@ bool Foam::dictionary::remove(const word& keyword)
auto wcLink = patterns_.begin(); auto wcLink = patterns_.begin();
auto reLink = regexps_.begin(); auto reLink = regexps_.begin();
// Find in pattern using exact match only // Find in patterns : literal matching
if (findInPatterns(false, keyword, wcLink, reLink)) if (findInPatterns(true, keyword, wcLink, reLink))
{ {
patterns_.remove(wcLink); patterns_.remove(wcLink);
regexps_.remove(reLink); regexps_.remove(reLink);
@ -650,8 +652,8 @@ bool Foam::dictionary::changeKeyword
auto wcLink = patterns_.begin(); auto wcLink = patterns_.begin();
auto reLink = regexps_.begin(); auto reLink = regexps_.begin();
// Find in patterns using exact match only // Find in patterns : literal matching
if (findInPatterns(false, iter2()->keyword(), wcLink, reLink)) if (findInPatterns(true, iter2()->keyword(), wcLink, reLink))
{ {
patterns_.remove(wcLink); patterns_.remove(wcLink);
regexps_.remove(reLink); regexps_.remove(reLink);
@ -674,7 +676,7 @@ bool Foam::dictionary::changeKeyword
// Change name and HashTable, but leave DL-List untouched // Change name and HashTable, but leave DL-List untouched
iter()->keyword() = newKeyword; iter()->keyword() = newKeyword;
iter()->name() = name() + '.' + newKeyword; iter()->name() = fileName::concat(name(), newKeyword, '/');
hashedEntries_.erase(oldKeyword); hashedEntries_.erase(oldKeyword);
hashedEntries_.insert(newKeyword, iter()); hashedEntries_.insert(newKeyword, iter());

View File

@ -267,7 +267,7 @@ Foam::primitiveEntry::primitiveEntry
entry(key), entry(key),
ITstream(is) ITstream(is)
{ {
ITstream::name() += '.' + key; ITstream::name() = fileName::concat(ITstream::name(), key, '/');
} }

View File

@ -262,7 +262,7 @@ Foam::primitiveEntry::primitiveEntry
ITstream ITstream
( (
static_cast<IOstreamOption>(is), static_cast<IOstreamOption>(is),
is.name() + '.' + key fileName::concat(is.name(), key, '/')
) )
{ {
readEntry(dict, is); readEntry(dict, is);

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -25,27 +25,27 @@ boundaryField
inletSleeve inletSleeve
{ {
type fixedValue; type fixedValue;
value uniform $:sleeve.CH4; value uniform $/sleeve/CH4;
} }
inletPipe inletPipe
{ {
type fixedValue; type fixedValue;
value uniform $:pipe.CH4; value uniform $/pipe/CH4;
} }
outletSleeve outletSleeve
{ {
type inletOutlet; type inletOutlet;
inletValue uniform $:sleeve.CH4; inletValue uniform $/sleeve/CH4;
value uniform $:sleeve.CH4; value uniform $/sleeve/CH4;
} }
outletPipe outletPipe
{ {
type inletOutlet; type inletOutlet;
inletValue uniform $:pipe.CH4; inletValue uniform $/pipe/CH4;
value uniform $:pipe.CH4; value uniform $/pipe/CH4;
} }
wall wall
@ -58,7 +58,7 @@ boundaryField
type semiPermeableBaffleMassFraction; type semiPermeableBaffleMassFraction;
samplePatch membranePipe; samplePatch membranePipe;
c 0.1; c 0.1;
value uniform $:sleeve.CH4; value uniform $/sleeve/CH4;
} }
membranePipe membranePipe
@ -66,9 +66,12 @@ boundaryField
type semiPermeableBaffleMassFraction; type semiPermeableBaffleMassFraction;
samplePatch membraneSleeve; samplePatch membraneSleeve;
c 0.1; c 0.1;
value uniform $:pipe.CH4; value uniform $/pipe/CH4;
} }
} }
// Cleanup
#remove ( sleeve pipe )
// ************************************************************************* // // ************************************************************************* //

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -25,27 +25,27 @@ boundaryField
inletSleeve inletSleeve
{ {
type fixedValue; type fixedValue;
value uniform $:sleeve.N2; value uniform $/sleeve/N2;
} }
inletPipe inletPipe
{ {
type fixedValue; type fixedValue;
value uniform $:pipe.N2; value uniform $/pipe/N2;
} }
outletSleeve outletSleeve
{ {
type inletOutlet; type inletOutlet;
inletValue uniform $:sleeve.N2; inletValue uniform $/sleeve/N2;
value uniform $:sleeve.N2; value uniform $/sleeve/N2;
} }
outletPipe outletPipe
{ {
type inletOutlet; type inletOutlet;
inletValue uniform $:pipe.N2; inletValue uniform $/pipe/N2;
value uniform $:pipe.N2; value uniform $/pipe/N2;
} }
wall wall
@ -56,15 +56,18 @@ boundaryField
membraneSleeve membraneSleeve
{ {
type semiPermeableBaffleMassFraction; type semiPermeableBaffleMassFraction;
value uniform $:sleeve.N2; value uniform $/sleeve/N2;
} }
membranePipe membranePipe
{ {
type semiPermeableBaffleMassFraction; type semiPermeableBaffleMassFraction;
value uniform $:pipe.N2; value uniform $/pipe/N2;
} }
} }
// Cleanup
#remove ( sleeve pipe )
// ************************************************************************* // // ************************************************************************* //

View File

@ -25,27 +25,27 @@ boundaryField
inletSleeve inletSleeve
{ {
type fixedValue; type fixedValue;
value uniform $:sleeve.O2; value uniform $/sleeve/O2;
} }
inletPipe inletPipe
{ {
type fixedValue; type fixedValue;
value uniform $:pipe.O2; value uniform $/pipe/O2;
} }
outletSleeve outletSleeve
{ {
type inletOutlet; type inletOutlet;
inletValue uniform $:sleeve.O2; inletValue uniform $/sleeve/O2;
value uniform $:sleeve.O2; value uniform $/sleeve/O2;
} }
outletPipe outletPipe
{ {
type inletOutlet; type inletOutlet;
inletValue uniform $:pipe.O2; inletValue uniform $/pipe/O2;
value uniform $:pipe.O2; value uniform $/pipe/O2;
} }
wall wall
@ -56,15 +56,17 @@ boundaryField
membraneSleeve membraneSleeve
{ {
type semiPermeableBaffleMassFraction; type semiPermeableBaffleMassFraction;
value uniform $:sleeve.O2; value uniform $/sleeve/O2;
} }
membranePipe membranePipe
{ {
type semiPermeableBaffleMassFraction; type semiPermeableBaffleMassFraction;
value uniform $:pipe.O2; value uniform $/pipe/O2;
} }
} }
// Cleanup
#remove ( sleeve pipe )
// ************************************************************************* // // ************************************************************************* //

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -18,9 +18,9 @@ FoamFile
defaultFieldValues defaultFieldValues
( (
volScalarFieldValue CH4 $:sleeve.CH4 volScalarFieldValue CH4 $/sleeve/CH4
volScalarFieldValue N2 $:sleeve.N2 volScalarFieldValue N2 $/sleeve/N2
volScalarFieldValue O2 $:sleeve.O2 volScalarFieldValue O2 $/sleeve/O2
); );
regions regions
@ -30,12 +30,15 @@ regions
zone pipe; zone pipe;
fieldValues fieldValues
( (
volScalarFieldValue CH4 $:pipe.CH4 volScalarFieldValue CH4 $/pipe/CH4
volScalarFieldValue N2 $:pipe.N2 volScalarFieldValue N2 $/pipe/N2
volScalarFieldValue O2 $:pipe.O2 volScalarFieldValue O2 $/pipe/O2
); );
} }
); );
// Cleanup
#remove ( sleeve pipe )
// ************************************************************************* // // ************************************************************************* //

View File

@ -56,82 +56,82 @@ geometry
cylinder cylinder
{ {
type cylinder; type cylinder;
point1 ($:aerofoil.xUpper -1e3 0); point1 ($/aerofoil/xUpper -1e3 0);
point2 ($:aerofoil.xUpper 1e3 0); point2 ($/aerofoil/xUpper 1e3 0);
radius $:domain.zMax; radius $/domain/zMax;
} }
} }
vertices vertices
( (
project ($aerofoil.xLower -0.1 $domain.zMin) (cylinder) project ($/aerofoil/xLower -0.1 $/domain/zMin) (cylinder)
($aerofoil.xTrail -0.1 $domain.zMin) ($/aerofoil/xTrail -0.1 $/domain/zMin)
($domain.xMax -0.1 $domain.zMin) ($/domain/xMax -0.1 $/domain/zMin)
project ($domain.xMin -0.1 $aerofoil.zLead) (cylinder) project ($/domain/xMin -0.1 $/aerofoil/zLead) (cylinder)
project ($aerofoil.xLead -0.1 $aerofoil.zLead) (aerofoil) project ($/aerofoil/xLead -0.1 $/aerofoil/zLead) (aerofoil)
project ($aerofoil.xTrail -0.1 $aerofoil.zTrail) (aerofoil) project ($/aerofoil/xTrail -0.1 $/aerofoil/zTrail) (aerofoil)
($domain.xMax -0.1 $aerofoil.zTrail) ($/domain/xMax -0.1 $/aerofoil/zTrail)
project ($aerofoil.xLower -0.1 $aerofoil.zLower) (aerofoil) project ($/aerofoil/xLower -0.1 $/aerofoil/zLower) (aerofoil)
project ($aerofoil.xUpper -0.1 $aerofoil.zUpper) (aerofoil) project ($/aerofoil/xUpper -0.1 $/aerofoil/zUpper) (aerofoil)
project ($aerofoil.xUpper -0.1 $domain.zMax) (aerofoil) project ($/aerofoil/xUpper -0.1 $/domain/zMax) (aerofoil)
project ($aerofoil.xTrail -0.1 $domain.zMax) (aerofoil) project ($/aerofoil/xTrail -0.1 $/domain/zMax) (aerofoil)
($domain.xMax -0.1 $domain.zMax) ($/domain/xMax -0.1 $/domain/zMax)
project ($aerofoil.xLower 0.1 $domain.zMin) (cylinder) project ($/aerofoil/xLower 0.1 $/domain/zMin) (cylinder)
($aerofoil.xTrail 0.1 $domain.zMin) ($/aerofoil/xTrail 0.1 $/domain/zMin)
($domain.xMax 0.1 $domain.zMin) ($/domain/xMax 0.1 $/domain/zMin)
project ($domain.xMin 0.1 $aerofoil.zLead) (cylinder) project ($/domain/xMin 0.1 $/aerofoil/zLead) (cylinder)
project ($aerofoil.xLead 0.1 $aerofoil.zLead) (aerofoil) project ($/aerofoil/xLead 0.1 $/aerofoil/zLead) (aerofoil)
project ($aerofoil.xTrail 0.1 $aerofoil.zTrail) (aerofoil) project ($/aerofoil/xTrail 0.1 $/aerofoil/zTrail) (aerofoil)
($domain.xMax 0.1 $aerofoil.zTrail) ($/domain/xMax 0.1 $/aerofoil/zTrail)
project ($aerofoil.xLower 0.1 $aerofoil.zLower) (aerofoil) project ($/aerofoil/xLower 0.1 $/aerofoil/zLower) (aerofoil)
project ($aerofoil.xUpper 0.1 $aerofoil.zUpper) (aerofoil) project ($/aerofoil/xUpper 0.1 $/aerofoil/zUpper) (aerofoil)
project ($aerofoil.xUpper 0.1 $domain.zMax) (aerofoil) project ($/aerofoil/xUpper 0.1 $/domain/zMax) (aerofoil)
project ($aerofoil.xTrail 0.1 $domain.zMax) (aerofoil) project ($/aerofoil/xTrail 0.1 $/domain/zMax) (aerofoil)
($domain.xMax 0.1 $domain.zMax) ($/domain/xMax 0.1 $/domain/zMax)
); );
blocks blocks
( (
hex ( 7 4 16 19 0 3 15 12) hex ( 7 4 16 19 0 3 15 12)
($:domain.xUCells 1 $:domain.zCells) ($/domain/xUCells 1 $/domain/zCells)
edgeGrading edgeGrading
( (
$:domain.leadGrading $:domain.leadGrading $:domain.xUGrading $:domain.xUGrading $/domain/leadGrading $/domain/leadGrading $/domain/xUGrading $/domain/xUGrading
1 1 1 1 1 1 1 1
$:domain.zGrading $:domain.zGrading $:domain.zGrading $:domain.zGrading $/domain/zGrading $/domain/zGrading $/domain/zGrading $/domain/zGrading
) )
hex ( 5 7 19 17 1 0 12 13) hex ( 5 7 19 17 1 0 12 13)
($:domain.xMCells 1 $:domain.zCells) ($/domain/xMCells 1 $/domain/zCells)
simpleGrading (1 1 $:domain.zGrading) simpleGrading (1 1 $/domain/zGrading)
hex ( 17 18 6 5 13 14 2 1) hex ( 17 18 6 5 13 14 2 1)
($:domain.xDCells 1 $:domain.zCells) ($/domain/xDCells 1 $/domain/zCells)
simpleGrading ($:domain.xDGrading 1 $:domain.zGrading) simpleGrading ($/domain/xDGrading 1 $/domain/zGrading)
hex ( 20 16 4 8 21 15 3 9) hex ( 20 16 4 8 21 15 3 9)
($:domain.xUCells 1 $:domain.zCells) ($/domain/xUCells 1 $/domain/zCells)
edgeGrading edgeGrading
( (
$:domain.leadGrading $:domain.leadGrading $:domain.xUGrading $:domain.xUGrading $/domain/leadGrading $/domain/leadGrading $/domain/xUGrading $/domain/xUGrading
1 1 1 1 1 1 1 1
$:domain.zGrading $:domain.zGrading $:domain.zGrading $:domain.zGrading $/domain/zGrading $/domain/zGrading $/domain/zGrading $/domain/zGrading
) )
hex ( 17 20 8 5 22 21 9 10) hex ( 17 20 8 5 22 21 9 10)
($:domain.xMCells 1 $:domain.zCells) ($/domain/xMCells 1 $/domain/zCells)
simpleGrading (1 1 $:domain.zGrading) simpleGrading (1 1 $/domain/zGrading)
hex ( 5 6 18 17 10 11 23 22) hex ( 5 6 18 17 10 11 23 22)
($:domain.xDCells 1 $:domain.zCells) ($/domain/xDCells 1 $/domain/zCells)
simpleGrading ($:domain.xDGrading 1 $:domain.zGrading) simpleGrading ($/domain/xDGrading 1 $/domain/zGrading)
); );
edges edges
@ -223,4 +223,7 @@ boundary
); );
// Cleanup
#remove ( domain aerofoil )
// ************************************************************************* // // ************************************************************************* //

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -18,30 +18,30 @@ FoamFile
dimensions [0 0 0 1 0 0 0]; dimensions [0 0 0 1 0 0 0];
internalField uniform $:outerInlet.T; internalField uniform $/outerInlet/T;
boundaryField boundaryField
{ {
innerInlet innerInlet
{ {
type fixedValue; type fixedValue;
value uniform $:innerInlet.T; value uniform $/innerInlet/T;
} }
outerInlet outerInlet
{ {
type fixedValue; type fixedValue;
value uniform $:outerInlet.T; value uniform $/outerInlet/T;
} }
outlet outlet
{ {
$:outlet.T; $/outlet/T;
} }
staticWalls staticWalls
{ {
$:wall.T; $/wall/T;
} }
movingWalls movingWalls

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -25,28 +25,28 @@ boundaryField
innerInlet innerInlet
{ {
type fixedValue; type fixedValue;
value uniform $:innerInlet.U; value uniform $/innerInlet/U;
} }
outerInlet outerInlet
{ {
type fixedValue; type fixedValue;
value uniform $:outerInlet.U; value uniform $/outerInlet/U;
} }
outlet outlet
{ {
$:outlet.U; $/outlet/U;
} }
staticWalls staticWalls
{ {
$:wall.U; $/wall/U;
} }
movingWalls movingWalls
{ {
$:movingWall.U; $/movingWall/U;
} }
#includeEtc "caseDicts/setConstraintTypes" #includeEtc "caseDicts/setConstraintTypes"

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -24,17 +24,17 @@ boundaryField
{ {
inlet inlet
{ {
$:calculated.alphat; $/calculated/alphat;
} }
outlet outlet
{ {
$:calculated.alphat; $/calculated/alphat;
} }
movingWalls movingWalls
{ {
$:wall.alphat; $/wall/alphat;
} }
staticWalls staticWalls

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -19,30 +19,30 @@ FoamFile
dimensions [0 2 -3 0 0 0 0]; dimensions [0 2 -3 0 0 0 0];
internalField uniform $:innerInlet.epsilon; internalField uniform $/innerInlet/epsilon;
boundaryField boundaryField
{ {
innerInlet innerInlet
{ {
type fixedValue; type fixedValue;
value uniform $:innerInlet.epsilon; value uniform $/innerInlet/epsilon;
} }
outerInlet outerInlet
{ {
type fixedValue; type fixedValue;
value uniform $:outerInlet.epsilon; value uniform $/outerInlet/epsilon;
} }
outlet outlet
{ {
$:outlet.epsilon; $/outlet/epsilon;
} }
staticWalls staticWalls
{ {
$:wall.epsilon; $/wall/epsilon;
} }
movingWalls movingWalls

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -18,30 +18,30 @@ FoamFile
dimensions [0 2 -2 0 0 0 0]; dimensions [0 2 -2 0 0 0 0];
internalField uniform $:innerInlet.k; internalField uniform $/innerInlet/k;
boundaryField boundaryField
{ {
innerInlet innerInlet
{ {
type fixedValue; type fixedValue;
value uniform $:innerInlet.k; value uniform $/innerInlet/k;
} }
outerInlet outerInlet
{ {
type fixedValue; type fixedValue;
value uniform $:outerInlet.k; value uniform $/outerInlet/k;
} }
outlet outlet
{ {
$:outlet.k; $/outlet/k;
} }
staticWalls staticWalls
{ {
$:wall.k; $/wall/k;
} }
movingWalls movingWalls

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -24,17 +24,17 @@ boundaryField
{ {
inlet inlet
{ {
$:calculated.nut; $/calculated/nut;
} }
outlet outlet
{ {
$:calculated.nut; $/calculated/nut;
} }
movingWalls movingWalls
{ {
$:wall.nut; $/wall/nut;
} }
staticWalls staticWalls

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -24,17 +24,17 @@ boundaryField
{ {
inlet inlet
{ {
$:inlet.p; $/inlet/p;
} }
outlet outlet
{ {
$:outlet.p; $/outlet/p;
} }
staticWalls staticWalls
{ {
$:wall.p; $/wall/p;
} }
movingWalls movingWalls

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -54,21 +54,21 @@ outlet
T T
{ {
type inletOutlet; type inletOutlet;
inletValue uniform $:outerInlet.T; inletValue uniform $/outerInlet/T;
value $inletValue; value $inletValue;
} }
k k
{ {
type inletOutlet; type inletOutlet;
inletValue uniform $:innerInlet.k; inletValue uniform $/innerInlet/k;
value $inletValue; value $inletValue;
} }
epsilon epsilon
{ {
type inletOutlet; type inletOutlet;
inletValue uniform $:innerInlet.epsilon; inletValue uniform $/innerInlet/epsilon;
value $inletValue; value $inletValue;
} }
} }
@ -94,13 +94,13 @@ wall
k k
{ {
type kqRWallFunction; type kqRWallFunction;
value uniform $:innerInlet.k; value uniform $/innerInlet/k;
} }
epsilon epsilon
{ {
type epsilonWallFunction; type epsilonWallFunction;
value uniform $:innerInlet.epsilon; value uniform $/innerInlet/epsilon;
} }
nut nut

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -26,7 +26,10 @@ solidBodyMotionFunction rotatingMotion;
origin (0 0 0); origin (0 0 0);
axis (0 0 1); axis (0 0 1);
omega $:meshMotionProperties.omega; omega $/meshMotionProperties/omega;
// Cleanup
#remove ( meshMotionProperties )
// ************************************************************************* // // ************************************************************************* //

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -56,82 +56,82 @@ geometry
cylinder cylinder
{ {
type cylinder; type cylinder;
point1 ($:aerofoil.xUpper -1e3 0); point1 ($/aerofoil/xUpper -1e3 0);
point2 ($:aerofoil.xUpper 1e3 0); point2 ($/aerofoil/xUpper 1e3 0);
radius $:domain.zMax; radius $/domain/zMax;
} }
} }
vertices vertices
( (
project ($aerofoil.xLower -0.1 $domain.zMin) (cylinder) project ($/aerofoil/xLower -0.1 $/domain/zMin) (cylinder)
($aerofoil.xTrail -0.1 $domain.zMin) ($/aerofoil/xTrail -0.1 $/domain/zMin)
($domain.xMax -0.1 $domain.zMin) ($/domain/xMax -0.1 $/domain/zMin)
project ($domain.xMin -0.1 $aerofoil.zLead) (cylinder) project ($/domain/xMin -0.1 $/aerofoil/zLead) (cylinder)
project ($aerofoil.xLead -0.1 $aerofoil.zLead) (aerofoil) project ($/aerofoil/xLead -0.1 $/aerofoil/zLead) (aerofoil)
project ($aerofoil.xTrail -0.1 $aerofoil.zTrail) (aerofoil) project ($/aerofoil/xTrail -0.1 $/aerofoil/zTrail) (aerofoil)
($domain.xMax -0.1 $aerofoil.zTrail) ($/domain/xMax -0.1 $/aerofoil/zTrail)
project ($aerofoil.xLower -0.1 $aerofoil.zLower) (aerofoil) project ($/aerofoil/xLower -0.1 $/aerofoil/zLower) (aerofoil)
project ($aerofoil.xUpper -0.1 $aerofoil.zUpper) (aerofoil) project ($/aerofoil/xUpper -0.1 $/aerofoil/zUpper) (aerofoil)
project ($aerofoil.xUpper -0.1 $domain.zMax) (aerofoil) project ($/aerofoil/xUpper -0.1 $/domain/zMax) (aerofoil)
project ($aerofoil.xTrail -0.1 $domain.zMax) (aerofoil) project ($/aerofoil/xTrail -0.1 $/domain/zMax) (aerofoil)
($domain.xMax -0.1 $domain.zMax) ($/domain/xMax -0.1 $/domain/zMax)
project ($aerofoil.xLower 0.1 $domain.zMin) (cylinder) project ($/aerofoil/xLower 0.1 $/domain/zMin) (cylinder)
($aerofoil.xTrail 0.1 $domain.zMin) ($/aerofoil/xTrail 0.1 $/domain/zMin)
($domain.xMax 0.1 $domain.zMin) ($/domain/xMax 0.1 $/domain/zMin)
project ($domain.xMin 0.1 $aerofoil.zLead) (cylinder) project ($/domain/xMin 0.1 $/aerofoil/zLead) (cylinder)
project ($aerofoil.xLead 0.1 $aerofoil.zLead) (aerofoil) project ($/aerofoil/xLead 0.1 $/aerofoil/zLead) (aerofoil)
project ($aerofoil.xTrail 0.1 $aerofoil.zTrail) (aerofoil) project ($/aerofoil/xTrail 0.1 $/aerofoil/zTrail) (aerofoil)
($domain.xMax 0.1 $aerofoil.zTrail) ($/domain/xMax 0.1 $/aerofoil/zTrail)
project ($aerofoil.xLower 0.1 $aerofoil.zLower) (aerofoil) project ($/aerofoil/xLower 0.1 $/aerofoil/zLower) (aerofoil)
project ($aerofoil.xUpper 0.1 $aerofoil.zUpper) (aerofoil) project ($/aerofoil/xUpper 0.1 $/aerofoil/zUpper) (aerofoil)
project ($aerofoil.xUpper 0.1 $domain.zMax) (aerofoil) project ($/aerofoil/xUpper 0.1 $/domain/zMax) (aerofoil)
project ($aerofoil.xTrail 0.1 $domain.zMax) (aerofoil) project ($/aerofoil/xTrail 0.1 $/domain/zMax) (aerofoil)
($domain.xMax 0.1 $domain.zMax) ($/domain/xMax 0.1 $/domain/zMax)
); );
blocks blocks
( (
hex ( 7 4 16 19 0 3 15 12) hex ( 7 4 16 19 0 3 15 12)
($:domain.xUCells 1 $:domain.zCells) ($/domain/xUCells 1 $/domain/zCells)
edgeGrading edgeGrading
( (
$:domain.leadGrading $:domain.leadGrading $:domain.xUGrading $:domain.xUGrading $/domain/leadGrading $/domain/leadGrading $/domain/xUGrading $/domain/xUGrading
1 1 1 1 1 1 1 1
$:domain.zGrading $:domain.zGrading $:domain.zGrading $:domain.zGrading $/domain/zGrading $/domain/zGrading $/domain/zGrading $/domain/zGrading
) )
hex ( 5 7 19 17 1 0 12 13) hex ( 5 7 19 17 1 0 12 13)
($:domain.xMCells 1 $:domain.zCells) ($/domain/xMCells 1 $/domain/zCells)
simpleGrading (1 1 $:domain.zGrading) simpleGrading (1 1 $/domain/zGrading)
hex ( 17 18 6 5 13 14 2 1) hex ( 17 18 6 5 13 14 2 1)
($:domain.xDCells 1 $:domain.zCells) ($/domain/xDCells 1 $/domain/zCells)
simpleGrading ($:domain.xDGrading 1 $:domain.zGrading) simpleGrading ($/domain/xDGrading 1 $/domain/zGrading)
hex ( 20 16 4 8 21 15 3 9) hex ( 20 16 4 8 21 15 3 9)
($:domain.xUCells 1 $:domain.zCells) ($/domain/xUCells 1 $/domain/zCells)
edgeGrading edgeGrading
( (
$:domain.leadGrading $:domain.leadGrading $:domain.xUGrading $:domain.xUGrading $/domain/leadGrading $/domain/leadGrading $/domain/xUGrading $/domain/xUGrading
1 1 1 1 1 1 1 1
$:domain.zGrading $:domain.zGrading $:domain.zGrading $:domain.zGrading $/domain/zGrading $/domain/zGrading $/domain/zGrading $/domain/zGrading
) )
hex ( 17 20 8 5 22 21 9 10) hex ( 17 20 8 5 22 21 9 10)
($:domain.xMCells 1 $:domain.zCells) ($/domain/xMCells 1 $/domain/zCells)
simpleGrading (1 1 $:domain.zGrading) simpleGrading (1 1 $/domain/zGrading)
hex ( 5 6 18 17 10 11 23 22) hex ( 5 6 18 17 10 11 23 22)
($:domain.xDCells 1 $:domain.zCells) ($/domain/xDCells 1 $/domain/zCells)
simpleGrading ($:domain.xDGrading 1 $:domain.zGrading) simpleGrading ($/domain/xDGrading 1 $/domain/zGrading)
); );
edges edges
@ -222,5 +222,7 @@ boundary
} }
); );
// Cleanup
#remove ( domain aerofoil )
// ************************************************************************* // // ************************************************************************* //

View File

@ -17,30 +17,30 @@ runApplication decomposePar
runParallel $(getApplication) runParallel $(getApplication)
#- Run with processorAgglomerator #- Run with processorAgglomerator
foamDictionary -entry solvers.p.processorAgglomerator -set 'masterCoarsest' system/fvSolution foamDictionary -entry solvers/p/processorAgglomerator -set masterCoarsest system/fvSolution
runParallel -s masterCoarsest $(getApplication) runParallel -s masterCoarsest $(getApplication)
#- Run with processorAgglomerator+nCellsInMasterLevel #- Run with processorAgglomerator+nCellsInMasterLevel
foamDictionary -entry solvers.p.nCellsInMasterLevel -set '1' system/fvSolution foamDictionary -entry solvers/p/nCellsInMasterLevel -set 1 system/fvSolution
runParallel -s nCellsInMasterLevel $(getApplication) runParallel -s nCellsInMasterLevel $(getApplication)
#- Run with processorAgglomerator - multiple masters #- Run with processorAgglomerator - multiple masters
foamDictionary -entry solvers.p.nMasters -set '2' system/fvSolution foamDictionary -entry solvers/p/nMasters -set 2 system/fvSolution
runParallel -s masterCoarsest2 $(getApplication) runParallel -s masterCoarsest2 $(getApplication)
#- Run with processorAgglomerator #- Run with processorAgglomerator
foamDictionary -entry solvers.p.processorAgglomerator -set 'procFaces' system/fvSolution foamDictionary -entry solvers/p/processorAgglomerator -set procFaces system/fvSolution
foamDictionary -entry solvers.p.nAgglomeratingCells -set 100 system/fvSolution foamDictionary -entry solvers/p/nAgglomeratingCells -set 100 system/fvSolution
runParallel -s procFaces $(getApplication) runParallel -s procFaces $(getApplication)
foamDictionary -entry solvers.p.nAgglomeratingCells -remove system/fvSolution foamDictionary -entry solvers/p/nAgglomeratingCells -remove system/fvSolution
#- Run with processorAgglomerator #- Run with processorAgglomerator
foamDictionary -entry solvers.p.processorAgglomerator -set 'eager' system/fvSolution foamDictionary -entry solvers/p/processorAgglomerator -set eager system/fvSolution
runParallel -s eager $(getApplication) runParallel -s eager $(getApplication)
#- Run with processorAgglomerator #- Run with processorAgglomerator
foamDictionary -entry solvers.p.processorAgglomerator -set 'manual' system/fvSolution foamDictionary -entry solvers/p/processorAgglomerator -set manual system/fvSolution
foamDictionary -entry solvers.p.processorAgglomeration -set '((9 ((0 1 2 3)(4 5 6 7))))' system/fvSolution foamDictionary -entry solvers/p/processorAgglomeration -set '((9 ((0 1 2 3)(4 5 6 7))))' system/fvSolution
runParallel -s manual $(getApplication) runParallel -s manual $(getApplication)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -48,9 +48,9 @@ plot_tau() {
href="0.0127" href="0.0127"
echo " # ccx tau_xx tau_yy tau_zz" > tauw.dat echo " # ccx tau_xx tau_yy tau_zz" > tauw.dat
foamDictionary -entry boundaryField.lowerWall.value -value "$timeDir"/Cx | \ foamDictionary -entry boundaryField/lowerWall/value -value "$timeDir"/Cx | \
sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' > Cx.$$ sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' > Cx.$$
foamDictionary -entry boundaryField.lowerWall.value -value "$timeDir"/wallShearStress | \ foamDictionary -entry boundaryField/lowerWall/value -value "$timeDir"/wallShearStress | \
sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' > tau.$$ sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' > tau.$$
paste -d ' ' Cx.$$ tau.$$ >> tauw.dat paste -d ' ' Cx.$$ tau.$$ >> tauw.dat
rm -f Cx.$$ tau.$$ rm -f Cx.$$ tau.$$

View File

@ -50,9 +50,9 @@ runApplication $(getApplication)
endTime=$(foamListTimes -latestTime) endTime=$(foamListTimes -latestTime)
# Create datasets for benchmark comparisons # Create datasets for benchmark comparisons
extractVal boundaryField.bump.value "$endTime/Cx" Cx.$$ extractVal boundaryField/bump/value "$endTime/Cx" Cx.$$
extractVal boundaryField.bump.value "$endTime/wallShearStress" tau.$$ extractVal boundaryField/bump/value "$endTime/wallShearStress" tau.$$
extractVal boundaryField.bump.value "$endTime/Cp" cp.$$ extractVal boundaryField/bump/value "$endTime/Cp" cp.$$
echo "# ccx tau_xx tau_yy tau_zz cp" > profiles.dat echo "# ccx tau_xx tau_yy tau_zz cp" > profiles.dat
paste -d ' ' Cx.$$ tau.$$ cp.$$ >> profiles.dat paste -d ' ' Cx.$$ tau.$$ cp.$$ >> profiles.dat

View File

@ -54,9 +54,9 @@ runApplication reconstructPar
endTime=$(foamListTimes -latestTime) endTime=$(foamListTimes -latestTime)
# Create datasets for benchmark comparisons # Create datasets for benchmark comparisons
extractVal boundaryField.bump.value "$endTime/Cx" Cx.$$ extractVal boundaryField/bump/value "$endTime/Cx" Cx.$$
extractVal boundaryField.bump.value "$endTime/wallShearStress" tau.$$ extractVal boundaryField/bump/value "$endTime/wallShearStress" tau.$$
extractVal boundaryField.bump.value "$endTime/Cp" cp.$$ extractVal boundaryField/bump/value "$endTime/Cp" cp.$$
echo "# ccx tau_xx tau_yy tau_zz cp" > profiles.dat echo "# ccx tau_xx tau_yy tau_zz cp" > profiles.dat
paste -d ' ' Cx.$$ tau.$$ cp.$$ >> profiles.dat paste -d ' ' Cx.$$ tau.$$ cp.$$ >> profiles.dat

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -33,29 +33,29 @@ geom
vertices vertices
( (
( $:geom.r0 0 0) ( $/geom/r0 0 0)
( 0 $geom.r0 0) ( 0 $/geom/r0 0)
($:geom.mr0 0 0) ($/geom/mr0 0 0)
( 0 $geom.mr0 0) ( 0 $/geom/mr0 0)
( $:geom.r1 0 0) ( $/geom/r1 0 0)
( 0 $geom.r1 0) ( 0 $/geom/r1 0)
($:geom.mr1 0 0) ($/geom/mr1 0 0)
( 0 $geom.mr1 0) ( 0 $/geom/mr1 0)
( $:geom.r0 0 1) ( $/geom/r0 0 1)
( 0 $geom.r0 1) ( 0 $/geom/r0 1)
($:geom.mr0 0 1) ($/geom/mr0 0 1)
( 0 $geom.mr0 1) ( 0 $/geom/mr0 1)
( $:geom.r1 0 1) ( $/geom/r1 0 1)
( 0 $geom.r1 1) ( 0 $/geom/r1 1)
($:geom.mr1 0 1) ($/geom/mr1 0 1)
( 0 $geom.mr1 1) ( 0 $/geom/mr1 1)
); );
blockInfo blockInfo
all all
($:geom.ntheta $:geom.nr 1) ($/geom/ntheta $/geom/nr 1)
simpleGrading (1 ((0.5 0.5 $:geom.g)(0.5 0.5 $:geom.invG)) 1); simpleGrading (1 ((0.5 0.5 $/geom/g)(0.5 0.5 $/geom/invG)) 1);
blocks blocks
( (
@ -123,4 +123,8 @@ mergePatchPairs
( (
); );
// Cleanup
#remove ( geom blockInfo )
// ************************************************************************* // // ************************************************************************* //

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -14,7 +14,7 @@ FoamFile
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
backgroundMesh domain
{ {
xMin -1.26; xMin -1.26;
xMax 1.26; xMax 1.26;
@ -31,24 +31,24 @@ scale 1;
vertices vertices
( (
($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMin) ($/domain/xMin $/domain/yMin $/domain/zMin)
($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMin) ($/domain/xMax $/domain/yMin $/domain/zMin)
($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMin) ($/domain/xMax $/domain/yMax $/domain/zMin)
($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMin) ($/domain/xMin $/domain/yMax $/domain/zMin)
($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMax) ($/domain/xMin $/domain/yMin $/domain/zMax)
($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMax) ($/domain/xMax $/domain/yMin $/domain/zMax)
($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMax) ($/domain/xMax $/domain/yMax $/domain/zMax)
($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMax) ($/domain/xMin $/domain/yMax $/domain/zMax)
); );
blocks blocks
( (
hex (0 1 2 3 4 5 6 7) hex (0 1 2 3 4 5 6 7)
( (
$:backgroundMesh.xCells $/domain/xCells
$:backgroundMesh.yCells $/domain/yCells
$:backgroundMesh.zCells $/domain/zCells
) )
simpleGrading (1 1 1) simpleGrading (1 1 1)
); );
@ -66,4 +66,7 @@ mergePatchPairs
); );
// Cleanup
#remove ( domain )
// ************************************************************************* // // ************************************************************************* //

View File

@ -50,9 +50,9 @@ runApplication $(getApplication)
endTime=$(foamListTimes -latestTime) endTime=$(foamListTimes -latestTime)
# Create datasets for benchmark comparisons # Create datasets for benchmark comparisons
extractVal boundaryField.bottomWall.value "$endTime/Cx" Cx.$$ extractVal boundaryField/bottomWall/value "$endTime/Cx" Cx.$$
extractVal boundaryField.bottomWall.value "$endTime/wallShearStress" tau.$$ extractVal boundaryField/bottomWall/value "$endTime/wallShearStress" tau.$$
extractVal boundaryField.bottomWall.value "$endTime/yPlus" yPlus.$$ extractVal boundaryField/bottomWall/value "$endTime/yPlus" yPlus.$$
echo "# ccx tau_xx tau_yy tau_zz y+" > profiles.dat echo "# ccx tau_xx tau_yy tau_zz y+" > profiles.dat
paste -d ' ' Cx.$$ tau.$$ yPlus.$$ >> profiles.dat paste -d ' ' Cx.$$ tau.$$ yPlus.$$ >> profiles.dat

View File

@ -54,9 +54,9 @@ runApplication reconstructPar
endTime=$(foamListTimes -latestTime) endTime=$(foamListTimes -latestTime)
# Create datasets for benchmark comparisons # Create datasets for benchmark comparisons
extractVal boundaryField.bottomWall.value "$endTime/Cx" Cx.$$ extractVal boundaryField/bottomWall/value "$endTime/Cx" Cx.$$
extractVal boundaryField.bottomWall.value "$endTime/wallShearStress" tau.$$ extractVal boundaryField/bottomWall/value "$endTime/wallShearStress" tau.$$
extractVal boundaryField.bottomWall.value "$endTime/yPlus" yPlus.$$ extractVal boundaryField/bottomWall/value "$endTime/yPlus" yPlus.$$
echo "# ccx tau_xx tau_yy tau_zz y+" > profiles.dat echo "# ccx tau_xx tau_yy tau_zz y+" > profiles.dat
paste -d ' ' Cx.$$ tau.$$ yPlus.$$ >> profiles.dat paste -d ' ' Cx.$$ tau.$$ yPlus.$$ >> profiles.dat

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -14,7 +14,7 @@ FoamFile
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
backgroundMesh domain
{ {
xMin -20; // L = 350 xMin -20; // L = 350
xMax 330; xMax 330;
@ -29,26 +29,27 @@ backgroundMesh
scale 1; scale 1;
// Note: uses older '.' syntax (to test compatibility)
vertices vertices
( (
($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMin) ($:domain.xMin $:domain.yMin $:domain.zMin)
($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMin) ($:domain.xMax $:domain.yMin $:domain.zMin)
($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMin) ($:domain.xMax $:domain.yMax $:domain.zMin)
($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMin) ($:domain.xMin $:domain.yMax $:domain.zMin)
($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMax) ($:domain.xMin $:domain.yMin $:domain.zMax)
($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMax) ($:domain.xMax $:domain.yMin $:domain.zMax)
($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMax) ($:domain.xMax $:domain.yMax $:domain.zMax)
($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMax) ($:domain.xMin $:domain.yMax $:domain.zMax)
); );
blocks blocks
( (
hex (0 1 2 3 4 5 6 7) hex (0 1 2 3 4 5 6 7)
( (
$:backgroundMesh.xCells $:domain.xCells
$:backgroundMesh.yCells $:domain.yCells
$:backgroundMesh.zCells $:domain.zCells
) )
simpleGrading (1 1 1) simpleGrading (1 1 1)
); );
@ -104,4 +105,7 @@ mergePatchPairs
); );
// Cleanup
#remove ( domain )
// ************************************************************************* // // ************************************************************************* //

View File

@ -18,13 +18,13 @@ mkdir -p 0
cp -f system/fvSchemes system/fvSchemes.bck cp -f system/fvSchemes system/fvSchemes.bck
# Run with basic # Run with basic
foamDictionary system/fvSchemes -entry geometry.type -set basic foamDictionary system/fvSchemes -entry geometry/type -set basic
runApplication -s basic snappyHexMesh runApplication -s basic snappyHexMesh
runApplication -s basic checkMesh -writeAllFields runApplication -s basic checkMesh -writeAllFields
foamListTimes -rm foamListTimes -rm
# Run with highAspectRatio # Run with highAspectRatio
foamDictionary system/fvSchemes -entry geometry.type -set highAspectRatio foamDictionary system/fvSchemes -entry geometry/type -set highAspectRatio
runApplication -s highAspectRatio snappyHexMesh runApplication -s highAspectRatio snappyHexMesh
runApplication -s highAspectRatio checkMesh -writeAllFields runApplication -s highAspectRatio checkMesh -writeAllFields

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2306 | | \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com | | \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -14,7 +14,7 @@ FoamFile
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
backgroundMesh domain
{ {
xMin -1.26; xMin -1.26;
xMax 1.26; xMax 1.26;
@ -31,24 +31,24 @@ scale 1;
vertices vertices
( (
($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMin) ($/domain/xMin $/domain/yMin $/domain/zMin)
($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMin) ($/domain/xMax $/domain/yMin $/domain/zMin)
($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMin) ($/domain/xMax $/domain/yMax $/domain/zMin)
($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMin) ($/domain/xMin $/domain/yMax $/domain/zMin)
($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMax) ($/domain/xMin $/domain/yMin $/domain/zMax)
($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMax) ($/domain/xMax $/domain/yMin $/domain/zMax)
($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMax) ($/domain/xMax $/domain/yMax $/domain/zMax)
($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMax) ($/domain/xMin $/domain/yMax $/domain/zMax)
); );
blocks blocks
( (
hex (0 1 2 3 4 5 6 7) hex (0 1 2 3 4 5 6 7)
( (
$:backgroundMesh.xCells $/domain/xCells
$:backgroundMesh.yCells $/domain/yCells
$:backgroundMesh.zCells $/domain/zCells
) )
simpleGrading (1 1 1) simpleGrading (1 1 1)
); );
@ -66,4 +66,7 @@ mergePatchPairs
); );
// Cleanup
#remove ( domain )
// ************************************************************************* // // ************************************************************************* //

View File

@ -18,14 +18,14 @@ runApplication decomposePar
#- Run with leak-detection (writes postProcessing/leakPath) but no closure #- Run with leak-detection (writes postProcessing/leakPath) but no closure
foamDictionary system/snappyHexMeshDict \ foamDictionary system/snappyHexMeshDict \
-entry castellatedMeshControls.useLeakClosure -set false -entry castellatedMeshControls/useLeakClosure -set false
runParallel -s leak snappyHexMesh runParallel -s leak snappyHexMesh
runParallel -s leak checkMesh runParallel -s leak checkMesh
cleanTimeDirectories cleanTimeDirectories
#- Run with leak-detection (writes postProcessing/leakPath) and closure #- Run with leak-detection (writes postProcessing/leakPath) and closure
foamDictionary system/snappyHexMeshDict \ foamDictionary system/snappyHexMeshDict \
-entry castellatedMeshControls.useLeakClosure -set true -entry castellatedMeshControls/useLeakClosure -set true
runParallel -s leak_and_closure snappyHexMesh runParallel -s leak_and_closure snappyHexMesh
runParallel -s leak_and_closure checkMesh runParallel -s leak_and_closure checkMesh

View File

@ -14,9 +14,9 @@ then
cp -f system/controlDict system/controlDict.orig cp -f system/controlDict system/controlDict.orig
foamDictionary system/controlDict -entry endTime -set 4 foamDictionary system/controlDict -entry endTime -set 4
foamDictionary system/controlDict -entry startTime -set 0.5 foamDictionary system/controlDict -entry startTime -set 0.5
foamDictionary 0.5/T.liquid -entry boundaryField.wall2.q -set 'uniform 300000' foamDictionary 0.5/T.liquid -entry boundaryField/wall1/q -set 'uniform 300000'
foamDictionary 0.5/T.liquid -entry boundaryField.wall1.q -set 'uniform 300000' foamDictionary 0.5/T.liquid -entry boundaryField/wall2/q -set 'uniform 300000'
foamDictionary 0.5/U.liquid -entry boundaryField.inlet.type -set 'fixedValue' foamDictionary 0.5/U.liquid -entry boundaryField/inlet/type -set fixedValue
runApplication -a $(getApplication) runApplication -a $(getApplication)
fi fi

View File

@ -14,9 +14,9 @@ then
cp -f system/controlDict system/controlDict.orig cp -f system/controlDict system/controlDict.orig
foamDictionary system/controlDict -entry endTime -set 4 foamDictionary system/controlDict -entry endTime -set 4
foamDictionary system/controlDict -entry startTime -set 0.5 foamDictionary system/controlDict -entry startTime -set 0.5
foamDictionary 0.5/T.liquid -entry boundaryField.wall2.q -set 'uniform 300000' foamDictionary 0.5/T.liquid -entry boundaryField/wall1/q -set 'uniform 300000'
foamDictionary 0.5/T.liquid -entry boundaryField.wall1.q -set 'uniform 300000' foamDictionary 0.5/T.liquid -entry boundaryField/wall2/q -set 'uniform 300000'
foamDictionary 0.5/U.liquid -entry boundaryField.inlet.type -set 'fixedValue' foamDictionary 0.5/U.liquid -entry boundaryField/inlet/type -set fixedValue
runApplication -a $(getApplication) runApplication -a $(getApplication)
fi fi

View File

@ -14,9 +14,9 @@ then
cp -f system/controlDict system/controlDict.orig cp -f system/controlDict system/controlDict.orig
foamDictionary system/controlDict -entry endTime -set 4 foamDictionary system/controlDict -entry endTime -set 4
foamDictionary system/controlDict -entry startTime -set 0.5 foamDictionary system/controlDict -entry startTime -set 0.5
foamDictionary 0.5/T.liquid -entry boundaryField.wall2.q -set 'uniform 300000' foamDictionary 0.5/T.liquid -entry boundaryField/wall1/q -set 'uniform 300000'
foamDictionary 0.5/T.liquid -entry boundaryField.wall1.q -set 'uniform 300000' foamDictionary 0.5/T.liquid -entry boundaryField/wall2/q -set 'uniform 300000'
foamDictionary 0.5/U.liquid -entry boundaryField.inlet.type -set 'fixedValue' foamDictionary 0.5/U.liquid -entry boundaryField/inlet/type -set fixedValue
runApplication -a $(getApplication) runApplication -a $(getApplication)
fi fi

View File

@ -343,7 +343,7 @@ plot_yPlus_vs_uPlus_all_setups() {
# few manipulations # few manipulations
endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value) endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value)
nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g') nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g')
tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField.bottom.value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6) tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField/bottom/value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6)
uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }') uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }')
sampleFiles[$n]="results/$setup/postProcessing/sampleU/$endTime/y_U.xy" sampleFiles[$n]="results/$setup/postProcessing/sampleU/$endTime/y_U.xy"
@ -398,7 +398,7 @@ plot_yPlus_vs_R_all_setups() {
# few manipulations # few manipulations
endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value) endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value)
nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g') nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g')
tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField.bottom.value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6) tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField/bottom/value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6)
uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }') uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }')
sampleFiles[$n]="results/$setup/postProcessing/sampleR/$endTime/y_turbulenceProperties:R.xy" sampleFiles[$n]="results/$setup/postProcessing/sampleR/$endTime/y_turbulenceProperties:R.xy"
@ -500,7 +500,7 @@ plot_yPlus_vs_epsilonPlus_all_setups() {
# few manipulations # few manipulations
endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value) endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value)
nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g') nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g')
tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField.bottom.value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6) tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField/bottom/value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6)
uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }') uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }')
sampleFiles[$n]="results/$setup/postProcessing/sampleEpsilon/$endTime/y_turbulenceProperties:epsilon.xy" sampleFiles[$n]="results/$setup/postProcessing/sampleEpsilon/$endTime/y_turbulenceProperties:epsilon.xy"
@ -555,7 +555,7 @@ plot_yPlus_vs_productionRatePlus_all_setups() {
# few manipulations # few manipulations
endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value) endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value)
nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g') nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g')
tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField.bottom.value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6) tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField/bottom/value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6)
uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }') uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }')
sampleFiles[$n]="results/$setup/postProcessing/sampleG/$endTime/y_productionRate.xy" sampleFiles[$n]="results/$setup/postProcessing/sampleG/$endTime/y_productionRate.xy"
@ -638,7 +638,7 @@ do
# few manipulations # few manipulations
endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value) endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value)
nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g') nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g')
tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField.bottom.value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6) tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField/bottom/value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6)
uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }') uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }')
plot_yPlus_vs_uPlus "$setup" "$endTime" "$nu" "$uTau" plot_yPlus_vs_uPlus "$setup" "$endTime" "$nu" "$uTau"

View File

@ -378,7 +378,7 @@ plot_yPlus_vs_uPlus_all_setups() {
# few manipulations # few manipulations
endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value) endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value)
nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g') nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g')
tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField.bottom.value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6) tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField/bottom/value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6)
uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }') uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }')
sampleFiles[$n]="results/$setup/postProcessing/sampleU/$endTime/y_U.xy" sampleFiles[$n]="results/$setup/postProcessing/sampleU/$endTime/y_U.xy"
@ -434,7 +434,7 @@ plot_yPlus_vs_R_all_setups() {
# few manipulations # few manipulations
endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value) endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value)
nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g') nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g')
tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField.bottom.value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6) tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField/bottom/value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6)
uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }') uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }')
sampleFiles[$n]="results/$setup/postProcessing/sampleR/$endTime/y_turbulenceProperties:R.xy" sampleFiles[$n]="results/$setup/postProcessing/sampleR/$endTime/y_turbulenceProperties:R.xy"
@ -537,7 +537,7 @@ plot_yPlus_vs_epsilonPlus_all_setups() {
# few manipulations # few manipulations
endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value) endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value)
nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g') nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g')
tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField.bottom.value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6) tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField/bottom/value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6)
uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }') uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }')
sampleFiles[$n]="results/$setup/postProcessing/sampleEpsilon/$endTime/y_turbulenceProperties:epsilon.xy" sampleFiles[$n]="results/$setup/postProcessing/sampleEpsilon/$endTime/y_turbulenceProperties:epsilon.xy"
@ -593,7 +593,7 @@ plot_yPlus_vs_productionRatePlus_all_setups() {
# few manipulations # few manipulations
endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value) endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value)
nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g') nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g')
tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField.bottom.value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6) tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField/bottom/value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6)
uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }') uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }')
sampleFiles[$n]="results/$setup/postProcessing/sampleG/$endTime/y_productionRate.xy" sampleFiles[$n]="results/$setup/postProcessing/sampleG/$endTime/y_productionRate.xy"
@ -678,7 +678,7 @@ do
RASModel=$(foamDictionary results/$setup/constant/turbulenceProperties -entry RAS.RASModel -value) RASModel=$(foamDictionary results/$setup/constant/turbulenceProperties -entry RAS.RASModel -value)
endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value) endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value)
nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g') nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g')
tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField.bottom.value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6) tau=$(foamDictionary results/$setup/$endTime/wallShearStress -entry boundaryField/bottom/value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6)
uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }') uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }')
plot_initial_iteration_residuals "$setup" plot_initial_iteration_residuals "$setup"