From a7425273a0f8652177fd5fed6142e859dc517b03 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Wed, 13 Jun 2018 12:45:40 +0100
Subject: [PATCH] INT: refactored wave model code

---
 src/waveModels/Make/files                     |   2 +
 .../irregularWaveModel/irregularWaveModel.C   |   3 +-
 .../irregularWaveModel/irregularWaveModel.H   |   5 +-
 .../base/regularWaveModel/regularWaveModel.C  |  26 +-
 .../base/regularWaveModel/regularWaveModel.H  |  16 +-
 .../solitaryWaveModel/solitaryWaveModel.C     |  14 +-
 .../solitaryWaveModel/solitaryWaveModel.H     |   6 +
 .../waveGenerationModel/waveGenerationModel.C |  43 ++--
 .../waveGenerationModel/waveGenerationModel.H |  10 +-
 .../irregularMultiDirectionalWaveModel.C}     | 225 ++++++++----------
 .../irregularMultiDirectionalWaveModel.H}     |  50 ++--
 11 files changed, 197 insertions(+), 203 deletions(-)
 rename src/waveModels/waveGenerationModels/derived/{irregularWavesMultiDirec/irregularWavesMultiDirecWaveModel.C => irregularMultiDirectional/irregularMultiDirectionalWaveModel.C} (51%)
 rename src/waveModels/waveGenerationModels/derived/{irregularWavesMultiDirec/irregularWavesMultiDirecWaveModel.H => irregularMultiDirectional/irregularMultiDirectionalWaveModel.H} (77%)

diff --git a/src/waveModels/Make/files b/src/waveModels/Make/files
index d50a062cf39..76946b3c77a 100644
--- a/src/waveModels/Make/files
+++ b/src/waveModels/Make/files
@@ -2,6 +2,7 @@ waveModel/waveModel.C
 waveModel/waveModelNew.C
 
 waveGenerationModels/base/waveGenerationModel/waveGenerationModel.C
+waveGenerationModels/base/irregularWaveModel/irregularWaveModel.C
 waveGenerationModels/base/regularWaveModel/regularWaveModel.C
 waveGenerationModels/base/solitaryWaveModel/solitaryWaveModel.C
 waveGenerationModels/derived/Boussinesq/BoussinesqWaveModel.C
@@ -12,6 +13,7 @@ waveGenerationModels/derived/streamFunction/streamFunctionWaveModel.C
 waveGenerationModels/derived/StokesII/StokesIIWaveModel.C
 waveGenerationModels/derived/StokesI/StokesIWaveModel.C
 waveGenerationModels/derived/StokesV/StokesVWaveModel.C
+waveGenerationModels/derived/irregularMultiDirectional/irregularMultiDirectionalWaveModel.C
 
 
 waveAbsorptionModels/base/waveAbsorptionModel/waveAbsorptionModel.C
diff --git a/src/waveModels/waveGenerationModels/base/irregularWaveModel/irregularWaveModel.C b/src/waveModels/waveGenerationModels/base/irregularWaveModel/irregularWaveModel.C
index a1b3d503f8f..46e1ef2ed78 100644
--- a/src/waveModels/waveGenerationModels/base/irregularWaveModel/irregularWaveModel.C
+++ b/src/waveModels/waveGenerationModels/base/irregularWaveModel/irregularWaveModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016-2017 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2018 OpenCFD Ltd.
      \\/     M anipulation  | Copyright (C) 2015 IH-Cantabria
 -------------------------------------------------------------------------------
 License
@@ -49,6 +49,7 @@ Foam::scalar Foam::waveModels::irregularWaveModel::timeCoeff
     return max(0, min(t/rampTime_, 1));
 }
 
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 Foam::waveModels::irregularWaveModel::irregularWaveModel
diff --git a/src/waveModels/waveGenerationModels/base/irregularWaveModel/irregularWaveModel.H b/src/waveModels/waveGenerationModels/base/irregularWaveModel/irregularWaveModel.H
index 02a816405a7..8b01b7e6512 100644
--- a/src/waveModels/waveGenerationModels/base/irregularWaveModel/irregularWaveModel.H
+++ b/src/waveModels/waveGenerationModels/base/irregularWaveModel/irregularWaveModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016-2017 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2018 OpenCFD Ltd.
      \\/     M anipulation  | Copyright (C) 2015 IH-Cantabria
 -------------------------------------------------------------------------------
 License
