UniformDimensionedField.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 2011-2012 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::UniformDimensionedField
26 
27 Description
28  Dimensioned<Type> registered with the database as a registered IOobject
29  which has the functionality of a uniform field and allows values from the
30  top-level code to be passed to boundary conditions etc.
31 
32 SourceFiles
33  UniformDimensionedField.C
34 
35 \*---------------------------------------------------------------------------*/
36 
37 #ifndef UniformDimensionedField_H
38 #define UniformDimensionedField_H
39 
40 #include "regIOobject.H"
41 #include "dimensionedType.H"
42 
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 
45 namespace Foam
46 {
47 
48 /*---------------------------------------------------------------------------*\
49  Class UniformDimensionedField Declaration
50 \*---------------------------------------------------------------------------*/
51 
52 template<class Type>
54 :
55  public regIOobject,
56  public dimensioned<Type>
57 {
58 
59 public:
60 
61  //- Runtime type information
62  TypeName("UniformDimensionedField");
63 
64 
65  // Constructors
66 
67  //- Construct from components. Either reads or uses supplied value.
69 
70  //- Construct as copy
72 
73  //- Construct from Istream
75 
76 
77  //- Destructor
78  virtual ~UniformDimensionedField();
79 
80 
81  // Member Functions
82 
83  //- Name function provided to resolve the ambiguity between the
84  // name functions in regIOobject and dimensioned<Type>
85  virtual const word& name() const
86  {
87  return dimensioned<Type>::name();
88  }
89 
90  bool writeData(Ostream&) const;
91 
92 
93  // Member Operators
94 
96  void operator=(const dimensioned<Type>&);
97 
98  Type operator[](const label) const
99  {
100  return this->value();
101  }
102 };
103 
104 
105 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
106 
107 } // End namespace Foam
108 
109 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
110 
111 #ifdef NoRepository
112 # include "UniformDimensionedField.C"
113 #endif
114 
115 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
116 
117 #endif
118 
119 // ************************************************************************* //
virtual ~UniformDimensionedField()
Destructor.
A class for handling words, derived from string.
Definition: word.H:59
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
UniformDimensionedField(const IOobject &, const dimensioned< Type > &)
Construct from components. Either reads or uses supplied value.
Namespace for OpenFOAM.
Generic dimensioned Type class.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Definition: IOobject.H:91
const word & name() const
Return const reference to name.
Type operator[](const label) const
Dimensioned<Type> registered with the database as a registered IOobject which has the functionality o...
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
Definition: regIOobject.H:60
virtual const word & name() const
Name function provided to resolve the ambiguity between the.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:53
bool writeData(Ostream &) const
Pure virtual writaData function.
TypeName("UniformDimensionedField")
Runtime type information.
void operator=(const UniformDimensionedField< Type > &)
const Type & value() const
Return const reference to value.