68 const scalar kd =
k()*depth(), ka =
k()*amplitude(t);
70 const scalar S = deep() ? 0 : 1/
cosh(2*kd),
T = deep() ? 1 :
tanh(kd);
79 1.0/6/
T/(3 + 2*S)/
pow4(1 - S)
85 1.0/24/
T/(3 + 2*S)/
pow4(1 - S)
91 9.0/128/(3 + 2*S)/(4 + S)/
pow6(1 - S)
93 132 + 17*S - 2216*
sqr(S) - 5897*
pow3(S) - 6292*
pow4(S)
98 5.0/384/(3 + 2*S)/(4 + S)/
pow6(1 - S)
100 300 + 1579*S + 3176*
sqr(S) + 2949*
pow3(S) + 1188*
pow4(S)
107 <<
"B42 = " << B42 <<
endl 108 <<
"B44 = " << B44 <<
endl 109 <<
"B53 = " << B53 <<
endl 110 <<
"B55 = " << B55 <<
endl;
121 +
pow5(ka)*(- (B53 + B55)*
cos(phi) + B53*
cos(3*phi) + B55*
cos(5*phi))
133 const scalar kd =
k()*depth(), ka =
k()*amplitude(t);
135 const scalar S = deep() ? 0 : 1/
cosh(2*kd);
136 const scalar SByA11 = deep() ? 0 : S*
sinh(kd);
138 const scalar A31ByA11 =
141 - 4 - 20*S + 10*
sqr(S) - 13*
pow3(S)
144 const scalar A33ByA11 =
150 const scalar A42ByA11 =
151 SByA11/24/
pow5(1 - S)
156 const scalar A44ByA11 =
157 SByA11/48/(3 + 2*S)/
pow5(1 - S)
162 const scalar A51ByA11 =
163 1.0/64/(3 + 2*S)/(4 + S)/
pow6(1 - S)
165 - 1184 + 32*S + 13232*
sqr(S) + 21712*
pow3(S) + 20940*
pow4(S)
169 const scalar A53ByA11 =
170 1.0/32/(3 + 2*S)/
pow6(1 - S)
176 const scalar A55ByA11 =
177 1.0/64/(3 + 2*S)/(4 + S)/
pow6(1 - S)
185 const scalar A11 = 1/
sinh(kd);
186 Info<<
"A31 = " << A31ByA11*A11 <<
endl 187 <<
"A33 = " << A33ByA11*A11 <<
endl 188 <<
"A42 = " << A42ByA11*A11 <<
endl 189 <<
"A44 = " << A44ByA11*A11 <<
endl 190 <<
"A51 = " << A51ByA11*A11 <<
endl 191 <<
"A53 = " << A53ByA11*A11 <<
endl 192 <<
"A55 = " << A55ByA11*A11 <<
endl;
195 const vector2DField v1(vi(1, t, u, xz)), v3(vi(3, t, u, xz));
201 pow3(ka)*(A31ByA11*v1 + A33ByA11*v3)
202 +
pow4(ka)*(A42ByA11*vi(2, t, u, xz) + A44ByA11*vi(4, t, u, xz))
203 +
pow5(ka)*(A51ByA11*v1 + A53ByA11*v3 + A55ByA11*vi(5, t, u, xz))
dimensionedScalar tanh(const dimensionedScalar &ds)
A list of keyword definitions, which are a keyword followed by any number of values (e...
defineTypeNameAndDebug(Airy, 0)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
Ostream & endl(Ostream &os)
Add newline and flush stream.
label k
Boltzmann constant.
virtual ~Stokes5()
Destructor.
dimensionedScalar pow5(const dimensionedScalar &ds)
Macros for easy insertion into run-time selection tables.
dimensionedScalar cos(const dimensionedScalar &ds)
virtual tmp< vector2DField > velocity(const scalar t, const scalar u, const vector2DField &xz) const
Get the wave velocity at a given time, mean velocity and local.
virtual tmp< scalarField > elevation(const scalar t, const scalar u, const scalarField &x) const
Get the wave elevation at a given time, mean velocity and local.
Stokes5(const objectRegistry &db, const dictionary &dict)
Construct from a database and a dictionary.
addToRunTimeSelectionTable(waveModel, Airy, objectRegistry)
virtual tmp< scalarField > elevation(const scalar t, const scalar u, const scalarField &x) const
Get the wave elevation at a given time, mean velocity and local.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
virtual tmp< vector2DField > velocity(const scalar t, const scalar u, const vector2DField &xz) const
Get the wave velocity at a given time, mean velocity and local.
dimensionedScalar pow3(const dimensionedScalar &ds)
dimensionedScalar sinh(const dimensionedScalar &ds)
dimensionedScalar pow4(const dimensionedScalar &ds)
dimensionedScalar pow6(const dimensionedScalar &ds)
dimensionedScalar cosh(const dimensionedScalar &ds)
A class for managing temporary objects.
Registry of regIOobjects.