@@ -41,7 +41,7 @@ namespace waveModels
 {
 
 /*---------------------------------------------------------------------------*\
-                       Class irregularWaveModel Declaration
+                     Class irregularWaveModel Declaration
 \*---------------------------------------------------------------------------*/
 
 class irregularWaveModel
@@ -69,6 +69,7 @@ protected:
         //- Return the time scaling coefficient
         virtual scalar timeCoeff(const scalar t) const;
 
+
 public:
 
     //- Runtime type information
diff --git a/src/waveModels/waveGenerationModels/base/regularWaveModel/regularWaveModel.C b/src/waveModels/waveGenerationModels/base/regularWaveModel/regularWaveModel.C
index 030c590d2a5..5939b41d292 100644
--- a/src/waveModels/waveGenerationModels/base/regularWaveModel/regularWaveModel.C
+++ b/src/waveModels/waveGenerationModels/base/regularWaveModel/regularWaveModel.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016-2017 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2018 OpenCFD Ltd.
      \\/     M anipulation  | Copyright (C) 2015 IH-Cantabria
 -------------------------------------------------------------------------------
 License
@@ -41,15 +41,6 @@ namespace waveModels
 
 // * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
 
-Foam::scalar Foam::waveModels::regularWaveModel::timeCoeff
-(
-    const scalar t
-) const
-{
-    return max(0, min(t/rampTime_, 1));
-}
-
-
 Foam::word Foam::waveModels::regularWaveModel::waveType() const
 {
     scalar waveK = 2.0*mathematical::pi/waveLength_;
@@ -78,8 +69,9 @@ Foam::waveModels::regularWaveModel::regularWaveModel
     const bool readFields
 )
 :
-    waveGenerationModel(dict, mesh, patch, false),
-    rampTime_(VSMALL),
+    irregularWaveModel(dict, mesh, patch, false),
+    waveHeight_(0),
+    waveAngle_(0),
     wavePeriod_(0),
     waveLength_(0),
     wavePhase_(1.5*mathematical::pi)
@@ -104,9 +96,10 @@ bool Foam::waveModels::regularWaveModel::readDict
     const dictionary& overrideDict
 )
 {
-    if (waveGenerationModel::readDict(overrideDict))
+    if (irregularWaveModel::readDict(overrideDict))
     {
-        lookup("rampTime") >> rampTime_;
+        waveHeight_ = readWaveHeight();
+        waveAngle_ = readWaveAngle();
 
         lookup("wavePeriod") >> wavePeriod_;
         if (wavePeriod_ < 0)
@@ -130,9 +123,10 @@ bool Foam::waveModels::regularWaveModel::readDict
 
 void Foam::waveModels::regularWaveModel::info(Ostream& os) const
 {
-    waveGenerationModel::info(os);
+    irregularWaveModel::info(os);
 
-    os  << "    Ramp time : " << rampTime_ << nl
+    os  << "    Wave height : " << waveHeight_ << nl
+        << "    Wave angle  : " << 180/mathematical::pi*waveAngle_ << nl
         << "    Wave period : " << wavePeriod_ << nl
         << "    Wave length : " << waveLength_ << nl
         << "    Wave phase : " << wavePhase_ << nl;
diff --git a/src/waveModels/waveGenerationModels/base/regularWaveModel/regularWaveModel.H b/src/waveModels/waveGenerationModels/base/regularWaveModel/regularWaveModel.H
index 6202635497e..f7ded4fa879 100644
--- a/src/waveModels/waveGenerationModels/base/regularWaveModel/regularWaveModel.H
+++ b/src/waveModels/waveGenerationModels/base/regularWaveModel/regularWaveModel.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2016-2017 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2016-2018 OpenCFD Ltd.
      \\/     M anipulation  | Copyright (C) 2015 IH-Cantabria
 -------------------------------------------------------------------------------
 License
@@ -31,7 +31,7 @@ Description
 #ifndef waveModels_reguarWaveModel_H
 #define waveModels_reguarWaveModel_H
 
-#include "waveGenerationModel.H"
+#include "irregularWaveModel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -46,7 +46,7 @@ namespace waveModels
 
 class regularWaveModel
 :
-    public waveGenerationModel
+    public irregularWaveModel
 {
     // Private Member Functions
 
@@ -61,8 +61,11 @@ protected:
 
     // Protected data
 
-        //- Ramp time
-        scalar rampTime_;
+        //- Wave height / [m]
+        scalar waveHeight_;
+
+        //- Wave angle / [rad]  (read in degrees)
+        scalar waveAngle_;
 
         //- Wave period
         scalar wavePeriod_;
@@ -76,9 +79,6 @@ protected:
 
     // Protected Member Functions
 
-        //- Return the time scaling coefficient
-        virtual scalar timeCoeff(const scalar t) const;
-
         //- Return word description of wave type
         virtual word waveType() const;
 
diff --git a/src/waveModels/waveGenerationModels/base/solitaryWaveModel/solitaryWaveModel.C b/src/waveModels/waveGenerationModels/base/solitaryWaveModel/solitaryWaveModel.C
index d8d6ab34582..09a95d7505c 100644
--- a/src/waveModels/waveGenerationModels/base/solitaryWaveModel/solitaryWaveModel.C
+++ b/src/waveModels/waveGenerationModels/base/solitaryWaveModel/solitaryWaveModel.C
@@ -27,6 +27,11 @@ License
 #include "polyPatch.H"
 #include "SubField.H"
 
+#include "mathematicalConstants.H"
+
+using namespace Foam::constant;
+
+
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
@@ -61,6 +66,8 @@ Foam::waveModels::solitaryWaveModel::solitaryWaveModel
 )
 :
     waveGenerationModel(dict, mesh, patch, false),
+    waveHeight_(0),
+    waveAngle_(0),
     x_
     (
         patch.faceCentres().component(0)*cos(waveAngle_)
@@ -90,6 +97,9 @@ bool Foam::waveModels::solitaryWaveModel::readDict
 {
     if (waveGenerationModel::readDict(overrideDict))
     {
+        waveHeight_ = readWaveHeight();
+        waveAngle_ = readWaveAngle();
+
         return true;
     }
 
@@ -101,7 +111,9 @@ void Foam::waveModels::solitaryWaveModel::info(Ostream& os) const
 {
     waveGenerationModel::info(os);
 
-    os << "    x0: " << x0_ << nl;
+    os  << "    Wave height : " << waveHeight_ << nl
+        << "    Wave angle  : " << 180/mathematical::pi*waveAngle_ << nl
+        << "    x0: " << x0_ << nl;
 }
 
 
diff --git a/src/waveModels/waveGenerationModels/base/solitaryWaveModel/solitaryWaveModel.H b/src/waveModels/waveGenerationModels/base/solitaryWaveModel/solitaryWaveModel.H
index e0724d34137..e5aea9c1873 100644
--- a/src/waveModels/waveGenerationModels/base/solitaryWaveModel/solitaryWaveModel.H
+++ b/src/waveModels/waveGenerationModels/base/solitaryWaveModel/solitaryWaveModel.H
@@ -53,6 +53,12 @@ protected:
 
     // Protected data
 
+        //- Wave height / [m]
+        scalar waveHeight_;
+
+        //- Wave angle / [rad]  (read in degrees)
+        scalar waveAngle_;
+
         //-
         const scalarField& x_;
 
diff --git a/src/waveModels/waveGenerationModels/base/waveGenerationModel/waveGenerationModel.C b/src/waveModels/waveGenerationModels/base/waveGenerationModel/waveGenerationModel.C
index 5e52d9de932..f0c8dd8567d 100644
--- a/src/waveModels/waveGenerationModels/base/waveGenerationModel/waveGenerationModel.C
+++ b/src/waveModels/waveGenerationModels/base/waveGenerationModel/waveGenerationModel.C
@@ -39,6 +39,30 @@ namespace waveModels
 }
 
 
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+Foam::scalar Foam::waveModels::waveGenerationModel::readWaveHeight() const
+{
+    scalar h(readScalar(lookup("waveHeight")));
+    if (h < 0)
+    {
+        FatalIOErrorInFunction(*this)
+            << "Wave height must be greater than zero.  Supplied"
+            << " value waveHeight = " << h
+            << exit(FatalIOError);
+    }
+
+    return h;
+}
+
+
+Foam::scalar Foam::waveModels::waveGenerationModel::readWaveAngle() const
+{
+    scalar angle(readScalar(lookup("waveAngle")));
+    return angle* mathematical::pi/180;
+}
+
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 Foam::waveModels::waveGenerationModel::waveGenerationModel
@@ -49,9 +73,7 @@ Foam::waveModels::waveGenerationModel::waveGenerationModel
     const bool readFields
 )
 :
-    waveModel(dict, mesh, patch, false),
-    waveHeight_(0),
-    waveAngle_(0)
+    waveModel(dict, mesh, patch, false)
 {
     if (readFields)
     {
@@ -77,18 +99,6 @@ bool Foam::waveModels::waveGenerationModel::readDict
     {
         lookup("activeAbsorption") >> activeAbsorption_;
 
-        lookup("waveHeight") >> waveHeight_;
-        if (waveHeight_ < 0)
-        {
-            FatalIOErrorInFunction(*this)
-                << "Wave height must be greater than zero.  Supplied"
-                << " value waveHeight = " << waveHeight_
-                << exit(FatalIOError);
-        }
-
-        lookup("waveAngle") >> waveAngle_;
-        waveAngle_ *= mathematical::pi/180;
-
         return true;
     }
 
@@ -99,9 +109,6 @@ bool Foam::waveModels::waveGenerationModel::readDict
 void Foam::waveModels::waveGenerationModel::info(Ostream& os) const
 {
     waveModel::info(os);
-
-    os  << "    Wave height : " << waveHeight_ << nl
-        << "    Wave angle  : " << 180/mathematical::pi*waveAngle_ << nl;
 }
 
 
diff --git a/src/waveModels/waveGenerationModels/base/waveGenerationModel/waveGenerationModel.H b/src/waveModels/waveGenerationModels/base/waveGenerationModel/waveGenerationModel.H
index aee9213ed69..644f506a037 100644
--- a/src/waveModels/waveGenerationModels/base/waveGenerationModel/waveGenerationModel.H
+++ b/src/waveModels/waveGenerationModels/base/waveGenerationModel/waveGenerationModel.H
@@ -50,13 +50,13 @@ class waveGenerationModel
 {
 protected:
 
-    // Protected data
+    // Protected Member Functions
 
-        //- Wave height / [m]
-        scalar waveHeight_;
+        //- Helper function to read the wave height from the coeff dictionary
+        scalar readWaveHeight() const;
 
-        //- Wave angle / [rad]  (read in degrees)
-        scalar waveAngle_;
+        //- Helper function to read the wave angle from the coeff dictionary
+        scalar readWaveAngle() const;
 
 
 public:
diff --git a/src/waveModels/waveGenerationModels/derived/irregularWavesMultiDirec/irregularWavesMultiDirecWaveModel.C b/src/waveModels/waveGenerationModels/derived/irregularMultiDirectional/irregularMultiDirectionalWaveModel.C
similarity index 51%
rename from src/waveModels/waveGenerationModels/derived/irregularWavesMultiDirec/irregularWavesMultiDirecWaveModel.C
rename to src/waveModels/waveGenerationModels/derived/irregularMultiDirectional/irregularMultiDirectionalWaveModel.C
index eabf76acb68..f212ac42e37 100644
--- a/src/waveModels/waveGenerationModels/derived/irregularWavesMultiDirec/irregularWavesMultiDirecWaveModel.C
+++ b/src/waveModels/waveGenerationModels/derived/irregularMultiDirectional/irregularMultiDirectionalWaveModel.C
@@ -23,7 +23,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "irregularWavesMultiDirecWaveModel.H"
+#include "irregularMultiDirectionalWaveModel.H"
 #include "mathematicalConstants.H"
 #include "addToRunTimeSelectionTable.H"
 
@@ -35,11 +35,11 @@ namespace Foam
 {
 namespace waveModels
 {
-    defineTypeNameAndDebug(irregularWavesMultiDirec, 0);
+    defineTypeNameAndDebug(irregularMultiDirectional, 0);
     addToRunTimeSelectionTable
     (
         waveModel,
-        irregularWavesMultiDirec,
+        irregularMultiDirectional,
         patch
     );
 }
@@ -48,8 +48,7 @@ namespace waveModels
 
 // * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * * //
 
-// First order wave height
-Foam::scalar Foam::waveModels::irregularWavesMultiDirec::eta
+Foam::scalar Foam::waveModels::irregularMultiDirectional::eta
 (
     const scalar H,
     const scalar Kx,
@@ -68,8 +67,7 @@ Foam::scalar Foam::waveModels::irregularWavesMultiDirec::eta
 
 // * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * * //
 
-//Calculate waveLength
-Foam::scalar Foam::waveModels::irregularWavesMultiDirec::waveLength
+Foam::scalar Foam::waveModels::irregularMultiDirectional::waveLength
 (
     const scalar h,
     const scalar T
@@ -78,7 +76,7 @@ Foam::scalar Foam::waveModels::irregularWavesMultiDirec::waveLength
     scalar L0 = mag(g_)*T*T/(2.0*mathematical::pi);
     scalar L = L0;
 
-    for (int iii=1; iii<=100; iii++)
+    for (label i=1; i<=100; ++i)
     {
         L = L0*tanh(2.0*mathematical::pi*h/L);
     }
@@ -87,7 +85,7 @@ Foam::scalar Foam::waveModels::irregularWavesMultiDirec::waveLength
 }
 
 
-Foam::vector Foam::waveModels::irregularWavesMultiDirec::U
+Foam::vector Foam::waveModels::irregularMultiDirectional::Uf
 (
     const scalar h,
     const scalar x,
@@ -100,98 +98,80 @@ Foam::vector Foam::waveModels::irregularWavesMultiDirec::U
     scalar v = 0.0;
     scalar w = 0.0;
 
-    scalar phaseTot = 0.0;
-    scalar waveKs_ = 0.0;
-    scalar waveOmegas_ = 0.0;
-
-    int ii;
-    int jj;
-    scalar COLUMNAS = 0;
-    scalar FILAS = irregWaveHeights_.size();
-
-    for (ii=0; ii<FILAS; ++ii)
-    {		
-	COLUMNAS= irregWaveHeights_[ii].size();	
-
-	for (jj=0; jj<COLUMNAS; ++jj)
-    	{
-	     waveKs_ = mathematical::twoPi/irregWaveLengths_[ii][jj];
-	     waveOmegas_ = mathematical::twoPi/irregWavePeriods_[ii][jj];
-
-	     phaseTot = waveKs_*x*cos(irregWaveDirs_[ii][jj]) + waveKs_*y*sin(irregWaveDirs_[ii][jj]) - waveOmegas_*t + irregWavePhases_[ii][jj];
-
-	     const vector Uf = uMultiDirec
-	            (
-                    irregWaveHeights_[ii][jj],
-		    waveOmegas_,
-		    phaseTot,
-		    waveKs_,
-		    z,
-		    h,
-		    irregWaveDirs_[ii][jj]
-              );
-	      u = u + Uf[0];
-	      v = v + Uf[1];
-	      w = w + Uf[2];
-	}	    
+    forAll(irregWaveHeights_, ii)
+    {
+        forAll(irregWaveHeights_[ii], jj)
+        {
+            scalar waveKs = mathematical::twoPi/irregWaveLengths_[ii][jj];
+            scalar waveOmegas = mathematical::twoPi/irregWavePeriods_[ii][jj];
+
+            scalar phaseTot =
+                waveKs*x*cos(irregWaveDirs_[ii][jj])
+              + waveKs*y*sin(irregWaveDirs_[ii][jj])
+              - waveOmegas*t
+              + irregWavePhases_[ii][jj];
+
+            const vector Uf = uMultiDirec
+            (
+                irregWaveHeights_[ii][jj],
+                waveOmegas,
+                phaseTot,
+                waveKs,
+                z,
+                h,
+                irregWaveDirs_[ii][jj]
+            );
+
+            u += Uf[0];
+            v += Uf[1];
+            w += Uf[2];
+        }
     }
 
     return vector(u, v, w);
 }
 
 
-void Foam::waveModels::irregularWavesMultiDirec::setLevel
+void Foam::waveModels::irregularMultiDirectional::setLevel
 (
     const scalar t,
     const scalar tCoeff,
     scalarField& level
 ) const
 {
-    scalar eta = 0.0;
-
-    scalar COLUMNAS = 0;
-    scalar FILAS = 0;
-
-    scalar waveKs_ = 0.0;
-    scalar waveOmegas_ = 0.0;
-
-    int ii;
-    int jj;
-
     forAll(level, paddlei)
     {
-        eta = 0.0;
-	FILAS= irregWaveHeights_.size();
+        scalar eta = 0;
 
-        for (ii=0; ii<FILAS; ++ii)
-        {	
-	    COLUMNAS= irregWaveHeights_[ii].size();
-
-	    for (jj=0; jj<COLUMNAS; ++jj)
-    	    {
-		waveKs_ = mathematical::twoPi/irregWaveLengths_[ii][jj];
-		waveOmegas_ = mathematical::twoPi/irregWavePeriods_[ii][jj];
+        forAll(irregWaveHeights_, ii)
+        {
+            forAll(irregWaveHeights_[ii], jj)
+            {
+                scalar waveKs = mathematical::twoPi/irregWaveLengths_[ii][jj];
+                scalar waveOmegas =
+                    mathematical::twoPi/irregWavePeriods_[ii][jj];
 
                 eta +=
                     this->eta
-	                (
+                    (
                         irregWaveHeights_[ii][jj],
-			waveKs_*cos(irregWaveDirs_[ii][jj]),
-		        xPaddle_[paddlei],
-			waveKs_*sin(irregWaveDirs_[ii][jj]),
-		        yPaddle_[paddlei],
-			waveOmegas_,
+                        waveKs*cos(irregWaveDirs_[ii][jj]),
+                        xPaddle_[paddlei],
+                        waveKs*sin(irregWaveDirs_[ii][jj]),
+                        yPaddle_[paddlei],
+                        waveOmegas,
                         t,
                         irregWavePhases_[ii][jj]
-                );
-	     }
-	}
+                    );
+            }
+        }
 
-	level[paddlei] = waterDepthRef_ + tCoeff*eta;
+        level[paddlei] = waterDepthRef_ + tCoeff*eta;
     }
 }
 
-Foam::vector Foam::waveModels::irregularWavesMultiDirec::uMultiDirec
+
+Foam::vector Foam::waveModels::irregularMultiDirectional::uMultiDirec
 (
     const scalar irregH,
     const scalar irregWaveOmega,
@@ -202,31 +182,23 @@ Foam::vector Foam::waveModels::irregularWavesMultiDirec::uMultiDirec
     const scalar irregDir
 ) const
 {
+    const scalar ksh = irregWaveKs*hh;
+    const scalar ksz = irregWaveKs*zz;
 
     scalar u =
-             irregH*0.5*irregWaveOmega*
-             cos(pha)*
-             (cosh(irregWaveKs*zz)/
-             sinh(irregWaveKs*hh))*
-	     cos(irregDir);
-
-    scalar v =     
-             irregH*0.5*irregWaveOmega*
-             cos(pha)*
-             (cosh(irregWaveKs*zz)/
-             sinh(irregWaveKs*hh))*
-	     sin(irregDir);
+        irregH*0.5*irregWaveOmega*cos(pha)*(cosh(ksz)/sinh(ksh))*cos(irregDir);
+
+    scalar v =
+        irregH*0.5*irregWaveOmega*cos(pha)*(cosh(ksz)/sinh(ksh))*sin(irregDir);
 
     scalar w =
-             irregH*0.5*irregWaveOmega*
-             sin(pha)*
-             (sinh(irregWaveKs*zz)/
-             sinh(irregWaveKs*hh));
+        irregH*0.5*irregWaveOmega*sin(pha)*(sinh(ksz)/sinh(ksh));
 
     return vector(u, v, w);
 }
 
-void Foam::waveModels::irregularWavesMultiDirec::setVelocity
+
+void Foam::waveModels::irregularMultiDirectional::setVelocity
 (
     const scalar t,
     const scalar tCoeff,
@@ -247,8 +219,8 @@ void Foam::waveModels::irregularWavesMultiDirec::setVelocity
         {
             const label paddlei = faceToPaddle_[facei];
 
-            const vector Uf = U
-	        (
+            const vector Uf = this->Uf
+            (
                 waterDepthRef_,
                 xPaddle_[paddlei],
                 yPaddle_[paddlei],
@@ -257,15 +229,14 @@ void Foam::waveModels::irregularWavesMultiDirec::setVelocity
             );
 
             U_[facei] = fraction*Uf*tCoeff;
-
         }
     }
-
 }
 
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::waveModels::irregularWavesMultiDirec::irregularWavesMultiDirec
+Foam::waveModels::irregularMultiDirectional::irregularMultiDirectional
 (
     const dictionary& dict,
     const fvMesh& mesh,
@@ -284,56 +255,54 @@ Foam::waveModels::irregularWavesMultiDirec::irregularWavesMultiDirec
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::waveModels::irregularWavesMultiDirec::~irregularWavesMultiDirec()
+Foam::waveModels::irregularMultiDirectional::~irregularMultiDirectional()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-bool Foam::waveModels::irregularWavesMultiDirec::readDict(const dictionary& overrideDict)
+bool Foam::waveModels::irregularMultiDirectional::readDict
+(
+    const dictionary& overrideDict
+)
 {
-    int ii;
-    int jj;
-
     if (irregularWaveModel::readDict(overrideDict))
     {
+        lookup("wavePeriods") >> irregWavePeriods_;
+        lookup("waveHeights") >> irregWaveHeights_;
+        lookup("wavePhases") >> irregWavePhases_;
+        lookup("waveDirs") >> irregWaveDirs_;
 
-	lookup("irregWavePeriods") >> irregWavePeriods_;
-	lookup("irregWaveHeights") >> irregWaveHeights_;
-	lookup("irregWavePhases") >> irregWavePhases_;
-	lookup("irregWaveDirs") >> irregWaveDirs_;
+        irregWaveLengths_ = irregWaveHeights_;
 
-	 irregWaveLengths_ = irregWaveHeights_;
-         scalar COLUMNAS = 0;
-         scalar FILAS = irregWaveHeights_.size();
-
-         for (ii=0; ii<FILAS; ++ii)
-         {		
-	      COLUMNAS= irregWaveHeights_[ii].size();	
-
-	      for (jj=0; jj<COLUMNAS; ++jj)
-    	      {
-		  irregWaveLengths_[ii][jj] = waveLength (waterDepthRef_, irregWavePeriods_[ii][jj]);
-		  irregWaveDirs_[ii][jj]  = irregWaveDirs_[ii][jj]  * (mathematical::pi/180);
-	      }
-         }
+        forAll(irregWaveHeights_, ii)
+        {
+            forAll(irregWaveHeights_[ii], jj)
+            {
+                irregWaveLengths_[ii][jj] =
+                    waveLength(waterDepthRef_, irregWavePeriods_[ii][jj]);
+                irregWaveDirs_[ii][jj] =
+                    irregWaveDirs_[ii][jj]*mathematical::pi/180;
+            }
+        }
 
         return true;
-
     }
 
     return false;
 }
 
-void Foam::waveModels::irregularWavesMultiDirec::info(Ostream& os) const
+
+void Foam::waveModels::irregularMultiDirectional::info(Ostream& os) const
 {
     irregularWaveModel::info(os);
 
-    os  << "    WavePeriods (s) coefficients : " << irregWavePeriods_ << nl
-        << "    WaveHeights (m) coefficients : " << irregWaveHeights_ << nl
-        << "    WavePhases (rad) coefficients : " << irregWavePhases_ << nl
-        << "    WaveLengths (m) coefficients : " << irregWaveLengths_ << nl
-        << "    WaveDirections (rad) coefficients : " << irregWaveDirs_ << nl;
+    os  << "    Wave periods    : " << irregWavePeriods_.size() << nl
+        << "    Wave heights    : " << irregWaveHeights_.size() << nl
+        << "    Wave phases     : " << irregWavePhases_.size() << nl
+        << "    Wave lengths    : " << irregWaveLengths_.size() << nl
+        << "    Wave directions : " << irregWaveDirs_.size() << nl;
 }
 
+
 // ************************************************************************* //
diff --git a/src/waveModels/waveGenerationModels/derived/irregularWavesMultiDirec/irregularWavesMultiDirecWaveModel.H b/src/waveModels/waveGenerationModels/derived/irregularMultiDirectional/irregularMultiDirectionalWaveModel.H
similarity index 77%
rename from src/waveModels/waveGenerationModels/derived/irregularWavesMultiDirec/irregularWavesMultiDirecWaveModel.H
rename to src/waveModels/waveGenerationModels/derived/irregularMultiDirectional/irregularMultiDirectionalWaveModel.H
index eaf10678ce4..31c4dfc6feb 100644
--- a/src/waveModels/waveGenerationModels/derived/irregularWavesMultiDirec/irregularWavesMultiDirecWaveModel.H
+++ b/src/waveModels/waveGenerationModels/derived/irregularMultiDirectional/irregularMultiDirectionalWaveModel.H
@@ -22,15 +22,15 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::waveModels::irregularWavesMultiDirec
+    Foam::waveModels::irregularMultiDirectional
 
 Description
     Multi-directional irregular wave model
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef waveModels_irregularWavesMultiDirec_H
-#define waveModels_irregularWavesMultiDirec_H
+#ifndef waveModels_irregularMultiDirectional_H
+#define waveModels_irregularMultiDirectional_H
 
 #include "irregularWaveModel.H"
 
@@ -42,10 +42,10 @@ namespace waveModels
 {
 
 /*---------------------------------------------------------------------------*\
-                            Class irregularWavesMultiDirec Declaration
+                  Class irregularMultiDirectional Declaration
 \*---------------------------------------------------------------------------*/
 
-class irregularWavesMultiDirec
+class irregularMultiDirectional
 :
     public irregularWaveModel
 {
@@ -53,20 +53,21 @@ private:
 
     // Proteced Data
 
-        //- Wave periods for irregularWavesMultiDirec case (seconds)
-        List< List<scalar> > irregWavePeriods_;
+        //- Wave periods for irregularMultiDirectional case [seconds]
+        List<List<scalar>> irregWavePeriods_;
 
-        //- Wave heights for irregularWavesMultiDirec case (meters)
-	List< List<scalar> > irregWaveHeights_;
+        //- Wave heights for irregularMultiDirectional case [metres]
+        List<List<scalar>> irregWaveHeights_;
 
-        //- Wave lengths for irregularWavesMultiDirec case (meters)
-	List< List<scalar> > irregWaveLengths_;
+        //- Wave lengths for irregularMultiDirectional case [metres]
+        List<List<scalar>> irregWaveLengths_;
 
-        //- Wave phases for irregularWavesMultiDirec case (radians)
-	List< List<scalar> > irregWavePhases_;
+        //- Wave phases for irregularMultiDirectional case [radians]
+        List<List<scalar>> irregWavePhases_;
 
-        //- Direction of propagation for irregularWavesMultiDirec case (degrees, from X axis)
-	List< List<scalar> > irregWaveDirs_;
+        //- Direction of propagation for irregularMultiDirectional case
+        //- [degrees] from X axis
+        List<List<scalar>> irregWaveDirs_;
 
 
     // Private Member Functions
@@ -91,13 +92,13 @@ protected:
 
         //- Return the wavelength
         virtual scalar waveLength
-	(
-	     const scalar h, 
-	     const scalar T
-	) const;
+        (
+            const scalar h,
+            const scalar T
+        ) const;
 
         //- Wave velocity
-        virtual vector U
+        virtual vector Uf
         (
             const scalar d,
             const scalar x,
@@ -115,7 +116,7 @@ protected:
             const scalar irregWaveKs,
             const scalar z,
             const scalar h,
-	    const scalar irregDir
+            const scalar irregDir
         ) const;
 
         //- Set the water level
@@ -134,13 +135,14 @@ protected:
             const scalarField& level
         );
 
+
 public:
 
     //- Runtime type information
-    TypeName("irregularWavesMultiDirectional");
+    TypeName("irregularMultiDirectional");
 
     //- Constructor
-    irregularWavesMultiDirec
+    irregularMultiDirectional
     (
         const dictionary& dict,
         const fvMesh& mesh,
@@ -149,7 +151,7 @@ public:
     );
 
     //- Destructor
-    virtual ~irregularWavesMultiDirec();
+    virtual ~irregularMultiDirectional();
 
 
     // Public Member Functions
-- 
GitLab