Commit 5976e79c authored by Henry Weller's avatar Henry Weller
Browse files

surfaceInterpolation:localMin,localMax: Add support for consistent interpolation on coupled BCs

Resolves bug-report http://bugs.openfoam.org/view.php?id=2100
parent 71addd7b
......@@ -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;
}
};
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment