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* ctorPtr = MeshConstructorTable(schemeName);
73 *MeshConstructorTablePtr_
77 return ctorPtr(
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* ctorPtr = MeshFluxConstructorTable(schemeName);
118 *MeshFluxConstructorTablePtr_
122 return ctorPtr(
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.
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)....
bool eof() const noexcept
True if end of input seen.
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.
Finite area mesh. Used for 2-D non-Euclidian finite area method.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
void size(const label n)
Older name for setAddressableSize.
const Vector< label > N(dict.get< Vector< label >>("N"))
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.