ENH: wallDist - added option to evaluate every XXX steps

This commit is contained in:
Andrew Heather
2016-09-28 16:59:57 +01:00
parent 95c74f9b93
commit 5c4bd557cb
2 changed files with 37 additions and 5 deletions

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -98,7 +98,13 @@ Foam::wallDist::wallDist(const fvMesh& mesh, const word& patchTypeName)
static_cast<const fvSchemes&>(mesh).subDict(patchTypeName_ & "Dist")
.lookupOrDefault<Switch>("nRequired", false)
),
n_(volVectorField::null())
n_(volVectorField::null()),
updateInterval_
(
static_cast<const fvSchemes&>(mesh).subDict(patchTypeName_ & "Dist")
.lookupOrDefault<label>("updateInterval", 1)
),
requireUpdate_(true)
{
if (nRequired_)
{
@ -146,7 +152,13 @@ Foam::wallDist::wallDist
static_cast<const fvSchemes&>(mesh).subDict(patchTypeName_ & "Dist")
.lookupOrDefault<Switch>("nRequired", false)
),
n_(volVectorField::null())
n_(volVectorField::null()),
updateInterval_
(
static_cast<const fvSchemes&>(mesh).subDict(patchTypeName_ & "Dist")
.lookupOrDefault<label>("updateInterval", 1)
),
requireUpdate_(true)
{
if (nRequired_)
{
@ -185,8 +197,17 @@ const Foam::volVectorField& Foam::wallDist::n() const
bool Foam::wallDist::movePoints()
{
if (pdm_->movePoints())
if ((mesh_.time().timeIndex() % updateInterval_) == 0)
{
requireUpdate_ = true;
}
if (requireUpdate_ && pdm_->movePoints())
{
DebugInfo<< "Updating wall distance" << endl;
requireUpdate_ = false;
if (nRequired_)
{
return pdm_->correct(y_, n_.ref());
@ -206,6 +227,7 @@ bool Foam::wallDist::movePoints()
void Foam::wallDist::updateMesh(const mapPolyMesh& mpm)
{
pdm_->updateMesh(mpm);
requireUpdate_ = true;
movePoints();
}

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -37,6 +37,10 @@ Description
// Optional entry enabling the calculation
// of the normal-to-wall field
nRequired false;
// Optional entry delaying wall distance update to every n steps
// Default is 1 (update every step)
updateInterval 5;
}
\endverbatim
@ -90,6 +94,12 @@ class wallDist
//- Normal-to-wall field
mutable tmp<volVectorField> n_;
//- Update wall distance every updateInterval_ steps
const label updateInterval_;
//- Flag to indicate whether the wall distance requires updating
bool requireUpdate_;
// Private Member Functions