Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simulation of nonlinear irregular waves #19

Open
nbasse opened this issue Apr 8, 2020 · 10 comments
Open

Simulation of nonlinear irregular waves #19

nbasse opened this issue Apr 8, 2020 · 10 comments

Comments

@nbasse
Copy link

nbasse commented Apr 8, 2020

Hi again!

As I understand it from the wiki, the initial wavefield generated by case 3 is composed of only linear waves.
Is it possible with HOS-Ocean to generate an initial irregular wave field that is nonlinear?
Or how can this be added to the code?
(One Idea might be to use the mode-coupling method to combine two different wavefields generated by case 3, to create a second order wavefield?)

Or do the wavefield automatically become nonlinear as time advances in HOS-Ocean and the waves propagate (given that M>1)?
From my tests, I haven't been able to tell for sure yet.

I have some code that currently is based on linear wave theory and I would like to test it against nonlinear waves to find where the linear implementation becomes inadequate, (and later on, to verify a nonlinear implementation)
(This code is then supposed to generate initial conditions for HOS-Ocean that will be used to propagate the waves to predict them at a future point in time and space)

Many thanks for any help in this matter.
Best Regards,
Niclas

@gducrozet
Copy link
Member

@nbasse

As I understand it from the wiki, the initial wavefield generated by case 3 is composed of only linear waves.

Yes, you are right

Is it possible with HOS-Ocean to generate an initial irregular wave field that is nonlinear?
Or how can this be added to the code?
(One Idea might be to use the mode-coupling method to combine two different wavefields generated by case 3, to create a second order wavefield?)

It is possible to specify a nonlinear wave field as input using the case 32: if the free surface elevation and velocity potential used is nonlinear, it will be propagated correctly by HOS-ocean. We also tried to set-up as initial conditions the 2nd order nonlinear wavefield as you suggest. However, it is probably not available as direct input in the GitHub version.

Or do the wavefield automatically become nonlinear as time advances in HOS-Ocean and the waves propagate (given that M>1)?
From my tests, I haven't been able to tell for sure yet.

This is indeed what is happening if the input is not non-linear. This is also the practical use of the 'relaxation period' that can be specified in the input file: it allows a smooth transition from linear to nonlinear condition.

Best regards,

Guillaume.

@nbasse
Copy link
Author

nbasse commented Apr 13, 2020

@gducrozet Thank you for your answers!

We also tried to set-up as initial conditions the 2nd order nonlinear wavefield as you suggest. However, it is probably not available as direct input in the GitHub version.

Is it possible for you to share a version that has this feature implemented?

Best Regards,
Niclas

@rickyspaceguy
Copy link

rickyspaceguy commented Apr 13, 2020

@nbasse @gducrozet

I had also tried Dommermuth relaxation but found it was not working as advertised. I don't know the reason why. I asked Dommermuth about it but didn't get a satisfactory reply.

There is some divergence with regards to free surface vertical velocity evaluation as in HOS-Ocean compared to Dommermuth approach. In HOS-Ocean this is based on West et al.

Later on, I saw in some journal that someone in UK had implemented HOS in their own code but using the Dommermuth approach completely including the their way of evaluating vertical velocity. They reported that Dommermuth relaxation works.

But it was in published in a journal that I can't locate now.

@gducrozet
Copy link
Member

@nbasse
The second-order initialization is actually already available, even if it is a bit hidden in the code for now. If you have a look to initial_condition.f90, you will see that it is possible to switch this option on (l. 598).

However, if you already computed the second-order components, it is also possible to use the initialisation with case 32: tt should work.

@gducrozet
Copy link
Member

@rickyspaceguy
Could you be more specific about the 'it was not working as advertised'?

From my experience, Dommermuth relaxation is working adequately. We managed in the past to reproduce the correct behavior when initializing a simple monochromatic wave and extended it also to irregular waves.

@rickyspaceguy
Copy link

@gducrozet

I tried to replicate the toy models of BF instability given in the Dommermuth 2000 paper (https://doi.org/10.1016/S0165-2125(00)00047-0). But I kept getting the small scale oscillations in the amplitude of the carrier wave unlike that given by Dommermuth where they were to vanish with this relaxation schemes.

It was about 3 years ago. Overall, the instability was there. Also, the recurrent periods were not the same as reported in Dommermuth but by and large similar.

I therefore concentrated on HOS-NWT since the initial solution is exact in that case.

@gducrozet
Copy link
Member

@rickyspaceguy
Thanks for the clarification. I do not think having tested this configuration. May be worth to have a look since HOS-ocean should be able to recover the behavior observed in Dommermuth (2000) paper.

@sezgh
Copy link

sezgh commented Apr 29, 2021

Hello!

Regarding the original question on the initialization with a second-order solution, I have few questions on that:

  1. To my understanding using a ramp function for the non-linear terms the free-surface boundary conditions are linear at t=0. Hence, I was wondering whether it would be consistent to use second-order initial conditions with a ramp function.
  2. Given that I don't use a ramp function and hence I start with a fully non-linear problem, the second-order inputs refer to z=eta or z=0?

Thank you in advance!
Elena

@rickyspaceguy
Copy link

rickyspaceguy commented Apr 30, 2021

Hello @sezgh

I'll try to answer the best I know about

To my understanding using a ramp function for the non-linear terms the free-surface boundary conditions are linear at t=0. Hence, I was wondering whether it would be consistent to use second-order initial conditions with a ramp function.

Your understanding is largely correct. In order to use, second order initial conditions, one way to turn off Dommermuth relaxation scheme and choose M=2 for your simulations. But then you will be limited to this order of non linearity. For M>2 the initial solution is not the exact solution for the order of nonlinearity. As a result, expect some standing wave oscillations.

Initialization at second order has been tried in this paper (see-Perignon et al, 2010). I remember I had also tried a Stokes 5th order wave long before but I was not satisfied with the results.

Given that I don't use a ramp function and hence I start with a fully non-linear problem, the second-order inputs refer to z=eta or z=0?

The free surface velocity potential required for initialization is defined at $z=\eta$, irrespective of order of nonlinearity or ramping.

@gducrozet
Copy link
Member

Hello @sezgh and thank you @rickyspaceguy for the contribution that I can complement:

  1. It is indeed not consistant to use second-order intial conditions with a ramp function. Then, for now the two choices offered are: a) initialisation with linear conditions + use of ramp functions or b) initialisation with second-order conditions (or more accurate ones) without ramp function. It should be possible to adapt the ramp function so that it applies only on the higher order terms (order 3 and larger) but I am not sure you will have a huge benefit to do so (compared to linear initialisation).

  2. The set of equations in HOS is solved on z=eta. Then, using quantities defined at this location will limit the magnitude of spurious waves created due to the inconsistency between initial conditions and set of equations solved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants