mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
BUG: wallPoint: initialise to -GREAT to handle ami interpolation
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -42,25 +42,29 @@ inline bool wallPointYPlus::update
|
||||
{
|
||||
scalar dist2 = magSqr(pt - w2.origin());
|
||||
|
||||
scalar diff = distSqr() - dist2;
|
||||
|
||||
if (diff < 0)
|
||||
if (valid(td))
|
||||
{
|
||||
// already nearer to pt
|
||||
return false;
|
||||
scalar diff = distSqr() - dist2;
|
||||
|
||||
if (diff < 0)
|
||||
{
|
||||
// already nearer to pt
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((diff < SMALL) || ((distSqr() > SMALL) && (diff/distSqr() < tol)))
|
||||
{
|
||||
// don't propagate small changes
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if ((diff < SMALL) || ((distSqr() > SMALL) && (diff/distSqr() < tol)))
|
||||
{
|
||||
// don't propagate small changes
|
||||
return false;
|
||||
}
|
||||
else
|
||||
|
||||
// Either *this is not yet valid or w2 is closer
|
||||
{
|
||||
// only propagate if interesting (i.e. y+ < 100)
|
||||
scalar yPlus = Foam::sqrt(dist2)/w2.data();
|
||||
|
||||
|
||||
if (yPlus < yPlusCutOff)
|
||||
{
|
||||
// update with new values
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -101,8 +101,9 @@ Foam::label Foam::patchDataWave<TransferType>::getValues
|
||||
else
|
||||
{
|
||||
// Illegal/unset value. What to do with data?
|
||||
// Note: mag for now. Should maybe be member of TransferType?
|
||||
|
||||
distance_[cellI] = dist;
|
||||
distance_[cellI] = mag(dist);
|
||||
|
||||
//cellData_[cellI] = point::max;
|
||||
cellData_[cellI] = cellInfo[cellI].data();
|
||||
@ -149,7 +150,7 @@ Foam::label Foam::patchDataWave<TransferType>::getValues
|
||||
{
|
||||
// Illegal/unset value. What to do with data?
|
||||
|
||||
patchField[patchFaceI] = dist;
|
||||
patchField[patchFaceI] = mag(dist);
|
||||
|
||||
//patchDataField[patchFaceI] = point::max;
|
||||
patchDataField[patchFaceI] = faceInfo[meshFaceI].data();
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -43,7 +43,24 @@ inline bool wallPointData<Type>::update
|
||||
{
|
||||
scalar dist2 = magSqr(pt - w2.origin());
|
||||
|
||||
if (!valid(td))
|
||||
if (valid(td))
|
||||
{
|
||||
scalar diff = distSqr() - dist2;
|
||||
|
||||
if (diff < 0)
|
||||
{
|
||||
// already nearer to pt
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((diff < SMALL) || ((distSqr() > SMALL) && (diff/distSqr() < tol)))
|
||||
{
|
||||
// don't propagate small changes
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Either *this is not yet valid or w2 is closer
|
||||
{
|
||||
// current not yet set so use any value
|
||||
distSqr() = dist2;
|
||||
@ -52,29 +69,6 @@ inline bool wallPointData<Type>::update
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
scalar diff = distSqr() - dist2;
|
||||
|
||||
if (diff < 0)
|
||||
{
|
||||
// already nearer to pt
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((diff < SMALL) || ((distSqr() > SMALL) && (diff/distSqr() < tol)))
|
||||
{
|
||||
// don't propagate small changes
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
// update with new values
|
||||
distSqr() = dist2;
|
||||
origin() = w2.origin();
|
||||
data_ = w2.data();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -85,7 +85,7 @@ inline bool Foam::wallPoint::update
|
||||
inline Foam::wallPoint::wallPoint()
|
||||
:
|
||||
origin_(point::max),
|
||||
distSqr_(GREAT)
|
||||
distSqr_(-GREAT)
|
||||
{}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user