36 const surfaceScalarField& faceFlux,
40 return surfaceInterpolationScheme<Type>::New
52 const surfaceScalarField& faceFlux,
56 return surfaceInterpolationScheme<Type>::New
60 faceFlux.mesh().interpolationScheme(name)
72 return surfaceInterpolationScheme<Type>::New
87 return surfaceInterpolationScheme<Type>::New
90 mesh.interpolationScheme(name)
99 const GeometricField<Type, fvPatchField, volMesh>& vf,
100 const surfaceScalarField& faceFlux,
104 if (surfaceInterpolation::debug)
107 <<
"interpolating GeometricField<Type, fvPatchField, volMesh> "
108 << vf.name() <<
endl;
111 return scheme<Type>(faceFlux, schemeData)().
interpolate(vf);
119 const GeometricField<Type, fvPatchField, volMesh>& vf,
120 const surfaceScalarField& faceFlux,
124 if (surfaceInterpolation::debug)
127 <<
"interpolating GeometricField<Type, fvPatchField, volMesh> "
128 << vf.name() <<
" using " <<
name <<
endl;
131 return scheme<Type>(faceFlux, name)().
interpolate(vf);
138 const tmp<GeometricField<Type, fvPatchField, volMesh>>& tvf,
139 const surfaceScalarField& faceFlux,
143 tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsf =
155 const GeometricField<Type, fvPatchField, volMesh>& vf,
156 const tmp<surfaceScalarField>& tFaceFlux,
160 tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsf =
172 const tmp<GeometricField<Type, fvPatchField, volMesh>>& tvf,
173 const tmp<surfaceScalarField>& tFaceFlux,
177 tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsf =
191 const GeometricField<Type, fvPatchField, volMesh>& vf,
195 if (surfaceInterpolation::debug)
198 <<
"interpolating GeometricField<Type, fvPatchField, volMesh> "
199 << vf.name() <<
endl;
202 return scheme<Type>(vf.mesh(), schemeData)().
interpolate(vf);
209 const GeometricField<Type, fvPatchField, volMesh>& vf,
213 if (surfaceInterpolation::debug)
216 <<
"interpolating GeometricField<Type, fvPatchField, volMesh> "
217 << vf.name() <<
" using " <<
name
221 return scheme<Type>(vf.mesh(), name)().
interpolate(vf);
228 const tmp<GeometricField<Type, fvPatchField, volMesh>>& tvf,
232 tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsf =
245 const GeometricField<Type, fvPatchField, volMesh>& vf
248 if (surfaceInterpolation::debug)
251 <<
"interpolating GeometricField<Type, fvPatchField, volMesh> "
252 << vf.name() <<
" using run-time selected scheme"
256 return interpolate(vf,
"interpolate(" + vf.name() +
')');
264 const tmp<GeometricField<Type, fvPatchField, volMesh>>& tvf
267 tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsf =
278 const FieldField<fvPatchField, Type>& fvpff
281 FieldField<fvsPatchField, Type>* fvspffPtr
283 new FieldField<fvsPatchField, Type>(fvpff.size())
286 forAll(*fvspffPtr, patchi)
291 fvsPatchField<Type>::NewCalculatedType(fvpff[patchi].
patch()).ptr()
293 (*fvspffPtr)[patchi] = fvpff[patchi];
296 return tmp<FieldField<fvsPatchField, Type>>(fvspffPtr);
304 const tmp<FieldField<fvPatchField, Type>>& tfvpff
307 tmp<FieldField<fvsPatchField, Type>> tfvspff =
interpolate(tfvpff());
325 const surfaceVectorField& Sf,
326 const GeometricField<Type, fvPatchField, volMesh>& vf
329 if (surfaceInterpolation::debug)
332 <<
"interpolating GeometricField<Type, fvPatchField, volMesh> "
333 << vf.name() <<
" using run-time selected scheme"
340 "dotInterpolate(" + Sf.name() +
',' + vf.name() +
')'
341 )().dotInterpolate(Sf, vf);
357 const surfaceVectorField& Sf,
358 const tmp<GeometricField<Type, fvPatchField, volMesh>>& tvf
369 > tsf = dotInterpolate(Sf, tvf());
Generic GeometricField class.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
Mesh data needed to do the Finite Volume discretisation.
A class for managing temporary objects.
type
Volume classification types.
#define InfoInFunction
Report an information message using Foam::Info.
const std::string patch
OpenFOAM patch number as a std::string.
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &tvf, const surfaceScalarField &faceFlux, Istream &schemeData)
Interpolate field onto faces using scheme given by Istream.
static tmp< surfaceInterpolationScheme< Type > > scheme(const surfaceScalarField &faceFlux, Istream &schemeData)
Return weighting factors for scheme given from Istream.
static tmp< GeometricField< typename innerProduct< vector, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate(const surfaceVectorField &Sf, const GeometricField< Type, fvPatchField, volMesh > &tvf)
Interpolate field onto faces.
Ostream & endl(Ostream &os)
Add newline and flush stream.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
#define forAll(list, i)
Loop across all elements in list.