glwagner / OceanTurb.jl

Models and parameterizations for the turbulent ocean surface boundary layer in Julia
https://glwagner.github.io/OceanTurb.jl/latest/
MIT License
25 stars 7 forks source link

Timestepping considerations #79

Open sandreza opened 4 years ago

sandreza commented 4 years ago

At some point, it would be good to think critically about how to obtain a higher-order time-stepping scheme for nonlinear diffusivities as well as finding methods for testing such ideas. Currently, the previous time-step is used to determine the diffusivity that needs to be implicitly inverted and the explicit part is treated with a lower order explicit method. In the future, we would want similar implementations of time-stepping similar to what is in the CliMa code.

glwagner commented 4 years ago

Can you elaborate on the specific time stepping methods used in the Clima code, and which ones would be good to have implemented in OceanTurb? I know many types of high-order time stepping, but I think you are referring to something quite specific.

sandreza commented 4 years ago

For the explicit terms I mean something like the low storage runge kutta schemes. For the implicit terms, in addition to direct solvers, it would be good to have iterative solvers. Not because they are necessary for the simulation of the parameterization, but rather because it makes it as close as possible to the numerical method implemented in CliMa. One fear I have for parameter estimation is that it depends on the numerical method used and this would help us to test whether this is or is not a concern.

glwagner commented 4 years ago

Can you identify a specific iterative method with a low storage RK scheme that you would like to see implemented and provide a reference or link to information about the solver you are suggesting so that this issue becomes actionable?

sandreza commented 4 years ago

Something like what is on pages 62-64 of the Nodal Discontinuous Galerkin Methods book by Jan S. Hesthaven and Tim Warburton. See, for example, line 424 of https://github.com/sandreza/NodalDiscontinuousGalerkin/blob/master/src/utils.jl