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 
80 public:
81 
82  // Public Typedefs
83 
84  //- Value type
85  typedef Type Type_;
86 
87  //- Geometric mesh type
88  typedef GeoMesh GeoMesh_;
89 
90  //- Base mesh type from which GeoMesh is constructed
91  typedef typename GeoMesh::Mesh Mesh;
92 
93  //- Type of the internal field from which this GeometricField is derived
95 
96  //- Type of the field from which this GeometricField is derived
98 
99  //- Type of the patch field of which the Boundary is composed
100  typedef typename GeoMesh::template PatchField<Type> Patch;
101 
102  //- Type of the boundary field
104 
105  //- Type of the field source of which the Sources is composed
106  typedef typename GeoMesh::template FieldSource<Type> Source;
107 
108  //- Type of the field sources
110 
111  //- Component type of the elements of the field
112  typedef typename PrimitiveField<Type>::cmptType cmptType;
113 
114 
115 private:
116 
117  // Private Data
118 
119  //- Pointer to previous iteration (used for under-relaxation)
120  mutable GeometricField<Type, GeoMesh, Field>* fieldPrevIterPtr_;
121 
122  //- Boundary Type field containing boundary field values
123  Boundary boundaryField_;
124 
125  //- Type field sources containing field source values
126  Sources sources_;
127 
128 
129  // Private Member Functions
130 
131  //- Read the field from the dictionary
132  void readFields(const dictionary&);
133 
134  //- Read the field - create the field dictionary on-the-fly
135  void readFields();
136 
137  //- Read from file if it is present
138  bool readIfPresent();
139 
140  //- Constructor given IOobject, mesh, dimensions and patch field types.
141  // This allocates storage for the field but not values
143  (
144  const IOobject&,
145  const GeoMesh&,
146  const dimensionSet&,
147  const wordList& wantedPatchTypes,
148  const wordList& actualPatchTypes = wordList(),
149  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
150  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
151  );
152 
153 
154 public:
155 
156  //- Runtime type information
157  TypeName("GeometricField");
158 
159 
160  //- Declare friendship with other geometric fields
161  template<class Type2, class GeoMesh2, template<class> class PrimitiveField2>
162  friend class GeometricField;
163 
164 
165  // Static Member Functions
166 
167  //- Return a null geometric field
168  inline static const
170 
171 
172  // Constructors
173 
174  //- Constructor given IOobject, mesh, dimensions and patch field type.
175  // Warning: this allocates storage but does not set field values!
177  (
178  const IOobject&,
179  const GeoMesh&,
180  const dimensionSet&,
181  const word& patchFieldType
182  );
183 
184  //- Constructor given IOobject, mesh, dimensioned<Type>
185  // and optional patch field type.
187  (
188  const IOobject&,
189  const GeoMesh&,
190  const dimensioned<Type>&,
191  const word& patchFieldType = Patch::calculatedType()
192  );
193 
194  //- Constructor given IOobject, mesh, dimensioned<Type>
195  // and patch field types.
197  (
198  const IOobject&,
199  const GeoMesh&,
200  const dimensioned<Type>&,
201  const wordList& wantedPatchTypes,
202  const wordList& actualPatchTypes = wordList(),
203  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
204  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
205  );
206 
207  //- Constructor from components
209  (
210  const IOobject&,
211  const Internal&,
212  const PtrList<Patch>&,
214  );
215 
216  //- Constructor from components
218  (
219  const IOobject&,
220  const GeoMesh&,
221  const dimensionSet&,
222  const PrimitiveField<Type>&,
223  const PtrList<Patch>&,
225  );
226 
227  //- Construct and read given IOobject
229  (
230  const IOobject&,
231  const GeoMesh&,
232  const dimensionSet& dims = dimensions::invalid
233  );
234 
235  //- Construct from dictionary
237  (
238  const IOobject&,
239  const GeoMesh&,
240  const dictionary&,
241  const dimensionSet& dims = dimensions::invalid
242  );
243 
244  //- Copy constructor
246 
247  //- Copy constructor
248  template<template<class> class PrimitiveField2>
249  explicit GeometricField
250  (
252  );
253 
254  //- Move constructor
256 
257  //- Construct as copy of tmp
259  (
261  );
262 
263  //- Construct as copy resetting IO parameters
264  template<template<class> class PrimitiveField2>
266  (
267  const IOobject&,
269  );
270 
271  //- Construct as copy of tmp resetting IO parameters
273  (
274  const IOobject&,
276  );
277 
278  //- Construct as copy resetting name
279  template<template<class> class PrimitiveField2>
281  (
282  const word& newName,
284  );
285 
286  //- Construct as copy of tmp resetting name
288  (
289  const word& newName,
291  );
292 
293  //- Construct as copy resetting IO parameters and patch field type
294  template<template<class> class PrimitiveField2>
296  (
297  const IOobject&,
299  const word& patchFieldType
300  );
301 
302  //- Construct as copy of tmp resetting IO parameters
303  // and patch field type
305  (
306  const IOobject&,
308  const word& patchFieldType
309  );
310 
311  //- Constructor from internal field and patch field type
312  template<template<class> class PrimitiveField2>
314  (
315  const IOobject&,
317  const word& patchFieldType
318  );
319 
320  //- Constructor from temporary internal field and patch field type
322  (
323  const IOobject&,
324  const tmp<Internal>&,
325  const word& patchFieldType
326  );
327 
328  //- Construct as copy resetting IO parameters and patch field types
329  template<template<class> class PrimitiveField2>
331  (
332  const IOobject&,
334  const wordList& patchFieldTypes,
335  const wordList& actualPatchTypes = wordList(),
336  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
337  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
338  );
339 
340  //- Construct as copy of tmp resetting IO parameters
341  // and patch field types
343  (
344  const IOobject&,
346  const wordList& patchFieldTypes,
347  const wordList& actualPatchTypes = wordList(),
348  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
349  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
350  );
351 
352  //- Construct from IOobject, internal field and patch field types
353  template<template<class> class PrimitiveField2>
355  (
356  const IOobject&,
358  const wordList& patchFieldTypes,
359  const wordList& actualPatchTypes = wordList(),
360  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
361  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
362  );
363 
364  //- Construct from IOobject, tmp internal field and patch field types
366  (
367  const IOobject&,
368  const tmp<Internal>&,
369  const wordList& patchFieldTypes,
370  const wordList& actualPatchTypes = wordList(),
371  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
372  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
373  );
374 
375  //- Clone
377 
378  //- Clone un-sliced
380  cloneUnSliced() const;
381 
382  //- Return a temporary field constructed from name,
383  // internal field and list of patch fields
385  (
386  const word& name,
387  const Internal&,
388  const PtrList<Patch>&,
390  );
391 
392  //- Return a temporary field constructed from name, mesh, dimensionSet
393  // and patch field type
395  (
396  const word& name,
397  const GeoMesh&,
398  const dimensionSet&,
399  const word& patchFieldType = Patch::calculatedType()
400  );
401 
402  //- Return a temporary field constructed from mesh, dimensioned<Type>
403  // and patch field type
405  (
406  const word& name,
407  const GeoMesh&,
408  const dimensioned<Type>&,
409  const word& patchFieldType = Patch::calculatedType()
410  );
411 
412  //- Return a temporary field constructed from mesh, dimensioned<Type>
413  // and patch field types
415  (
416  const word& name,
417  const GeoMesh&,
418  const dimensioned<Type>&,
419  const wordList& patchFieldTypes,
420  const wordList& actualPatchTypes = wordList(),
421  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
422  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
423  );
424 
425  //- Rename temporary field and return
427  (
428  const word& newName,
430  );
431 
432  //- Rename field, reset patch field type and return
433  template<template<class> class PrimitiveField2>
435  (
436  const word& newName,
438  const word& patchFieldType
439  );
440 
441  //- Rename temporary field, reset patch field type and return
443  (
444  const word& newName,
446  const word& patchFieldType
447  );
448 
449  //- Return a temporary field constructed from name,
450  // internal field and patch field type
451  template<template<class> class PrimitiveField2>
453  (
454  const word& name,
456  const word& patchFieldType
457  );
458 
459  //- Return a temporary field constructed from name,
460  // temporary internal field and patch field type
462  (
463  const word& name,
464  const tmp<Internal>&,
465  const word& patchFieldType
466  );
467 
468  //- Rename and reset patch fields types of field and return
469  template<template<class> class PrimitiveField2>
471  (
472  const word& newName,
474  const wordList& patchFieldTypes,
475  const wordList& actualPatchTypes = wordList(),
476  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
477  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
478  );
479 
480  //- Rename and reset patch fields types of temporary field and return
482  (
483  const word& newName,
485  const wordList& patchFieldTypes,
486  const wordList& actualPatchTypes = wordList(),
487  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
488  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
489  );
490 
491  //- Return a temporary field constructed from IOobject,
492  // internal field and patch field types
493  template<template<class> class PrimitiveField2>
495  (
496  const word& newName,
498  const wordList& patchFieldTypes,
499  const wordList& actualPatchTypes = wordList(),
500  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
501  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
502  );
503 
504  //- Return a temporary field constructed from IOobject,
505  // temporary internal field and patch field types
507  (
508  const word& newName,
509  const tmp<Internal>&,
510  const wordList& patchFieldTypes,
511  const wordList& actualPatchTypes = wordList(),
512  const HashTable<word>& fieldSourceTypes = HashTable<word>(),
513  const IOerrorLocation& fieldSourceErrorLocation = IOerrorLocation()
514  );
515 
516 
517  //- Destructor
518  virtual ~GeometricField();
519 
520 
521  // Member Functions
522 
523  //- Return a reference to the dimensioned internal field
524  // Note: this increments the event counter and checks the
525  // old-time fields; avoid in loops.
527 
528  //- Return a const-reference to the dimensioned internal field
529  inline const Internal& internalField() const;
530 
531  //- Return a const-reference to the dimensioned internal field
532  // of a "vol" field. Useful in the formulation of source-terms
533  // for FV equations
534  inline const Internal& v() const;
535 
536  //- Return a reference to the primitive field
537  // Note: this increments the event counter and checks the
538  // old-time fields; avoid in loops.
540 
541  //- Return a const-reference to the primitive field
542  inline const typename Internal::FieldType& primitiveField() const;
543 
544  //- Return a reference to the boundary field
545  // Note: this increments the event counter and checks the
546  // old-time fields; avoid in loops.
548 
549  //- Return a reference to the boundary field without storing old times
550  // Note: this increments the event counter; avoid in loops.
552 
553  //- Return const-reference to the boundary field
554  inline const Boundary& boundaryField() const;
555 
556  //- Return a reference to the sources
557  // Note: this increments the event counter and checks the
558  // old-time fields; avoid in loops.
559  Sources& sourcesRef();
560 
561  //- Return const-reference to the sources
562  inline const Sources& sources() const;
563 
564  //- Store the field as the previous iteration value
565  void storePrevIter() const;
566 
567  //- Delete the previous iteration field
568  void clearPrevIter();
569 
570  //- Return previous iteration field
572 
573  //- Use old-time methods from the base class
575 
576  //- Correct boundary field
578 
579  //- Reset the field contents to the given field
580  // Used for mesh to mesh mapping
581  template<template<class> class PrimitiveField2>
583 
584  //- Reset the field contents to the given tmp-field
585  // Used for mesh to mesh mapping
587 
588  //- Reset the field contents to the given tmp-field
589  // Used for mesh to mesh mapping
590  template<template<class> class PrimitiveField2>
592 
593  //- Does the field need a reference level for solution
594  bool needReference() const;
595 
596  //- Return a component of the field
598  (
599  const direction
600  ) const;
601 
602  //- WriteData member function required by regIOobject
603  bool writeData(Ostream&) const;
604 
605  //- Return transpose (only if it is a tensor field)
607 
608  //- Relax field (for steady-state solution).
609  // alpha >= 1 : no relaxation
610  // alpha < 1 : relaxation
611  void relax(const scalar alpha);
612 
613  //- Return the field relaxation factor read from fvSolution
614  // or 1 if not specified
615  scalar relaxationFactor() const;
616 
617  //- Relax current field with respect to the cached previous iteration.
618  // Relaxation factor is read from fvSolution
619  void relax();
620 
621  //- Relax given field with respect to the current field
622  // and reset the field to the result
623  template<template<class> class PrimitiveField2>
624  void relax
625  (
627  const scalar alpha
628  );
629 
630  //- Relax given field with respect to the current field
631  // and reset the field to the result
632  // Relaxation factor is read from fvSolution
633  template<template<class> class PrimitiveField2>
635 
636  //- Select the final iteration parameters if `final' is true
637  // by returning the field name + "Final"
638  // otherwise the standard parameters by returning the field name
639  word select(bool final) const;
640 
641  //- Helper function to write the min and max to an Ostream
642  void writeMinMax(Ostream& os) const;
643 
644 
645  // Member function *this operators
646 
647  void negate();
648 
649  //- Replace a component field of the field
650  template<template<class> class PrimitiveField2>
651  void replace
652  (
653  const direction,
655  );
656 
657  //- Replace a component field of the field
658  template<template<class> class PrimitiveField2>
659  void replace
660  (
661  const direction,
663  );
664 
665  //- Replace a component field of the field
666  void replace(const direction, const dimensioned<cmptType>&);
667 
668  void max(const dimensioned<Type>&);
669 
670  void min(const dimensioned<Type>&);
671 
672  void maxMin
673  (
674  const dimensioned<Type>& minDt,
675  const dimensioned<Type>& maxDt
676  );
677 
678 
679  // Member Operators
680 
681  //- Return a const-reference to the dimensioned internal field
682  // Useful in the formulation of source-terms for FV equations
683  inline const Internal& operator()() const;
684 
685  void operator=
686  (
688  );
689  void operator=
690  (
692  );
693  template<template<class> class PrimitiveField2>
694  void operator=
695  (
697  );
698  void operator=
699  (
701  );
702  template<template<class> class PrimitiveField2>
703  void operator=
704  (
706  );
707  void operator=(const dimensioned<Type>&);
708  void operator=(const zero&);
709 
710  template<template<class> class PrimitiveField2>
711  void operator==
712  (
714  );
715  void operator==
716  (
718  );
719  template<template<class> class PrimitiveField2>
720  void operator==
721  (
723  );
724  void operator==(const dimensioned<Type>&);
725  void operator==(const zero&);
726 
727  template<template<class> class PrimitiveField2>
728  void operator+=
729  (
731  );
732  template<template<class> class PrimitiveField2>
733  void operator+=
734  (
736  );
737  void operator+=(const dimensioned<Type>&);
738 
739  template<template<class> class PrimitiveField2>
740  void operator-=
741  (
743  );
744  template<template<class> class PrimitiveField2>
745  void operator-=
746  (
748  );
749  void operator-=(const dimensioned<Type>&);
750 
751  template<template<class> class PrimitiveField2>
752  void operator*=
753  (
755  );
756  template<template<class> class PrimitiveField2>
757  void operator*=
758  (
760  );
761  void operator*=(const dimensioned<scalar>&);
762 
763  template<template<class> class PrimitiveField2>
764  void operator/=
765  (
767  );
768  template<template<class> class PrimitiveField2>
769  void operator/=
770  (
772  );
773  void operator/=(const dimensioned<scalar>&);
774 
775 
776  // Ostream operators
777 
778  friend Ostream& operator<< <Type, GeoMesh, PrimitiveField>
779  (
780  Ostream&,
782  );
783 
784  friend Ostream& operator<< <Type, GeoMesh, PrimitiveField>
785  (
786  Ostream&,
788  );
789 };
790 
791 
792 template<class Type, class GeoMesh, template<class> class PrimitiveField>
793 Ostream& operator<<
794 (
795  Ostream&,
797 );
798 
799 
800 template<class Type, class GeoMesh, template<class> class PrimitiveField>
801 struct OldTimeFieldCopy<GeometricField<Type, GeoMesh, PrimitiveField>>
802 {
804 
806 
807  typedef typename FieldType::Patch::Calculated Calculated;
808 
809  tmp<Field0Type> operator()(const IOobject& io, const FieldType& field)
810  {
811  return tmp<Field0Type>(new Field0Type(io, field, Calculated::typeName));
812  }
813 };
814 
815 
816 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
817 
818 } // End namespace Foam
819 
820 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
821 
822 #include "GeometricFieldI.H"
823 
824 #ifdef NoRepository
825  #include "GeometricField.C"
826 #endif
827 
828 #include "GeometricFieldFunctions.H"
829 
830 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
831 
832 #endif
833 
834 // ************************************************************************* //
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))
const dimensionSet invalid
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