Difference between revisions of "Contrib/IHFOAM"

From OpenFOAMWiki
(IHFOAM Usage)
(Source Code Structure)
 
(14 intermediate revisions by the same user not shown)
Line 17: Line 17:
  
 
OpenFOAM® is a registered trade mark of OpenCFD Limited, producer and distributor of the OpenFOAM software via www.openfoam.com.
 
OpenFOAM® is a registered trade mark of OpenCFD Limited, producer and distributor of the OpenFOAM software via www.openfoam.com.
 +
 +
=== IHFOAM GUI ===
 +
 +
IHFOAM-GUI has been designed following the request of many IHFOAM users to decrease the learning curve in the use of OpenFOAM® for coastal and ocean engineering. It is more than a standard OpenFOAM® GUI since it is especially designed to deal with free surface flows. The user will be able to set-up, in a short time, a numerical wave tank to analyze the interaction of waves with coastal and offshore structures. IHFOAM-GUI builds up the folders and the files needed to set-up a case guiding the user along several menus. Additionally, numerical proves can be inserted and post-processed along the GUI menu.
 +
 +
IHFOAM-GUI is freely downloadable from the following link including a tutorial:
 +
 +
http://ihfoam.ihcantabria.com/model/gui/
 +
 +
IHFOAM-GUI has been designed within the Coastal Hydrodynamics and Infrastructures Group in IHCantabria comprised by ten members. Future IHFOAM developments will be included in OpenFOAM® to be released by ESI Group and included in IHFOAM-GUI.
 +
 +
IHCantabria developments has passed along a thorough validation with existing or tailored designed laboratory tests. Validation results are published in peer reviewed journals. Visit our web page for further details.
  
 
=== Ongoing Development ===  
 
=== Ongoing Development ===  
 
* The current version is IHFOAM-v2.0.
 
* The current version is IHFOAM-v2.0.
 
+
* In 2016, IHCantabria reached an agreement with ESI Group to include the IHFOAM developments in OpenFOAM® releases, which are presented every six months.
In 2016, IHCantabria reached an agreement with ESI Group to include the IHFOAM developments in OpenFOAM® releases, which are presented every six months.
+
  
 
=== References and Citing ===  
 
