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 << MeshFluxConstructorTablePtr_->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]];
189 Boundary& sfbf =
sf.boundaryFieldRef();
216 template<
class SFType>
231 if (surfaceInterpolation::debug)
237 <<
" from cells to faces "
238 "without explicit correction"
258 "interpolate("+vf.
name()+
')',
267 const typename SFType::Internal& Sfi = Sf();
271 sfi[fi] = Sfi[fi] & (
lambda[fi]*(vfi[P[fi]] - vfi[N[fi]]) + vfi[N[fi]]);
281 const typename SFType::Patch& pSf = Sf.boundaryField()[
pi];
331 if (surfaceInterpolation::debug)
337 <<
" from cells to faces"
366 const tmp<VolField<Type>>& tvf
374 return tSfDotinterpVf;
385 if (surfaceInterpolation::debug)
391 <<
" from cells to faces"
#define forAll(list, i)
Loop across all elements in list.
const dimensionSet & dimensions() const
Return dimensions.
const Mesh & mesh() const
Return mesh.
Pre-declare SubField and related Field type.
Generic GeometricBoundaryField class.
Generic GeometricField class.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
const word & name() const
Return name.
bool eof() const
Return true if end of input seen.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
label size() const
Return the number of elements in the UList.
Mesh data needed to do the Finite Volume discretisation.
const labelUList & owner() const
Internal face owner.
const labelUList & neighbour() const
Internal face neighbour.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
A class representing the concept of a GeometricField of 1 used to avoid unnecessary manipulations for...
typeOfRank< typename pTraits< arg1 >::cmptType, direction(pTraits< arg1 >::rank)+direction(pTraits< arg2 >::rank) - 2 >::type type
Abstract base class for surface interpolation schemes.
static tmp< SurfaceField< typename innerProduct< typename SFType::value_type, Type >::type > > dotInterpolate(const SFType &Sf, const VolField< Type > &vf, const tmp< surfaceScalarField > &tlambdas)
Return the face-interpolate of the given cell field.
static tmp< SurfaceField< Type > > interpolate(const VolField< Type > &, const tmp< surfaceScalarField > &, const tmp< surfaceScalarField > &)
Return the face-interpolate of the given cell field.
virtual ~surfaceInterpolationScheme()
Destructor.
static tmp< surfaceInterpolationScheme< Type > > New(const fvMesh &mesh, Istream &schemeData)
Return new tmp interpolation scheme.
A class for managing temporary objects.
void clear() const
If object pointer points to valid object:
T & ref() const
Return non-const reference or generate a fatal error.
A class for handling words, derived from string.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
volScalarField sf(fieldObject, mesh)
dimensionedScalar lambda(viscosity->lookup("lambda"))
#define InfoInFunction
Report an information message using Foam::Info.
static tmp< SurfaceField< Type > > interpolate(const VolField< Type > &tvf, const surfaceScalarField &faceFlux, Istream &schemeData)
Interpolate field onto faces using scheme given by Istream.
static tmp< SurfaceField< typename innerProduct< vector, Type >::type > > dotInterpolate(const surfaceVectorField &Sf, const VolField< Type > &tvf)
Interpolate field onto faces.
errorManipArg< error, int > exit(error &err, const int errNo=1)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Return the correction form of the given matrix.
SurfaceField< vector > surfaceVectorField
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.