initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / turbulenceModels / LES / LESfilters / LESfilter / LESfilter.H
blobffb04f6aa83d63a4883c151b593319c2a447ab84
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
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.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Class
26     Foam::LESfilter
28 Description
29     Abstract class for LES filters
31 SourceFiles
32     LESfilter.C
33     newFilter.C
35 \*---------------------------------------------------------------------------*/
37 #ifndef LESfilter_H
38 #define LESfilter_H
40 #include "volFields.H"
41 #include "typeInfo.H"
42 #include "autoPtr.H"
43 #include "runTimeSelectionTables.H"
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 namespace Foam
50 class fvMesh;
52 /*---------------------------------------------------------------------------*\
53                            Class LESfilter Declaration
54 \*---------------------------------------------------------------------------*/
56 class LESfilter
58     // Private data
60         const fvMesh& mesh_;
63     // Private Member Functions
65         // Disallow default bitwise copy construct and assignment
66         LESfilter(const LESfilter&);
67         void operator=(const LESfilter&);
70 public:
72     //- Runtime type information
73     TypeName("LESfilter");
76     // Declare run-time constructor selection table
78         declareRunTimeSelectionTable
79         (
80             autoPtr,
81             LESfilter,
82             dictionary,
83             (
84                 const fvMesh& mesh,
85                 const dictionary& LESfilterDict
86             ),
87             (mesh, LESfilterDict)
88         );
91     // Constructors
93         //- Construct from components
94         LESfilter(const fvMesh& mesh)
95         :
96             mesh_(mesh)
97         {}
100     // Selectors
102         //- Return a reference to the selected LES filter
103         static autoPtr<LESfilter> New
104         (
105             const fvMesh&,
106             const dictionary&
107         );
110     //- Destructor
111     virtual ~LESfilter()
112     {}
115     // Member Functions
117         //- Return mesh reference
118         const fvMesh& mesh() const
119         {
120             return mesh_;
121         }
123         //- Read the LESfilter dictionary
124         virtual void read(const dictionary&) = 0;
127     // Member Operators
129         virtual tmp<volScalarField> operator()
130         (
131             const tmp<volScalarField>&
132         ) const = 0;
134         virtual tmp<volVectorField> operator()
135         (
136             const tmp<volVectorField>&
137         ) const = 0;
139         virtual tmp<volSymmTensorField> operator()
140         (
141             const tmp<volSymmTensorField>&
142         ) const = 0;
144         virtual tmp<volTensorField> operator()
145         (
146             const tmp<volTensorField>&
147         ) const = 0;
151 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
153 } // End namespace Foam
155 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
157 #endif
159 // ************************************************************************* //