47 ) <<
"Discretisation scheme not specified" 49 <<
"Valid schemes are :" <<
endl 50 << MeshConstructorTablePtr_->sortedToc()
54 const word schemeName(schemeData);
61 typename MeshConstructorTable::iterator constructorIter =
62 MeshConstructorTablePtr_->find(schemeName);
64 if (constructorIter == MeshConstructorTablePtr_->end())
69 ) <<
"Unknown discretisation scheme " 70 << schemeName <<
nl <<
nl 71 <<
"Valid schemes are :" <<
endl 72 << MeshConstructorTablePtr_->sortedToc()
76 return constructorIter()(
mesh, schemeData);
94 ) <<
"Discretisation scheme not specified" 96 <<
"Valid schemes are :" <<
endl 97 << MeshConstructorTablePtr_->sortedToc()
101 const word schemeName(schemeData);
106 <<
"Discretisation scheme = " << schemeName <<
endl;
109 typename MeshFluxConstructorTable::iterator constructorIter =
110 MeshFluxConstructorTablePtr_->find(schemeName);
112 if (constructorIter == MeshFluxConstructorTablePtr_->end())
117 ) <<
"Unknown discretisation scheme " 118 << schemeName <<
nl <<
nl 119 <<
"Valid schemes are :" <<
endl 120 << MeshFluxConstructorTablePtr_->sortedToc()
124 return constructorIter()(
mesh, faceFlux, schemeData);
146 if (surfaceInterpolation::debug)
152 <<
" from cells to faces " 153 "without explicit correction" 172 "interpolate("+vf.
name()+
')',
183 sfi[fi] = lambda[fi]*vfi[P[fi]] + y[fi]*vfi[N[fi]];
216 template<
class SFType>
221 typename Foam::innerProduct<typename SFType::value_type, Type>::type,
233 if (surfaceInterpolation::debug)
239 <<
" from cells to faces " 240 "without explicit correction" 244 typedef typename Foam::innerProduct<typename SFType::value_type, Type>::type
260 "interpolate("+vf.
name()+
')',
269 const typename SFType::Internal& Sfi = Sf();
273 sfi[fi] = Sfi[fi] & (lambda[fi]*(vfi[P[fi]] - vfi[N[fi]]) + vfi[N[fi]]);
284 const typename SFType::Patch& pSf = Sf.boundaryField()[
pi];
325 typename Foam::innerProduct<Foam::vector, Type>::type,
336 if (surfaceInterpolation::debug)
342 <<
" from cells to faces" 350 typename Foam::innerProduct<Foam::vector, Type>::type,
370 typename Foam::innerProduct<Foam::vector, Type>::type,
385 typename Foam::innerProduct<Foam::vector, Type>::type,
391 return tSfDotinterpVf;
402 if (surfaceInterpolation::debug)
408 <<
" from cells to faces"
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Return the correction form of the given matrix.
#define forAll(list, i)
Loop across all elements in list.
const word & name() const
Return name.
void clear() const
If object pointer points to valid object:
errorManipArg< error, int > exit(error &err, const int errNo=1)
Mesh data needed to do the Finite Volume discretisation.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
T & ref() const
Return non-const reference or generate a fatal error.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
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.
dimensionedScalar lambda(viscosity->lookup("lambda"))
const labelUList & neighbour() const
Internal face neighbour.
const dimensionSet & dimensions() const
Return dimensions.
A class representing the concept of a GeometricField of 1 used to avoid unnecessary manipulations for...
Pre-declare SubField and related Field type.
A class for handling words, derived from string.
static tmp< surfaceInterpolationScheme< Type > > New(const fvMesh &mesh, Istream &schemeData)
Return new tmp interpolation scheme.
bool eof() const
Return true if end of input seen.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
static tmp< GeometricField< typename innerProduct< typename SFType::value_type, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate(const SFType &Sf, const GeometricField< Type, fvPatchField, volMesh > &vf, const tmp< surfaceScalarField > &tlambdas)
Return the face-interpolate of the given cell field.
Internal::FieldType & primitiveFieldRef()
Return a reference to the internal field.
const Mesh & mesh() const
Return mesh.
virtual ~surfaceInterpolationScheme()
Destructor.
volScalarField sf(fieldObject, mesh)
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &, const tmp< surfaceScalarField > &, const tmp< surfaceScalarField > &)
Return the face-interpolate of the given cell field.
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.
const labelUList & owner() const
Internal face owner.
Boundary & boundaryFieldRef()
Return a reference to the boundary field.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
Mesh data needed to do the Finite Volume discretisation.
A class for managing temporary objects.
label size() const
Return the number of elements in the UList.
Abstract base class for surface interpolation schemes.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
#define InfoInFunction
Report an information message using Foam::Info.