CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Announcements from Other Sources (
-   -   Release of a Wave Generation and Absorption Toolbox for OF (

ngj November 10, 2011 07:00

Release of a Wave Generation and Absorption Toolbox for OF
Dear Co-Foamers,

It is my sincere pleasure finally to be able to announce the release of my wave generation and absorption toolbox (waves2Foam). It has been released through the OpenFoam-Extend SVN on SourceForge.

All relevant information is available on the following Wiki including download and installation instructions:

The Wiki also contains discussions on (i) future work, (ii) to-do's, and (iii) general use. Please do not hesitate to alter the Wiki, if some informations are ambiguous or completely missing.

I sincerely hope that you will find the work relevant and that you will be so kind as to make proper referencing to our journal article, on which details can also be found on the Wiki.

Kind regards,


[Moderator note: Any and all support questions should be asked on the dedicated thread: ]

ngj November 18, 2011 20:03

Good evening to you all,

The repository has been updated with a 1.7.1 compatible solver, the Allwmake script has been slightly modified, and the tutorials have been modified to accommodate to the name change of the pressure.

Kind regards,


ngj January 19, 2012 11:58

Dear all,

There has been some problems using waves2Foam on more recents versions of OF (> 1.7.1), since they changed from




In order to have it widely compatible, I have skipped the OF-pi and instead I have placed a few protected member variables in necessary places defined as


PI_(4.0 * atan(1.0) )
The updated version is available at the svn.

Furthermore, since I myself is not running 2.0+ versions, I have added a 9 short step description on how to turn interFoam into waveFoam on the wiki (

Kind regards,


ngj January 29, 2012 16:28

Good evening to all,

I have changed the target for the library and solvers to FOAM_USER_APPBIN/FOAM_USER_LIBBIN, so if you make a fresh svn update, then remember to delete the libraries and solvers from waves2Foam placed in FOAM_ABBIN and FOAM_LIBBIN. In the latter delete "" and in the latter, delete "waveFoam", "setWaveField", "setWaveParameters" and "relaxationZoneLayout".

This change should ease the compilation on clusters and on OF-installations, which are placed in the root.

Kind regards,


ngj April 20, 2012 04:31

Dear all,

This thread has morphed into a pure technical thread rather than a means of announcements related to waves2Foam. Therefore, any future post besides actual announcements are referred to the following thread:

As a consequence, no post will be answered in this thread.

I sincerely appreciate your corporation,


[Moderator note: the aforementioned "technical" posts have been all moved to the indicated thread: - which is why the link above will jump to post #83 ;) ]

ngj April 30, 2012 15:43

Dear all,

I have just released a new post-processing utility within waves2Foam.

It is called surfaceElevation and performs a sampling and integration along pre-defined lines. It can be used to extract the surface elevation. Please see the wiki ( for more information.

There are some unanswered questions with respect to version 2.1, since I need to get one of my colleagues to perform the test, thus if any of you are successful/have problems, please report your finding in

With the addition of this utility, waves2Foam is no longer supported under version 1.5.
Compatibility can be sustained, if all parts related to the sampling are removed from waves2Foam/src/Make/files.

Kind regards,


ngj July 13, 2012 15:13

Update of waves2Foam
Dear all,

I have today committed an update of waves2Foam. It contains the following additions:

1. runTime selection of relaxation zone weight. Currently 3 different weights are available. The original exponential weight is kept as default.

2. Additional choice of performing a correction to the relaxation zone weight, so the relaxation zone weight become dependent on the local Courant number.
Note: This has not been tested in the current framework, however, it should make the reflection coefficients from outlet boundaries more indenpendent on the mesh resolution in the relaxation zone.

3. Small update to the pre-processing utility relaxationZoneLayout, so it gives an additional output field.

4. Added the interface for the numerical beach implementation into UEqn.H in the solver directories, however, still only a dummy beach is implemented, so it does not actually give any contributions to the momentum equation.

5. Added support for topological changes using e.g. mesh refinement. This is solely based on requesting whether mesh.changing() returns true.

Details are stated on an updated Wiki.

Furthermore, I seen several presentations lately, where waves2Foam has been applied, which is immensely gratifying. Nonetheless, I would appreciate if you would be so kind as to cite our journal article (see the wiki under "Referencing") rather than my PhD-thesis, as all of the authors will then be given proper acknowledgement.

Have fun,


ngj October 1, 2012 05:55

Good day to all,

The tutorials in the svn-repository has now been updated, so they can be executed directly in OF2.1 without the need to modify fvSolution and fvSchemes.

We are still looking into the compilation of waveFoam on 2.1.X, as it seems that a 2.1.1. version does not compile on 2.1, so you are kindly asked to modify your own version of interFoam in your own 2.1 distribtution until further notice.

Thanks to Kevin Smith for sending me the needed modification to the tutorials.

All the best,


ngj October 17, 2012 06:53


I have today changed the pre-processor statements, so it uses 211 and 160 rather than 21 and 16 in the statements. Furthermore, I have removed all pre-processor statements related to OF v. 1.5, since it has not been supported since svn commit 1950; I had merely forgotten to clean up the source code.

This has also significantly reduced the number of pre-processor statements from 20-30 to only 2.

In case of any problem, please let me known.

Kind regards,


ngj October 18, 2012 11:17

Good evening to you all,

Today, I have made a somewhat large release. This release contains the following changes:

1. A waveFoam solver for versions 2.1.0 and 2.1.1 is added to the repository.

2. All relevant header files are updated with the correct referencing details on the journal article forming the basis for this release.

3. An *svg figure is added in the doc section. This in the original on the wiki, and it will be updated to the latest release point, when I find the time.

4. Due to some problems with the input format for irregular waves in OF2.0 and OF2.1, when running in parallel, I have re-implemented the entire setWaveParameters/setWaveProperties. The main differences are
- Now, the fields for irregular waves are written directly in waveProperties in stead of having them as seperate files. The reading of these seperate files was the reason for crashes in parallel.
- Only the parameters needed for a particular waveTheory is kept in the waveProperties file upon completion of setWaveParameters. Also, all comments are removed.

It should be noted that the Wiki has not been updated with the latest information, so the best way of understanding what happens is to read the error messages.
Generally, all information for running setWaveParameters with a given wave are now needed at the point of setting the wave parameters due to the way waveProperties is constructed. This is slightly different from before, where some parameters could be added after, e.g. phi.

I hope that you find these changes useful.

Kind regards,


ngj October 31, 2012 10:35

Dear all,

I have been made aware that there is a problem in compiling setWaveParameters on versions more recent than 1.6. I have corrected the bug and made an svn-commit. (resolved using a pre-processor statement).

In addition to this I have tidied the code up a bit with some missing header stuff. Furthermore, the waveProperties file is now much nicer to look at after using setWaveParameters, however, that is purely cosmetic.

The wiki has been updated to fit the new requirements of setWaveParameters. Only wave theory still missing a properties-file is streamFunction.

Kind regards,


ngj November 23, 2012 11:04

Dear all,

I have today submitted a couple of changes to the setWaveParameters and setWaveProperties group of files. The changes group into two:

1. Now, the setWaveParameters read the input data from waveProperties.input and write the data to waveProperties. This should resolve previously reported problems with the "mv"-command.

2. The utility setWaveParameters is now independent on fvMesh. This means that all setWaveProperties-files and derived classes have lost this object in the constructors, and it is replaced by the Time object.
This small change has decreased the execution time considerably. On the tutorial "3Dwaves" (only 235k cells), the execution time changed by a factor of 40.
This can potentially for very large cases make it possible to execute setWaveParameters on a serial computer, which previously could have proven impossible due to e.g. lack of available memory.

The Allrun-scripts in the affected tutorials has been corrected.

Have a nice weekend,


ngj December 3, 2012 08:01

Good day,

Two additional wave theories have been added to the repository. These are:

1. A second order bi-chromatic theory with super- and sub-harmonics.

2. A modulation to the surface elevation for a second order stokes wave theory. This is not necessarily completely correct theoretically, but as long as the modulation is small and the period of the modulation is large compared to the wave period, it should work.

Secondly, information on the numerical beach is no longer needed in the relaxationZone definition. It now has a default value defined as the empty (and only) numerical beach type.

Kind regards,


ngj December 5, 2012 06:10

Good morning,

Thanks to Michele Rattin I have been made aware that the surfaceElevation utility is bugged. On moving meshes the logged surface elevation differs between the one computed during runTime and the one computed as a post-processing step.

For static meshes these two approaches give the same result (within the accuracy of the written alpha1-field).

This bug is still unresolved, as I have not found the cause for this discrepancy. Any help is obviously most appreciated.

Kind regards,


ngj March 10, 2013 07:09

Dear all,

I have made the necessary modifications to waves2Foam for it to be compilable on OF220.

The source code can be found on this static snapshot until the svn is working again:

Please note, that the solver waveFoam is not yet added. Until further notice please follow the guide on the following Wiki-page:

Kind regards


P.S. The main compilations issues were related to the sampling utility. I have not yet been going through the source code in details to evaluate, whether the sampling problem mentioned above is resolved in OF220. The sampling utility in waves2Foam still relies on an older version.

michele March 11, 2013 12:40

runtime sampling bug for moving mesh cases
Dear Niels,
today I checked if the sampling (contained in the upstream "sets" functionObject) bug was solved, but it is still open.

Interesting to notice in the test-case I provided to replicate the problem, instead of outputting wrong results, the sampling request causes a crash of the OF2.2 solver.


ngj March 11, 2013 16:59

Thanks for testing it. I will hang on to the old version then, and not adopting the new development until it works correctly.

All the best,


michele March 14, 2013 09:48

Hi Niels,
just to inform you that the sampledSets bug has been fixed for the 2.2.x version (in commit cd124e9745ad9a8b8404c35c643bd21edb25dfeb).
Now also the sampledSurfaceElevation may be updated accordingly.

Kind regards

ngj March 14, 2013 10:14

Great! Thanks for telling me. I will take a look on correcting it as soon as I have the time.

- Niels

ngj March 29, 2013 10:07


I have put a new tar on, which has better support for 2.2, namely with the addition of a solver.

Furthermore, I have corrected a small bug in the Allwmake scripts, which did not allow for the compilation on 2.1.1. Furthermore, I have changed the compilation procedure a bit, so there are a some soft links to the Make/options files throughout, since different options are needed on different version/branches of the OF-development. I have tested the compilation of OF-1.6-ext and OF-2.2.0, and both are compiling nicely.

In addition to this, Kevin Maki made the suggestion of adding a warning, if you are using setWaveFields with a ramping time, Tsoft, different from 0. This is also added in the new tar.

Hopefully, the SVN will soon be up and running.

Kind regards


All times are GMT -4. The time now is 17:56.