flowRateConeDiskVelocityLagrangianVectorFieldSource.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) 2025 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::flowRateConeDiskVelocityLagrangianVectorFieldSource
26 
27 Description
28  This source condition provides a conical velocity profile over a disk,
29  characterised by inner and outer cone angles. The velocity magnitude is
30  obtained from the area of the disk and the flow rate of the corresponding
31  flowRateNumber condition. This condition must be used in conjunction with a
32  disk injection model and a flow rate condition from the number.
33 
34 Usage
35  \table
36  Property | Description | Required? | Default
37  thetaInner | The inner cone angle | yes |
38  thetaOuter | The outer cone angle | yes |
39  \endtable
40 
41  Example specification:
42  \verbatim
43  <LagrangianModelName>
44  {
45  type flowRateConeDiskVelocity;
46  thetaInner 5 [deg];
47  thetaOuter 30 [deg];
48  }
49  \endverbatim
50 
51 SourceFiles
52  flowRateConeDiskVelocityLagrangianVectorFieldSource.C
53 
54 \*---------------------------------------------------------------------------*/
55 
56 #ifndef flowRateConeDiskVelocityLagrangianVectorFieldSource_H
57 #define flowRateConeDiskVelocityLagrangianVectorFieldSource_H
58 
59 #include "LagrangianFieldSources.H"
62 
63 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
64 
65 namespace Foam
66 {
67 
68 /*---------------------------------------------------------------------------*\
69  Class flowRateConeDiskVelocityLagrangianVectorFieldSource Declaration
70 \*---------------------------------------------------------------------------*/
71 
72 class flowRateConeDiskVelocityLagrangianVectorFieldSource
73 :
74  public LagrangianVectorFieldSource,
75  private cloudLagrangianFieldSource,
76  private coneDiskDirectionLagrangianVectorFieldSource
77 {
78 public:
79 
80  //- Runtime type information
81  TypeName("flowRateConeDiskVelocity");
82 
83 
84  // Constructors
85 
86  //- Construct from internal field and dictionary
88  (
89  const regIOobject&,
90  const dictionary& dict
91  );
92 
93  //- Copy constructor setting the internal field reference
95  (
97  const regIOobject&
98  );
99 
100  //- Construct and return a clone setting the internal field reference
102  (
103  const regIOobject& iIo
104  ) const
105  {
107  (
109  (
110  *this,
111  iIo
112  )
113  );
114  }
115 
116 
117  //- Destructor
119 
120 
121  // Member Functions
122 
123  //- Return the value for an instantaneous injection
125  (
126  const LagrangianInjection&,
127  const LagrangianSubMesh&
128  ) const;
129 
130  //- Write
131  virtual void write(Ostream&) const;
132 };
133 
134 
135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
136 
137 } // End namespace Foam
138 
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
140 
141 #endif
142 
143 // ************************************************************************* //
Base class for Lagrangian injections. Minimal wrapper over LagrangianSource. Implements some utility ...
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,...
Definition: Ostream.H:57
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
This source condition provides a conical velocity profile over a disk, characterised by inner and out...
TypeName("flowRateConeDiskVelocity")
Runtime type information.
virtual tmp< LagrangianSubVectorField > value(const LagrangianInjection &, const LagrangianSubMesh &) const
Return the value for an instantaneous injection.
flowRateConeDiskVelocityLagrangianVectorFieldSource(const regIOobject &, const dictionary &dict)
Construct from internal field and dictionary.
virtual autoPtr< LagrangianVectorFieldSource > clone(const regIOobject &iIo) const
Construct and return a clone setting the internal field reference.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
Definition: regIOobject.H:55
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.
dictionary dict