Stokes2.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2017-2018 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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.
20 
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/>.
23 
24 Class
25  Foam::waveModels::Stokes2
26 
27 Description
28  Second-order wave model.
29 
30  Reference:
31  \verbatim
32  Stokes, G.G. (1847)
33  On the theory of oscillatory waves.
34  Transactions of the Cambridge Philosophical Society, 8, 441.
35  \endverbatim
36 
37  See equations 18 and 19.
38 
39 SourceFiles
40  Stokes2.C
41 
42 \*---------------------------------------------------------------------------*/
43 
44 #ifndef Stokes2_H
45 #define Stokes2_H
46 
47 #include "Airy.H"
48 
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 
51 namespace Foam
52 {
53 namespace waveModels
54 {
55 
56 /*---------------------------------------------------------------------------*\
57  Class Stokes2 Declaration
58 \*---------------------------------------------------------------------------*/
59 
60 class Stokes2
61 :
62  public Airy
63 {
64 public:
65 
66  //- Runtime type information
67  TypeName("Stokes2");
68 
69 
70  // Constructors
71 
72  //- Construct from a database and a dictionary
73  Stokes2(const objectRegistry& db, const dictionary& dict);
74 
75  //- Construct a clone
76  virtual autoPtr<waveModel> clone() const
77  {
78  return autoPtr<waveModel>(new Stokes2(*this));
79  }
80 
81 
82  //- Destructor
83  virtual ~Stokes2();
84 
85 
86  // Member Functions
87 
88  //- Get the wave elevation at a given time and local coordinates. Local
89  // x is aligned with the direction of propagation.
91  (
92  const scalar t,
93  const scalarField& x
94  ) const;
95 
96  //- Get the wave velocity at a given time and local coordinates. Local
97  // x is aligned with the direction of propagation, and z with negative
98  // gravity.
100  (
101  const scalar t,
102  const vector2DField& xz
103  ) const;
104 };
105 
106 
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
108 
109 } // End namespace Foam
110 } // End namespace waveModels
111 
112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
113 
114 #endif
115 
116 // ************************************************************************* //
dictionary dict
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:158
Stokes2(const objectRegistry &db, const dictionary &dict)
Construct from a database and a dictionary.
Definition: Stokes2.C:44
First-order wave model.
Definition: Airy.H:59
virtual tmp< scalarField > elevation(const scalar t, const scalarField &x) const
Get the wave elevation at a given time and local coordinates. Local.
Definition: Stokes2.C:62
virtual ~Stokes2()
Destructor.
Definition: Stokes2.C:55
virtual tmp< vector2DField > velocity(const scalar t, const vector2DField &xz) const
Get the wave velocity at a given time and local coordinates. Local.
Definition: Stokes2.C:87
virtual autoPtr< waveModel > clone() const
Construct a clone.
Definition: Stokes2.H:75
Second-order wave model.
Definition: Stokes2.H:59
TypeName("Stokes2")
Runtime type information.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: PtrList.H:52
A class for managing temporary objects.
Definition: PtrList.H:53
Registry of regIOobjects.
Namespace for OpenFOAM.