Fix tutorials: typo in tutorials/viscoelastic/viscoelasticFluidFoam/S-MDCPP/constant...
[OpenFOAM-1.6-ext.git] / src / OpenFOAM / matrices / lduMatrix / lduAddressing / lduInterface / lduInterface.H
blobeda574ce156f19ac61247372a7b62f57da16e116
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
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::lduInterface
28 Description
29     An abstract base class for implicitly-coupled interfaces
30     e.g. processor and cyclic patches.
31     
32 SourceFiles
33     lduInterface.C
35 \*---------------------------------------------------------------------------*/
37 #ifndef lduInterface_H
38 #define lduInterface_H
40 #include "labelField.H"
41 #include "typeInfo.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 namespace Foam
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 /*---------------------------------------------------------------------------*\
51                      Class lduInterface Declaration
52 \*---------------------------------------------------------------------------*/
54 class lduInterface
56     // Private Member Functions
58         //- Disallow default bitwise copy construct
59         lduInterface(const lduInterface&);
61         //- Disallow default bitwise assignment
62         void operator=(const lduInterface&);
65 public:
67     //- Runtime type information
68     TypeName("lduInterface");
71     // Constructors
73         //- Construct null
74         lduInterface()
75         {}
78     // Destructor
80         virtual ~lduInterface();
83     // Member Functions
85         // Access
87             //- Return faceCell addressing
88             virtual const unallocLabelList& faceCells() const = 0;
91         // Interface transfer functions
93             //- Return the values of the given internal data adjacent to
94             //  the interface as a field
95             virtual tmp<labelField> interfaceInternalField
96             (
97                 const unallocLabelList& internalData
98             ) const = 0;
100             //- Initialise interface data transfer
101             virtual void initTransfer
102             (
103                 const Pstream::commsTypes commsType,
104                 const unallocLabelList& interfaceData
105             ) const
106             {}
108             //- Transfer and return neighbour field
109             virtual tmp<labelField> transfer
110             (
111                 const Pstream::commsTypes commsType,
112                 const unallocLabelList& interfaceData
113             ) const = 0;
115             //- Initialise transfer of internal field adjacent to the interface
116             virtual void initInternalFieldTransfer
117             (
118                 const Pstream::commsTypes commsType,
119                 const unallocLabelList& iF
120             ) const
121             {}
123             //- Transfer and return internal field adjacent to the interface
124             virtual tmp<labelField> internalFieldTransfer
125             (
126                 const Pstream::commsTypes commsType,
127                 const unallocLabelList& iF
128             ) const = 0;
132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
134 } // End namespace Foam
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
138 #endif
140 // ************************************************************************* //