38#ifndef Foam_fvcSurfaceOps_H
39#define Foam_fvcSurfaceOps_H
51#define INPLACE_PRODUCT_OPERATOR(product, CombineOp, Op, OpFunc) \
53template<class Type1, class Type2> \
56 Field<typename product<Type1, Type2>::type>& result, \
57 const UList<Type1>& f1, \
58 const UList<Type2>& f2 \
61 typedef typename product<Type1, Type2>::type resultType; \
62 TFOR_ALL_F_OP_F_OP_F \
63 (resultType, result, CombineOp, Type1, f1, Op, Type2, f2) \
70#undef INPLACE_PRODUCT_OPERATOR
83 template<
class Type,
class FType,
class ResultType,
class CellToFaceOp>
89 const CellToFaceOp& cop,
106 const CellToFaceOp& cop,
114 template<
class Type,
class ResultType,
class CellToFaceOp>
119 const CellToFaceOp& cop,
126 template<
class Type,
class FType,
class ResultType,
class CellToFaceOp>
132 const CellToFaceOp& cop,
155 const CellToFaceOp& cop,
163 template<
class Type,
class ResultType,
class CellToFaceOp>
168 const CellToFaceOp& cop,
176 template<
class Type,
class ResultType,
class CellToFaceOp>
182 const CellToFaceOp& cop,
188 template<
class Type,
class ResultType,
class CellToFaceOp>
195 const CellToFaceOp& cop,
202 template<
class Type,
class GType,
class ResultType,
class CellToFaceOp>
211 const CellToFaceOp& cop,
236 const CellToFaceOp& cop,
243 template<
class Type,
class GType,
class ResultType,
class CellToFaceOp>
254 const CellToFaceOp& cop,
264 template<
class Type,
class ResultType,
class CellToFaceOp>
270 const CellToFaceOp& cop,
Generic GeometricField class.
#define INPLACE_PRODUCT_OPERATOR(product, CombineOp, Op, OpFunc)
In-place operations on Fields. Add to FieldFunctions.C ?
Namespace of functions to calculate explicit derivatives.
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.
void GaussOp(const surfaceScalarField &lambdas, const GeometricField< Type, fvPatchField, volMesh > &vf, const CombineOp &cop, GeometricField< ResultType, fvPatchField, volMesh > &result)
void surfaceOp(const GeometricField< Type, fvPatchField, volMesh > &vf, const surfaceVectorField &ownLs, const surfaceVectorField &neiLs, const CombineOp &cop, GeometricField< ResultType, fvPatchField, volMesh > &result)
tmp< GeometricField< Type, fvPatchField, volMesh > > surfaceSum(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
void surfaceSnSum(const surfaceScalarField &deltaCoeffs, const GeometricField< Type, fvPatchField, volMesh > &vf, const CellToFaceOp &cop, GeometricField< ResultType, fvPatchField, volMesh > &result, const bool doCorrectBoundaryConditions)
sum of snGrad
GeometricField< vector, fvsPatchField, surfaceMesh > surfaceVectorField
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
void multiplyAdd(Field< typename outerProduct< Type1, Type2 >::type > &result, const UList< Type1 > &f1, const UList< Type2 > &f2)
static void doCorrectBoundaryConditions(bool correctBCs, VolumeField< Type > &field)
void multiplySubtract(Field< typename outerProduct< Type1, Type2 >::type > &result, const UList< Type1 > &f1, const UList< Type2 > &f2)
Forward declarations of the specialisations of Field<T> for scalar, vector and tensor.
Forwards and collection of common volume field types.