48 <<
"Discretisation scheme not specified\n\n"
50 << MeshConstructorTablePtr_->sortedToc()
54 const word schemeName(schemeData);
61 auto* ctorPtr = MeshConstructorTable(schemeName);
70 *MeshConstructorTablePtr_
74 return ctorPtr(
mesh, schemeData);
90 <<
"Discretisation scheme not specified"
92 <<
"Valid schemes are :" <<
endl
93 << MeshConstructorTablePtr_->sortedToc()
97 const word schemeName(schemeData);
104 auto* ctorPtr = MeshFluxConstructorTable(schemeName);
113 *MeshFluxConstructorTablePtr_
117 return ctorPtr(
mesh, faceFlux, schemeData);
132 if (surfaceInterpolation::debug)
138 <<
" from cells to faces without explicit correction"
159 "interpolate("+vf.
name()+
')',
171 for (label fi=0; fi<P.
size(); fi++)
173 sfi[fi] =
lambda[fi]*vfi[P[fi]] +
y[fi]*vfi[
N[fi]];
206template<
class SFType>
223 if (surfaceInterpolation::debug)
229 <<
" from cells to faces without explicit correction"
251 "interpolate("+vf.
name()+
')',
263 const typename SFType::Internal& Sfi = Sf();
265 for (label fi=0; fi<P.
size(); fi++)
267 sfi[fi] = Sfi[fi] & (
lambda[fi]*(vfi[P[fi]] - vfi[
N[fi]]) + vfi[
N[fi]]);
278 const typename SFType::Patch& pSf = Sf.boundaryField()[pi];
287 + (1.0 - pLambda)*vf.
boundaryField()[pi].patchNeighbourField()
332 if (surfaceInterpolation::debug)
338 <<
" from cells to faces"
350 > tsf = dotInterpolate(Sf, vf, weights(vf));
352 tsf.ref().oriented() = Sf.
oriented();
387 > tSfDotinterpVf = dotInterpolate(Sf, tvf());
390 return tSfDotinterpVf;
401 if (surfaceInterpolation::debug)
407 <<
" from cells to faces"
const dimensionSet & dimensions() const
Return dimensions.
const Mesh & mesh() const
Return mesh.
const orientedType & oriented() const noexcept
Return oriented type.
Generic templated field type.
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
Internal & ref(const bool updateAccessTime=true)
Return a reference to the dimensioned internal field.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const word & name() const noexcept
Return the object name.
const objectRegistry & db() const noexcept
Return the local objectRegistry.
const fileName & instance() const noexcept
Read access to instance path component.
bool eof() const noexcept
True if end of input seen.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
void size(const label n)
Older name for setAddressableSize.
Mesh data needed to do the Finite Volume discretisation.
A class representing the concept of a GeometricField of 1 used to avoid unnecessary manipulations for...
bool interpolate() const noexcept
Same as isPointData()
Abstract base class for surface interpolation schemes.
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.
Mesh data needed to do the Finite Volume discretisation.
A class for managing temporary objects.
void clear() const noexcept
type
Volume classification types.
A class for handling words, derived from Foam::string.
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
#define InfoInFunction
Report an information message using Foam::Info.
Ostream & endl(Ostream &os)
Add newline and flush stream.
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
errorManipArg< error, int > exit(error &err, const int errNo=1)
dimensionedScalar lambda("lambda", dimTime/sqr(dimLength), laminarTransport)
#define forAll(list, i)
Loop across all elements in list.
const Vector< label > N(dict.get< Vector< label > >("N"))