36 #ifndef LagrangianAverage_H
37 #define LagrangianAverage_H
49 class LagrangianAverage;
51 template<
class CellMesh,
class Type>
125 template<
template<
class>
class WeightPF,
template<
class>
class PsiPF>
135 template<
class CellMesh,
template<
class>
class WeightPsiPF>
216 #define defineLagrangianAverage(Type, nullArg) \
220 typedef LagrangianAverage<Type> Type##Average; \
222 defineNamedTemplateTypeNameAndDebug \
228 defineTemplateRunTimeSelectionTable \
236 #define makeLagrangianAverage(Type, AverageType) \
240 typedef LagrangianAverage<Type> Type##Average; \
242 namespace LagrangianAverages \
244 typedef AverageType<Type> Type##AverageType; \
246 defineNamedTemplateTypeNameAndDebug \
252 addToRunTimeSelectionTable \
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Basic Lagrangian averaging process in which values are averaged in the cells and then interpolated as...
virtual void correct(const LagrangianSubSubField< scalar > &weight, const LagrangianSubSubField< Type > &psi, const bool cache)=0
Correct weighted values in the average.
LagrangianAverage(const word &name, const LagrangianMesh &mesh, const dimensionSet &dimensions)
Construct with a name, for a mesh and with given dimensions.
virtual void add(const LagrangianSubSubField< scalar > &weight, const LagrangianSubSubField< Type > &psi, const bool cache)=0
Add weighted values to the average.
virtual void remove(const LagrangianSubSubField< scalar > &weight, const LagrangianSubSubField< Type > &psi)=0
Remove weighted values from the average.
virtual ~LagrangianAverage()
Destructor.
static autoPtr< LagrangianAverage< Type > > New(const word &type, const word &name, const DimensionedField< scalar, LagrangianMesh, WeightPF > &weight, const DimensionedField< Type, LagrangianMesh, PsiPF > &psi)
Select to average a field.
declareRunTimeSelectionTable(autoPtr, LagrangianAverage, dictionary,(const word &name, const LagrangianMesh &mesh, const dimensionSet &dimensions, const Field< scalar > &cellWeightSum),(name, mesh, dimensions, cellWeightSum))
Declare run-time constructor selection tables.
void operator=(const LagrangianAverage< Type > &)=delete
Disallow default bitwise assignment.
TypeName("LagrangianAverage")
Runtime type information.
Class containing Lagrangian geometry and topology.
Mesh that relates to a sub-section of a Lagrangian mesh. This is used to construct fields that relate...
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Dimension set for the base types.
A class for managing temporary objects.
A class for handling words, derived from string.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
const volScalarField & psi
const HashTable< dimensionSet > & dimensions()
Get the table of dimension sets.
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
autoPtr< LagrangianAverage< Type > > type