Solution (source code)

= Solution

For $N^2>0$, write $K=\sqrt{k_x^2+k_z^2}$ and choose either signed branch $\omega=sNk_x/K$, with $s=\pm1$. These two branches cover the roots of the squared <dispersion relation>. The <group velocity> of an <internal gravity wave> is
$$
\boxed{\mathbf c_g=\nabla_{\mathbf k}\omega
=\frac{sN}{K^3}(k_z^2,\,0,\,-k_xk_z).}
$$
If instead the positive-frequency root is chosen for both signs of $k_x$, set $s=+1$ and multiply the displayed components by $\operatorname{sgn}(k_x)$, away from the cusp $k_x=0$.

Taking the <dot product> with the <wave vector> gives
$$
\boxed{\mathbf k\cdot\mathbf c_g=0.}
$$
Thus the <group velocity>, which describes the travel of a narrow <wave packet> and its <energy>, is perpendicular to the <wave vector>, and hence perpendicular to the <phase velocity> $\mathbf c_p=\omega\mathbf k/K^2$. This is the <internal-wave phase and group velocity> geometry. It also follows from <phase-group orthogonality for degree-zero dispersion>: the <frequency> depends only on the direction of $\mathbf k$, not its magnitude. For $k_z=0$, the <group velocity> is zero, consistent with the stationary extremum $|\omega|=N$.