mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Added the new 'cacheFields' entry to allow derived fields like 'grad(U)' to be
specified to be cached to avoid unnecessary recalculation.
This commit is contained in:
@ -29,14 +29,11 @@ License
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
namespace Foam
|
int Foam::fvSchemes::debug(Foam::debug::debugSwitch("fvSchemes", false));
|
||||||
{
|
|
||||||
|
|
||||||
int fvSchemes::debug(Foam::debug::debugSwitch("fvSchemes", false));
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
fvSchemes::fvSchemes(const objectRegistry& obr)
|
Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
|
||||||
:
|
:
|
||||||
IOdictionary
|
IOdictionary
|
||||||
(
|
(
|
||||||
@ -124,7 +121,12 @@ fvSchemes::fvSchemes(const objectRegistry& obr)
|
|||||||
ITstream(objectPath() + "::fluxRequired",
|
ITstream(objectPath() + "::fluxRequired",
|
||||||
tokenList())()
|
tokenList())()
|
||||||
),
|
),
|
||||||
defaultFluxRequired_(false)
|
defaultFluxRequired_(false),
|
||||||
|
cacheFields_
|
||||||
|
(
|
||||||
|
ITstream(objectPath() + "::cacheFields",
|
||||||
|
tokenList())()
|
||||||
|
)
|
||||||
{
|
{
|
||||||
read();
|
read();
|
||||||
}
|
}
|
||||||
@ -132,7 +134,7 @@ fvSchemes::fvSchemes(const objectRegistry& obr)
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
bool fvSchemes::read()
|
bool Foam::fvSchemes::read()
|
||||||
{
|
{
|
||||||
if (regIOobject::read())
|
if (regIOobject::read())
|
||||||
{
|
{
|
||||||
@ -329,6 +331,11 @@ bool fvSchemes::read()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dict.found("cacheFields"))
|
||||||
|
{
|
||||||
|
cacheFields_ = dict.subDict("cacheFields");
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -338,7 +345,7 @@ bool fvSchemes::read()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const dictionary& fvSchemes::schemesDict() const
|
const Foam::dictionary& Foam::fvSchemes::schemesDict() const
|
||||||
{
|
{
|
||||||
if (found("select"))
|
if (found("select"))
|
||||||
{
|
{
|
||||||
@ -351,7 +358,7 @@ const dictionary& fvSchemes::schemesDict() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ITstream& fvSchemes::ddtScheme(const word& name) const
|
Foam::ITstream& Foam::fvSchemes::ddtScheme(const word& name) const
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
@ -370,7 +377,7 @@ ITstream& fvSchemes::ddtScheme(const word& name) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ITstream& fvSchemes::d2dt2Scheme(const word& name) const
|
Foam::ITstream& Foam::fvSchemes::d2dt2Scheme(const word& name) const
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
@ -389,7 +396,7 @@ ITstream& fvSchemes::d2dt2Scheme(const word& name) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ITstream& fvSchemes::interpolationScheme(const word& name) const
|
Foam::ITstream& Foam::fvSchemes::interpolationScheme(const word& name) const
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
@ -412,7 +419,7 @@ ITstream& fvSchemes::interpolationScheme(const word& name) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ITstream& fvSchemes::divScheme(const word& name) const
|
Foam::ITstream& Foam::fvSchemes::divScheme(const word& name) const
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
@ -431,7 +438,7 @@ ITstream& fvSchemes::divScheme(const word& name) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ITstream& fvSchemes::gradScheme(const word& name) const
|
Foam::ITstream& Foam::fvSchemes::gradScheme(const word& name) const
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
@ -450,7 +457,7 @@ ITstream& fvSchemes::gradScheme(const word& name) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ITstream& fvSchemes::snGradScheme(const word& name) const
|
Foam::ITstream& Foam::fvSchemes::snGradScheme(const word& name) const
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
@ -469,7 +476,7 @@ ITstream& fvSchemes::snGradScheme(const word& name) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ITstream& fvSchemes::laplacianScheme(const word& name) const
|
Foam::ITstream& Foam::fvSchemes::laplacianScheme(const word& name) const
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
@ -488,7 +495,7 @@ ITstream& fvSchemes::laplacianScheme(const word& name) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool fvSchemes::fluxRequired(const word& name) const
|
bool Foam::fvSchemes::fluxRequired(const word& name) const
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
@ -506,8 +513,22 @@ bool fvSchemes::fluxRequired(const word& name) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
bool Foam::fvSchemes::cache(const word& name) const
|
||||||
|
{
|
||||||
|
if (debug)
|
||||||
|
{
|
||||||
|
Info<< "Lookup cache for " << name << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cacheFields_.found(name))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -79,6 +79,8 @@ class fvSchemes
|
|||||||
dictionary fluxRequired_;
|
dictionary fluxRequired_;
|
||||||
bool defaultFluxRequired_;
|
bool defaultFluxRequired_;
|
||||||
|
|
||||||
|
dictionary cacheFields_;
|
||||||
|
|
||||||
|
|
||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
|
|
||||||
@ -121,6 +123,8 @@ public:
|
|||||||
|
|
||||||
bool fluxRequired(const word& name) const;
|
bool fluxRequired(const word& name) const;
|
||||||
|
|
||||||
|
bool cache(const word& name) const;
|
||||||
|
|
||||||
|
|
||||||
// Read
|
// Read
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user