34 template<
class Type,
class CombineOp>
43 addProfiling(ami,
"AMIInterpolation::interpolateToTarget");
45 if (
fld.size() != srcAddress_.size())
48 <<
"Supplied field size is not equal to source patch size" <<
nl
49 <<
" source patch = " << srcAddress_.size() <<
nl
50 <<
" target patch = " << tgtAddress_.size() <<
nl
51 <<
" supplied field = " <<
fld.size()
55 if (lowWeightCorrection_ > 0)
57 if (defaultValues.
size() != tgtAddress_.size())
60 <<
"Employing default values when sum of weights falls below "
61 << lowWeightCorrection_
62 <<
" but supplied default field size is not equal to target "
64 <<
" default values = " << defaultValues.
size() <<
nl
65 <<
" target patch = " << tgtAddress_.size() <<
nl
70 result.
setSize(tgtAddress_.size());
81 if (tgtWeightsSum_[facei] < lowWeightCorrection_)
83 result[facei] = defaultValues[facei];
87 const labelList& faces = tgtAddress_[facei];
88 const scalarList& weights = tgtWeights_[facei];
92 cop(result[facei], facei, work[faces[i]], weights[i]);
101 if (tgtWeightsSum_[facei] < lowWeightCorrection_)
103 result[facei] = defaultValues[facei];
107 const labelList& faces = tgtAddress_[facei];
108 const scalarList& weights = tgtWeights_[facei];
112 cop(result[facei], facei,
fld[faces[i]], weights[i]);
120 template<
class Type,
class CombineOp>
124 const CombineOp& cop,
129 addProfiling(ami,
"AMIInterpolation::interpolateToSource");
131 if (
fld.size() != tgtAddress_.size())
134 <<
"Supplied field size is not equal to target patch size" <<
nl
135 <<
" source patch = " << srcAddress_.size() <<
nl
136 <<
" target patch = " << tgtAddress_.size() <<
nl
137 <<
" supplied field = " <<
fld.size()
141 if (lowWeightCorrection_ > 0)
143 if (defaultValues.
size() != srcAddress_.size())
146 <<
"Employing default values when sum of weights falls below "
147 << lowWeightCorrection_
148 <<
" but supplied default field size is not equal to source "
149 <<
"patch size" <<
nl
150 <<
" default values = " << defaultValues.
size() <<
nl
151 <<
" source patch = " << srcAddress_.size() <<
nl
156 result.
setSize(srcAddress_.size());
167 if (srcWeightsSum_[facei] < lowWeightCorrection_)
169 result[facei] = defaultValues[facei];
173 const labelList& faces = srcAddress_[facei];
174 const scalarList& weights = srcWeights_[facei];
178 cop(result[facei], facei, work[faces[i]], weights[i]);
187 if (srcWeightsSum_[facei] < lowWeightCorrection_)
189 result[facei] = defaultValues[facei];
193 const labelList& faces = srcAddress_[facei];
194 const scalarList& weights = srcWeights_[facei];
198 cop(result[facei], facei,
fld[faces[i]], weights[i]);
206 template<
class Type,
class CombineOp>
210 const CombineOp& cop,
228 template<
class Type,
class CombineOp>
232 const CombineOp& cop,
236 return interpolateToSource(tFld(), cop, defaultValues);
240 template<
class Type,
class CombineOp>
244 const CombineOp& cop,
262 template<
class Type,
class CombineOp>
266 const CombineOp& cop,
270 return interpolateToTarget(tFld(), cop, defaultValues);
292 return interpolateToSource(tFld(),
plusEqOp<Type>(), defaultValues);
314 return interpolateToTarget(tFld(),
plusEqOp<Type>(), defaultValues);