31void Foam::zoneBlended<Type>::setSchemes
37 zoneNames_.resize(
dict.size());
38 schemePtrs_.resize(
dict.size());
41 surfaceInterpolationScheme<Type>::New(
mesh,
dict.lookup(
"default"));
43 zoneNames_[0] =
"default";
45 corrected_ = scheme(0).corrected();
49 for (
const auto&
e :
dict)
54 <<
"Entries must be given in zoneName-scheme pairs"
55 <<
abort(FatalIOError);
58 const word&
key =
e.keyword();
66 zoneNames_[schemei] =
key;
68 schemePtrs_[schemei] =
69 surfaceInterpolationScheme<Type>::New(
mesh,
e.stream());
71 corrected_ = corrected_ || scheme(schemei).corrected();
80void Foam::zoneBlended<Type>::setSchemes
83 const surfaceScalarField& faceFlux,
87 zoneNames_.resize(
dict.size());
88 schemePtrs_.resize(
dict.size());
91 surfaceInterpolationScheme<Type>::New
95 dict.lookup(
"default")
98 zoneNames_[0] =
"default";
100 corrected_ = scheme(0).corrected();
104 for (
const auto&
e :
dict)
109 <<
"Entries must be given in faceZoneName-scheme pairs"
110 <<
abort(FatalIOError);
113 const word&
key =
e.keyword();
115 if (key ==
"default")
121 zoneNames_[schemei] =
key;
123 schemePtrs_[schemei] =
124 surfaceInterpolationScheme<Type>::New
131 corrected_ = corrected_ || scheme(schemei).corrected();
140template<
class FieldType>
141void Foam::zoneBlended<Type>::setFaceZoneValues
144 const FieldType& src,
148 const auto&
mesh = dest.mesh();
149 const auto&
pbm =
mesh.boundaryMesh();
150 const auto& srcBf = src.boundaryField();
151 auto& destBf = dest.boundaryFieldRef();
153 for (
const label facei : fz)
155 if (
mesh.isInternalFace(facei))
157 dest[facei] = src[facei];
162 auto& pdest = destBf[pf.first()];
165 pdest[pf.second()] = srcBf[pf.first()][pf.second()];
173template<
class FieldType>
174void Foam::zoneBlended<Type>::zeroFaceZoneValues
180 const auto&
mesh = dest.mesh();
181 const auto&
pbm =
mesh.boundaryMesh();
182 auto& destBf = dest.boundaryFieldRef();
184 for (
const label facei : fz)
186 if (
mesh.isInternalFace(facei))
188 dest[facei] = pTraits<Type>::zero;
193 auto& pdest = destBf[pf.first()];
196 pdest[pf.second()] = pTraits<Type>::zero;
const polyBoundaryMesh & pbm
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
constexpr auto key(const Type &t) noexcept
Helper function to return the enum value.
Pair< label > labelPair
A pair of labels.
errorManip< error > abort(error &err)