mirror of
https://github.com/OpenFOAM/OpenFOAM-6.git
synced 2025-12-08 06:57:46 +00:00
surfaceInterpolation:localMin,localMax: Add support for consistent interpolation on coupled BCs
Resolves bug-report http://bugs.openfoam.org/view.php?id=2100
This commit is contained in:
@ -138,14 +138,6 @@ public:
|
||||
);
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>& vff = tvff.ref();
|
||||
|
||||
typename GeometricField<Type, fvsPatchField, surfaceMesh>::
|
||||
Boundary& vffbf = vff.boundaryFieldRef();
|
||||
|
||||
forAll(vffbf, patchi)
|
||||
{
|
||||
vffbf[patchi] = vf.boundaryField()[patchi];
|
||||
}
|
||||
|
||||
const labelUList& own = mesh.owner();
|
||||
const labelUList& nei = mesh.neighbour();
|
||||
|
||||
@ -154,6 +146,33 @@ public:
|
||||
vff[facei] = max(vf[own[facei]], vf[nei[facei]]);
|
||||
}
|
||||
|
||||
typename GeometricField<Type, fvsPatchField, surfaceMesh>::
|
||||
Boundary& bff = vff.boundaryFieldRef();
|
||||
|
||||
forAll(bff, patchi)
|
||||
{
|
||||
const fvPatchField<Type>& pf = vf.boundaryField()[patchi];
|
||||
Field<Type>& pff = bff[patchi];
|
||||
|
||||
if (pf.coupled())
|
||||
{
|
||||
tmp<Field<Type>> tpif(pf.patchInternalField());
|
||||
const Field<Type>& pif = tpif();
|
||||
|
||||
tmp<Field<Type>> tpnf(pf.patchNeighbourField());
|
||||
const Field<Type>& pnf = tpnf();
|
||||
|
||||
forAll(pff, i)
|
||||
{
|
||||
pff[i] = max(pif[i], pnf[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pff = pf;
|
||||
}
|
||||
}
|
||||
|
||||
return tvff;
|
||||
}
|
||||
};
|
||||
|
||||
@ -138,14 +138,6 @@ public:
|
||||
);
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>& vff = tvff.ref();
|
||||
|
||||
typename GeometricField<Type, fvsPatchField, surfaceMesh>::
|
||||
Boundary& vffbf = vff.boundaryFieldRef();
|
||||
|
||||
forAll(vffbf, patchi)
|
||||
{
|
||||
vffbf[patchi] = vf.boundaryField()[patchi];
|
||||
}
|
||||
|
||||
const labelUList& own = mesh.owner();
|
||||
const labelUList& nei = mesh.neighbour();
|
||||
|
||||
@ -154,6 +146,33 @@ public:
|
||||
vff[facei] = minMod(vf[own[facei]], vf[nei[facei]]);
|
||||
}
|
||||
|
||||
typename GeometricField<Type, fvsPatchField, surfaceMesh>::
|
||||
Boundary& bff = vff.boundaryFieldRef();
|
||||
|
||||
forAll(bff, patchi)
|
||||
{
|
||||
const fvPatchField<Type>& pf = vf.boundaryField()[patchi];
|
||||
Field<Type>& pff = bff[patchi];
|
||||
|
||||
if (pf.coupled())
|
||||
{
|
||||
tmp<Field<Type>> tpif(pf.patchInternalField());
|
||||
const Field<Type>& pif = tpif();
|
||||
|
||||
tmp<Field<Type>> tpnf(pf.patchNeighbourField());
|
||||
const Field<Type>& pnf = tpnf();
|
||||
|
||||
forAll(pff, i)
|
||||
{
|
||||
pff[i] = minMod(pif[i], pnf[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pff = pf;
|
||||
}
|
||||
}
|
||||
|
||||
return tvff;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user