├── .gitignore ├── Allwclean ├── Allwmake ├── CONTRIBUTORS ├── README ├── TODO ├── ThirdParty ├── Allclean ├── Allwmake ├── SPARSKIT2.tar.gz ├── fenton4Foam │ ├── README │ ├── fenton4Foam.f │ └── fft.f ├── lapack-3.3.1.tgz └── settings │ ├── lapackSettings │ ├── Makefile │ └── make.inc │ ├── oceanWave3DSettings │ ├── common.mk │ └── makefile │ └── sparseSettings │ └── makefile ├── applications ├── solvers │ ├── solvers160 │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ ├── options.ext │ │ │ │ └── options.reg │ │ │ ├── UEqn.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ └── porousWaveFoam.C │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ ├── options.ext │ │ │ └── options.reg │ │ │ ├── UEqn.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ └── waveFoam.C │ ├── solvers1606_PLUS │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── porousWaveFoam.C │ │ │ ├── setDeltaT.H │ │ │ └── setRDeltaT.H │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── setDeltaT.H │ │ │ ├── setRDeltaT.H │ │ │ └── waveFoam.C │ ├── solvers170 │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── setDeltaT.H │ │ │ └── waveFoam.C │ ├── solvers1712_PLUS │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── alphaSuSp.H │ │ │ ├── correctPhi.H │ │ │ ├── createAlphaFluxes.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── porousWaveFoam.C │ │ │ ├── rhofs.H │ │ │ ├── setDeltaT.H │ │ │ └── setRDeltaT.H │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── alphaSuSp.H │ │ │ ├── correctPhi.H │ │ │ ├── createAlphaFluxes.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── rhofs.H │ │ │ ├── setDeltaT.H │ │ │ ├── setRDeltaT.H │ │ │ └── waveFoam.C │ ├── solvers1812_PLUS │ │ ├── waveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaSuSp.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── initCorrectPhi.H │ │ │ ├── pEqn.H │ │ │ ├── rhofs.H │ │ │ └── waveFoam.C │ │ └── waveIsoFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaControls.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── initCorrectPhi.H │ │ │ ├── pEqn.H │ │ │ ├── rhofs.H │ │ │ ├── setDeltaT.H │ │ │ └── waveIsoFoam.C │ ├── solvers1912_PLUS │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaSuSp.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── initCorrectPhi.H │ │ │ ├── pEqn.H │ │ │ ├── rhofs.H │ │ │ └── waveFoam.C │ ├── solvers2012_PLUS │ │ ├── waveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaSuSp.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── initCorrectPhi.H │ │ │ ├── pEqn.H │ │ │ ├── rhofs.H │ │ │ └── waveFoam.C │ │ └── waveIsoFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── alphaControls.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── createFields.H │ │ │ └── waveIsoFoam.C │ ├── solvers210 │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── porousWaveFoam.C │ │ │ └── setDeltaT.H │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── setDeltaT.H │ │ │ └── waveFoam.C │ ├── solvers2106_PLUS │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── VoFPorosity │ │ │ │ ├── alphaCourantNo.H │ │ │ │ ├── alphaEqn.H │ │ │ │ ├── alphaEqnSubCycle.H │ │ │ │ ├── createAlphaFluxes.H │ │ │ │ ├── setDeltaT.H │ │ │ │ └── setRDeltaT.H │ │ │ ├── alphaSuSp.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── initCorrectPhi.H │ │ │ ├── pEqn.H │ │ │ ├── porousWaveFoam.C │ │ │ └── rhofs.H │ │ ├── waveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaSuSp.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── initCorrectPhi.H │ │ │ ├── pEqn.H │ │ │ ├── rhofs.H │ │ │ └── waveFoam.C │ │ └── waveIsoFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── alphaControls.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── createFields.H │ │ │ └── waveIsoFoam.C │ ├── solvers211 │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── porousWaveFoam.C │ │ │ └── setDeltaT.H │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── setDeltaT.H │ │ │ └── waveFoam.C │ ├── solvers220 │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── porousWaveFoam.C │ │ │ └── setDeltaT.H │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── setDeltaT.H │ │ │ └── waveFoam.C │ ├── solvers2206_PLUS │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── VoFPorosity │ │ │ │ ├── alphaCourantNo.H │ │ │ │ ├── alphaEqn.H │ │ │ │ ├── alphaEqnSubCycle.H │ │ │ │ ├── createAlphaFluxes.H │ │ │ │ ├── setDeltaT.H │ │ │ │ └── setRDeltaT.H │ │ │ ├── alphaSuSp.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── initCorrectPhi.H │ │ │ ├── pEqn.H │ │ │ ├── porousWaveFoam.C │ │ │ └── rhofs.H │ │ ├── waveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaSuSp.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── initCorrectPhi.H │ │ │ ├── pEqn.H │ │ │ ├── rhofs.H │ │ │ └── waveFoam.C │ │ └── waveIsoFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── alphaControls.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── createFields.H │ │ │ └── waveIsoFoam.C │ ├── solvers221 │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── porousWaveFoam.C │ │ │ └── setDeltaT.H │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── setDeltaT.H │ │ │ └── waveFoam.C │ ├── solvers222 │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── porousWaveFoam.C │ │ │ └── setDeltaT.H │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── setDeltaT.H │ │ │ └── waveFoam.C │ ├── solvers230 │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── porousWaveFoam.C │ │ │ └── setDeltaT.H │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── setDeltaT.H │ │ │ └── waveFoam.C │ ├── solvers240 │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── setDeltaT.H │ │ │ └── waveFoam.C │ ├── solvers300 │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── setDeltaT.H │ │ │ ├── setRDeltaT.H │ │ │ └── waveFoam.C │ ├── solvers300_EXT │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ └── waveFoam.C │ ├── solvers300_PLUS │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── porousWaveFoam.C │ │ │ ├── setDeltaT.H │ │ │ └── setRDeltaT.H │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── setDeltaT.H │ │ │ ├── setRDeltaT.H │ │ │ └── waveFoam.C │ ├── solvers310_EXT │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ └── porousWaveFoam.C │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ └── waveFoam.C │ ├── solvers320_EXT │ │ ├── porousWaveFoam │ │ │ ├── Make │ │ │ │ ├── files │ │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ └── porousWaveFoam.C │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ └── waveFoam.C │ ├── solvers400 │ │ └── waveFoam │ │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ │ ├── UEqn.H │ │ │ ├── alphaCourantNo.H │ │ │ ├── alphaEqn.H │ │ │ ├── alphaEqnSubCycle.H │ │ │ ├── correctPhi.H │ │ │ ├── createFields.H │ │ │ ├── pEqn.H │ │ │ ├── setDeltaT.H │ │ │ ├── setRDeltaT.H │ │ │ └── waveFoam.C │ └── solvers400_EXT │ │ ├── porousWaveFoam │ │ ├── Make │ │ │ ├── files │ │ │ └── options │ │ ├── UEqn.H │ │ ├── alphaEqn.H │ │ ├── alphaEqnSubCycle.H │ │ ├── correctPhi.H │ │ ├── createFields.H │ │ ├── pEqn.H │ │ └── porousWaveFoam.C │ │ └── waveFoam │ │ ├── Make │ │ ├── files │ │ └── options │ │ ├── UEqn.H │ │ ├── alphaEqn.H │ │ ├── alphaEqnSubCycle.H │ │ ├── correctPhi.H │ │ ├── createFields.H │ │ ├── pEqn.H │ │ └── waveFoam.C └── utilities │ ├── breeder │ └── writeMooringLines │ │ ├── Make │ │ ├── files │ │ └── options │ │ └── writeMooringLines.C │ ├── misc │ └── matlab │ │ ├── postprocessing │ │ ├── readSurfaceElevation.m │ │ └── readSurfaceElevationNonEquidistantEnsembleAverage.m │ │ └── preprocessing │ │ ├── StreamFunctionCoefficientsPeriod.m │ │ ├── cnoidalFirst.m │ │ └── generateStreamFile.m │ ├── postProcessing │ ├── postProcessWaves2Foam │ │ ├── Make │ │ │ ├── files │ │ │ ├── options.OpenFOAM │ │ │ ├── options.OpenFOAMPlus1706 │ │ │ ├── options.foam │ │ │ └── options.foam.320 │ │ └── postProcessWaves2Foam.C │ └── surfaceElevation │ │ ├── Make │ │ ├── files │ │ ├── options.210 │ │ └── options.220 │ │ ├── surfaceElevation.C │ │ └── surfaceElevationDict │ └── preProcessing │ ├── faceSetToSTL │ ├── Make │ │ ├── files │ │ ├── options.OpenFOAM │ │ ├── options.OpenFOAMPlus1706 │ │ ├── options.foam │ │ └── options.foam.320 │ ├── faceSetToSTL.C │ └── stlDefinitions │ ├── relaxationZoneLayout │ ├── Make │ │ ├── files │ │ └── options │ └── relaxationZoneLayout.C │ ├── sampleIncidentWaveField │ ├── Make │ │ ├── files │ │ └── options │ └── sampleIncidentWaveField.C │ ├── setWaveField │ ├── Make │ │ ├── files │ │ ├── options2012 │ │ ├── optionsNonGABC │ │ └── optionsPre2012 │ └── setWaveField.C │ ├── setWaveParameters │ ├── Make │ │ ├── files │ │ └── options │ └── setWaveParameters.C │ └── waveGaugesNProbes │ ├── Make │ ├── files │ ├── options.OpenFOAM │ ├── options.OpenFOAMPlus1706 │ ├── options.foam │ └── options.foam.320 │ ├── probeDefinitions │ └── waveGaugesNProbes.C ├── bin ├── bashrc.org └── prepareCase.sh ├── doc ├── memo_OceanWave3D_waves2Foam_coupling.pdf ├── sourceCodeStructure │ ├── README │ └── sourceCodeStructure_r1923.svg └── templateWaveTheory │ ├── makeNewWaveTheory │ ├── templateWaveTheory.C │ └── templateWaveTheory.H ├── src ├── Allwmake ├── waves2Foam │ ├── Make │ │ ├── files │ │ ├── options.210 │ │ └── options.220 │ ├── convexPolyhedral │ │ ├── convexPolyhedral.C │ │ ├── convexPolyhedral.H │ │ ├── localCell.C │ │ ├── localCell.H │ │ ├── localCellNeg.C │ │ ├── localCellNeg.H │ │ ├── localFace.C │ │ └── localFace.H │ ├── fvPatchFields │ │ ├── waveAlpha │ │ │ ├── waveAlphaFvPatchScalarField.C │ │ │ └── waveAlphaFvPatchScalarField.H │ │ ├── wavePressure │ │ │ ├── wavePressureFvPatchScalarField.C │ │ │ └── wavePressureFvPatchScalarField.H │ │ └── waveVelocity │ │ │ ├── waveVelocityFvPatchVectorField.C │ │ │ └── waveVelocityFvPatchVectorField.H │ ├── include │ │ ├── cleanOldPhi.H │ │ ├── createExternalWaveForcing.H │ │ ├── crossVersionCompatibility.C │ │ ├── crossVersionCompatibility.H │ │ ├── readWaveProperties.H │ │ └── saveOldPhi.H │ ├── relaxationZone │ │ ├── numericalBeach │ │ │ ├── empty │ │ │ │ ├── numericalBeachEmpty.C │ │ │ │ └── numericalBeachEmpty.H │ │ │ ├── newNumericalBeach.C │ │ │ ├── numericalBeach.C │ │ │ └── numericalBeach.H │ │ ├── relaxationScheme │ │ │ ├── empty │ │ │ │ ├── relaxationSchemeEmpty.C │ │ │ │ └── relaxationSchemeEmpty.H │ │ │ ├── newRelaxationScheme.C │ │ │ ├── relaxationScheme.C │ │ │ ├── relaxationScheme.H │ │ │ ├── spatial │ │ │ │ ├── relaxationSchemeSpatial.C │ │ │ │ └── relaxationSchemeSpatial.H │ │ │ └── spatialInterpolation │ │ │ │ ├── relaxationSchemeSpatialInterpolation.C │ │ │ │ └── relaxationSchemeSpatialInterpolation.H │ │ ├── relaxationShape │ │ │ ├── cylindrical │ │ │ │ ├── relaxationShapeCylindrical.C │ │ │ │ └── relaxationShapeCylindrical.H │ │ │ ├── frozen │ │ │ │ ├── relaxationShapeFrozen.C │ │ │ │ └── relaxationShapeFrozen.H │ │ │ ├── line │ │ │ │ ├── relaxationShapeLine.C │ │ │ │ └── relaxationShapeLine.H │ │ │ ├── newRelaxationShape.C │ │ │ ├── rectangular │ │ │ │ ├── relaxationShapeRectangular.C │ │ │ │ └── relaxationShapeRectangular.H │ │ │ ├── relaxationShape.C │ │ │ ├── relaxationShape.H │ │ │ └── semiCylindrical │ │ │ │ ├── relaxationShapeSemiCylindrical.C │ │ │ │ └── relaxationShapeSemiCylindrical.H │ │ ├── relaxationWeight │ │ │ ├── exponential │ │ │ │ ├── relaxationWeightExponential.C │ │ │ │ └── relaxationWeightExponential.H │ │ │ ├── freePolynomial │ │ │ │ ├── relaxationWeightFreePolynomial.C │ │ │ │ └── relaxationWeightFreePolynomial.H │ │ │ ├── relaxationWeight.C │ │ │ ├── relaxationWeight.H │ │ │ ├── relaxationWeightCourantCorrection.C │ │ │ ├── relaxationWeightCourantCorrection.H │ │ │ └── thirdOrderPolynomial │ │ │ │ ├── relaxationWeightThirdOrderPolynomial.C │ │ │ │ └── relaxationWeightThirdOrderPolynomial.H │ │ ├── relaxationZone.C │ │ └── relaxationZone.H │ ├── setWaveField │ │ ├── setWaveField.C │ │ └── setWaveField.H │ └── waveTheories │ │ ├── current │ │ └── potentialCurrent │ │ │ ├── potentialCurrent.C │ │ │ └── potentialCurrent.H │ │ ├── externalWaveForcing │ │ ├── emptyExternal │ │ │ ├── emptyExternal.C │ │ │ └── emptyExternal.H │ │ ├── externalSource.C │ │ ├── externalSource.H │ │ ├── externalWaveForcing.C │ │ ├── externalWaveForcing.H │ │ ├── irregularFast │ │ │ ├── irregularFast.C │ │ │ └── irregularFast.H │ │ └── oceanWave3D │ │ │ ├── oceanWave3D.C │ │ │ └── oceanWave3D.H │ │ ├── irregular │ │ ├── bichromaticFirst │ │ │ ├── bichromaticFirst.C │ │ │ └── bichromaticFirst.H │ │ ├── bichromaticSecond │ │ │ ├── bichromaticSecond.C │ │ │ └── bichromaticSecond.H │ │ └── irregular │ │ │ ├── irregular.C │ │ │ └── irregular.H │ │ ├── mixedType │ │ └── combinedWaves │ │ │ ├── combinedWaves.C │ │ │ └── combinedWaves.H │ │ ├── regular │ │ ├── cnoidalFirst │ │ │ ├── cnoidalFirst.C │ │ │ └── cnoidalFirst.H │ │ ├── stokesFifth │ │ │ ├── stokesFifth.C │ │ │ ├── stokesFifth.H │ │ │ ├── velocityComponents.nb │ │ │ └── waveNumber5thOrderStokes.m │ │ ├── stokesFirst │ │ │ ├── stokesFirst.C │ │ │ └── stokesFirst.H │ │ ├── stokesFirstStanding │ │ │ ├── stokesFirstStanding.C │ │ │ └── stokesFirstStanding.H │ │ ├── stokesSecond │ │ │ ├── stokesSecond.C │ │ │ └── stokesSecond.H │ │ ├── stokesSecondModulation │ │ │ ├── stokesSecondModulation.C │ │ │ └── stokesSecondModulation.H │ │ └── streamFunction │ │ │ ├── streamFunction.C │ │ │ └── streamFunction.H │ │ ├── solitary │ │ ├── chappelear1962 │ │ │ ├── chappelear1962.C │ │ │ └── chappelear1962.H │ │ └── solitaryFirst │ │ │ ├── solitaryFirst.C │ │ │ └── solitaryFirst.H │ │ └── waveTheory │ │ ├── newWaveTheory.C │ │ ├── waveTheory.C │ │ └── waveTheory.H ├── waves2FoamGABC │ ├── Make │ │ ├── files │ │ └── options.220 │ ├── fvPatchFields │ │ ├── basic │ │ │ └── robinV │ │ │ │ ├── robinVFvPatchField.C │ │ │ │ ├── robinVFvPatchField.H │ │ │ │ ├── robinVFvPatchFields.C │ │ │ │ ├── robinVFvPatchFields.H │ │ │ │ └── robinVFvPatchFieldsFwd.H │ │ └── derived │ │ │ ├── gabcPressureRobinV │ │ │ ├── gabcPressureRobinVFvPatchScalarField.C │ │ │ └── gabcPressureRobinVFvPatchScalarField.H │ │ │ └── gabcVelocity │ │ │ ├── gabcVelocityFvPatchVectorField.C │ │ │ └── gabcVelocityFvPatchVectorField.H │ ├── gabcHelperFunctions │ │ ├── gabcHelperFunctions.C │ │ └── gabcHelperFunctions.H │ └── shapeFunctions │ │ ├── P03Celerity │ │ ├── P03Celerity.C │ │ └── P03Celerity.H │ │ ├── celerityShapeFunctions.C │ │ ├── celerityShapeFunctions.H │ │ ├── constantDepthCelerity │ │ ├── constantDepthCelerity.C │ │ └── constantDepthCelerity.H │ │ ├── constantTheoryCelerity │ │ ├── constantTheoryCelerity.C │ │ └── constantTheoryCelerity.H │ │ └── rationalCelerity │ │ ├── rationalCelerity.C │ │ └── rationalCelerity.H ├── waves2FoamMooring │ ├── Make │ │ ├── files │ │ ├── options.210 │ │ └── options.220 │ ├── mooringLine │ │ ├── catenaryShape.C │ │ ├── catenaryShape.H │ │ ├── mooringLine.C │ │ └── mooringLine.H │ └── write1DFvMesh │ │ ├── write1DFvMesh.C │ │ └── write1DFvMesh.H ├── waves2FoamPorosity │ ├── Make │ │ ├── files │ │ ├── options.210 │ │ └── options.220 │ ├── include │ │ ├── calcPorosity.H │ │ └── createPorosityFields.H │ ├── porosityCoefficients │ │ ├── engelund1953 │ │ │ ├── engelund1953.C │ │ │ └── engelund1953.H │ │ ├── nativeOF │ │ │ ├── nativeOF.C │ │ │ └── nativeOF.H │ │ ├── porosityCoefficient.C │ │ ├── porosityCoefficient.H │ │ └── vanGent1995 │ │ │ ├── vanGent1995.C │ │ │ └── vanGent1995.H │ ├── porosityModel │ │ ├── jensenJacobsenChristensen2014 │ │ │ ├── jensenJacobsenChristensen2014.C │ │ │ ├── jensenJacobsenChristensen2014.H │ │ │ ├── jjc2014Zone.C │ │ │ ├── jjc2014Zone.H │ │ │ ├── jjc2014ZoneTemplates.C │ │ │ ├── jjc2014Zones.C │ │ │ ├── jjc2014Zones.H │ │ │ └── jjc2014ZonesTemplates.C │ │ ├── wavesPorosityModel.C │ │ └── wavesPorosityModel.H │ └── porosityZones │ │ ├── README │ │ ├── porosityZone.C │ │ ├── porosityZone.H │ │ ├── porosityZoneTemplates.C │ │ ├── porosityZones.C │ │ ├── porosityZones.H │ │ └── porosityZonesTemplates.C ├── waves2FoamProcessing │ ├── Make │ │ ├── files │ │ ├── options.210 │ │ └── options.220 │ ├── postProcessing │ │ └── postProcessingWaves │ │ │ ├── cleaningUtil │ │ │ ├── removeData │ │ │ │ ├── removeData.C │ │ │ │ └── removeData.H │ │ │ └── removeSubDirs │ │ │ │ ├── removeSubDirs.C │ │ │ │ └── removeSubDirs.H │ │ │ ├── dataDict.H │ │ │ ├── miscOperations │ │ │ ├── cumTrapz │ │ │ │ ├── cumTrapz.C │ │ │ │ └── cumTrapz.H │ │ │ ├── ensembleAverage │ │ │ │ ├── ensembleAverage.C │ │ │ │ └── ensembleAverage.H │ │ │ ├── trapz │ │ │ │ ├── trapz.C │ │ │ │ └── trapz.H │ │ │ └── zeroCrossing │ │ │ │ ├── zeroCrossing.C │ │ │ │ └── zeroCrossing.H │ │ │ ├── postProcessingWaves.C │ │ │ ├── postProcessingWaves.H │ │ │ ├── spectralAnalysis │ │ │ ├── fftBasedMethods │ │ │ │ ├── powerSpectraFFT │ │ │ │ │ ├── powerSpectraFFT.C │ │ │ │ │ └── powerSpectraFFT.H │ │ │ │ └── reflectionAnalysis2DFFT │ │ │ │ │ ├── reflectionAnalysis2DFFT.C │ │ │ │ │ └── reflectionAnalysis2DFFT.H │ │ │ ├── leastSquareBasedMethods │ │ │ │ ├── powerSpectraLS │ │ │ │ │ ├── powerSpectraLS.C │ │ │ │ │ └── powerSpectraLS.H │ │ │ │ └── reflectionAnalysis2DLS │ │ │ │ │ ├── reflectionAnalysis2DLS.C │ │ │ │ │ └── reflectionAnalysis2DLS.H │ │ │ └── spectralMethods │ │ │ │ ├── complexExp.C │ │ │ │ ├── complexExp.H │ │ │ │ ├── spectralMethodsFFTBased.C │ │ │ │ ├── spectralMethodsFFTBased.H │ │ │ │ ├── spectralMethodsLeastSquaresBased.C │ │ │ │ └── spectralMethodsLeastSquaresBased.H │ │ │ ├── write2Ascii │ │ │ ├── write2Ascii.C │ │ │ └── write2Ascii.H │ │ │ ├── writeIndexLocation │ │ │ ├── writeIndexLocation.C │ │ │ └── writeIndexLocation.H │ │ │ ├── writeInterpolatedData │ │ │ ├── interpolateAlphaProbes │ │ │ │ ├── interpolateAlphaProbes.C │ │ │ │ └── interpolateAlphaProbes.H │ │ │ ├── interpolateForcesAndMoments │ │ │ │ ├── interpolateForcesAndMoments.C │ │ │ │ └── interpolateForcesAndMoments.H │ │ │ ├── interpolateOvertopping │ │ │ │ ├── interpolateOvertopping.C │ │ │ │ └── interpolateOvertopping.H │ │ │ ├── interpolateSurfaceElevation │ │ │ │ ├── interpolateSurfaceElevation.C │ │ │ │ └── interpolateSurfaceElevation.H │ │ │ └── interpolateVelocityProbes │ │ │ │ ├── interpolateVelocityProbes.C │ │ │ │ └── interpolateVelocityProbes.H │ │ │ └── writeRawData │ │ │ ├── rawAlphaProbes │ │ │ ├── rawAlphaProbes.C │ │ │ └── rawAlphaProbes.H │ │ │ ├── rawForcesAndMoments │ │ │ ├── rawForcesAndMoments.C │ │ │ └── rawForcesAndMoments.H │ │ │ ├── rawOvertopping │ │ │ ├── rawOvertopping.C │ │ │ └── rawOvertopping.H │ │ │ ├── rawSurfaceElevation │ │ │ ├── rawSurfaceElevation.C │ │ │ └── rawSurfaceElevation.H │ │ │ └── rawVelocityProbes │ │ │ ├── rawVelocityProbes.C │ │ │ └── rawVelocityProbes.H │ └── preProcessing │ │ ├── probes │ │ ├── pointDistributions │ │ │ ├── circularDistribution │ │ │ │ ├── circularDistribution.C │ │ │ │ └── circularDistribution.H │ │ │ ├── concatenatedDistribution │ │ │ │ ├── concatenatedDistribution.C │ │ │ │ └── concatenatedDistribution.H │ │ │ ├── lineDistribution │ │ │ │ ├── lineDistribution.C │ │ │ │ └── lineDistribution.H │ │ │ ├── pointDistributions.C │ │ │ ├── pointDistributions.H │ │ │ ├── quadrilateralDistribution │ │ │ │ ├── quadrilateralDistribution.C │ │ │ │ └── quadrilateralDistribution.H │ │ │ └── userDefinedDistribution │ │ │ │ ├── userDefinedDistribution.C │ │ │ │ └── userDefinedDistribution.H │ │ ├── probeGauges │ │ │ ├── probeGauges.C │ │ │ └── probeGauges.H │ │ └── waveGauges │ │ │ ├── waveGauges.C │ │ │ └── waveGauges.H │ │ └── setWaveProperties │ │ ├── current │ │ └── potentialCurrentProperties │ │ │ ├── potentialCurrentProperties.C │ │ │ └── potentialCurrentProperties.H │ │ ├── externalWaveForcing │ │ ├── externalSourceProperties │ │ │ ├── externalSourceProperties.C │ │ │ └── externalSourceProperties.H │ │ └── oceanWave3DProperties │ │ │ ├── oceanWave3DProperties.C │ │ │ └── oceanWave3DProperties.H │ │ ├── gabcSettings │ │ ├── constantDepth │ │ │ ├── constantDepth.C │ │ │ └── constantDepth.H │ │ ├── constantTheory │ │ │ ├── constantTheory.C │ │ │ └── constantTheory.H │ │ ├── gabcSettings.C │ │ ├── gabcSettings.H │ │ ├── polynomialDefault │ │ │ ├── polynomialDefault.C │ │ │ └── polynomialDefault.H │ │ ├── polynomialManual │ │ │ ├── polynomialManual.C │ │ │ └── polynomialManual.H │ │ ├── rationalDefault │ │ │ ├── rationalDefault.C │ │ │ └── rationalDefault.H │ │ └── rationalManual │ │ │ ├── rationalManual.C │ │ │ └── rationalManual.H │ │ ├── irregular │ │ ├── bichromaticFirstProperties │ │ │ ├── bichromaticFirstProperties.C │ │ │ └── bichromaticFirstProperties.H │ │ ├── bichromaticSecondProperties │ │ │ ├── bichromaticSecondProperties.C │ │ │ └── bichromaticSecondProperties.H │ │ ├── irregularProperties │ │ │ ├── irregularProperties.C │ │ │ └── irregularProperties.H │ │ └── waveSpectra │ │ │ ├── frequencyAxis │ │ │ ├── cosineStretchedFrequencyAxis │ │ │ │ ├── cosineStretchedFrequencyAxis.C │ │ │ │ └── cosineStretchedFrequencyAxis.H │ │ │ ├── equidistantFrequencyAxis │ │ │ │ ├── equidistantFrequencyAxis.C │ │ │ │ └── equidistantFrequencyAxis.H │ │ │ ├── frequencyAxis.C │ │ │ └── frequencyAxis.H │ │ │ ├── phases │ │ │ ├── focusingPhase │ │ │ │ ├── focusingPhase.C │ │ │ │ └── focusingPhase.H │ │ │ ├── phases.C │ │ │ ├── phases.H │ │ │ └── randomPhase │ │ │ │ ├── randomPhase.C │ │ │ │ └── randomPhase.H │ │ │ ├── spectra │ │ │ ├── JONSWAP │ │ │ │ ├── JONSWAP.C │ │ │ │ └── JONSWAP.H │ │ │ ├── PiersonMoskowitz │ │ │ │ ├── PiersonMoskowitz.C │ │ │ │ └── PiersonMoskowitz.H │ │ │ └── newWaveJONSWAP │ │ │ │ ├── newWaveJONSWAP.C │ │ │ │ └── newWaveJONSWAP.H │ │ │ ├── waveSpectra.C │ │ │ └── waveSpectra.H │ │ ├── mixedType │ │ ├── combinedWavesProperties │ │ │ ├── combinedWavesProperties.C │ │ │ └── combinedWavesProperties.H │ │ └── writeManualIHFoam │ │ │ ├── writeManualIHFoamProperties.C │ │ │ └── writeManualIHFoamProperties.H │ │ ├── regular │ │ ├── cnoidalFirstProperties │ │ │ ├── cnoidalFirstProperties.C │ │ │ └── cnoidalFirstProperties.H │ │ ├── stokesFifthProperties │ │ │ ├── stokesFifthProperties.C │ │ │ └── stokesFifthProperties.H │ │ ├── stokesFirstProperties │ │ │ ├── stokesFirstProperties.C │ │ │ └── stokesFirstProperties.H │ │ ├── stokesFirstStandingProperties │ │ │ ├── stokesFirstStandingProperties.C │ │ │ └── stokesFirstStandingProperties.H │ │ ├── stokesSecondModulationProperties │ │ │ ├── stokesSecondModulationProperties.C │ │ │ └── stokesSecondModulationProperties.H │ │ ├── stokesSecondProperties │ │ │ ├── stokesSecondProperties.C │ │ │ └── stokesSecondProperties.H │ │ └── streamFunctionProperties │ │ │ ├── streamFunctionProperties.C │ │ │ └── streamFunctionProperties.H │ │ ├── setWaveProperties.C │ │ ├── setWaveProperties.H │ │ └── solitary │ │ ├── chappelear1962Properties │ │ ├── chappelear1962Properties.C │ │ └── chappelear1962Properties.H │ │ └── solitaryFirstProperties │ │ ├── solitaryFirstProperties.C │ │ └── solitaryFirstProperties.H ├── waves2FoamSampling │ ├── Make │ │ ├── files │ │ ├── options.210 │ │ └── options.220 │ ├── overtopping │ │ ├── IOovertopping.H │ │ ├── overtopping.C │ │ ├── overtopping.H │ │ ├── overtoppingFunctionObject.C │ │ └── overtoppingFunctionObject.H │ └── surfaceElevation │ │ ├── sampledSurfaceElevation │ │ ├── IOsampledSurfaceElevation.H │ │ ├── sampledSurfaceElevation.C │ │ ├── sampledSurfaceElevation.H │ │ └── sampledSurfaceElevationTemplates.C │ │ └── sampledSurfaceElevationFunctionObject │ │ ├── sampledSurfaceElevationFunctionObject.C │ │ └── sampledSurfaceElevationFunctionObject.H ├── waves2FoamSampling1712 │ ├── Make │ │ ├── files │ │ ├── options.210 │ │ └── options.220 │ ├── overtopping │ │ ├── overtopping.C │ │ └── overtopping.H │ └── surfaceElevation │ │ ├── sampledSurfaceElevation.C │ │ ├── sampledSurfaceElevation.H │ │ └── sampledSurfaceElevationTemplates.C └── waves2FoamSampling2206 │ ├── Make │ ├── files │ └── options.220 │ ├── overtopping │ ├── overtopping.C │ └── overtopping.H │ └── surfaceElevation │ ├── sampledSurfaceElevation.C │ ├── sampledSurfaceElevation.H │ └── sampledSurfaceElevationImpl.C └── tutorials ├── commonFiles ├── transportProperties.16 └── transportProperties.23 ├── porousWaveFoam └── porousDamBreak │ ├── 0.org │ ├── U.org │ ├── alpha1.org │ ├── p_rgh.1706.org │ ├── p_rgh.org │ └── pd.org │ ├── Allrun │ ├── constant │ ├── g │ ├── polyMesh │ │ └── blockMeshDict │ ├── porosityZones │ ├── postProcessingProperties │ ├── probeDefinitions │ ├── turbulenceProperties │ └── waveProperties.input │ ├── experimentalData │ ├── data_00.dat │ ├── data_02.dat │ ├── data_04.dat │ ├── data_06.dat │ ├── data_08.dat │ ├── data_10.dat │ ├── data_12.dat │ ├── data_14.dat │ ├── data_16.dat │ ├── data_18.dat │ ├── data_20.dat │ └── data_22.dat │ ├── matlab │ └── processData.m │ └── system │ ├── controlDict │ ├── fvFiles │ ├── fvSchemes.16 │ ├── fvSchemes.1706 │ ├── fvSchemes.21 │ ├── fvSchemes.23 │ ├── fvSchemes.30 │ ├── fvSchemes.f30 │ ├── fvSolution.16 │ ├── fvSolution.1706 │ ├── fvSolution.21 │ ├── fvSolution.23 │ ├── fvSolution.30 │ └── fvSolution.f30 │ └── setFieldsDict.org ├── relaxationZoneLayout ├── Allrun ├── constant │ ├── environmentalProperties │ ├── g │ ├── polyMesh │ │ └── blockMeshDict │ └── waveProperties └── system │ ├── controlDict │ ├── fvSchemes │ └── fvSolution ├── waveFoam ├── 3Dwaves │ ├── 0.org │ │ ├── U.org │ │ ├── alpha1.org │ │ ├── p_rgh.1706.org │ │ ├── p_rgh.40.org │ │ ├── p_rgh.org │ │ └── pd.org │ ├── Allrun │ ├── constant │ │ ├── dynamicMeshDict │ │ ├── environmentalProperties │ │ ├── g │ │ ├── polyMesh │ │ │ └── blockMeshDict │ │ ├── turbulenceProperties │ │ └── waveProperties.input │ └── system │ │ ├── controlDict │ │ ├── faceSetDict │ │ └── fvFiles │ │ ├── fvSchemes.16 │ │ ├── fvSchemes.17 │ │ ├── fvSchemes.1706 │ │ ├── fvSchemes.21 │ │ ├── fvSchemes.23 │ │ ├── fvSchemes.30 │ │ ├── fvSchemes.f30 │ │ ├── fvSolution.16 │ │ ├── fvSolution.17 │ │ ├── fvSolution.1706 │ │ ├── fvSolution.21 │ │ ├── fvSolution.23 │ │ ├── fvSolution.30 │ │ └── fvSolution.f30 ├── bejiBattjes │ ├── 0.org │ │ ├── U.org │ │ ├── alpha1.org │ │ ├── p_rgh.1706.org │ │ ├── p_rgh.40.org │ │ └── pd.org │ ├── Allrun │ ├── README │ ├── blockMeshDict.org │ ├── constant │ │ ├── dynamicMeshDict │ │ ├── g │ │ ├── probeDefinitions │ │ ├── triSurface │ │ │ ├── geometria.stl_backup │ │ │ └── stlDefinitions │ │ ├── turbulenceProperties │ │ └── waveProperties.input │ ├── experimentalData │ │ ├── a02.dat │ │ ├── a04.dat │ │ ├── a05.dat │ │ ├── a10.dat │ │ ├── a12.dat │ │ ├── a13.dat │ │ ├── a14.dat │ │ ├── a15.dat │ │ ├── a17.dat │ │ ├── a19.dat │ │ └── a21.dat │ ├── matlab │ │ └── processData.m │ └── system │ │ ├── controlDict │ │ ├── decomposeParDict │ │ ├── fvFiles │ │ ├── fvSchemes.16 │ │ ├── fvSchemes.17 │ │ ├── fvSchemes.1706 │ │ ├── fvSchemes.21 │ │ ├── fvSchemes.23 │ │ ├── fvSchemes.30 │ │ ├── fvSchemes.f30 │ │ ├── fvSolution.16 │ │ ├── fvSolution.17 │ │ ├── fvSolution.1706 │ │ ├── fvSolution.21 │ │ ├── fvSolution.23 │ │ ├── fvSolution.30 │ │ └── fvSolution.f30 │ │ └── snappyHexMeshDict ├── couplingOceanWave3D │ ├── 0.org │ │ ├── U.org │ │ ├── alpha1.org │ │ ├── p_rgh.1706.org │ │ ├── p_rgh.40.org │ │ └── pd.org │ ├── Allrun │ ├── OceanWave3D.inp │ ├── README │ ├── constant │ │ ├── dynamicMeshDict │ │ ├── g │ │ ├── polyMesh │ │ │ └── blockMeshDict │ │ ├── probeDefinitions │ │ ├── turbulenceProperties │ │ └── waveProperties.input │ └── system │ │ ├── controlDict │ │ └── fvFiles │ │ ├── fvSchemes.16 │ │ ├── fvSchemes.17 │ │ ├── fvSchemes.1706 │ │ ├── fvSchemes.21 │ │ ├── fvSchemes.23 │ │ ├── fvSchemes.30 │ │ ├── fvSchemes.f30 │ │ ├── fvSolution.16 │ │ ├── fvSolution.17 │ │ ├── fvSolution.1706 │ │ ├── fvSolution.21 │ │ ├── fvSolution.23 │ │ ├── fvSolution.30 │ │ └── fvSolution.f30 ├── periodicSolitary │ ├── 0.org │ │ ├── U.org │ │ ├── alpha1.org │ │ ├── p_rgh.1706.org │ │ ├── p_rgh.40.org │ │ └── pd.org │ ├── Allrun │ ├── constant │ │ ├── environmentalProperties │ │ ├── g │ │ ├── polyMesh │ │ │ └── blockMeshDict │ │ ├── turbulenceProperties │ │ └── waveProperties.input │ └── system │ │ ├── controlDict │ │ └── fvFiles │ │ ├── fvSchemes.16 │ │ ├── fvSchemes.17 │ │ ├── fvSchemes.1706 │ │ ├── fvSchemes.21 │ │ ├── fvSchemes.23 │ │ ├── fvSchemes.30 │ │ ├── fvSchemes.f30 │ │ ├── fvSolution.16 │ │ ├── fvSolution.17 │ │ ├── fvSolution.1706 │ │ ├── fvSolution.21 │ │ ├── fvSolution.23 │ │ ├── fvSolution.30 │ │ └── fvSolution.f30 ├── squarePile │ ├── 0.org │ │ ├── U.org │ │ ├── alpha1.org │ │ ├── p_rgh.40.org │ │ └── pd.org │ ├── Allrun │ ├── constant │ │ ├── dynamicMeshDict │ │ ├── environmentalProperties │ │ ├── g │ │ ├── polyMesh │ │ │ └── blockMeshDict │ │ ├── turbulenceProperties │ │ └── waveProperties.input │ └── system │ │ ├── controlDict │ │ └── fvFiles │ │ ├── fvSchemes.16 │ │ ├── fvSchemes.17 │ │ ├── fvSchemes.1706 │ │ ├── fvSchemes.21 │ │ ├── fvSchemes.23 │ │ ├── fvSchemes.f30 │ │ ├── fvSolution.16 │ │ ├── fvSolution.17 │ │ ├── fvSolution.1706 │ │ ├── fvSolution.21 │ │ ├── fvSolution.23 │ │ └── fvSolution.f30 ├── standingWave │ ├── 0.org │ │ ├── U.org │ │ ├── alpha1.org │ │ ├── p_rgh.1706.org │ │ ├── p_rgh.40.org │ │ └── pd.org │ ├── Allrun │ ├── constant │ │ ├── dynamicMeshDict │ │ ├── environmentalProperties │ │ ├── g │ │ ├── polyMesh │ │ │ └── blockMeshDict │ │ ├── turbulenceProperties │ │ └── waveProperties.input │ └── system │ │ ├── controlDict │ │ └── fvFiles │ │ ├── fvSchemes.16 │ │ ├── fvSchemes.17 │ │ ├── fvSchemes.1706 │ │ ├── fvSchemes.21 │ │ ├── fvSchemes.23 │ │ ├── fvSchemes.30 │ │ ├── fvSchemes.f30 │ │ ├── fvSolution.16 │ │ ├── fvSolution.17 │ │ ├── fvSolution.1706 │ │ ├── fvSolution.21 │ │ ├── fvSolution.23 │ │ ├── fvSolution.30 │ │ └── fvSolution.f30 └── waveFlume │ ├── 0.org │ ├── U.org │ ├── alpha1.org │ ├── p_rgh.1706.org │ ├── p_rgh.40.org │ └── pd.org │ ├── Allrun │ ├── constant │ ├── dynamicMeshDict │ ├── environmentalProperties │ ├── g │ ├── polyMesh │ │ └── blockMeshDict │ ├── postProcessingProperties │ ├── probeDefinitions │ ├── turbulenceProperties │ └── waveProperties.input │ └── system │ ├── controlDict │ └── fvFiles │ ├── fvSchemes.16 │ ├── fvSchemes.17 │ ├── fvSchemes.1706 │ ├── fvSchemes.21 │ ├── fvSchemes.23 │ ├── fvSchemes.30 │ ├── fvSchemes.f30 │ ├── fvSolution.16 │ ├── fvSolution.17 │ ├── fvSolution.1706 │ ├── fvSolution.21 │ ├── fvSolution.23 │ ├── fvSolution.30 │ └── fvSolution.f30 └── waveFoamGABC ├── combinedGABC_IHFOAM ├── 0.org │ ├── U.org │ ├── alpha.water.org │ └── p_rgh.org ├── Allrun ├── README ├── constant │ ├── dynamicMeshDict │ ├── g │ ├── probeDefinitions │ ├── transportProperties │ ├── turbulenceProperties │ └── waveProperties.input └── system │ ├── blockMeshDict │ ├── controlDict │ ├── fvSchemes │ └── fvSolution ├── curvedChannel ├── 0.org │ ├── U.org │ ├── alpha.water.org │ └── p_rgh.org ├── Allrun ├── constant │ ├── dynamicMeshDict │ ├── g │ ├── porosityZones │ ├── transportProperties │ ├── turbulenceProperties │ └── waveProperties.input └── system │ ├── blockMeshDict │ ├── controlDict │ ├── fvSchemes │ └── fvSolution ├── hydroPower ├── 0.org │ ├── U.org │ ├── alpha.water.org │ └── p_rgh.org ├── Allrun ├── README ├── constant │ ├── dynamicMeshDict │ ├── g │ ├── porosityZones │ ├── probeDefinitions │ ├── transportProperties │ ├── turbulenceProperties │ └── waveProperties.input ├── localLib │ ├── Make │ │ ├── files │ │ └── options │ ├── fixedDischarge │ │ ├── fixedDischarge.C │ │ └── fixedDischarge.H │ ├── fixedDischargeProperties │ │ ├── fixedDischargeProperties.C │ │ └── fixedDischargeProperties.H │ └── internalVelocity │ │ ├── internalVelocity.C │ │ └── internalVelocity.H └── system │ ├── blockMeshDict │ ├── controlDict │ ├── fvSchemes │ ├── fvSolution │ └── setFieldsDict ├── phaseFocused ├── 0.org │ ├── U.org │ ├── alpha.water.org │ └── p_rgh.org ├── Allrun ├── constant │ ├── dynamicMeshDict │ ├── g │ ├── porosityZones │ ├── probeDefinitions │ ├── transportProperties │ ├── turbulenceProperties │ └── waveProperties.input └── system │ ├── blockMeshDict │ ├── controlDict │ ├── fvSchemes │ └── fvSolution ├── regularWave ├── 0.org │ ├── U.org │ ├── alpha.water.org │ └── p_rgh.org ├── Allrun ├── constant │ ├── dynamicMeshDict │ ├── g │ ├── porosityZones │ ├── probeDefinitions │ ├── transportProperties │ ├── turbulenceProperties │ └── waveProperties.input └── system │ ├── blockMeshDict │ ├── controlDict │ ├── fvSchemes │ └── fvSolution ├── solitary ├── 0.org │ ├── U.org │ ├── alpha.water.org │ └── p_rgh.org ├── Allrun ├── constant │ ├── dynamicMeshDict │ ├── g │ ├── porosityZones │ ├── probeDefinitions │ ├── transportProperties │ ├── turbulenceProperties │ └── waveProperties.input └── system │ ├── blockMeshDict │ ├── controlDict │ ├── fvSchemes │ └── fvSolution ├── solitary3D ├── 0.org │ ├── U.org │ ├── alpha.water.org │ └── p_rgh.org ├── Allrun ├── constant │ ├── dynamicMeshDict │ ├── g │ ├── porosityZones │ ├── probeDefinitions │ ├── transportProperties │ ├── turbulenceProperties │ └── waveProperties.input └── system │ ├── blockMeshDict │ ├── controlDict │ ├── fvSchemes │ ├── fvSolution │ └── topoSetDict └── solitary3DPorous ├── 0.org ├── U.org ├── alpha.water.org └── p_rgh.org ├── Allrun ├── constant ├── dynamicMeshDict ├── g ├── porosityZones ├── probeDefinitions ├── transportProperties ├── turbulenceProperties └── waveProperties.input └── system ├── blockMeshDict ├── controlDict ├── fvSchemes ├── fvSolution ├── topoSetDict └── topoSetDict.porous /Allwclean: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## Set environmental variables 4 | . ./bin/bashrc 5 | 6 | 7 | ## COMPILE THIRD PARTY DEPENDENCIES 8 | (cd ThirdParty; ./Allclean) 9 | 10 | 11 | ## LIBRARY 12 | echo "=====================================" 13 | echo " CLEAN LIBRARY" 14 | echo "=====================================" 15 | 16 | ( cd src; wclean all ) 17 | 18 | 19 | ## SOLVERS 20 | # Find all solver names in $WAVES_SOL 21 | echo "" 22 | echo "=====================================" 23 | echo " CLEAN SOLVERS" 24 | echo "=====================================" 25 | 26 | (cd $WAVES_DIR/applications/solvers; wclean all) 27 | 28 | 29 | ## UTILITIES 30 | echo "" 31 | echo "=====================================" 32 | echo " CLEAN UTILITIES" 33 | echo "=====================================" 34 | 35 | (cd $WAVES_DIR/applications/utilities; wclean all) 36 | 37 | 38 | echo "" 39 | echo "=====================================" 40 | echo " CLEAN DONE" 41 | echo "=====================================" 42 | echo "" 43 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | - Get the projection of the pressure gradient correct 2 | 3 | - Not all wave theories have had dpdx implemented 4 | -------------------------------------------------------------------------------- /ThirdParty/Allclean: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | rm -rf bin 4 | rm -rf lib 5 | rm -rf lapack-3.3.1 6 | rm -rf OceanWave3D-Fortran90 7 | rm -rf SPARSKIT2 8 | 9 | rm -f $WAVES_LIBBIN/libOceanWave3DBuild.a 10 | rm -f $WAVES_LIBBIN/libOceanWave3D.so 11 | -------------------------------------------------------------------------------- /ThirdParty/SPARSKIT2.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ogoe/waves2Foam/a8d38fd94b8d0116fbbc12c26903db6babfba29e/ThirdParty/SPARSKIT2.tar.gz -------------------------------------------------------------------------------- /ThirdParty/lapack-3.3.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ogoe/waves2Foam/a8d38fd94b8d0116fbbc12c26903db6babfba29e/ThirdParty/lapack-3.3.1.tgz -------------------------------------------------------------------------------- /ThirdParty/settings/oceanWave3DSettings/common.mk: -------------------------------------------------------------------------------- 1 | # For inclusion in makefile for use with GNU make (gmake) 2 | # 3 | # Purpose: Modify to local configuration by user. 4 | # 5 | 6 | # Program name 7 | PROGNAME = OceanWave3D 8 | LIBNAME = libOceanWave3D.so 9 | 10 | # Installation directory 11 | #INSTALLDIR = $(PWD)/../bin 12 | INSTALLDIR = $(WAVES_APPBIN) 13 | LIBINSTALLDIR = $(WAVES_LIBBIN) 14 | 15 | # Build directory where object files are stored 16 | BUILDDIR = $(PWD)/../build 17 | 18 | 19 | FC = gfortran 20 | LIBDIRS = -L$(PWD)/../lib 21 | LINLIB = -ltmglib_gfortran -llapack_gfortran -lskit_gfortran -lblas 22 | DBFLAGS = -pg -g -O0 -fPIC -fbounds-check -ffpe-trap=invalid,zero,overflow -ffree-line-length-none 23 | OPTFLAGS = -O3 -fPIC -ffpe-trap=invalid,zero,overflow -ffree-line-length-none -fstack-protector-all 24 | SHLIBFLAGS = -shared -O2 -fPIC -fbounds-check -ffpe-trap=invalid,zero,overflow -ffree-line-length-none -fstack-protector-all 25 | 26 | 27 | -------------------------------------------------------------------------------- /applications/solvers/solvers160/porousWaveFoam/Make/files: -------------------------------------------------------------------------------- 1 | porousWaveFoam.C 2 | 3 | EXE = $(WAVES_APPBIN)/porousWaveFoam 4 | -------------------------------------------------------------------------------- /applications/solvers/solvers160/porousWaveFoam/Make/options.ext: -------------------------------------------------------------------------------- 1 | EXE_INC = \ 2 | -I$(LIB_SRC)/transportModels \ 3 | -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ 4 | -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ 5 | -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ 6 | -I$(LIB_SRC)/finiteVolume/lnInclude \ 7 | -DOFVERSION=160 \ 8 | -DEXTBRANCH=1 \ 9 | -I$(WAVES_SRC)/waves2Foam/lnInclude \ 10 | -I$(WAVES_SRC)/waves2FoamSampling/lnInclude \ 11 | -I$(WAVES_SRC)/waves2FoamPorosity/lnInclude \ 12 | -I$(WAVES_GSL_INCLUDE) 13 | 14 | EXE_LIBS = \ 15 | -linterfaceProperties \ 16 | -lincompressibleTransportModels \ 17 | -lincompressibleTurbulenceModel \ 18 | -lincompressibleRASModels \ 19 | -lincompressibleLESModels \ 20 | -lfiniteVolume \ 21 | -llduSolvers \ 22 | -L$(WAVES_LIBBIN) \ 23 | -lwaves2Foam \ 24 | -lwaves2FoamSampling \ 25 | -lwaves2FoamPorosity \ 26 | -L$(WAVES_GSL_LIB) \ 27 | -lgsl \ 28 | -lgslcblas 29 | -------------------------------------------------------------------------------- /applications/solvers/solvers160/porousWaveFoam/Make/options.reg: -------------------------------------------------------------------------------- 1 | EXE_INC = \ 2 | -I$(LIB_SRC)/transportModels \ 3 | -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ 4 | -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ 5 | -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ 6 | -I$(LIB_SRC)/finiteVolume/lnInclude \ 7 | -DOFVERSION=160 \ 8 | -DEXTBRANCH=0 \ 9 | -I$(WAVES_SRC)/waves2Foam/lnInclude \ 10 | -I$(WAVES_SRC)/waves2FoamSampling/lnInclude \ 11 | -I$(WAVES_SRC)/waves2FoamPorosity/lnInclude \ 12 | -I$(WAVES_GSL_INCLUDE) 13 | 14 | EXE_LIBS = \ 15 | -linterfaceProperties \ 16 | -lincompressibleTransportModels \ 17 | -lincompressibleTurbulenceModel \ 18 | -lincompressibleRASModels \ 19 | -lincompressibleLESModels \ 20 | -lfiniteVolume \ 21 | -L$(WAVES_LIBBIN) \ 22 | -lwaves2Foam \ 23 | -lwaves2FoamSampling \ 24 | -lwaves2FoamPorosity \ 25 | -L$(WAVES_GSL_LIB) \ 26 | -lgsl \ 27 | -lgslcblas 28 | -------------------------------------------------------------------------------- /applications/solvers/solvers160/porousWaveFoam/alphaEqnSubCycle.H: -------------------------------------------------------------------------------- 1 | label nAlphaCorr 2 | ( 3 | readLabel(piso.lookup("nAlphaCorr")) 4 | ); 5 | 6 | label nAlphaSubCycles 7 | ( 8 | readLabel(piso.lookup("nAlphaSubCycles")) 9 | ); 10 | 11 | if (nAlphaSubCycles > 1) 12 | { 13 | dimensionedScalar totalDeltaT = runTime.deltaT(); 14 | surfaceScalarField rhoPhiSum = 0.0*rhoPhi; 15 | 16 | for 17 | ( 18 | subCycle alphaSubCycle(alpha1, nAlphaSubCycles); 19 | !(++alphaSubCycle).end(); 20 | ) 21 | { 22 | # include "alphaEqn.H" 23 | rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi; 24 | } 25 | 26 | rhoPhi = rhoPhiSum; 27 | } 28 | else 29 | { 30 | # include "alphaEqn.H" 31 | } 32 | 33 | interface.correct(); 34 | 35 | rho == alpha1*rho1 + (scalar(1) - alpha1)*rho2; 36 | -------------------------------------------------------------------------------- /applications/solvers/solvers160/waveFoam/Make/files: -------------------------------------------------------------------------------- 1 | waveFoam.C 2 | 3 | EXE = $(WAVES_APPBIN)/waveFoam 4 | -------------------------------------------------------------------------------- /applications/solvers/solvers160/waveFoam/Make/options.ext: -------------------------------------------------------------------------------- 1 | EXE_INC = \ 2 | -I$(LIB_SRC)/transportModels \ 3 | -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ 4 | -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ 5 | -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ 6 | -I$(LIB_SRC)/finiteVolume/lnInclude \ 7 | -DOFVERSION=160 \ 8 | -DEXTBRANCH=1 \ 9 | -I$(WAVES_SRC)/waves2Foam/lnInclude \ 10 | -I$(WAVES_SRC)/waves2FoamSampling/lnInclude \ 11 | -I$(WAVES_GSL_INCLUDE) 12 | 13 | EXE_LIBS = \ 14 | -linterfaceProperties \ 15 | -lincompressibleTransportModels \ 16 | -lincompressibleTurbulenceModel \ 17 | -lincompressibleRASModels \ 18 | -lincompressibleLESModels \ 19 | -lfiniteVolume \ 20 | -llduSolvers \ 21 | -L$(WAVES_LIBBIN) \ 22 | -lwaves2Foam \ 23 | -lwaves2FoamSampling \ 24 | -L$(WAVES_GSL_LIB) \ 25 | -lgsl \ 26 | -lgslcblas 27 | -------------------------------------------------------------------------------- /applications/solvers/solvers160/waveFoam/Make/options.reg: -------------------------------------------------------------------------------- 1 | EXE_INC = \ 2 | -I$(LIB_SRC)/transportModels \ 3 | -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ 4 | -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ 5 | -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ 6 | -I$(LIB_SRC)/finiteVolume/lnInclude \ 7 | -DOFVERSION=160 \ 8 | -DEXTBRANCH=0 \ 9 | -I$(WAVES_SRC)/waves2Foam/lnInclude \ 10 | -I$(WAVES_SRC)/waves2FoamSampling/lnInclude \ 11 | -I$(WAVES_GSL_INCLUDE) 12 | 13 | EXE_LIBS = \ 14 | -linterfaceProperties \ 15 | -lincompressibleTransportModels \ 16 | -lincompressibleTurbulenceModel \ 17 | -lincompressibleRASModels \ 18 | -lincompressibleLESModels \ 19 | -lfiniteVolume \ 20 | -L$(WAVES_LIBBIN) \ 21 | -lwaves2Foam \ 22 | -lwaves2FoamSampling \ 23 | -L$(WAVES_GSL_LIB) \ 24 | -lgsl \ 25 | -lgslcblas 26 | -------------------------------------------------------------------------------- /applications/solvers/solvers160/waveFoam/UEqn.H: -------------------------------------------------------------------------------- 1 | surfaceScalarField muEff 2 | ( 3 | "muEff", 4 | twoPhaseProperties.muf() 5 | + fvc::interpolate(rho*turbulence->nut()) 6 | ); 7 | 8 | fvVectorMatrix UEqn 9 | ( 10 | fvm::ddt(rho, U) 11 | + fvm::div(rhoPhi, U) 12 | - fvm::laplacian(muEff, U) 13 | - (fvc::grad(U) & fvc::grad(muEff)) 14 | - fvm::Sp( rho*relaxing.numericalBeach(), U ) // Numerical beach 15 | //- fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf())) 16 | ); 17 | 18 | UEqn.relax(); 19 | 20 | if (momentumPredictor) 21 | { 22 | solve 23 | ( 24 | UEqn 25 | == 26 | fvc::reconstruct 27 | ( 28 | ( 29 | fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) 30 | - ghf*fvc::snGrad(rho) 31 | - fvc::snGrad(pd) 32 | )*mesh.magSf() 33 | ) 34 | ); 35 | } 36 | -------------------------------------------------------------------------------- /applications/solvers/solvers160/waveFoam/alphaEqnSubCycle.H: -------------------------------------------------------------------------------- 1 | label nAlphaCorr 2 | ( 3 | readLabel(piso.lookup("nAlphaCorr")) 4 | ); 5 | 6 | label nAlphaSubCycles 7 | ( 8 | readLabel(piso.lookup("nAlphaSubCycles")) 9 | ); 10 | 11 | if (nAlphaSubCycles > 1) 12 | { 13 | dimensionedScalar totalDeltaT = runTime.deltaT(); 14 | surfaceScalarField rhoPhiSum = 0.0*rhoPhi; 15 | 16 | for 17 | ( 18 | subCycle alphaSubCycle(alpha1, nAlphaSubCycles); 19 | !(++alphaSubCycle).end(); 20 | ) 21 | { 22 | # include "alphaEqn.H" 23 | rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi; 24 | } 25 | 26 | rhoPhi = rhoPhiSum; 27 | } 28 | else 29 | { 30 | # include "alphaEqn.H" 31 | } 32 | 33 | interface.correct(); 34 | 35 | rho == alpha1*rho1 + (scalar(1) - alpha1)*rho2; 36 | -------------------------------------------------------------------------------- /applications/solvers/solvers1606_PLUS/porousWaveFoam/Make/files: -------------------------------------------------------------------------------- 1 | porousWaveFoam.C 2 | 3 | EXE = $(WAVES_APPBIN)/porousWaveFoam 4 | -------------------------------------------------------------------------------- /applications/solvers/solvers1606_PLUS/porousWaveFoam/alphaEqnSubCycle.H: -------------------------------------------------------------------------------- 1 | if (nAlphaSubCycles > 1) 2 | { 3 | dimensionedScalar totalDeltaT = runTime.deltaT(); 4 | surfaceScalarField rhoPhiSum 5 | ( 6 | IOobject 7 | ( 8 | "rhoPhiSum", 9 | runTime.timeName(), 10 | mesh 11 | ), 12 | mesh, 13 | dimensionedScalar("0", rhoPhi.dimensions(), 0) 14 | ); 15 | 16 | tmp trSubDeltaT; 17 | 18 | if (LTS) 19 | { 20 | trSubDeltaT = 21 | fv::localEulerDdt::localRSubDeltaT(mesh, nAlphaSubCycles); 22 | } 23 | 24 | for 25 | ( 26 | subCycle alphaSubCycle(alpha1, nAlphaSubCycles); 27 | !(++alphaSubCycle).end(); 28 | ) 29 | { 30 | #include "alphaEqn.H" 31 | rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi; 32 | } 33 | 34 | rhoPhi = rhoPhiSum; 35 | } 36 | else 37 | { 38 | #include "alphaEqn.H" 39 | } 40 | 41 | rho == alpha1*rho1 + alpha2*rho2; 42 | -------------------------------------------------------------------------------- /applications/solvers/solvers1606_PLUS/porousWaveFoam/correctPhi.H: -------------------------------------------------------------------------------- 1 | CorrectPhi 2 | ( 3 | U, 4 | phi, 5 | p_rgh, 6 | dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1), 7 | geometricZeroField(), 8 | pimple 9 | ); 10 | 11 | #include "continuityErrs.H" 12 | -------------------------------------------------------------------------------- /applications/solvers/solvers1606_PLUS/waveFoam/Make/files: -------------------------------------------------------------------------------- 1 | waveFoam.C 2 | 3 | EXE = $(WAVES_APPBIN)/waveFoam 4 | -------------------------------------------------------------------------------- /applications/solvers/solvers1606_PLUS/waveFoam/UEqn.H: -------------------------------------------------------------------------------- 1 | MRF.correctBoundaryVelocity(U); 2 | 3 | fvVectorMatrix UEqn 4 | ( 5 | fvm::ddt(rho, U) + fvm::div(rhoPhi, U) 6 | + MRF.DDt(rho, U) 7 | + turbulence->divDevRhoReff(rho, U) 8 | == 9 | fvOptions(rho, U) 10 | ); 11 | 12 | UEqn.relax(); 13 | 14 | fvOptions.constrain(UEqn); 15 | 16 | if (pimple.momentumPredictor()) 17 | { 18 | solve 19 | ( 20 | UEqn 21 | == 22 | fvc::reconstruct 23 | ( 24 | ( 25 | mixture.surfaceTensionForce() 26 | - ghf*fvc::snGrad(rho) 27 | - fvc::snGrad(p_rgh) 28 | ) * mesh.magSf() 29 | ) 30 | ); 31 | 32 | fvOptions.correct(U); 33 | } 34 | -------------------------------------------------------------------------------- /applications/solvers/solvers1606_PLUS/waveFoam/alphaEqnSubCycle.H: -------------------------------------------------------------------------------- 1 | if (nAlphaSubCycles > 1) 2 | { 3 | dimensionedScalar totalDeltaT = runTime.deltaT(); 4 | surfaceScalarField rhoPhiSum 5 | ( 6 | IOobject 7 | ( 8 | "rhoPhiSum", 9 | runTime.timeName(), 10 | mesh 11 | ), 12 | mesh, 13 | dimensionedScalar("0", rhoPhi.dimensions(), 0) 14 | ); 15 | 16 | tmp trSubDeltaT; 17 | 18 | if (LTS) 19 | { 20 | trSubDeltaT = 21 | fv::localEulerDdt::localRSubDeltaT(mesh, nAlphaSubCycles); 22 | } 23 | 24 | for 25 | ( 26 | subCycle alphaSubCycle(alpha1, nAlphaSubCycles); 27 | !(++alphaSubCycle).end(); 28 | ) 29 | { 30 | #include "alphaEqn.H" 31 | rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi; 32 | } 33 | 34 | rhoPhi = rhoPhiSum; 35 | } 36 | else 37 | { 38 | #include "alphaEqn.H" 39 | } 40 | 41 | rho == alpha1*rho1 + alpha2*rho2; 42 | -------------------------------------------------------------------------------- /applications/solvers/solvers1606_PLUS/waveFoam/correctPhi.H: -------------------------------------------------------------------------------- 1 | CorrectPhi 2 | ( 3 | U, 4 | phi, 5 | p_rgh, 6 | dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1), 7 | geometricZeroField(), 8 | pimple 9 | ); 10 | 11 | #include "continuityErrs.H" 12 | -------------------------------------------------------------------------------- /applications/solvers/solvers170/waveFoam/Make/files: -------------------------------------------------------------------------------- 1 | waveFoam.C 2 | 3 | EXE = $(WAVES_APPBIN)/waveFoam 4 | -------------------------------------------------------------------------------- /applications/solvers/solvers170/waveFoam/Make/options: -------------------------------------------------------------------------------- 1 | EXE_INC = \ 2 | -I$(LIB_SRC)/transportModels \ 3 | -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ 4 | -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ 5 | -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ 6 | -I$(LIB_SRC)/finiteVolume/lnInclude \ 7 | -DOFVERSION=170 \ 8 | -DEXTBRANCH=0 \ 9 | -DOFPLUSBRANCH=0 \ 10 | -I$(WAVES_SRC)/waves2Foam/lnInclude \ 11 | -I$(WAVES_SRC)/waves2FoamSampling/lnInclude \ 12 | -I$(WAVES_GSL_INCLUDE) 13 | 14 | EXE_LIBS = \ 15 | -linterfaceProperties \ 16 | -lincompressibleTransportModels \ 17 | -lincompressibleTurbulenceModel \ 18 | -lincompressibleRASModels \ 19 | -lincompressibleLESModels \ 20 | -lfiniteVolume \ 21 | -L$(WAVES_LIBBIN) \ 22 | -lwaves2Foam \ 23 | -lwaves2FoamSampling \ 24 | -L$(WAVES_GSL_LIB) \ 25 | -lgsl \ 26 | -lgslcblas 27 | -------------------------------------------------------------------------------- /applications/solvers/solvers170/waveFoam/UEqn.H: -------------------------------------------------------------------------------- 1 | surfaceScalarField muEff 2 | ( 3 | "muEff", 4 | twoPhaseProperties.muf() 5 | + fvc::interpolate(rho*turbulence->nut()) 6 | ); 7 | 8 | fvVectorMatrix UEqn 9 | ( 10 | fvm::ddt(rho, U) 11 | + fvm::div(rhoPhi, U) 12 | - fvm::laplacian(muEff, U) 13 | - (fvc::grad(U) & fvc::grad(muEff)) 14 | - fvm::Sp( rho*relaxing.numericalBeach(), U ) // Numerical beach 15 | //- fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf())) 16 | ); 17 | 18 | UEqn.relax(); 19 | 20 | if (momentumPredictor) 21 | { 22 | solve 23 | ( 24 | UEqn 25 | == 26 | fvc::reconstruct 27 | ( 28 | ( 29 | fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) 30 | - ghf*fvc::snGrad(rho) 31 | - fvc::snGrad(p_rgh) 32 | )*mesh.magSf() 33 | ) 34 | ); 35 | } 36 | -------------------------------------------------------------------------------- /applications/solvers/solvers170/waveFoam/alphaEqnSubCycle.H: -------------------------------------------------------------------------------- 1 | label nAlphaCorr 2 | ( 3 | readLabel(piso.lookup("nAlphaCorr")) 4 | ); 5 | 6 | label nAlphaSubCycles 7 | ( 8 | readLabel(piso.lookup("nAlphaSubCycles")) 9 | ); 10 | 11 | if (nAlphaSubCycles > 1) 12 | { 13 | dimensionedScalar totalDeltaT = runTime.deltaT(); 14 | surfaceScalarField rhoPhiSum = 0.0*rhoPhi; 15 | 16 | for 17 | ( 18 | subCycle alphaSubCycle(alpha1, nAlphaSubCycles); 19 | !(++alphaSubCycle).end(); 20 | ) 21 | { 22 | # include "alphaEqn.H" 23 | rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi; 24 | } 25 | 26 | rhoPhi = rhoPhiSum; 27 | } 28 | else 29 | { 30 | # include "alphaEqn.H" 31 | } 32 | 33 | interface.correct(); 34 | 35 | rho == alpha1*rho1 + (scalar(1) - alpha1)*rho2; 36 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/porousWaveFoam/Make/files: -------------------------------------------------------------------------------- 1 | porousWaveFoam.C 2 | 3 | EXE = $(WAVES_APPBIN)/porousWaveFoam 4 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/porousWaveFoam/alphaEqnSubCycle.H: -------------------------------------------------------------------------------- 1 | if (nAlphaSubCycles > 1) 2 | { 3 | dimensionedScalar totalDeltaT = runTime.deltaT(); 4 | surfaceScalarField rhoPhiSum 5 | ( 6 | IOobject 7 | ( 8 | "rhoPhiSum", 9 | runTime.timeName(), 10 | mesh 11 | ), 12 | mesh, 13 | dimensionedScalar("0", rhoPhi.dimensions(), 0) 14 | ); 15 | 16 | tmp trSubDeltaT; 17 | 18 | if (LTS) 19 | { 20 | trSubDeltaT = 21 | fv::localEulerDdt::localRSubDeltaT(mesh, nAlphaSubCycles); 22 | } 23 | 24 | for 25 | ( 26 | subCycle alphaSubCycle(alpha1, nAlphaSubCycles); 27 | !(++alphaSubCycle).end(); 28 | ) 29 | { 30 | #include "alphaEqn.H" 31 | rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi; 32 | } 33 | 34 | rhoPhi = rhoPhiSum; 35 | } 36 | else 37 | { 38 | #include "alphaEqn.H" 39 | } 40 | 41 | rho == alpha1*rho1 + alpha2*rho2; 42 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/porousWaveFoam/alphaSuSp.H: -------------------------------------------------------------------------------- 1 | zeroField Su; 2 | zeroField Sp; 3 | zeroField divU; 4 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/porousWaveFoam/correctPhi.H: -------------------------------------------------------------------------------- 1 | CorrectPhi 2 | ( 3 | U, 4 | phi, 5 | p_rgh, 6 | dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1), 7 | geometricZeroField(), 8 | pimple 9 | ); 10 | 11 | #include "continuityErrs.H" 12 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/porousWaveFoam/createAlphaFluxes.H: -------------------------------------------------------------------------------- 1 | IOobject alphaPhi10Header 2 | ( 3 | "alphaPhi10", 4 | runTime.timeName(), 5 | mesh, 6 | IOobject::READ_IF_PRESENT, 7 | IOobject::AUTO_WRITE 8 | ); 9 | 10 | const bool alphaRestart = 11 | alphaPhi10Header.typeHeaderOk(true); 12 | 13 | // MULES flux from previous time-step 14 | surfaceScalarField alphaPhi10 15 | ( 16 | alphaPhi10Header, 17 | phi*fvc::interpolate(alpha1) 18 | ); 19 | 20 | // MULES Correction 21 | tmp talphaPhi1Corr0; 22 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/porousWaveFoam/rhofs.H: -------------------------------------------------------------------------------- 1 | const dimensionedScalar& rho1f(rho1); 2 | const dimensionedScalar& rho2f(rho2); 3 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/waveFoam/Make/files: -------------------------------------------------------------------------------- 1 | waveFoam.C 2 | 3 | EXE = $(WAVES_APPBIN)/waveFoam 4 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/waveFoam/UEqn.H: -------------------------------------------------------------------------------- 1 | MRF.correctBoundaryVelocity(U); 2 | 3 | fvVectorMatrix UEqn 4 | ( 5 | fvm::ddt(rho, U) + fvm::div(rhoPhi, U) 6 | + MRF.DDt(rho, U) 7 | + turbulence->divDevRhoReff(rho, U) 8 | == 9 | fvOptions(rho, U) 10 | ); 11 | 12 | UEqn.relax(); 13 | 14 | fvOptions.constrain(UEqn); 15 | 16 | if (pimple.momentumPredictor()) 17 | { 18 | solve 19 | ( 20 | UEqn 21 | == 22 | fvc::reconstruct 23 | ( 24 | ( 25 | mixture.surfaceTensionForce() 26 | - ghf*fvc::snGrad(rho) 27 | - fvc::snGrad(p_rgh) 28 | ) * mesh.magSf() 29 | ) 30 | ); 31 | 32 | fvOptions.correct(U); 33 | } 34 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/waveFoam/alphaEqnSubCycle.H: -------------------------------------------------------------------------------- 1 | if (nAlphaSubCycles > 1) 2 | { 3 | dimensionedScalar totalDeltaT = runTime.deltaT(); 4 | surfaceScalarField rhoPhiSum 5 | ( 6 | IOobject 7 | ( 8 | "rhoPhiSum", 9 | runTime.timeName(), 10 | mesh 11 | ), 12 | mesh, 13 | dimensionedScalar("0", rhoPhi.dimensions(), 0) 14 | ); 15 | 16 | tmp trSubDeltaT; 17 | 18 | if (LTS) 19 | { 20 | trSubDeltaT = 21 | fv::localEulerDdt::localRSubDeltaT(mesh, nAlphaSubCycles); 22 | } 23 | 24 | for 25 | ( 26 | subCycle alphaSubCycle(alpha1, nAlphaSubCycles); 27 | !(++alphaSubCycle).end(); 28 | ) 29 | { 30 | #include "alphaEqn.H" 31 | rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi; 32 | } 33 | 34 | rhoPhi = rhoPhiSum; 35 | } 36 | else 37 | { 38 | #include "alphaEqn.H" 39 | } 40 | 41 | rho == alpha1*rho1 + alpha2*rho2; 42 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/waveFoam/alphaSuSp.H: -------------------------------------------------------------------------------- 1 | zeroField Su; 2 | zeroField Sp; 3 | zeroField divU; 4 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/waveFoam/correctPhi.H: -------------------------------------------------------------------------------- 1 | CorrectPhi 2 | ( 3 | U, 4 | phi, 5 | p_rgh, 6 | dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1), 7 | geometricZeroField(), 8 | pimple 9 | ); 10 | 11 | #include "continuityErrs.H" 12 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/waveFoam/createAlphaFluxes.H: -------------------------------------------------------------------------------- 1 | IOobject alphaPhi10Header 2 | ( 3 | "alphaPhi10", 4 | runTime.timeName(), 5 | mesh, 6 | IOobject::READ_IF_PRESENT, 7 | IOobject::AUTO_WRITE 8 | ); 9 | 10 | const bool alphaRestart = 11 | alphaPhi10Header.typeHeaderOk(true); 12 | 13 | // MULES flux from previous time-step 14 | surfaceScalarField alphaPhi10 15 | ( 16 | alphaPhi10Header, 17 | phi*fvc::interpolate(alpha1) 18 | ); 19 | 20 | // MULES Correction 21 | tmp talphaPhi1Corr0; 22 | -------------------------------------------------------------------------------- /applications/solvers/solvers1712_PLUS/waveFoam/rhofs.H: -------------------------------------------------------------------------------- 1 | const dimensionedScalar& rho1f(rho1); 2 | const dimensionedScalar& rho2f(rho2); 3 | -------------------------------------------------------------------------------- /applications/solvers/solvers1812_PLUS/waveFoam/Make/files: -------------------------------------------------------------------------------- 1 | waveFoam.C 2 | 3 | EXE = $(WAVES_APPBIN)/waveFoam 4 | -------------------------------------------------------------------------------- /applications/solvers/solvers1812_PLUS/waveFoam/UEqn.H: -------------------------------------------------------------------------------- 1 | MRF.correctBoundaryVelocity(U); 2 | 3 | fvVectorMatrix UEqn 4 | ( 5 | fvm::ddt(rho, U) + fvm::div(rhoPhi, U) 6 | + MRF.DDt(rho, U) 7 | + turbulence->divDevRhoReff(rho, U) 8 | == 9 | fvOptions(rho, U) 10 | ); 11 | 12 | UEqn.relax(); 13 | 14 | fvOptions.constrain(UEqn); 15 | 16 | if (pimple.momentumPredictor()) 17 | { 18 | solve 19 | ( 20 | UEqn 21 | == 22 | fvc::reconstruct 23 | ( 24 | ( 25 | mixture.surfaceTensionForce() 26 | - ghf*fvc::snGrad(rho) 27 | - fvc::snGrad(p_rgh) 28 | ) * mesh.magSf() 29 | ) 30 | ); 31 | 32 | fvOptions.correct(U); 33 | } 34 | -------------------------------------------------------------------------------- /applications/solvers/solvers1812_PLUS/waveFoam/alphaSuSp.H: -------------------------------------------------------------------------------- 1 | zeroField Su; 2 | zeroField Sp; 3 | zeroField divU; 4 | -------------------------------------------------------------------------------- /applications/solvers/solvers1812_PLUS/waveFoam/correctPhi.H: -------------------------------------------------------------------------------- 1 | CorrectPhi 2 | ( 3 | U, 4 | phi, 5 | p_rgh, 6 | surfaceScalarField("rAUf", fvc::interpolate(rAU())), 7 | geometricZeroField(), 8 | pimple 9 | ); 10 | 11 | #include "continuityErrs.H" 12 | -------------------------------------------------------------------------------- /applications/solvers/solvers1812_PLUS/waveFoam/initCorrectPhi.H: -------------------------------------------------------------------------------- 1 | tmp rAU; 2 | 3 | if (correctPhi) 4 | { 5 | rAU = new volScalarField 6 | ( 7 | IOobject 8 | ( 9 | "rAU", 10 | runTime.timeName(), 11 | mesh, 12 | IOobject::READ_IF_PRESENT, 13 | IOobject::AUTO_WRITE 14 | ), 15 | mesh, 16 | dimensionedScalar("rAU", dimTime/dimDensity, 1) 17 | ); 18 | 19 | #include "correctPhi.H" 20 | } 21 | else 22 | { 23 | CorrectPhi 24 | ( 25 | U, 26 | phi, 27 | p_rgh, 28 | dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1), 29 | geometricZeroField(), 30 | pimple 31 | ); 32 | 33 | #include "continuityErrs.H" 34 | } 35 | -------------------------------------------------------------------------------- /applications/solvers/solvers1812_PLUS/waveFoam/rhofs.H: -------------------------------------------------------------------------------- 1 | const dimensionedScalar& rho1f(rho1); 2 | const dimensionedScalar& rho2f(rho2); 3 | -------------------------------------------------------------------------------- /applications/solvers/solvers1812_PLUS/waveIsoFoam/Make/files: -------------------------------------------------------------------------------- 1 | waveIsoFoam.C 2 | 3 | EXE = $(WAVES_APPBIN)/waveIsoFoam 4 | -------------------------------------------------------------------------------- /applications/solvers/solvers1812_PLUS/waveIsoFoam/UEqn.H: -------------------------------------------------------------------------------- 1 | MRF.correctBoundaryVelocity(U); 2 | 3 | fvVectorMatrix UEqn 4 | ( 5 | fvm::ddt(rho, U) + fvm::div(rhoPhi, U) 6 | + MRF.DDt(rho, U) 7 | + turbulence->divDevRhoReff(rho, U) 8 | == 9 | fvOptions(rho, U) 10 | ); 11 | 12 | UEqn.relax(); 13 | 14 | fvOptions.constrain(UEqn); 15 | 16 | if (pimple.momentumPredictor()) 17 | { 18 | solve 19 | ( 20 | UEqn 21 | == 22 | fvc::reconstruct 23 | ( 24 | ( 25 | mixture.surfaceTensionForce() 26 | - ghf*fvc::snGrad(rho) 27 | - fvc::snGrad(p_rgh) 28 | ) * mesh.magSf() 29 | ) 30 | ); 31 | 32 | fvOptions.correct(U); 33 | } 34 | -------------------------------------------------------------------------------- /applications/solvers/solvers1812_PLUS/waveIsoFoam/alphaControls.H: -------------------------------------------------------------------------------- 1 | const dictionary& alphaControls = mesh.solverDict(alpha1.name()); 2 | 3 | label nAlphaSubCycles(alphaControls.get