mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
BUG: FaceCellWave: do not enter/leaveDomain for collocated patches
This commit is contained in:
@ -55,14 +55,14 @@ namespace Foam
|
||||
{
|
||||
FaceCellWave<Type, TrackingData>& solver_;
|
||||
|
||||
const polyPatch& patch_;
|
||||
const cyclicAMIPolyPatch& patch_;
|
||||
|
||||
public:
|
||||
|
||||
combine
|
||||
(
|
||||
FaceCellWave<Type, TrackingData>& solver,
|
||||
const polyPatch& patch
|
||||
const cyclicAMIPolyPatch& patch
|
||||
)
|
||||
:
|
||||
solver_(solver),
|
||||
@ -80,10 +80,19 @@ namespace Foam
|
||||
{
|
||||
if (y.valid(solver_.data()))
|
||||
{
|
||||
label meshFaceI = -1;
|
||||
if (patch_.owner())
|
||||
{
|
||||
meshFaceI = patch_.start() + faceI;
|
||||
}
|
||||
else
|
||||
{
|
||||
meshFaceI = patch_.neighbPatch().start() + faceI;
|
||||
}
|
||||
x.updateFace
|
||||
(
|
||||
solver_.mesh(),
|
||||
patch_.start() + faceI,
|
||||
meshFaceI,
|
||||
y,
|
||||
solver_.propagationTol(),
|
||||
solver_.data()
|
||||
@ -725,17 +734,18 @@ void Foam::FaceCellWave<Type, TrackingData>::handleAMICyclicPatches()
|
||||
)
|
||||
);
|
||||
|
||||
if (!nbrPatch.parallel() || nbrPatch.separated())
|
||||
{
|
||||
// Adapt sendInfo for leaving domain
|
||||
const vectorField::subField fc = nbrPatch.faceCentres();
|
||||
forAll(sendInfo, i)
|
||||
{
|
||||
sendInfo[i].leaveDomain(mesh_, nbrPatch, i, fc[i], td_);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Transfer sendInfo to cycPatch
|
||||
combine<Type, TrackingData> cmb(*this, cycPatch);
|
||||
|
||||
cycPatch.interpolate(sendInfo, cmb, receiveInfo);
|
||||
}
|
||||
|
||||
@ -750,12 +760,15 @@ void Foam::FaceCellWave<Type, TrackingData>::handleAMICyclicPatches()
|
||||
);
|
||||
}
|
||||
|
||||
if (!cycPatch.parallel() || cycPatch.separated())
|
||||
{
|
||||
// Adapt receiveInfo for entering domain
|
||||
const vectorField::subField fc = cycPatch.faceCentres();
|
||||
forAll(receiveInfo, i)
|
||||
{
|
||||
receiveInfo[i].enterDomain(mesh_, cycPatch, i, fc[i], td_);
|
||||
}
|
||||
}
|
||||
|
||||
// Merge into global storage
|
||||
forAll(receiveInfo, i)
|
||||
|
||||
Reference in New Issue
Block a user