This PR adds a new type of AbstractStokesDrift for use with Oceananigans that's appropriate for constant air-sea momentum fluxes over an infinite or isolated patch of ocean. See https://github.com/CliMA/Oceananigans.jl/issues/2290. for preliminary discussion. I've decided to implement this feature in LESbrary.jl because I think it's currently experimental nature means it's not yet appropriate for Oceananigans.jl.
The basic idea is that our idealized cases in IdealizedExperiments/three_layer_constant_fluxes.jl are meant to represent a scenario in which either infinite or large-scale winds or cooling associated with constant air-sea fluxes act "instantaneously" on a quiescent patch of ocean.
The surface wave field that's consistent with this scenario is one that develops in time in response to atmospheric winds that impose constant momentum fluxes into the ocean.
We have to make a choice about the initial sea state because there are many plausible sea states consistent with an initially quiescent ocean interior. This reflects the fact that the surface wave field is, in reality, partly non-local due to distant swell generation and propagation. Here I think we are best served by choosing a "near-quiescent" (not entirely quiescent, since this is a singularity of our model as we will see below) initial sea state as well. This biases our cases towards "calm before storm" physical scenarios, rather than "train of storm" physical scenarios. My initial hunch is that moving towards more complex forcing / sea states is better served with "realistic" cases, rather than attempting to describe all possible ocean conditions with an idealized setup.
Note that we can't really comment about whether atmospheric wind is constant, because air-sea momentum fluxes depend on both the surface wave field and the atmospheric wind, in general (despite the current state-of-the-art in bulk formulae). Yet we don't need to comment on this, because the only thing that matters for ocean dynamics (and boundary layer parameterization) is the momentum flux into the ocean. This is important because it means that our results are independent of how the air-sea momentum flux is parameterized, and thus a bit more robust to future developments and improvements in air-sea momentum flux parameterization.
The ConstantFluxStokesDrift model
It has two components:
A Stokes drift profile that depends on (i) the peak wavenumber of the surface wave spectrum and (ii) the local wind stress (specifically, air friction velocity) based on Lenain and Pizzo 2020.
A model for the time-dependence of the peak wavenumber appropriate for "infinite constant fluxes" based on Lenain and Melville 2017.
This plot shows the dependence of the surface Stokes drift for different peak wavelengths:
It's being compared to a model proposed by Li et al. 2017 that assumes a constant peak wavenumber for a given momentum flux / atmospheric wind speed.
The peak wavenumber
By manipulating the fetch relationships in Lenain and Melville 2017 we come up with a formula for how the peak wavenumber decreases in time:
However, a few experiments with this formula suggest that we probably can't use it for the constant flux simulations. I think the reason is the non-realism of infinite, constant winds blowing in a constant direction. So either we need to come up with a more realistic model for momentum fluxes, or we need to make approximations with the surface wave model.
We should comment on how this compares to, say, a 0D simulation using wave watch III or something similar.
This PR adds a new type of
AbstractStokesDrift
for use withOceananigans
that's appropriate for constant air-sea momentum fluxes over an infinite or isolated patch of ocean. See https://github.com/CliMA/Oceananigans.jl/issues/2290. for preliminary discussion. I've decided to implement this feature in LESbrary.jl because I think it's currently experimental nature means it's not yet appropriate for Oceananigans.jl.The basic idea is that our idealized cases in
IdealizedExperiments/three_layer_constant_fluxes.jl
are meant to represent a scenario in which either infinite or large-scale winds or cooling associated with constant air-sea fluxes act "instantaneously" on a quiescent patch of ocean.The surface wave field that's consistent with this scenario is one that develops in time in response to atmospheric winds that impose constant momentum fluxes into the ocean.
We have to make a choice about the initial sea state because there are many plausible sea states consistent with an initially quiescent ocean interior. This reflects the fact that the surface wave field is, in reality, partly non-local due to distant swell generation and propagation. Here I think we are best served by choosing a "near-quiescent" (not entirely quiescent, since this is a singularity of our model as we will see below) initial sea state as well. This biases our cases towards "calm before storm" physical scenarios, rather than "train of storm" physical scenarios. My initial hunch is that moving towards more complex forcing / sea states is better served with "realistic" cases, rather than attempting to describe all possible ocean conditions with an idealized setup.
Note that we can't really comment about whether atmospheric wind is constant, because air-sea momentum fluxes depend on both the surface wave field and the atmospheric wind, in general (despite the current state-of-the-art in bulk formulae). Yet we don't need to comment on this, because the only thing that matters for ocean dynamics (and boundary layer parameterization) is the momentum flux into the ocean. This is important because it means that our results are independent of how the air-sea momentum flux is parameterized, and thus a bit more robust to future developments and improvements in air-sea momentum flux parameterization.
The
ConstantFluxStokesDrift
modelIt has two components:
The Stokes drift profile
Some preliminary results are here:
which compare to a profile proposed by Breivik et al., 2016.
The main difference between Lenain and Pizzo 2020's parameterization and Breivik et al., 2016's is stronger shear near the surface.
This plot shows the dependence of the surface Stokes drift for different peak wavelengths:
It's being compared to a model proposed by Li et al. 2017 that assumes a constant peak wavenumber for a given momentum flux / atmospheric wind speed.
The peak wavenumber
By manipulating the fetch relationships in Lenain and Melville 2017 we come up with a formula for how the peak wavenumber decreases in time:
However, a few experiments with this formula suggest that we probably can't use it for the constant flux simulations. I think the reason is the non-realism of infinite, constant winds blowing in a constant direction. So either we need to come up with a more realistic model for momentum fluxes, or we need to make approximations with the surface wave model.
We should comment on how this compares to, say, a 0D simulation using wave watch III or something similar.