initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / OpenFOAM / matrices / lduMatrix / solvers / GAMG / interfaceFields / GAMGInterfaceField / GAMGInterfaceField.H
blob6dbcdc1c05e25b5632ad0f92bc2aaf2532cca720
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::GAMGInterfaceField
28 Description
29      Abstract base class for GAMG agglomerated interface fields.
31 SourceFiles
32     GAMGInterfaceField.C
33     newAmgInterfaceField.C
35 \*---------------------------------------------------------------------------*/
37 #ifndef GAMGInterfaceField_H
38 #define GAMGInterfaceField_H
40 #include "lduInterfaceField.H"
41 #include "GAMGInterface.H"
42 #include "autoPtr.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 namespace Foam
49 /*---------------------------------------------------------------------------*\
50                       Class GAMGInterfaceField Declaration
51 \*---------------------------------------------------------------------------*/
53 class GAMGInterfaceField
55     public lduInterfaceField
57     // Private data
59         //- Local reference cast into the interface
60         const GAMGInterface& interface_;
63     // Private Member Functions
65         //- Disallow default bitwise copy construct
66         GAMGInterfaceField(const GAMGInterfaceField&);
68         //- Disallow default bitwise assignment
69         void operator=(const GAMGInterfaceField&);
72 public:
74     //- Runtime type information
75     TypeName("GAMGInterfaceField");
78     // Declare run-time constructor selection tables
80         declareRunTimeSelectionTable
81         (
82             autoPtr,
83             GAMGInterfaceField,
84             lduInterface,
85             (
86                 const GAMGInterface& GAMGCp,
87                 const lduInterfaceField& fineInterface
88             ),
89             (GAMGCp, fineInterface)
90         );
93     // Selectors
95         //- Return a pointer to a new interface created on freestore given
96         //  the fine interface
97         static autoPtr<GAMGInterfaceField> New
98         (
99             const GAMGInterface& GAMGCp,
100             const lduInterfaceField& fineInterface
101         );
104     // Constructors
106         //- Construct from GAMG interface and fine level interface field
107         GAMGInterfaceField
108         (
109             const GAMGInterface& GAMGCp,
110             const lduInterfaceField&
111         )
112         :
113             lduInterfaceField(GAMGCp),
114             interface_(GAMGCp)
115         {}
119 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
121 } // End namespace Foam
123 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
125 #endif
127 // ************************************************************************* //