Forward compatibility: flex
[foam-extend-3.2.git] / src / dynamicMesh / dynamicTopoFvMesh / coupledMesh / subMeshProcessorFvPatch.H
blobcc775f2cd54e682eb3ea7a05c14536451620b5c1
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     subMeshProcessorFvPatch
27 Description
28     Customized processor type for subMeshes.
30     The intent of this class is to provide processor patch information
31     on subMeshes, but avoiding all forms of communication.
33 Author
34     Sandeep Menon
35     University of Massachusetts Amherst
36     All rights reserved
38 \*---------------------------------------------------------------------------*/
40 #ifndef subMeshProcessorFvPatch_H
41 #define subMeshProcessorFvPatch_H
43 #include "processorFvPatch.H"
44 #include "subMeshProcessorPolyPatch.H"
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 namespace Foam
51 /*---------------------------------------------------------------------------*\
52                     Class subMeshProcessorFvPatch Declaration
53 \*---------------------------------------------------------------------------*/
55 class subMeshProcessorFvPatch
57     public processorFvPatch
59     // Private Data
61         const subMeshProcessorPolyPatch& procPolyPatch_;
63 protected:
65     // Protected Member Functions
67         //- Make patch weighting factors
68         void makeWeights(scalarField&) const;
70         //- Make patch face - neighbour cell distances
71         void makeDeltaCoeffs(scalarField&) const;
73 public:
75     //- Runtime type information
76     TypeName(subMeshProcessorPolyPatch::typeName_());
78     // Constructors
80         //- Construct from components
81         subMeshProcessorFvPatch
82         (
83             const polyPatch& patch,
84             const fvBoundaryMesh& bm
85         )
86         :
87             processorFvPatch(patch, bm),
88             procPolyPatch_(refCast<const subMeshProcessorPolyPatch>(patch))
89         {}
91     // Destructor
93         virtual ~subMeshProcessorFvPatch()
94         {}
96     // Member functions
98         //- Return delta (P to N) vectors across coupled patch
99         virtual tmp<vectorField> delta() const;
102 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
104 } // End namespace Foam
106 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
108 #endif
110 // ************************************************************************* //