41 Info<<
"gradScheme<Type>::New" 42 "(const fvMesh& mesh, Istream& schemeData) : " 43 "constructing gradScheme<Type>" 51 "gradScheme<Type>::New" 52 "(const fvMesh& mesh, Istream& schemeData)",
54 ) <<
"Grad scheme not specified" <<
endl <<
endl 55 <<
"Valid grad schemes are :" <<
endl 56 << IstreamConstructorTablePtr_->sortedToc()
60 const word schemeName(schemeData);
62 typename IstreamConstructorTable::iterator cstrIter =
63 IstreamConstructorTablePtr_->find(schemeName);
65 if (cstrIter == IstreamConstructorTablePtr_->end())
69 "gradScheme<Type>::New" 70 "(const fvMesh& mesh, Istream& schemeData)",
72 ) <<
"Unknown grad scheme " << schemeName <<
nl <<
nl 73 <<
"Valid grad schemes are :" <<
endl 74 << IstreamConstructorTablePtr_->sortedToc()
78 return cstrIter()(
mesh, schemeData);
95 typename Foam::outerProduct<Foam::vector, Type>::type,
109 if (!this->
mesh().changing() && this->
mesh().cache(name))
111 if (!
mesh().objectRegistry::template foundObject<GradFieldType>(name))
113 solution::cachePrintMessage(
"Calculating and caching", name, vsf);
115 regIOobject::store(tgGrad.
ptr());
118 solution::cachePrintMessage(
"Retrieving", name, vsf);
119 GradFieldType& gGrad =
const_cast<GradFieldType&
> 121 mesh().objectRegistry::template lookupObject<GradFieldType>(
name)
124 if (gGrad.upToDate(vsf))
130 solution::cachePrintMessage(
"Deleting", name, vsf);
134 solution::cachePrintMessage(
"Recalculating", name, vsf);
137 solution::cachePrintMessage(
"Storing", name, vsf);
138 regIOobject::store(tgGrad.
ptr());
139 GradFieldType& gGrad =
const_cast<GradFieldType&
> 141 mesh().objectRegistry::template lookupObject<GradFieldType>
152 if (
mesh().objectRegistry::template foundObject<GradFieldType>(
name))
154 GradFieldType& gGrad =
const_cast<GradFieldType&
> 156 mesh().objectRegistry::template lookupObject<GradFieldType>
162 if (gGrad.ownedByRegistry())
164 solution::cachePrintMessage(
"Deleting", name, vsf);
170 solution::cachePrintMessage(
"Calculating", name, vsf);
171 return calcGrad(vsf, name);
181 typename Foam::outerProduct<Foam::vector, Type>::type,
191 return grad(vsf,
"grad(" + vsf.
name() +
')');
200 typename Foam::outerProduct<Foam::vector, Type>::type,
Mesh data needed to do the Finite Volume discretisation.
virtual ~gradScheme()
Destructor.
T * ptr() const
Return tmp pointer for reuse.
Mesh data needed to do the Finite Volume discretisation.
word name(const complex &)
Return a string representation of a complex.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
A class for handling words, derived from string.
errorManipArg< error, int > exit(error &err, const int errNo=1)
bool eof() const
Return true if end of input seen.
typeOfRank< typename pTraits< arg1 >::cmptType, int(pTraits< arg1 >::rank)+int(pTraits< arg2 >::rank) >::type type
Ostream & endl(Ostream &os)
Add newline and flush stream.
const word & name() const
Return name.
Generic GeometricField class.
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh > > grad(const GeometricField< Type, fvPatchField, volMesh > &, const word &name) const
Calculate and return the grad of the given field.
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh >> grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
#define FatalIOErrorIn(functionName, ios)
Report an error message using Foam::FatalIOError.
A class for managing temporary objects.
static tmp< gradScheme< Type > > New(const fvMesh &mesh, Istream &schemeData)
Return a pointer to a new gradScheme created on freestore.