Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / turbulenceModels / LES / LESdeltas / LESdelta / LESdelta.H
blob05b30e46f07b7858d10b4982a7e9652aed8b5d8d
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::LESdelta
27 Description
28     Abstract base class for LES deltas
30 SourceFiles
31     LESdelta.C
32     newDelta.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef LESdelta_H
37 #define LESdelta_H
39 #include "volFields.H"
40 #include "typeInfo.H"
41 #include "autoPtr.H"
42 #include "runTimeSelectionTables.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 namespace Foam
49 class fvMesh;
51 /*---------------------------------------------------------------------------*\
52                           Class LESdelta Declaration
53 \*---------------------------------------------------------------------------*/
55 class LESdelta
58 protected:
60     // Protected data
62         const fvMesh& mesh_;
64         volScalarField delta_;
67 private:
69     // Private Member Functions
71         // Disallow default bitwise copy construct and assignment
72         LESdelta(const LESdelta&);
73         void operator=(const LESdelta&);
76 public:
78     //- Runtime type information
79     TypeName("LESdelta");
82     // Declare run-time constructor selection table
84         declareRunTimeSelectionTable
85         (
86             autoPtr,
87             LESdelta,
88             dictionary,
89             (
90                 const word& name,
91                 const fvMesh& mesh,
92                 const dictionary& LESdeltaDict
93             ),
94             (name, mesh, LESdeltaDict)
95         );
98     // Constructors
100         //- Construct from name and mesh
101         LESdelta(const word& name, const fvMesh&);
104     // Selectors
106         //- Return a reference to the selected LES delta
107         static autoPtr<LESdelta> New
108         (
109             const word& name,
110             const fvMesh&,
111             const dictionary&
112         );
115     //- Destructor
116     virtual ~LESdelta()
117     {}
120     // Member Functions
122         //- Return mesh reference
123         const fvMesh& mesh() const
124         {
125             return mesh_;
126         }
128         //- Read the LESdelta dictionary
129         virtual void read(const dictionary&) = 0;
131         // Correct values
132         virtual void correct() = 0;
135     // Member Operators
137         virtual operator const volScalarField&() const
138         {
139             return delta_;
140         }
144 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146 } // End namespace Foam
148 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 #endif
152 // ************************************************************************* //