ENH: autoLayerDriver: better layering information message
[OpenFOAM-2.0.x.git] / src / OpenFOAM / matrices / lduMatrix / solvers / GAMG / interfaceFields / GAMGInterfaceField / GAMGInterfaceField.H
blob8bb85bfeef1c5e4ab4c395e811491bba9d0e513d
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::GAMGInterfaceField
27 Description
28      Abstract base class for GAMG agglomerated interface fields.
30 SourceFiles
31     GAMGInterfaceField.C
32     newAmgInterfaceField.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef GAMGInterfaceField_H
37 #define GAMGInterfaceField_H
39 #include "lduInterfaceField.H"
40 #include "GAMGInterface.H"
41 #include "autoPtr.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 namespace Foam
48 /*---------------------------------------------------------------------------*\
49                       Class GAMGInterfaceField Declaration
50 \*---------------------------------------------------------------------------*/
52 class GAMGInterfaceField
54     public lduInterfaceField
56     // Private data
58         //- Local reference cast into the interface
59         const GAMGInterface& interface_;
62     // Private Member Functions
64         //- Disallow default bitwise copy construct
65         GAMGInterfaceField(const GAMGInterfaceField&);
67         //- Disallow default bitwise assignment
68         void operator=(const GAMGInterfaceField&);
71 public:
73     //- Runtime type information
74     TypeName("GAMGInterfaceField");
77     // Declare run-time constructor selection tables
79         declareRunTimeSelectionTable
80         (
81             autoPtr,
82             GAMGInterfaceField,
83             lduInterface,
84             (
85                 const GAMGInterface& GAMGCp,
86                 const lduInterfaceField& fineInterface
87             ),
88             (GAMGCp, fineInterface)
89         );
92     // Selectors
94         //- Return a pointer to a new interface created on freestore given
95         //  the fine interface
96         static autoPtr<GAMGInterfaceField> New
97         (
98             const GAMGInterface& GAMGCp,
99             const lduInterfaceField& fineInterface
100         );
103     // Constructors
105         //- Construct from GAMG interface and fine level interface field
106         GAMGInterfaceField
107         (
108             const GAMGInterface& GAMGCp,
109             const lduInterfaceField&
110         )
111         :
112             lduInterfaceField(GAMGCp),
113             interface_(GAMGCp)
114         {}
118 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
120 } // End namespace Foam
122 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
124 #endif
126 // ************************************************************************* //