NOAA-EMC / WW3

WAVEWATCH III
Other
267 stars 545 forks source link

Improve numerical solution for waves in sea ice #738

Open cmbitz opened 2 years ago

cmbitz commented 2 years ago

The numerical solution for wave attenuation in sea ice employs time splitting, which is only order dtg accurate. It is a noticeable error when dtg > 500 s or so. I've included a pdf to illustrate the error.

I recommend two solutions. (1) first don't use time splitting for the sea ice attenuation and instead include the sea ice "source" with the other sources and (2) employ subcycling on the global time step when the sea ice concentration is between say 5 and 95%. Happy to provide code.

Reducing dtg is a costly alternative.

See attached pdf TimeSplittingProblem.pdf

JessicaMeixner-NOAA commented 2 years ago

@cmbitz if you have code, it would be great if you could make a PR with the update. I can run any of the regression tests if needed.

aronroland commented 1 year ago

I appreciate your contribution and I think that we really need to include the sea-ice source term in the sub-cycling and as well in the implicit scheme as source terms rather then within the splitting.

dabail10 commented 5 months ago

Hi all,

Here is a branch with Cecilia's proposed changes. I'm happy to discuss the best way to format these.

https://github.com/dabail10/WW3/tree/ic4method8

NickSzapiro-NOAA commented 5 months ago

Thanks for sharing these developments, @dabail10 @cmbitz ! Do I understand correctly that the changes in model/src/w3srcemd.F90 are intended for all IC4 methods? Do you know if any other IC4M* developers have looked at these changes?

erinethomas commented 5 months ago

It does appear to apply to all the IC4 methods. I have only tested it with one so far (the IC4M8 that @cmbitz helped develop) in E3SM.

NickSzapiro-NOAA commented 5 months ago

Then maybe the next step is to make a PR, as @JessicaMeixner-NOAA suggested.

@dabail10 wrt the branch you shared, there are different implementations of the changes (if suitable) in

Thanks @erinethomas! The IC4M8 you use will be "renumbered" as IC4M10 (in https://github.com/NOAA-EMC/WW3/pull/1211) since https://github.com/NOAA-EMC/WW3/pull/1176 is already merged

erinethomas commented 5 months ago

@NickSzapiro-NOAA - yes- I am working on an out of date version of WW3 (before those merges occurred) so my numbers are out of sync!

JessicaMeixner-NOAA commented 5 months ago

Looking forward to a PR to the WW3 develop branch! Please let me know if you have questions.

dabail10 commented 5 months ago

I will try to update to the latest version. I had forked off the NCAR dev/unified branch.

dabail10 commented 5 months ago

I'm not sure how easy this will be. The dev/unified fork under ESCOMP is 91 commits ahead and 53 commits behind. I need to discuss with @alperaltuntas .