Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / lagrangian / intermediate / submodels / Kinematic / PatchInteractionModel / StandardWallInteraction / StandardWallInteraction.H
blob5e386e970b39dc337462ad8460b85e912696ab41
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     Foam::StandardWallInteraction
27 Description
28     Wall interaction model. Three choices:
29     - rebound - optionally specify elasticity and resitution coefficients
30     - stick   - particles assigined zero velocity
31     - escape  - remove particle from the domain
33     Example usage:
35         StandardWallInteractionCoeffs
36         {
37             type        rebound; // stick, escape
38             e           1;       // optional - elasticity coeff
39             mu          0;       // optional - restitution coeff
40         }
42 \*---------------------------------------------------------------------------*/
44 #ifndef StandardWallInteraction_H
45 #define StandardWallInteraction_H
47 #include "PatchInteractionModel.H"
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51 namespace Foam
53 /*---------------------------------------------------------------------------*\
54                    Class StandardWallInteraction Declaration
55 \*---------------------------------------------------------------------------*/
57 template<class CloudType>
58 class StandardWallInteraction
60     public PatchInteractionModel<CloudType>
62 protected:
64     // Protected data
66         //- Interaction type
67         typename PatchInteractionModel<CloudType>::interactionType
68             interactionType_;
70         //- Elasticity coefficient
71         scalar e_;
73         //- Restitution coefficient
74         scalar mu_;
77 public:
79     //- Runtime type information
80     TypeName("StandardWallInteraction");
83     // Constructors
85         //- Construct from dictionary
86         StandardWallInteraction(const dictionary& dict, CloudType& cloud);
89     //- Destructor
90     virtual ~StandardWallInteraction();
93     // Member Functions
95         //- Flag to indicate whether model activates patch interaction model
96         virtual bool active() const;
98         //- Apply velocity correction
99         //  Returns true if particle remains in same cell
100         virtual bool correct
101         (
102             const polyPatch& pp,
103             const label faceId,
104             bool& keepParticle,
105             vector& U
106         ) const;
110 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
112 } // End namespace Foam
114 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
116 #ifdef NoRepository
117 #   include "StandardWallInteraction.C"
118 #endif
120 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
122 #endif
124 // ************************************************************************* //