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" 174 "interpolate("+vf.
name()+
')',
188 sfi[fi] = lambda[fi]*vfi[P[fi]] + y[fi]*vfi[N[fi]];
221 template<
class SFType>
226 typename Foam::innerProduct<typename SFType::value_type, Type>::type,
238 if (surfaceInterpolation::debug)
244 <<
" from cells to faces " 245 "without explicit correction" 249 typedef typename Foam::innerProduct<typename SFType::value_type, Type>::type
267 "interpolate("+vf.
name()+
')',
279 const typename SFType::Internal& Sfi = Sf();
283 sfi[fi] = Sfi[fi] & (lambda[fi]*(vfi[P[fi]] - vfi[N[fi]]) + vfi[N[fi]]);
294 const typename SFType::Patch& pSf = Sf.boundaryField()[
pi];
335 typename Foam::innerProduct<Foam::vector, Type>::type,
346 if (surfaceInterpolation::debug)
352 <<
" from cells to faces" 360 typename Foam::innerProduct<Foam::vector, Type>::type,
380 typename Foam::innerProduct<Foam::vector, Type>::type,
395 typename Foam::innerProduct<Foam::vector, Type>::type,
401 return tSfDotinterpVf;
412 if (surfaceInterpolation::debug)
418 <<
" 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.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
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.
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.
const fileName & instance() const
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.
dimensionedScalar lambda(laminarTransport.lookup("lambda"))
A class for managing temporary objects.
const objectRegistry & db() const
Return the local objectRegistry.
label size() const
Return the number of elements in the UList.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
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.