BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / regionModels / regionModel / regionModel1D / regionModel1D.H
blobc286fc55f60a46acbf323c11183b0b0d7f0cb900
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::regionModel1D
27 Description
28     Base class for 1-D region models
30 SourceFiles
31     regionModel1D.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef regionModel1D_H
36 #define regionModel1D_H
38 #include "regionModel.H"
39 #include "surfaceFields.H"
40 #include "labelList.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 namespace Foam
46 namespace regionModels
49 /*---------------------------------------------------------------------------*\
50                        Class regionModel1D Declaration
51 \*---------------------------------------------------------------------------*/
53 class regionModel1D
55     public regionModel
58 private:
60     // Private Member Functions
62         //- Disallow default bitwise copy construct
63         regionModel1D(const regionModel1D&);
65         //- Disallow default bitwise assignment
66         void operator=(const regionModel1D&);
68         //- Construct region mesh and fields
69         void constructMeshObjects();
71         //- Initialise the region
72         void initialise();
75 protected:
77     // Protected data
79         // Region addressing - per internally coupled patch face walking out
81             //- Global face IDs
82             labelListList boundaryFaceFaces_;
84             //- Global cell IDs
85             labelListList boundaryFaceCells_;
87             //- Global boundary face IDs oppossite coupled patch
88             labelList boundaryFaceOppositeFace_;
90             //- Number of layers in the region
91             label nLayers_;
94         // Geometry
96             //- Face area magnitude normal to patch
97             autoPtr<surfaceScalarField> nMagSfPtr_;
99             //- Flag to allow mesh movement
100             Switch moveMesh_;
103     // Protected member functions
105         //- Read control parameters from dictionary
106         virtual bool read();
108         //- Read control parameters from dictionary
109         virtual bool read(const dictionary& dict);
111         //- Move mesh points according to change in cell volumes
112         //  Returns map ordered by cell where 1 = cell moved, 0 = cell unchanged
113         tmp<labelField> moveMesh
114         (
115             const scalarList& deltaV,
116             const scalar minDelta = 0.0
117         );
120 public:
122     //- Runtime type information
123     TypeName("regionModel1D");
126     // Constructors
128         //- Construct null
129         regionModel1D(const fvMesh& mesh);
131         //- Construct from mesh, region type and name
132         regionModel1D
133         (
134             const fvMesh& mesh,
135             const word& regionType,
136             const word& modelName,
137             bool readFields = true
138         );
141         //- Construct from mesh, region type and name and dict
142         regionModel1D
143         (
144             const fvMesh& mesh,
145             const word& regionType,
146             const word& modelName,
147             const dictionary& dict,
148             bool readFields = true
149         );
152     //- Destructor
153     virtual ~regionModel1D();
156     // Member Functions
158         // Access
160             // Addressing
162                 //- Return the global face IDs
163                 inline const labelListList& boundaryFaceFaces() const;
165                 //- Return the global cell IDs
166                 inline const labelListList& boundaryFaceCells() const;
168                 //- Return the global boundary face IDs oppossite coupled patch
169                 inline const labelList& boundaryFaceOppositeFace() const;
172             // Geometry
174                 //- Return the face area magnitudes / [m2]
175                 inline const surfaceScalarField& nMagSf() const;
177                 //- Return the number of layers in the region
178                 inline label nLayers() const;
182 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
184 } // End namespace regionModels
185 } // End namespace Foam
187 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
189 #include "regionModel1DI.H"
191 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
193 #endif
195 // ************************************************************************* //