GeometricField.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2026 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::GeometricField
26 
27 Description
28  Generic GeometricField class.
29 
30 SourceFiles
31  GeometricFieldI.H
32  GeometricField.C
33  GeometricFieldFunctions.H
34  GeometricFieldFunctions.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef GeometricField_H
39 #define GeometricField_H
40 
41 #include "GeometricFieldFwd.H"
42 #include "GeometricBoundaryField.H"
43 #include "GeometricFieldSources.H"
44 
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 
47 namespace Foam
48 {
49 
50 class dictionary;
51 
52 // Forward declaration of friend functions and operators
53 
54 template<class Type, class GeoMesh, template<class> class PrimitiveField>
55 Ostream& operator<<
56 (
57  Ostream&,
59 );
60 
61 template<class Type, class GeoMesh, template<class> class PrimitiveField>
62 Ostream& operator<<
63 (
64  Ostream&,
66 );
67 
68 
69 /*---------------------------------------------------------------------------*\
70  Class GeometricField Declaration
71 \*---------------------------------------------------------------------------*/
72 
73 template<class Type, class GeoMesh, template<class> class PrimitiveField>
74 class GeometricField
75 :
76  public DimensionedField<Type, GeoMesh, PrimitiveField>,
77  public OldTimeField<GeometricField<Type, GeoMesh, PrimitiveField>>
78 {
79  // Private Member Functions
80 
81  //- Read from file if it is present
82  bool readIfPresent();
83 
84 
85 public:
86 
87  // Public Typedefs
88 
89  //- Value type
90  typedef Type Type_;
91 
92  //- Geometric mesh type
93  typedef GeoMesh GeoMesh_;
94 
95  //- Base mesh type from which GeoMesh is constructed
96  typedef typename GeoMesh::Mesh Mesh;
97 
98  //- Type of the internal field from which this GeometricField is derived
100 
101  //- Type of the field from which this GeometricField is derived
103 
104  //- Type of the patch field of which the Boundary is composed
105  typedef typename GeoMesh::template PatchField<Type> Patch;
106 
107  //- Type of the boundary field
109 
110  //- Type of the field source of which the Sources is composed
111  typedef typename GeoMesh::template FieldSource<Type> Source;
112 
113  //- Type of the field sources
115 
116  //- Component type of the elements of the field
117  typedef typename PrimitiveField<Type>::cmptType cmptType;
118 
119 
120 private:
121 
122  // Private Data
123 
124  //- Pointer to previous iteration (used for under-relaxation)
125  mutable GeometricField<Type, GeoMesh, Field>* fieldPrevIterPtr_;
126 
127  //- Boundary Type field containing boundary field values
128  Boundary boundaryField_;
129 
130  //- Type field sources containing field source values
131  Sources sources_;
132 
133 
134  // Private Member Functions
135 
136  //- Read the field from the dictionary
137  void readFields(const dictionary&);
138 
139  //- Read the field - create the field dictionary on-the-fly
140  void readFields();
141 
142 
143 public:
144 
145  //- Runtime type information
146  TypeName("GeometricField");
147 
148 
149  //- Declare friendship with other geometric fields
150  template<class Type2, class GeoMesh2, template<class> class PrimitiveField2>
151  friend class GeometricField;
152 
153 
154  // Static Member Functions
155 
156  //- Return a null geometric field
157  inline static const
159 
160 
161  // Constructors
162 
163  //- Constructor given IOobject, mesh, dimensions and patch field type.
164  // This allocates storage for the field but not values.
165  // Used only within this class to create TEMPORARY variables
167  (
168  const IOobject&,
169  const GeoMesh&,
170  const dimensionSet&,
171  const word& patchFieldType = Patch::calculatedType()
172  );
173 
174  //- Constructor given IOobject, mesh, dimensions and patch field types.
175  // This allocates storage for the field but not values.
176  // Used only within this class to create TEMPORARY variables
178  (
179  const IOobject&,
180  const GeoMesh&,
181  const dimensionSet&,
182  const wordList& wantedPatchTypes,
183  const wordList& actualPatchTypes = wordList(),
184  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
185  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
186  );
187 
188  //- Constructor given IOobject, mesh, dimensioned<Type>
189  // and patch field type.
191  (
192  const IOobject&,
193  const GeoMesh&,
194  const dimensioned<Type>&,
195  const word& patchFieldType = Patch::calculatedType()
196  );
197 
198  //- Constructor given IOobject, mesh, dimensioned<Type>
199  // and patch field types.
201  (
202  const IOobject&,
203  const GeoMesh&,
204  const dimensioned<Type>&,
205  const wordList& wantedPatchTypes,
206  const wordList& actualPatchTypes = wordList(),
207  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
208  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
209  );
210 
211  //- Constructor from components
213  (
214  const IOobject&,
215  const Internal&,
216  const PtrList<Patch>&,
218  );
219 
220  //- Constructor from components
222  (
223  const IOobject&,
224  const GeoMesh&,
225  const dimensionSet&,
226  const PrimitiveField<Type>&,
227  const PtrList<Patch>&,
229  );
230 
231  //- Construct and read given IOobject
232  GeometricField(const IOobject&, const GeoMesh&);
233 
234  //- Construct from dictionary
235  GeometricField(const IOobject&, const GeoMesh&, const dictionary&);
236 
237  //- Copy constructor
239 
240  //- Copy constructor
241  template<template<class> class PrimitiveField2>
242  explicit GeometricField
243  (
245  );
246 
247  //- Move constructor
249 
250  //- Construct as copy of tmp
252  (
254  );
255 
256  //- Construct as copy resetting IO parameters
257  template<template<class> class PrimitiveField2>
259  (
260  const IOobject&,
262  );
263 
264  //- Construct as copy of tmp resetting IO parameters
266  (
267  const IOobject&,
269  );
270 
271  //- Construct as copy resetting name
272  template<template<class> class PrimitiveField2>
274  (
275  const word& newName,
277  );
278 
279  //- Construct as copy of tmp resetting name
281  (
282  const word& newName,
284  );
285 
286  //- Construct as copy resetting IO parameters and patch field type
287  template<template<class> class PrimitiveField2>
289  (
290  const IOobject&,
292  const word& patchFieldType
293  );
294 
295  //- Construct as copy of tmp resetting IO parameters
296  // and patch field type
298  (
299  const IOobject&,
301  const word& patchFieldType
302  );
303 
304  //- Constructor from internal field and patch field type
305  template<template<class> class PrimitiveField2>
307  (
308  const IOobject&,
310  const word& patchFieldType
311  );
312 
313  //- Constructor from temporary internal field and patch field type
315  (
316  const IOobject&,
317  const tmp<Internal>&,
318  const word& patchFieldType
319  );
320 
321  //- Construct as copy resetting IO parameters and patch field types
322  template<template<class> class PrimitiveField2>
324  (
325  const IOobject&,
327  const wordList& patchFieldTypes,
328  const wordList& actualPatchTypes = wordList(),
329  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
330  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
331  );
332 
333  //- Construct as copy of tmp resetting IO parameters
334  // and patch field types
336  (
337  const IOobject&,
339  const wordList& patchFieldTypes,
340  const wordList& actualPatchTypes = wordList(),
341  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
342  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
343  );
344 
345  //- Construct from IOobject, internal field and patch field types
346  template<template<class> class PrimitiveField2>
348  (
349  const IOobject&,
351  const wordList& patchFieldTypes,
352  const wordList& actualPatchTypes = wordList(),
353  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
354  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
355  );
356 
357  //- Construct from IOobject, tmp internal field and patch field types
359  (
360  const IOobject&,
361  const tmp<Internal>&,
362  const wordList& patchFieldTypes,
363  const wordList& actualPatchTypes = wordList(),
364  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
365  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
366  );
367 
368  //- Clone
370 
371  //- Clone un-sliced
373  cloneUnSliced() const;
374 
375  //- Return a temporary field constructed from name,
376  // internal field and list of patch fields
378  (
379  const word& name,
380  const Internal&,
381  const PtrList<Patch>&,
383  );
384 
385  //- Return a temporary field constructed from name, mesh, dimensionSet
386  // and patch field type
388  (
389  const word& name,
390  const GeoMesh&,
391  const dimensionSet&,
392  const word& patchFieldType = Patch::calculatedType()
393  );
394 
395  //- Return a temporary field constructed from mesh, dimensioned<Type>
396  // and patch field type
398  (
399  const word& name,
400  const GeoMesh&,
401  const dimensioned<Type>&,
402  const word& patchFieldType = Patch::calculatedType()
403  );
404 
405  //- Return a temporary field constructed from mesh, dimensioned<Type>
406  // and patch field types
408  (
409  const word& name,
410  const GeoMesh&,
411  const dimensioned<Type>&,
412  const wordList& patchFieldTypes,
413  const wordList& actualPatchTypes = wordList(),
414  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
415  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
416  );
417 
418  //- Rename temporary field and return
420  (
421  const word& newName,
423  );
424 
425  //- Rename field, reset patch field type and return
426  template<template<class> class PrimitiveField2>
428  (
429  const word& newName,
431  const word& patchFieldType
432  );
433 
434  //- Rename temporary field, reset patch field type and return
436  (
437  const word& newName,
439  const word& patchFieldType
440  );
441 
442  //- Return a temporary field constructed from name,
443  // internal field and patch field type
444  template<template<class> class PrimitiveField2>
446  (
447  const word& name,
449  const word& patchFieldType
450  );
451 
452  //- Return a temporary field constructed from name,
453  // temporary internal field and patch field type
455  (
456  const word& name,
457  const tmp<Internal>&,
458  const word& patchFieldType
459  );
460 
461  //- Rename and reset patch fields types of field and return
462  template<template<class> class PrimitiveField2>
464  (
465  const word& newName,
467  const wordList& patchFieldTypes,
468  const wordList& actualPatchTypes = wordList(),
469  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
470  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
471  );
472 
473  //- Rename and reset patch fields types of temporary field and return
475  (
476  const word& newName,
478  const wordList& patchFieldTypes,
479  const wordList& actualPatchTypes = wordList(),
480  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
481  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
482  );
483 
484  //- Return a temporary field constructed from IOobject,
485  // internal field and patch field types
486  template<template<class> class PrimitiveField2>
488  (
489  const word& newName,
491  const wordList& patchFieldTypes,
492  const wordList& actualPatchTypes = wordList(),
493  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
494  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
495  );
496 
497  //- Return a temporary field constructed from IOobject,
498  // temporary internal field and patch field types
500  (
501  const word& newName,
502  const tmp<Internal>&,
503  const wordList& patchFieldTypes,
504  const wordList& actualPatchTypes = wordList(),
505  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
506  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
507  );
508 
509 
510  //- Destructor
511  virtual ~GeometricField();
512 
513 
514  // Member Functions
515 
516  //- Return a reference to the dimensioned internal field
517  // Note: this increments the event counter and checks the
518  // old-time fields; avoid in loops.
520 
521  //- Return a const-reference to the dimensioned internal field
522  inline const Internal& internalField() const;
523 
524  //- Return a const-reference to the dimensioned internal field
525  // of a "vol" field. Useful in the formulation of source-terms
526  // for FV equations
527  inline const Internal& v() const;
528 
529  //- Return a reference to the primitive field
530  // Note: this increments the event counter and checks the
531  // old-time fields; avoid in loops.
533 
534  //- Return a const-reference to the primitive field
535  inline const typename Internal::FieldType& primitiveField() const;
536 
537  //- Return a reference to the boundary field
538  // Note: this increments the event counter and checks the
539  // old-time fields; avoid in loops.
541 
542  //- Return a reference to the boundary field without storing old times
543  // Note: this increments the event counter; avoid in loops.
545 
546  //- Return const-reference to the boundary field
547  inline const Boundary& boundaryField() const;
548 
549  //- Return a reference to the sources
550  // Note: this increments the event counter and checks the
551  // old-time fields; avoid in loops.
552  Sources& sourcesRef();
553 
554  //- Return const-reference to the sources
555  inline const Sources& sources() const;
556 
557  //- Store the field as the previous iteration value
558  void storePrevIter() const;
559 
560  //- Delete the previous iteration field
561  void clearPrevIter();
562 
563  //- Return previous iteration field
565 
566  //- Use old-time methods from the base class
568 
569  //- Correct boundary field
571 
572  //- Reset the field contents to the given field
573  // Used for mesh to mesh mapping
574  template<template<class> class PrimitiveField2>
576 
577  //- Reset the field contents to the given tmp-field
578  // Used for mesh to mesh mapping
580 
581  //- Reset the field contents to the given tmp-field
582  // Used for mesh to mesh mapping
583  template<template<class> class PrimitiveField2>
585 
586  //- Does the field need a reference level for solution
587  bool needReference() const;
588 
589  //- Return a component of the field
591  (
592  const direction
593  ) const;
594 
595  //- WriteData member function required by regIOobject
596  bool writeData(Ostream&) const;
597 
598  //- Return transpose (only if it is a tensor field)
600 
601  //- Relax field (for steady-state solution).
602  // alpha >= 1 : no relaxation
603  // alpha < 1 : relaxation
604  void relax(const scalar alpha);
605 
606  //- Return the field relaxation factor read from fvSolution
607  // or 1 if not specified
608  scalar relaxationFactor() const;
609 
610  //- Relax current field with respect to the cached previous iteration.
611  // Relaxation factor is read from fvSolution
612  void relax();
613 
614  //- Relax given field with respect to the current field
615  // and reset the field to the result
616  template<template<class> class PrimitiveField2>
617  void relax
618  (
620  const scalar alpha
621  );
622 
623  //- Relax given field with respect to the current field
624  // and reset the field to the result
625  // Relaxation factor is read from fvSolution
626  template<template<class> class PrimitiveField2>
628 
629  //- Select the final iteration parameters if `final' is true
630  // by returning the field name + "Final"
631  // otherwise the standard parameters by returning the field name
632  word select(bool final) const;
633 
634  //- Helper function to write the min and max to an Ostream
635  void writeMinMax(Ostream& os) const;
636 
637 
638  // Member function *this operators
639 
640  void negate();
641 
642  //- Replace a component field of the field
643  template<template<class> class PrimitiveField2>
644  void replace
645  (
646  const direction,
648  );
649 
650  //- Replace a component field of the field
651  template<template<class> class PrimitiveField2>
652  void replace
653  (
654  const direction,
656  );
657 
658  //- Replace a component field of the field
659  void replace(const direction, const dimensioned<cmptType>&);
660 
661  void max(const dimensioned<Type>&);
662 
663  void min(const dimensioned<Type>&);
664 
665  void maxMin
666  (
667  const dimensioned<Type>& minDt,
668  const dimensioned<Type>& maxDt
669  );
670 
671 
672  // Member Operators
673 
674  //- Return a const-reference to the dimensioned internal field
675  // Useful in the formulation of source-terms for FV equations
676  inline const Internal& operator()() const;
677 
678  void operator=
679  (
681  );
682  void operator=
683  (
685  );
686  template<template<class> class PrimitiveField2>
687  void operator=
688  (
690  );
691  void operator=
692  (
694  );
695  template<template<class> class PrimitiveField2>
696  void operator=
697  (
699  );
700  void operator=(const dimensioned<Type>&);
701  void operator=(const zero&);
702 
703  template<template<class> class PrimitiveField2>
704  void operator==
705  (
707  );
708  void operator==
709  (
711  );
712  template<template<class> class PrimitiveField2>
713  void operator==
714  (
716  );
717  void operator==(const dimensioned<Type>&);
718  void operator==(const zero&);
719 
720  template<template<class> class PrimitiveField2>
721  void operator+=
722  (
724  );
725  template<template<class> class PrimitiveField2>
726  void operator+=
727  (
729  );
730  void operator+=(const dimensioned<Type>&);
731 
732  template<template<class> class PrimitiveField2>
733  void operator-=
734  (
736  );
737  template<template<class> class PrimitiveField2>
738  void operator-=
739  (
741  );
742  void operator-=(const dimensioned<Type>&);
743 
744  template<template<class> class PrimitiveField2>
745  void operator*=
746  (
748  );
749  template<template<class> class PrimitiveField2>
750  void operator*=
751  (
753  );
754  void operator*=(const dimensioned<scalar>&);
755 
756  template<template<class> class PrimitiveField2>
757  void operator/=
758  (
760  );
761  template<template<class> class PrimitiveField2>
762  void operator/=
763  (
765  );
766  void operator/=(const dimensioned<scalar>&);
767 
768 
769  // Ostream operators
770 
771  friend Ostream& operator<< <Type, GeoMesh, PrimitiveField>
772  (
773  Ostream&,
775  );
776 
777  friend Ostream& operator<< <Type, GeoMesh, PrimitiveField>
778  (
779  Ostream&,
781  );
782 };
783 
784 
785 template<class Type, class GeoMesh, template<class> class PrimitiveField>
786 Ostream& operator<<
787 (
788  Ostream&,
790 );
791 
792 
793 template<class Type, class GeoMesh, template<class> class PrimitiveField>
794 struct OldTimeFieldCopy<GeometricField<Type, GeoMesh, PrimitiveField>>
795 {
797 
799 
800  typedef typename FieldType::Patch::Calculated Calculated;
801 
802  tmp<Field0Type> operator()(const IOobject& io, const FieldType& field)
803  {
804  return tmp<Field0Type>(new Field0Type(io, field, Calculated::typeName));
805  }
806 };
807 
808 
809 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
810 
811 } // End namespace Foam
812 
813 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
814 
815 #include "GeometricFieldI.H"
816 
817 #ifdef NoRepository
818  #include "GeometricField.C"
819 #endif
820 
821 #include "GeometricFieldFunctions.H"
822 
823 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
824 
825 #endif
826 
827 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
PrimitiveField< Type > FieldType
Type of the field from which this DimensionedField is derived.
Generic GeometricBoundaryField class.
Part of a geometric field used for setting the values associated with optional sources.
Generic GeometricField class.
void max(const dimensioned< Type > &)
tmp< GeometricField< Type, GeoMesh, Field > > T() const
Return transpose (only if it is a tensor field)
Sources & sourcesRef()
Return a reference to the sources.
PrimitiveField< Type >::cmptType cmptType
Component type of the elements of the field.
bool writeData(Ostream &) const
WriteData member function required by regIOobject.
void writeMinMax(Ostream &os) const
Helper function to write the min and max to an Ostream.
void relax()
Relax current field with respect to the cached previous iteration.
GeometricFieldSources< Type, GeoMesh, PrimitiveField > Sources
Type of the field sources.
TypeName("GeometricField")
Runtime type information.
void maxMin(const dimensioned< Type > &minDt, const dimensioned< Type > &maxDt)
GeoMesh::Mesh Mesh
Base mesh type from which GeoMesh is constructed.
const GeometricField< Type, GeoMesh, Field > & prevIter() const
Return previous iteration field.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
Internal::FieldType & primitiveFieldRef()
Return a reference to the primitive field.
Boundary & boundaryFieldRefNoStoreOldTimes()
Return a reference to the boundary field without storing old times.
tmp< GeometricField< cmptType, GeoMesh, Field > > component(const direction) const
Return a component of the field.
const Sources & sources() const
Return const-reference to the sources.
void operator=(const GeometricField< Type, GeoMesh, PrimitiveField > &)
DimensionedField< Type, GeoMesh, PrimitiveField > Base
Type of the field from which this GeometricField is derived.
const Internal & internalField() const
Return a const-reference to the dimensioned internal field.
void operator+=(const GeometricField< Type, GeoMesh, PrimitiveField2 > &)
GeoMesh GeoMesh_
Geometric mesh type.
void operator==(const GeometricField< Type, GeoMesh, PrimitiveField2 > &)
DimensionedField< Type, GeoMesh, PrimitiveField > Internal
Type of the internal field from which this GeometricField is derived.
void min(const dimensioned< Type > &)
const Internal & operator()() const
Return a const-reference to the dimensioned internal field.
GeoMesh::template FieldSource< Type > Source
Type of the field source of which the Sources is composed.
friend class GeometricField
Declare friendship with other geometric fields.
Internal & internalFieldRef()
Return a reference to the dimensioned internal field.
void replace(const direction, const GeometricField< cmptType, GeoMesh, PrimitiveField2 > &)
Replace a component field of the field.
tmp< GeometricField< Type, GeoMesh, PrimitiveField > > clone() const
Clone.
bool needReference() const
Does the field need a reference level for solution.
GeometricBoundaryField< Type, GeoMesh, PrimitiveField > Boundary
Type of the boundary field.
Type Type_
Value type.
Boundary & boundaryFieldRef()
Return a reference to the boundary field.
virtual ~GeometricField()
Destructor.
const Internal::FieldType & primitiveField() const
Return a const-reference to the primitive field.
void reset(const GeometricField< Type, GeoMesh, PrimitiveField2 > &)
Reset the field contents to the given field.
scalar relaxationFactor() const
Return the field relaxation factor read from fvSolution.
const Internal & v() const
Return a const-reference to the dimensioned internal field.
Definition: volFieldsI.H:29
void clearPrevIter()
Delete the previous iteration field.
void storePrevIter() const
Store the field as the previous iteration value.
word select(bool final) const
Select the final iteration parameters if `final' is true.
void operator-=(const GeometricField< Type, GeoMesh, PrimitiveField2 > &)
void correctBoundaryConditions()
Correct boundary field.
void operator/=(const GeometricField< scalar, GeoMesh, PrimitiveField2 > &)
USING_OLD_TIME_FIELD(GeometricField)
Use old-time methods from the base class.
GeoMesh::template PatchField< Type > Patch
Type of the patch field of which the Boundary is composed.
void operator*=(const GeometricField< scalar, GeoMesh, PrimitiveField2 > &)
static tmp< GeometricField< Type, GeoMesh, PrimitiveField > > New(const word &name, const Internal &, const PtrList< Patch > &, const HashPtrTable< Source > &=HashPtrTable< Source >())
Return a temporary field constructed from name,.
tmp< GeometricField< Type, GeoMesh, PrimitiveField > > cloneUnSliced() const
Clone un-sliced.
A HashTable specialisation for hashing pointers.
Definition: HashPtrTable.H:68
An STL-conforming hash table.
Definition: HashTable.H:127
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Definition: IOobject.H:99
const word & name() const
Return name.
Definition: IOobject.H:307
Class to add into field types to provide old-time storage and retrieval.
Definition: OldTimeField.H:115
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
Definition: PtrList.H:75
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
Dimension set for the base types.
Definition: dimensionSet.H:125
Generic dimensioned Type class.
A class for managing temporary objects.
Definition: tmp.H:55
A class for handling words, derived from string.
Definition: word.H:63
A class representing the concept of 0 used to avoid unnecessary manipulations for objects that are kn...
Definition: zero.H:50
volScalarField alpha(IOobject("alpha", runTime.name(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
Namespace for OpenFOAM.
List< word > wordList
A List of words.
Definition: fileName.H:54
String typeName(const std::type_info &info)
Return the un-mangled name given the standard type info.
word patchFieldType(const PatchField &pf)
uint8_t direction
Definition: direction.H:45
tmp< Field0Type > operator()(const IOobject &io, const FieldType &field)
Definition: OldTimeField.H:307
OldTimeField0Type< FieldType >::type Field0Type
Definition: OldTimeField.H:305