Esempio n. 1
0
scalar cnoidalFirst::ddxPd
(
	const point & x,
	const scalar & time,
	const vector & unitVector
) const
{
    
    scalar Z(returnZ(x));
    scalar arg(argument(x,time));

    scalar snn(0.0), cnn(0.0), dnn(0.0);
    gsl_sf_elljac_e( arg, m_, &snn, &cnn, &dnn);

    scalar ddxPd(0);

    ddxPd  =   rhoWater_ * Foam::mag(g_)
             * (
                 eta_x(snn, cnn, dnn) + 1.0 / 2.0 * Foam::pow(h_, 2.0) * (1 - Foam::pow((Z + h_) / h_, 2.0)) * eta_xxx(snn, cnn, dnn)
               );
                     
    ddxPd *= factor(time);

//     Info << "ddxPd still isn't implemented. Need to think about the gradient on arbitrary directed mesh with arbitrary wave number vector! and arbitrary g-direction!!!" << endl;
    return ddxPd;
}
Esempio n. 2
0
scalar stokesFirstStanding::ddxPd
(
    const point& x,
    const scalar& time,
    const vector& unitVector
) const
{

    scalar Z(returnZ(x));
    scalar arg1(omega_*time - (k_ & x) + phi_);
    scalar arg2(omega_*time + (k_ & x) + phi_);

    scalar ddxPd(0);

    ddxPd = (
                rhoWater_*mag(g_)*K_*H_/2.0*Foam::cosh(K_*(Z + h_))
               /Foam::cosh(K_*h_)*Foam::sin(arg1)
              - rhoWater_*mag(g_)*K_*H_/2.0*Foam::cosh(K_*(Z + h_))
               /Foam::cosh(K_*h_)*Foam::sin(arg2)
            )*factor(time);

    return ddxPd;
}