67 const scalar kd =
k()*depth(), ka =
k()*amplitude(t);
69 const scalar S = deep() ? 0 : 1/
cosh(2*kd),
T = deep() ? 1 :
tanh(kd);
78 1.0/6/
T/(3 + 2*S)/
pow4(1 - S)
84 1.0/24/
T/(3 + 2*S)/
pow4(1 - S)
90 9.0/128/(3 + 2*S)/(4 + S)/
pow6(1 - S)
92 132 + 17*S - 2216*
sqr(S) - 5897*
pow3(S) - 6292*
pow4(S)
97 5.0/384/(3 + 2*S)/(4 + S)/
pow6(1 - S)
99 300 + 1579*S + 3176*
sqr(S) + 2949*
pow3(S) + 1188*
pow4(S)
106 <<
"B42 = " << B42 <<
endl 107 <<
"B44 = " << B44 <<
endl 108 <<
"B53 = " << B53 <<
endl 109 <<
"B55 = " << B55 <<
endl;
120 +
pow5(ka)*(- (B53 + B55)*
cos(phi) + B53*
cos(3*phi) + B55*
cos(5*phi))
131 const scalar kd =
k()*depth(), ka =
k()*amplitude(t);
133 const scalar S = deep() ? 0 : 1/
cosh(2*kd);
134 const scalar SByA11 = deep() ? 0 : S*
sinh(kd);
136 const scalar A31ByA11 =
139 - 4 - 20*S + 10*
sqr(S) - 13*
pow3(S)
142 const scalar A33ByA11 =
148 const scalar A42ByA11 =
149 SByA11/24/
pow5(1 - S)
154 const scalar A44ByA11 =
155 SByA11/48/(3 + 2*S)/
pow5(1 - S)
160 const scalar A51ByA11 =
161 1.0/64/(3 + 2*S)/(4 + S)/
pow6(1 - S)
163 - 1184 + 32*S + 13232*
sqr(S) + 21712*
pow3(S) + 20940*
pow4(S)
167 const scalar A53ByA11 =
168 1.0/32/(3 + 2*S)/
pow6(1 - S)
174 const scalar A55ByA11 =
175 1.0/64/(3 + 2*S)/(4 + S)/
pow6(1 - S)
183 const scalar A11 = 1/
sinh(kd);
184 Info<<
"A31 = " << A31ByA11*A11 <<
endl 185 <<
"A33 = " << A33ByA11*A11 <<
endl 186 <<
"A42 = " << A42ByA11*A11 <<
endl 187 <<
"A44 = " << A44ByA11*A11 <<
endl 188 <<
"A51 = " << A51ByA11*A11 <<
endl 189 <<
"A53 = " << A53ByA11*A11 <<
endl 190 <<
"A55 = " << A55ByA11*A11 <<
endl;
199 pow3(ka)*(A31ByA11*v1 + A33ByA11*v3)
200 +
pow4(ka)*(A42ByA11*vi(2, t, xz) + A44ByA11*vi(4, t, xz))
201 +
pow5(ka)*(A51ByA11*v1 + A53ByA11*v3 + A55ByA11*vi(5, t, 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.
virtual tmp< scalarField > elevation(const scalar t, const scalarField &x) const
Get the wave elevation at a given time and local coordinates. Local.
virtual tmp< vector2DField > velocity(const scalar t, const vector2DField &xz) const
Get the wave velocity at a given time and local coordinates. Local.
dimensionedScalar cos(const dimensionedScalar &ds)
virtual tmp< vector2DField > velocity(const scalar t, const vector2DField &xz) const
Get the wave velocity at a given time and local coordinates. Local.
Stokes5(const objectRegistry &db, const dictionary &dict)
Construct from a database and a dictionary.
addToRunTimeSelectionTable(waveModel, Airy, objectRegistry)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
virtual tmp< scalarField > elevation(const scalar t, const scalarField &x) const
Get the wave elevation at a given time and local coordinates. 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.