45 db().time().userUnits(),
57 db().time().userUnits(),
64 if (volumetricFlowRate_.valid() == massFlowRate_.valid())
67 <<
"keywords volumetricFlowRate and massFlowRate both "
68 << (volumetricFlowRate_.valid() ?
"" :
"un") <<
"defined in "
69 <<
"dictionary " <<
dict.name()
83 volumetricFlowRate_(field.volumetricFlowRate_, false),
84 massFlowRate_(field.massFlowRate_, false)
105 const scalar t1 = db().time().value();
106 const scalar t0 = t1 - db().time().deltaTValue();
114 volumetricFlowRate_.
valid(), v,
115 massFlowRate_.
valid(), m
120 if (volumetricFlowRate_.valid())
125 volumetricFlowRate_->integral(t0, t1)
128 return V/size()/
sum(v()/size());
135 massFlowRate_->integral(t0, t1)
138 return M/size()/
sum(m()/size());
147 if (volumetricFlowRate_.valid())
164 LagrangianScalarFieldSource,
Macros for easy insertion into run-time selection tables.
Run-time selectable general function of one variable.
Base class for Lagrangian injections. Minimal wrapper over LagrangianSource. Implements some utility ...
Mesh that relates to a sub-section of a Lagrangian mesh. This is used to construct fields that relate...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
This source condition sets the values of the number field to recover a specified volumetric or mass f...
virtual void write(Ostream &) const
Write.
virtual tmp< LagrangianSubScalarField > value(const LagrangianInjection &, const LagrangianSubMesh &) const
Return the value for an instantaneous injection.
flowRateNumberLagrangianScalarFieldSource(const regIOobject &, const dictionary &dict)
Construct from internal field and dictionary.
virtual ~flowRateNumberLagrangianScalarFieldSource()
Destructor.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
A class for managing temporary objects.
bool valid() const
Is this temporary object valid,.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
errorManipArg< error, int > exit(error &err, const int errNo=1)
const dimensionSet dimMassFlux
const dimensionSet dimVolumetricFlux
void writeEntry(Ostream &os, const HashTable< T, Key, Hash > &ht)
const dimensionSet dimVolume
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
const dimensionSet dimMass
makeLagrangianTypeFieldSource(LagrangianVectorFieldSource, coneDiskVelocityLagrangianVectorFieldSource)