Forward compatibility: flex
[foam-extend-3.2.git] / src / dynamicMesh / dynamicTopoFvMesh / fieldMapping / fluxCorrector.H
blobb3279a9adc57a9c1719f15784bb84288db1c7bac
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     fluxCorrector
27 Description
28     Virtual base class that deals with flux-correction after topo-changes.
30 Author
31     Sandeep Menon
32     University of Massachusetts Amherst
33     All rights reserved
35 SourceFiles
36     fluxCorrector.C
38 \*---------------------------------------------------------------------------*/
40 #ifndef fluxCorrector_H
41 #define fluxCorrector_H
43 #include "fvMesh.H"
44 #include "runTimeSelectionTables.H"
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 namespace Foam
51 /*---------------------------------------------------------------------------*\
52                          Class fluxCorrector Declaration
53 \*---------------------------------------------------------------------------*/
55 class fluxCorrector
57     // Private data
59         //- Reference to fvMesh
60         const fvMesh& mesh_;
62         //- Reference to dictionary
63         const dictionary& dict_;
65     // Private Member Functions
67         //- Disallow default bitwise copy construct
68         fluxCorrector(const fluxCorrector&);
70         //- Disallow default bitwise assignment
71         void operator=(const fluxCorrector&);
73 public:
75     //- Runtime type information
76     TypeName("fluxCorrector");
79     // Declare run-time constructor selection tables
81         declareRunTimeSelectionTable
82         (
83             autoPtr,
84             fluxCorrector,
85             mesh,
86             (
87                 const fvMesh& mesh,
88                 const dictionary& dict
89             ),
90             (mesh, dict)
91         );
94     // Selectors
96         //- Select constructed from fvMesh
97         static autoPtr<fluxCorrector> New
98         (
99             const fvMesh& mesh,
100             const dictionary& dict
101         );
104     // Constructors
106         //- Construct from fvMesh and dictionary
107         fluxCorrector(const fvMesh& mesh, const dictionary& dict)
108         :
109             mesh_(mesh),
110             dict_(dict)
111         {}
114     // Destructor
116         virtual ~fluxCorrector()
117         {}
120     // Member Functions
122         //- Return reference to mesh
123         const fvMesh& mesh() const;
125         //- Return reference to dictionary
126         const dictionary& dict() const;
128         //- Is flux-correction required?
129         virtual bool required() const;
131         //- Interpolate fluxes to a specified list of faces
132         virtual void interpolateFluxes(const labelList& faces) const;
134         //- Update fluxes in the registry
135         virtual void updateFluxes() const;
138 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
140 } // End namespace Foam
142 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
144 #endif
146 // ************************************************************************* //