FreeFOAM The Cross-Platform CFD Toolkit
SRFFreestreamVelocityFvPatchVectorField.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) 1991-2011 OpenCFD Ltd.
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::SRFFreestreamVelocityFvPatchVectorField
26 
27 Description
28  Freestream velocity patch to be used with SRF model
29  to apply the appropriate rotation transformation in time and space.
30 
31 SourceFiles
32  SRFFreestreamVelocityFvPatchVectorField.C
33 
34 \*---------------------------------------------------------------------------*/
35 
36 #ifndef SRFFreestreamVelocityFvPatchVectorField_H
37 #define SRFFreestreamVelocityFvPatchVectorField_H
38 
40 
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 
43 namespace Foam
44 {
45 
46 /*---------------------------------------------------------------------------*\
47  Class SRFFreestreamVelocityFvPatchVectorField Declaration
48 \*---------------------------------------------------------------------------*/
49 
51 :
52  public inletOutletFvPatchVectorField
53 {
54  // Private data
55 
56  //- Velocity of the free stream in the absolute frame
57  vector UInf_;
58 
59 
60 public:
61 
62  //- Runtime type information
63  TypeName("SRFFreestreamVelocity");
64 
65 
66  // Constructors
67 
68  //- Construct from patch and internal field
70  (
71  const fvPatch&,
73  );
74 
75  //- Construct from patch, internal field and dictionary
77  (
78  const fvPatch&,
80  const dictionary&
81  );
82 
83  //- Construct by mapping given SRFFreestreamVelocityFvPatchVectorField
84  // onto a new patch
86  (
88  const fvPatch&,
90  const fvPatchFieldMapper&
91  );
92 
93  //- Construct as copy
95  (
97  );
98 
99  //- Construct and return a clone
101  {
103  (
105  );
106  }
107 
108  //- Construct as copy setting internal field reference
110  (
113  );
114 
115  //- Construct and return a clone setting internal field reference
117  (
119  ) const
120  {
122  (
124  );
125  }
126 
127 
128  // Member functions
129 
130  // Access
131 
132  //- Return the velocity at infinity
133  const vector& UInf() const
134  {
135  return UInf_;
136  }
137 
138  //- Return reference to the velocity at infinity to allow adjustment
140  {
141  return UInf_;
142  }
143 
144 
145  // Evaluation functions
146 
147  //- Update the coefficients associated with the patch field
148  virtual void updateCoeffs();
149 
150 
151  //- Write
152  virtual void write(Ostream&) const;
153 };
154 
155 
156 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
157 
158 } // End namespace Foam
159 
160 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
161 
162 #endif
163 
164 // ************************ vim: set sw=4 sts=4 et: ************************ //