carlos/Dispersive water waves models in Geoclaw

07-Mar-204

  • Try to reproduce the strange oscillations at the interface between EDCEs/SWEs in Pyclaw with a simple problem. Maybe a solitary wave with no bathymetry again. Most of this is done already, I just have to find the proper combination of IC, domain, grid, accuracy, etc.
  • Check what happens when the mesh is refined, do we get the blowup that is reported in the literature?
  • Build on the conical island code to reproduce Fig 19 from Escalante et al, 2019 and González et al, 2011.

06-Mar-2024

It would be nice to have a simple FD implementation of Guermond’s system to see how it behaves.

09-Feb-2024

The following points were addressed in the last meeting with our collaborators:

  • [ ] Check for smaller (and larger) values for the hyperbolic relaxation parameter. See if we are converging to any of the intended limiting systems.
  • Isolate the potential sources of complications. For instance:
    • [ ] Checking problems with a similar initial setup and a smooth and sharp bathymetry to verify the influence of the discontinuous bottoms on the global solution. No transition to SWEs would be ideal. Also the other way around
    • [ ] Test the Okada model with a large enough domain such that the solution doesn’t interact with the boundaries (at least not with the artificial ones). Also, do not just compare with SNG but also with SWEs, one of them should be close to SWEs and that should be the correct one.
  • [ ] Look for steady-state solutions for the modified system, because those oscillations at the interface EDCEs/SWEs seem like steady states.
  • [ ] Test transition to SWEs in 2D using classic Clawpack first, then GeoClaw.
  • [ ] What’s happening with Roeber’s criterion applied to Synolakis’ experiment? The runup should not be higher than that of the EDCEs system without transition. Also, is it producing energy, or is there a bug in my (i)computation of the energy, (ii) pyclaw script for Synolakis’ setup?

May-17

There is a strange behavior in the evolution of the global energy: Commit 38c23a1.

Some things to do:

  • [X] Check the energy conservation of the solitary wave solution to the BTEqs as the grid is refined. It seems like the dissipation is a numerical artifact.

The decrease in energy observed with the solitary wave before transition to SWEs, i.e., before shoaling and breaking was due to numerical dissipation. It goes away with a very refined grid.

  • [X] Try to isolate the issue that is leading to the increase in global energy. Is it the computation of the energy, the transition between equations solved, or something else? Some things that we can try here:
  • [X] Solve just the BTEs without dry states.
  • [X] Transition from BTEs to SWEs using a solitary wave for the BTEs and flat bottom.

It was an error in the computation of the energy. From now on, if necessary, I will assume that the frame of reference (sea level) to compute surface elevation, still water depth, and bathymetry, is zero.

  • [ ] Better sampling to check whether the jump in the energy plots is a jump or a rapid smooth transition.

I still need to test again with Synolakis’ experiment, the conclusions above come from the study of a solitary wave on a flat bottom

  • [ ] Try reconstruction with different limiters.

May-02

Comments and things to do as agreed in the last meeting with collaborators

  • [X] Check whether mass is being preserved after we transition from one system to the other. Probably the best way to do this is through wall boundary conditions.

