35 #ifndef LagrangianFieldSource_H
36 #define LagrangianFieldSource_H
53 class LagrangianSubMesh;
54 class LagrangianModel;
55 class LagrangianSource;
56 class LagrangianInjection;
59 class LagrangianFieldSource;
162 const word& fieldSourceType,
238 template<
class OtherType>
247 template<
class OtherType,
class OtherFieldSourceType>
255 template<
class OtherModelType>
262 template<
class OtherType>
271 template<
class OtherType>
289 friend Ostream& operator<< <Type>
308 #define addToLagrangianFieldSourceRunTimeSelection( \
309 TypeFieldSource, typeTypeFieldSource) \
310 addToRunTimeSelectionTable \
313 typeTypeFieldSource, \
318 #define addNullConstructableToLagrangianFieldSourceRunTimeSelection( \
319 TypeFieldSource, typeTypeFieldSource) \
320 addToRunTimeSelectionTable \
323 typeTypeFieldSource, \
326 addToLagrangianFieldSourceRunTimeSelection \
329 typeTypeFieldSource \
333 #define makeLagrangianTypeFieldSource( \
334 TypeFieldSource, typeTypeFieldSource) \
335 defineTypeNameAndDebug(typeTypeFieldSource, 0); \
336 addToLagrangianFieldSourceRunTimeSelection \
339 typeTypeFieldSource \
343 #define makeNullConstructableLagrangianTypeFieldSource( \
344 TypeFieldSource, typeTypeFieldSource) \
345 defineTypeNameAndDebug(typeTypeFieldSource, 0); \
346 addNullConstructableToLagrangianFieldSourceRunTimeSelection \
349 typeTypeFieldSource \
353 #define makeTemplateLagrangianTypeFieldSource(fieldType, type) \
354 defineNamedTemplateTypeNameAndDebug \
356 CAT4(type, Lagrangian, CAPITALIZE(fieldType), FieldSource), \
359 addToLagrangianFieldSourceRunTimeSelection \
361 CAT3(Lagrangian, CAPITALIZE(fieldType), FieldSource), \
362 CAT4(type, Lagrangian, CAPITALIZE(fieldType), FieldSource) \
366 #define makeNullConstructableTemplateLagrangianTypeFieldSource(fieldType, type)\
367 defineNamedTemplateTypeNameAndDebug \
369 CAT4(type, Lagrangian, CAPITALIZE(fieldType), FieldSource), \
372 addNullConstructableToLagrangianFieldSourceRunTimeSelection \
374 CAT3(Lagrangian, CAPITALIZE(fieldType), FieldSource), \
375 CAT4(type, Lagrangian, CAPITALIZE(fieldType), FieldSource) \
379 #define makeLagrangianFieldSources(type) \
380 FOR_ALL_FIELD_TYPES \
382 makeTemplateLagrangianTypeFieldSource, \
387 #define makeNullConstructableLagrangianFieldSources(type) \
388 FOR_ALL_FIELD_TYPES \
390 makeNullConstructableTemplateLagrangianTypeFieldSource, \
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Base class for Lagrangian source conditions.
const OtherFieldSourceType & fieldSourceCast(const word &name, const LagrangianModel &) const
Lookup and return another field source and then cast to a.
const dimensionSet & internalDimensions() const
Return internal dimensions reference.
virtual void write(Ostream &) const
Write.
static autoPtr< LagrangianFieldSource< Type > > New(const word &fieldSourceType, const regIOobject &)
Return a pointer to a new field source.
const objectRegistry & db() const
Return local objectRegistry.
tmp< LagrangianSubField< Type > > value(const LagrangianSource &, const LagrangianSubMesh &) const
Return the value for a continuous source.
const OtherModelType & modelCast(const LagrangianModel &) const
Cast a model to the given type. Handle errors.
TypeName("LagrangianFieldSource")
Runtime type information.
static int disallowGenericLagrangianFieldSource
Debug switch to disallow the use of genericLagrangianFieldSource.
tmp< LagrangianSubField< Type > > sourceCoeff(const LagrangianSource &, const LagrangianSubMesh &) const
Return the source coefficient.
virtual tmp< LagrangianSubField< Type > > sourceValue(const LagrangianSource &, const LagrangianSubMesh &) const
Return the source value.
virtual ~LagrangianFieldSource()
Destructor.
virtual tmp< LagrangianSubScalarField > internalCoeff(const LagrangianSource &, const LagrangianSubMesh &) const
Return the internal coefficient.
autoPtr< LagrangianFieldSource< Type > > clone() const
Disallow clone without setting the internal field reference.
LagrangianFieldSource(const regIOobject &)
Construct from internal field.
const LagrangianFieldSource< OtherType > & fieldSource(const word &name, const LagrangianModel &) const
Lookup and return another field source.
const LagrangianInternalDynamicField< Type > & internalField() const
Return internal field reference.
declareRunTimeSelectionTable(autoPtr, LagrangianFieldSource, null,(const regIOobject &iIo),(iIo))
Select given internal field.
Base class for Lagrangian injections. Minimal wrapper over LagrangianSource. Implements some utility ...
Base class for Lagrangian models.
Base class for Lagrangian sources. Minimal wrapper over LagrangianModel that provides an interface to...
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,...
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.
Registry of regIOobjects.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
A class for managing temporary objects.
A class for handling words, derived from string.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
Ostream & operator<<(Ostream &os, const fvConstraints &constraints)