Go to the documentation of this file.
49 <<
"constructing edgeInterpolationScheme<Type>"
56 <<
"Discretisation scheme not specified" <<
nl <<
nl
57 <<
"Valid schemes are :" <<
nl
58 << MeshConstructorTablePtr_->sortedToc()
62 const word schemeName(schemeData);
64 auto cstrIter = MeshConstructorTablePtr_->cfind(schemeName);
66 if (!cstrIter.found())
73 *MeshConstructorTablePtr_
77 return cstrIter()(
mesh, schemeData);
93 <<
"constructing edgeInterpolationScheme<Type>"
100 <<
"Discretisation scheme not specified"
102 <<
"Valid schemes are :" <<
endl
103 << MeshConstructorTablePtr_->sortedToc()
107 const word schemeName(schemeData);
109 auto cstrIter = MeshFluxConstructorTablePtr_->cfind(schemeName);
111 if (!cstrIter.found())
118 *MeshFluxConstructorTablePtr_
122 return cstrIter()(
mesh, faceFlux, schemeData);
150 <<
" from areas to edges "
151 "without explicit correction"
172 "interpolate("+vf.name()+
')',
184 for (label fi=0; fi<P.
size(); ++fi)
188 const tensor& Te = curT[0];
189 const tensor& TP = curT[1];
190 const tensor& TN = curT[2];
219 for (label i=0; i<size; ++i)
222 mesh.edgeTransformTensors()[start + i];
224 const tensor& Te = curT[0];
225 const tensor& TP = curT[1];
226 const tensor& TN = curT[2];
268 <<
" from area to edges "
269 "without explicit correction"
288 "interpolate("+vf.name()+
')',
300 for (label eI = 0; eI < P.
size(); ++eI)
304 const tensor& Te = curT[0];
305 const tensor& TP = curT[1];
306 const tensor& TN = curT[2];
329 label size = vfb[
pi].patch().size();
330 label start = vfb[
pi].patch().start();
337 for (label i=0; i<size; ++i)
340 mesh.edgeTransformTensors()[start + i];
342 const tensor& Te = curT[0];
343 const tensor& TP = curT[1];
344 const tensor& TN = curT[2];
351 + (1 - pLambda[i])*
transform(TN, pNgbVf[i])
385 <<
" from area to edges "
386 "without explicit correction"
405 "interpolate("+vf.name()+
')',
417 for (label eI = 0; eI < P.
size(); ++eI)
419 sfi[eI] =
lambda[eI]*vfi[P[eI]] + (1 -
lambda[eI])*vfi[
N[eI]];
431 tsf.
ref().boundaryFieldRef()[
pi] =
460 <<
" from areas to edges"
489 <<
" from area to edges "
494 euclidianInterpolate(vf, weights(vf));
int debug
Static debugging option.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
#define InfoInFunction
Report an information message using Foam::Info.
static tmp< GeometricField< Type, faePatchField, edgeMesh > > euclidianInterpolate(const GeometricField< Type, faPatchField, areaMesh > &, const tmp< edgeScalarField > &)
Return the euclidian edge-interpolate of the given area field.
A class for handling words, derived from Foam::string.
void clear() const noexcept
faePatchField<Type> abstract base class. This class gives a fat-interface to all derived classes cove...
A class for managing temporary objects.
bool eof() const
Return true if end of input seen.
Ostream & endl(Ostream &os)
Add newline and flush stream.
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
const Internal & internalField() const
Return a const-reference to the dimensioned internal field.
dimensionSet transform(const dimensionSet &ds)
Return the argument; transformations do not change the dimensions.
#define forAll(list, i)
Loop across all elements in list.
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
Generic templated field type.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
dimensionedScalar lambda("lambda", dimTime/sqr(dimLength), laminarTransport)
errorManipArg< error, int > exit(error &err, const int errNo=1)
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field.
static tmp< GeometricField< Type, faePatchField, edgeMesh > > interpolate(const GeometricField< Type, faPatchField, areaMesh > &, const tmp< edgeScalarField > &, const tmp< edgeScalarField > &)
Return the face-interpolate of the given cell field.
constexpr scalar pi(M_PI)
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
Tensor< Cmpt > T() const
Return non-Hermitian transpose.
void size(const label n) noexcept
Override size to be inconsistent with allocated storage.
Finite area mesh. Used for 2-D non-Euclidian finite area method.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
const Vector< label > N(dict.get< Vector< label >>("N"))
Generic GeometricField class.
static tmp< edgeInterpolationScheme< Type > > New(const faMesh &mesh, Istream &schemeData)
Return new tmp interpolation scheme.
static tmp< GeometricField< Type, faePatchField, edgeMesh > > interpolate(const GeometricField< Type, faPatchField, areaMesh > &tvf, const edgeScalarField &faceFlux, Istream &schemeData)
Interpolate field onto faces using scheme given by Istream.
virtual ~edgeInterpolationScheme()
const Boundary & boundaryField() const
Return const-reference to the boundary field.