It seems like mass is being preserved. still, it would be interesting to determine if the hole at the crest of the wave when breaking starts has appeared in the literature.

  • [X] Compute the energy dissipation before, during, and after wave breaking.
  • [X] Update plots for visibility, maybe filling the area under the points where NSWEs are solved.
  • [X] Check if there are sparse points where BTEs are solved instead of SWEs in the middle of a breaking wave, i.e., G,G,G,B,G,G,G. Where G indicates SWEs and B BTEs.
  • [ ] Check if the implementation of the 2D solver is correct. Comparing with a radial 1D solution (and radial bathymetry could be a good way to do this. The code for the multilayer SWEs in Geoclaw could be useful here.

Feb-23

About the 1D Classic Clawpack implementation

The solver is working properly for the solitary wave if we use the quasi-exact solution from Escalante et al. as initial condition. The initial condition is read from a csv file, written from Python, this was just the fastest way to do it but is not good for reproducibility.

TO DO:

  • Integrate the ODE integration inside the qinit.f90 file for the Classic solver.

Feb-22

About 1D implementation in Pyclaw

The 1D pyclaw solver is now working with a dynamic local transition between models. The dispersive terms are turned off when the nonlinearity parameter \(\epsilon\) is greater than 0.8. This is used in the Boussclaw paper, and was introduced by Tonelli and Petti (2009) following an argument of similarity between spilling breakers and moving hydraulic jumps. After \(\epsilon>0.8\), the Froude number exceeds the threshold of 1.60 at which a transition between undular jumps and fully developed jumps should occur according to Reinnauer and Hager (1995).

Shouldn’t we compute a relation between the Froude number and the nonlinearity parameter \(\epsilon\) (and thus a critical nonlinearity parameter) using Escalante’s BTEqs? For the Favre wave equations experiment, Escalante mentions a formula for the relative Froude number that depends on the velocity. This is obtained in Gavrilyuk et al. (2016) using an argument of conservation of mass and momentum, I understand that this is a standard approach, and as a consequence of this conversation across the undular bore, a relation between the nonlinearity parameter and Fr is obtained (Eq 4.12) and is referred to as Belánger formula. However, this relation between Fr and \(\epsilon\) is different from the one used by Tonelli and Petti to estimate the critical nonlinearity. I wonder how this affects the prediction of the wave breaking.

In particular, with the dynamic local transition, there is very good agreement with experimental data from Synolakis’ experiment, except when the wave starts breaking (at around t*=30). Tissier et al.(2012) mention an underestimation of the amplitude of the wave as breaking is induced when they turn off dispersive terms. However, they are using a more complex method to turn on and off the dissipation. In particular, they define a region around a cell where a shock is introduced.

TO DO:

  • Verify the validity of Tonelli’s critical nonlinearity parameter to switch from Escalante’s system to the SWEs.
  • Come back to wave-breaking analysis. In particular, consider the technique presented Tissier et al. (2012), that doesn’t seem to be much more expensive than the one used for the moment (like Kazolea’s), and doesn’t require front tracking for shocks.

Feb-14

About 1D implementation in Pyclaw

The problem of the solution blowing up at the wet-dry front is fixed, it was important to just use a first-order scheme. I need to understand how Lax-Wendroff is still robust in Geoclaw.

Added an experimental validation test of a solitary wave moving towards a solid wall over a piecewise affine bathymetry. This is the problem that Prof. Calhoun presented in the group meeting (I haven’t contacted her). I think that the agreement is already good.

TO DO:

  • Set the proper position of the initial wave. This is already specified in the original paper.
  • Set a script (probably a notebook) to capture the solution at gauges and make plots as in the literature (time vs. amplitude).
  • Get experimental data. This doesn’t seem to be available on the author’s website anymore.

Feb-06

I think that some validation of the 1D model in Pyclaw should be a priority over the implementation of the classical Clawpack solver and a 2D implementation. Just to detect early any potential errors as discussed in the previous entry. Also, the output is easier (to me) to handle in Pyclaw, so when we write something for this project, the 1D experiments will be already set up.

The validation at this stage will be carried here. I am still finding it hard to reproduce the results from Section 5.2 of Escalante’s paper. I am using equation 69 of Bristeau’s paper to set the shape of the initial wave as in Escalante, but the initial position is ambiguous from their description. Therefore, to set the initial condition I am following section 3.3 of the BoussClaw paper, which is the same experiment. I am happy with the agreement but I still feel the initial conditions for these experiments to be ambiguous.

TO DO:

  • Consider different times for Synolakis’ experiment, in particular, run-down on the beach.
  • Find out why the solution blows up when the waves reach the dry front (discussed in previous entry).

About relevant literature for the project

Chapters 1 and 4 from The Water Waves Problem by David Lannes seems to be an additional great introduction to the state of the art. Of particular interest here: Non-dimensionalisation of variables, derivation of SGN, relation between parameters \(\epsilon\) and \(\mu\) and consistency between simple models and 2D Euler.

On the Non-Dimensionalisation, Scaling and Resulting Interpretation of the Classical Governing Equations for Water Waves by Constantin and Johnson. Of interest here: Non-dimensionalisation.

Feb-05

About relevant literature for the project

Go back to “A hierarchy of non-hydrostatic layer-averaged approximation of Euler equations for free surface flows” Some important information that can be taken from here:

  • References: The most important literature for me at this point are review papers for water wave models. Two proposed here are references 33 and 34 (I have not read them yet).

  • There is some discussion about the adjust of parameters and qualitative properties of the system. In particular this could help me to get a better feeling of the terms “weakly(strongly/fully) nonlinear/dispersive” in water wave models.

  • Some of the models in the hierarchy proposed can be related to already existing models, in particular SGN and (I think) Bristeau’s system. There is an extensive discussion of how accurately the EEs 2D with free surface are approximated with each of the multilayer methods. This could enlighten about the accuracy of other popular models (that is not so clear to me from the literature).

  • This paper is briefly discussed by Escalante et al. in the introduction of the HyperRel-BTE paper, but just a remark about the auxiliary equation for energy conservation/balance is mentioned in the introduction.

The paper “On wave breaking for Boussinesq-type models” by Kazolea and Ricchiuto seems to have a lot of important information for us. In particular, the section about closure for wave breaking discusses triggering methods that we can apply to our approach. It might be feasible to transition to SWEs locally in troubled cells at each time step to enforce wave breaking dynamically. An approach like this can be already tested with the 1D Pyclaw implementation.

About Pyclaw 1D solver and model validation

  • Updated notebook used for last meeting with collaborators. Just fixed the issue of the kernel dying.

  • At the end of that notebook a preliminary comparison of the dispersive model with NSWEs and experimental data (Synolaki’s experiment) is performed. One issue that is still not solved is the numerical solution not matching properly the data, in contrast with what is shown in Escalante’s paper. I consider that this could be caused by the following reasons, in descending order of probability:
    • The initial conditions (solitary wave) are not adequate. I could be considering some wrong initial values, which according to Escalante et al. should be the exact solitary wave solution to Bristeau’s system. This corresponds to equations 69 from Bristeau’s paper. I already found a mistake in my own notes (t instead of l in equation 69d), but I think I corrected it in the implementation. I also might be using the proper IC but implementing wrong.
    • I am performing a computation and/or implementation of some non-dimensional variable wrong. Together with this, I might be setting the parameters of the problem wrong.
    • There is a mistake at the level of the Riemann solver or Pyclaw script.

Another problem that I am facing is that the solver is not robust at the (wet-dry front) boundary. This happens as I get the transition closer to the shore or let the simulation run for larger times. For the solution of the homogeneous part of the system I am using the Pyclaw implementation of Geoclaw’s solver that I found in the Clawpack directory. Two candidates for this:

  • I copied Geoclaw’s solver incorrectly. I’ll test how I am using it for some toy problems with wet-dry fronts to verify this.
  • The problem is the integration of the source term with operator splitting. I have a strong feeling in particular for the friction term which I am not neglecting right now, a simple test is to first remove it and see. It is also possible that the wet-dry fronts are not handled well in the time integration for the rest of the source terms.
  • In order to fix these errors and validate the 1D model in different experiments I will use an exclusive notebook. Probably a separate directory from the one where the most recent implementation is right now. Related to this, I need to ask Professor Donna Calhoun about the validation tests that she used for her model.

Jan-29

I just read some sections of 3 papers relevant to this work:

  • A reasoned overview on Boussinesq-type models by Brocchini: This is a nice review of Boussinesq-type models (BTM). It is oriented toward the big picture of water wave models and gives an idea of what components they should have. It also cites several works related to the imposition of wave breaking in different schemes, which is a crucial task to be tackled in this project.

  • Long waves on a beach by Peregrine: A nonlinear Boussinesq type system for waves of small amplitude. One of the first works to present a Boussinesq-type model with a discretization of the equations. As noted by peregrine, when smoothness requirements are violated in the solution, the theory is not expected to hold. This model was originally oriented to describe solitary water waves, but wave breaking is not correctly described by the model. Some variants of this model are still used, e.g., in GloBouss. I have not checked, but I guess they introduced some wave breaking mechanism. There is more detail in Lovholt et al. 2008.

  • The long-wave paradox in the theory of gravity waves by Ursell: A discussion on the viability of existence of solitary wave solutions for water wave models. Presents a rigorous explanation of the consequences that the relation between depth-wavelength ratio and amplitude-depth has in the validity of different models and the behavior of their solutions. For instance, the author derives conditions such that, under the hydrostatic assumption, long-waves cannot be propagated unaltered.