Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / dynamicMesh / dynamicFvMesh / movingBoxFvMesh / movingBoxFvMesh.H
blobe95cfa35dd9f9a512af2531865d63ae95d2317d8
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     movingBoxFvMesh
27 Description
28     Automatic simplified mesh motion for "box-in-mesh" cases.  Here,
29     a direction of motion is defined, together with motion amplitude
30     and frequency.  The domain is separated into three parts, where
31     the middle part moves according to the prescribed motion law.
32     Parts of the mesh before and after the obstacle are scaled.
34 SourceFiles
35     movingBoxFvMesh.C
37 Author
38     Hrvoje Jasak, Wikki Ltd.  All rights reserved
40 \*---------------------------------------------------------------------------*/
42 #ifndef movingBoxFvMesh_H
43 #define movingBoxFvMesh_H
45 #include "dynamicFvMesh.H"
46 #include "dictionary.H"
47 #include "pointIOField.H"
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51 namespace Foam
54 /*---------------------------------------------------------------------------*\
55                            Class movingBoxFvMesh Declaration
56 \*---------------------------------------------------------------------------*/
58 class movingBoxFvMesh
60     public dynamicFvMesh
62     // Private data
64         //- Moving mesh dictionary
65         dictionary movingMeshCoeffs_;
67         //- Motion box and direction
68         vector splitDirection_;
70         //- Left edge of box
71         vector leftEdge_;
73         //- Right edge of box
74         vector rightEdge_;
76         //- Motion velocity
77         vector velocity_;
79         //- Stationary point location
80         pointIOField stationaryPoints_;
82         //- Vertex markup field
83         scalarField motionMarkup_;
86     // Private Member Functions
88         //- Disallow default bitwise copy construct
89         movingBoxFvMesh(const movingBoxFvMesh&);
91         //- Disallow default bitwise assignment
92         void operator=(const movingBoxFvMesh&);
95 public:
97     //- Runtime type information
98     TypeName("movingBoxFvMesh");
101     // Constructors
103         //- Construct from IOobject
104         movingBoxFvMesh(const IOobject& io);
107     // Destructor
109         virtual ~movingBoxFvMesh();
112     // Member Functions
114         //- Update the mesh for both mesh motion and topology change
115         virtual bool update();
119 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
121 } // End namespace Foam
123 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
125 #endif
127 // ************************************************************************* //