67 static const scalar kdGreat =
log(great);
68 const scalar kd =
min(
max(
k()*depth(), - kdGreat), kdGreat);
69 const scalar ka =
k()*amplitude(t);
71 const scalar
S = deep() ? 0 : 1/
cosh(2*kd),
T = deep() ? 1 :
tanh(kd);
80 1.0/6/
T/(3 + 2*
S)/
pow4(1 - S)
86 1.0/24/
T/(3 + 2*
S)/
pow4(1 - S)
92 9.0/128/(3 + 2*
S)/(4 + S)/
pow6(1 - S)
94 132 + 17*S - 2216*
sqr(S) - 5897*
pow3(S) - 6292*
pow4(S)
99 5.0/384/(3 + 2*
S)/(4 + S)/
pow6(1 - S)
101 300 + 1579*S + 3176*
sqr(S) + 2949*
pow3(S) + 1188*
pow4(S)
108 <<
"B42 = " << B42 <<
endl 109 <<
"B44 = " << B44 <<
endl 110 <<
"B53 = " << B53 <<
endl 111 <<
"B55 = " << B55 <<
endl;
122 +
pow5(ka)*(- (B53 + B55)*
cos(phi) + B53*
cos(3*phi) + B55*
cos(5*phi))
133 static const scalar kdGreat =
log(great);
134 const scalar kd =
min(
max(
k()*depth(), - kdGreat), kdGreat);
135 const scalar ka =
k()*amplitude(t);
137 const scalar
S = deep() ? 0 : 1/
cosh(2*kd);
138 const scalar SByA11 = deep() ? 0 : S*
sinh(kd);
140 const scalar A31ByA11 =
143 - 4 - 20*S + 10*
sqr(S) - 13*
pow3(S)
146 const scalar A33ByA11 =
152 const scalar A42ByA11 =
153 SByA11/24/
pow5(1 - S)
158 const scalar A44ByA11 =
159 SByA11/48/(3 + 2*
S)/
pow5(1 - S)
164 const scalar A51ByA11 =
165 1.0/64/(3 + 2*
S)/(4 + S)/
pow6(1 - S)
167 - 1184 + 32*S + 13232*
sqr(S) + 21712*
pow3(S) + 20940*
pow4(S)
171 const scalar A53ByA11 =
172 1.0/32/(3 + 2*
S)/
pow6(1 - S)
178 const scalar A55ByA11 =
179 1.0/64/(3 + 2*
S)/(4 + S)/
pow6(1 - S)
187 const scalar A11 = 1/
sinh(kd);
188 Info<<
"A31 = " << A31ByA11*A11 <<
endl 189 <<
"A33 = " << A33ByA11*A11 <<
endl 190 <<
"A42 = " << A42ByA11*A11 <<
endl 191 <<
"A44 = " << A44ByA11*A11 <<
endl 192 <<
"A51 = " << A51ByA11*A11 <<
endl 193 <<
"A53 = " << A53ByA11*A11 <<
endl 194 <<
"A55 = " << A55ByA11*A11 <<
endl;
203 pow3(ka)*(A31ByA11*v1 + A33ByA11*v3)
204 +
pow4(ka)*(A42ByA11*vi(2, t, xz) + A44ByA11*vi(4, t, xz))
205 +
pow5(ka)*(A51ByA11*v1 + A53ByA11*v3 + A55ByA11*vi(5, t, xz))
dimensionedScalar tanh(const dimensionedScalar &ds)
dimensionedScalar log(const dimensionedScalar &ds)
A list of keyword definitions, which are a keyword followed by any number of values (e...
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
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.
tmp< fvMatrix< Type > > S(const Pair< tmp< volScalarField::Internal >> &, const GeometricField< Type, fvPatchField, volMesh > &)
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)
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
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.