mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
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:
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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());
|
||||||
|
|
||||||
|
|||||||
@ -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, '/');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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 )
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -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 )
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -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 )
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -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 )
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -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 )
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 )
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -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 )
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -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)
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -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.$$
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 )
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -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 )
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 )
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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 )
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user