diff --git a/src/waveModels/waveAbsorptionModels/derived/shallowWaterAbsorption/shallowWaterAbsorption.C b/src/waveModels/waveAbsorptionModels/derived/shallowWaterAbsorption/shallowWaterAbsorption.C
index 471ac164bcf5fa8d2466ca21f685a4c739664f46..d6c7de6040741090ae545012a9c7f06694444f7c 100644
--- a/src/waveModels/waveAbsorptionModels/derived/shallowWaterAbsorption/shallowWaterAbsorption.C
+++ b/src/waveModels/waveAbsorptionModels/derived/shallowWaterAbsorption/shallowWaterAbsorption.C
@@ -61,7 +61,11 @@ void Foam::waveModels::shallowWaterAbsorption::setVelocity
     const scalarField& level
 )
 {
-    U_ = vector::zero;
+    // Apply zero-gradient condition to z-component of velocity only
+    const volVectorField& U = mesh_.lookupObject<volVectorField>(UName_);
+    U_ = U.boundaryField()[patch_.index()].patchInternalField();
+    U_.replace(0, 0);
+    U_.replace(1, 0);
 }