=== References and Citing ===  
IHFOAM is a product developed in the [http://www.ihcantabria.com/en/ Environmental Hydraulics Institute "IH Cantabria"] of the [http://www.unican.es University of Cantabria]. The PhD thesis can be found and downloaded for free here:. If you want to reference the model in your publications it should be called '''IHFOAM'''.
+
IHFOAM is a product developed in the [http://www.ihcantabria.com/en/ Environmental Hydraulics Institute "IH Cantabria"] of the [http://www.unican.es University of Cantabria].. If you want to reference the model in your publications it should be called '''IHFOAM'''.
  
 
The implementation and validation details are published in the following references:
 
The implementation and validation details are published in the following references:
Line 31: Line 42:
 
     Maza, M, Lara, J.L., & Losada, I.J. [2016]
 
     Maza, M, Lara, J.L., & Losada, I.J. [2016]
 
     Advances in Water Resources [Vol.98, pp. 159-172]
 
     Advances in Water Resources [Vol.98, pp. 159-172]
     hhttps://doi.org/10.1016/j.advwatres.2016.10.021
+
     [http://www.sciencedirect.com/science/article/pii/S0309170816302196  http://doi.org/10.1016/j.advwatres.2016.10.021 ]
  
 
     Validation of OpenFOAM® for Oscillating Water Column three-dimensional modeling.
 
     Validation of OpenFOAM® for Oscillating Water Column three-dimensional modeling.
Line 67: Line 78:
 
     Coastal Engineering [Vol. 71, pp. 102-118]
 
     Coastal Engineering [Vol. 71, pp. 102-118]
 
     http://dx.doi.org/10.1016/j.coastaleng.2012.07.002
 
     http://dx.doi.org/10.1016/j.coastaleng.2012.07.002
 
=== Get Connected ===
 
To submit your feedback, suggestions, bugs... you have many options:
 
* The IHFOAM e-mail, found [http://ihfoam.ihcantabria.com/contact/ here].
 
* The [https://www.linkedin.com/groups?home=&gid=4548979 IHFOAM LinkedIn group].
 
 
You can be informed and get all the latest news by joining our [http://ihfoam.ihcantabria.com/source-download/ mailing list]
 
  
 
== Source Download and Compilation ==
 
== Source Download and Compilation ==
Line 104: Line 108:
  
 
=== Source Code Structure ===
 
=== Source Code Structure ===
IHFOAM source code is divided in two main folders:
+
IHFOAM source code is divided in two main topics:
 
* '''generation'''  
 
* '''generation'''  
** 'Stokes-I
+
** Stokes-I
** 'Stokes-II
+
** Stokes-II
** 'Stokes-V
+
** Stokes-V
** 'Cnoidal
+
** Cnoidal
** 'solitary Boussinesq
+
** solitary Boussinesq
** 'solitary Grimshaw
+
** solitary Grimshaw
** 'solitary McCowan
+
** solitary McCowan
* '''absorption''''
+
* '''absorption'''
** ' Shallow Water Absorption
+
** Shallow Water Absorption
 
+
  
 
=== OpenFOAM version ===
 
=== OpenFOAM version ===
Line 128: Line 131:
  
 
Upon registration you will receive an e-mail with the download link. We kindly ask you to respect this procedure, and not to redistribute the download link, as the information regarding how many people, where and how are using the code is important for us. As stated on the Terms and Conditions, your personal information (i.e. name and e-mail) will never be shared. You can also sign up for the mailing list, to get the latest information about IHFOAM new releases and training courses.
 
Upon registration you will receive an e-mail with the download link. We kindly ask you to respect this procedure, and not to redistribute the download link, as the information regarding how many people, where and how are using the code is important for us. As stated on the Terms and Conditions, your personal information (i.e. name and e-mail) will never be shared. You can also sign up for the mailing list, to get the latest information about IHFOAM new releases and training courses.
 
=== Documentation ===
 
A brief reference document is included.
 
 
==== FourierFenton ====
 
Old version of Fenton's Fourier program to obtain the input parameters needed to set up streamfunction wave theory.
 
 
==== IHwavesDict ====
 
Directory that includes a sample of IHwavesDict file for each supported wave theory.
 
 
=== Tutorials ===
 
A set of tutorials, covering the use of ihFoam and the wave generation boundary conditions, is available. All the cases include a ''runCase'' and ''cleanCase''. The first one runs all the steps needed to simulate the case and sampling/validation (when available). The second one resets the case to its initial state (i.e. with a very small size).
 
 
The practical cases are as follows.
 
 
==== baseWaveFlume ====
 
A simple wave flume (i.e. 2D channel).
 
 
* Waves are generated on the left patch (inlet).
 
* Waves are absorbed on the right patch (outlet), according to the 2D theory.
 
* Water depth is set to 0.4 m.
 
* The wave conditions are specified in '''constant/IHwavesDict'''.
 
** Regular waves, 0.1 m high and with 3 s of period are generated according to the cnoidal theory.
 
* No porosity involved.
 
* The case can be run very fast in serial.
 
 
==== irreg45degTank ====
 
A more advanced wave case. This is a 3D wave tank with a peculiar shape, similar to the one used in the first [[#References_and_Citing | reference]]. An irregular sea state is generated at patch X = 0, and absorbed elsewhere.
 
 
* A directional, irregular sea state is generated (842 wave components).
 
** Note ''nPaddles'' value for directionality
 
* On the rest of the patches, the waves are absorbed according to the 3D theory.
 
** Note also ''nPaddles'', ''nEdgeMin'' and ''nEdgeMin'' values.
 
* No porosity involved.
 
* Case to be better run in parallel. Some [[#Supported_Versions | known issues]] exist for several OpenFOAM and FOAM-extend versions.
 
 
==== CR35_dambreak ====
 
A classic benchmark case to validate free surface flow through a porous medium. It is a 2D dam break in a tank.
 
 
* Porosity.
 
** Note the ''porosityIndex'' field at the 0 folder.
 
** ''porosityIndex'' is set using ''setFields'', check ''setFieldsDict'' out.
 
** The porous variables are set in '''constant/porosityDict'''.
 
* Validation is included.
 
** Sampling is not needed as free surface is obtained with a function object (included in controlDict).
 
** Requirement: matplotlib (a.k.a. pylab)
 
** A python script (''plotValidation.py'') can be run in the end to plot a comparison between the experimental and numerical data.
 
* The case can be run very fast in serial.
 
 
==== breakwater ====
 
A composite breakwater within a wave flume in 2D.
 
 
* Porosity.
 
** Note the ''porosityIndex'' field at the 0 folder.
 
** ''porosityIndex'' is set using ''setFields'', check ''setFieldsDict'' out for setting porosity inside STL files.
 
** The porous variables are set in '''constant/porosityDict'''. This time several porous media are included.
 
* Waves are generated in the left patch (inlet)
 
* Waves are absorbed on the right patch (outlet), according to the 2D theory.
 
* Water depth is set to 0.8 m.
 
* The wave conditions are specified in '''constant/IHwavesDict'''.
 
** Regular waves, 0.25 m high and with 3 s of period are generated according to the cnoidal theory.
 
* Samping of free surface elevation and pressure is included.
 
** Requirement: matplotlib (a.k.a. pylab)
 
** Python scripts are included for postprocessing OpenFOAM results: postSens*.py
 
** Python scripts are included for plotting postprocessed results: plotSens*.py
 
* The case can be run very fast in serial.
 
 
This case also involves turbulence modelling. In future releases it will include the volume-averaged k-epsilon model.
 
 
 
 
--[[User:IH CANTABRIA|IH CANTABRIA]] 14:00, .05 October 2015 (CEST)
 

Latest revision as of 13:43, 9 October 2017

IHFOAM is a set of solvers and boundary conditions to generate and absorb water waves actively at the boundaries and to simulate their interaction with porous coastal structures.

The main scope of these modelling tools is coastal, marine, hydraulic and offshore engineering.

1 IHFOAM Overview

IHFOAM is a newly developed three-dimensional numerical two-phase flow solver specially designed to simulate coastal, offshore and hydraulic engineering processes. Its core is based on OpenFOAM®, a very advanced multiphysics model, widely used in the industry. What makes IHFOAM different from the rest of solvers is a wide collection of boundary conditions which handle wave generation and active absorption at the boundaries.

These specific boundary conditions allow to generate any type of wave in a 3D domain, from the most simple regular waves (Stokes I, II and V, streamfunction…) to complex, real and fully 3D irregular (random) directional sea states.

Active wave absorption has been programmed to work simultaneously with the wave generation to absorb any incident waves on the boundaries. These features do not increase the computational cost noticeably, and there is no need to extend the numerical domain, as it occurs with relaxation zones. Moreover, they allow for longer and more stable simulations without increasing water level or agitation. Currently the model can be applied to solve any impervious structures, both static and dynamic (floating structures). Some examples that have been simulated include: wave interaction with obstacles as vertical breakwaters, ships, offshore foundations, dam and spillway simulations, open channel flow…

The simulations can be at laboratory or prototype scale, for which domains over 1 square kilometer have been calculated. Needless to say, a thorough validation with well-known laboratory tests has been carried out and is published in Coastal Engineering. IHFOAM can also solve two-phase flow within porous media by means of the VARANS equations. This new approach will extend the calculation range for any type of coastal structures (e.g. rubble mound breakwaters).

OpenFOAM® is a registered trade mark of OpenCFD Limited, producer and distributor of the OpenFOAM software via www.openfoam.com.

1.1 IHFOAM GUI

IHFOAM-GUI has been designed following the request of many IHFOAM users to decrease the learning curve in the use of OpenFOAM® for coastal and ocean engineering. It is more than a standard OpenFOAM® GUI since it is especially designed to deal with free surface flows. The user will be able to set-up, in a short time, a numerical wave tank to analyze the interaction of waves with coastal and offshore structures. IHFOAM-GUI builds up the folders and the files needed to set-up a case guiding the user along several menus. Additionally, numerical proves can be inserted and post-processed along the GUI menu.

IHFOAM-GUI is freely downloadable from the following link including a tutorial:

http://ihfoam.ihcantabria.com/model/gui/

IHFOAM-GUI has been designed within the Coastal Hydrodynamics and Infrastructures Group in IHCantabria comprised by ten members. Future IHFOAM developments will be included in OpenFOAM® to be released by ESI Group and included in IHFOAM-GUI.

IHCantabria developments has passed along a thorough validation with existing or tailored designed laboratory tests. Validation results are published in peer reviewed journals. Visit our web page for further details.

1.2 Ongoing Development

  • The current version is IHFOAM-v2.0.
  • In 2016, IHCantabria reached an agreement with ESI Group to include the IHFOAM developments in OpenFOAM® releases, which are presented every six months.

1.3 References and Citing

IHFOAM is a product developed in the Environmental Hydraulics Institute "IH Cantabria" of the University of Cantabria.. If you want to reference the model in your publications it should be called IHFOAM.

The implementation and validation details are published in the following references:

   Solitary wave attenuation by vegetation patches.
   Maza, M, Lara, J.L., & Losada, I.J. [2016]
   Advances in Water Resources [Vol.98, pp. 159-172]
   http://doi.org/10.1016/j.advwatres.2016.10.021 
   Validation of OpenFOAM® for Oscillating Water Column three-dimensional modeling.
   Iturrioz, A., Guanche, R., Lara, J.L., Vidal, C., & Losada, I.J. [2015]
   Ocean Engineering [Vol. 107, pp. 222-237]
   http://dx.doi.org/10.1016/j.oceaneng.2015.07.051
   Tsunami wave interaction with mangrove forests: A 3-D numerical approach.
   Maza, M, Lara, J.L., & Losada, I.J. [2015]
   Coastal Engineering [Vol.98, pp. 33-54]
   http://dx.doi.org/10.1016/j.oceaneng.2015.07.051
   Three-dimensional numerical wave generation with moving boundaries.
   Higuera, P., Lara, J.L. & Losada, I.J. [2015]
   Coastal Engineering [Vol.101, pp. 35-47]
   http://dx.doi.org/10.1016/j.oceaneng.2015.07.051
   Three-Dimensional Interaction of Waves and Porous Coastal Structures using OpenFOAM®. Part II: Application.
   Higuera, P., Lara, J.L. & Losada, I.J. [2014]
   Coastal Engineering [Vol. 83, pp. 259-270]
   http://dx.doi.org/10.1016/j.coastaleng.2013.09.002
   Three-Dimensional Interaction of Waves and Porous Coastal Structures using OpenFOAM®. Part I: Formulation and Validation.
   Higuera, P., Lara, J.L. & Losada, I.J. [2014]
   Coastal Engineering [Vol. 83, pp. 243-258]
   http://dx.doi.org/10.1016/j.coastaleng.2013.08.010
   Simulating Coastal Engineering Processes with OpenFOAM®.
   Higuera, P., Lara, J.L. & Losada, I.J. [2013]
   Coastal Engineering [Vol. 71, pp. 119-134]
   http://dx.doi.org/10.1016/j.coastaleng.2012.06.002
   Realistic Wave Generation and Active Wave Absorption for Navier-­Stokes Models. Application to OpenFOAM®.
   Higuera, P., Lara, J.L. & Losada, I.J. [2013]
   Coastal Engineering [Vol. 71, pp. 102-118]
   http://dx.doi.org/10.1016/j.coastaleng.2012.07.002

2 Source Download and Compilation

IHFOAM download site can be found here.

2.1 Source Code Download

You can find IHFOAM in GitHub, and it can be downloaded in zip format.

For a more convenient download of the source code, run the following command:

git clone git://github.com/IHCantabria/ihFOAM.git

If the git protocol is blocked in your network try either of the following commands:

git clone https://github.com/IHCantabria/ihFOAM.git
git clone https://github.com/IHCantabria/ihFOAM.git

Code updates can be downloaded in the future from the IHFOAM folder as follows:

git checkout
git pull

Recompilation is required to apply the changes.

2.2 Source Code Structure

IHFOAM source code is divided in two main topics:

  • generation
    • Stokes-I
    • Stokes-II
    • Stokes-V
    • Cnoidal
    • solitary Boussinesq
    • solitary Grimshaw
    • solitary McCowan
  • absorption
    • Shallow Water Absorption

2.3 OpenFOAM version

IHFOAM-v2.0 is a new set of boundary conditions, which are formulated using a new concept based on the introduction of mass and momentum along the boundaries, improves the ones initially develop by IHCantabria in 2014 and working with OpenCFD developers reduces the computational cost by around a 30%.

IHCantabria has contributed to releases v1612+ and v1706, presented in December 2016 and June 2017, respectively. Both releases included a new set of boundary conditions to generate and absorb waves at the boundaries without the use of dissipation areas to damp wave energy

3 IHFOAM Documentation and Tutorials

The IHFOAM documentation and tutorials are not included in the Github bundle. Instead, they can be downloaded under request in the following site:

http://ihfoam.ihcantabria.com/source-download/

Upon registration you will receive an e-mail with the download link. We kindly ask you to respect this procedure, and not to redistribute the download link, as the information regarding how many people, where and how are using the code is important for us. As stated on the Terms and Conditions, your personal information (i.e. name and e-mail) will never be shared. You can also sign up for the mailing list, to get the latest information about IHFOAM new releases and training courses.