Comments (11)
Hi Dave,
Finally I don't think it is the remapping that is causing the problem. The velocities are huge. 6.67 m/s is unrealistic. There might even be higher velocities elsewhere. What do you get in ice_std_out for the max velocity?
I guess there is an instability developing. It could be related to the coupling with the ocean model.
from cice.
from cice.
Hi Dave,
I am adding @dupontf to the discussion. I think a good candidate for the instability is the explicit treatment of Coriolis for the C-grid (it is implicit for the B-grid).
This was already identified as a potential problem is this issue:
We didn't have problems in uncoupled mode but it might be different when coupled to an ocean model. What I don't understand is that we followed Kimmritz et al. 2016 which is probably what is used in the MITgcm.
Here is what I propose:
-I will contact Martin Losch about the MITgcm.
-I will talk to @dupontf about this. We will try to come up with a semi-implicit approach (Bouillon et al. 2009).
-Could you please rerun the 29 hours and if possible have a plot of the max speed (in ice_std_out) as a function of time?
-To make sure it is not the remapping, could you please do a second run with upwind? You could also add max speed as a function of time (with upwind) to the previous plot.
Sounds good?
jf
from cice.
from cice.
I emailed Martin Losch. Here is what he wrote:
"I haven’t had any issues with EVP in a very long time, so I am not quite sure how much I can help here. I always use explicit Coriolis (also for implicit solvers) and this was never a problem other than a timestep constraint (~1hour or so). The EVP subcycling “timesteps” are so short that I don’t expect this ever to be an issue.
If this is happening in the nearly free-drift of the MIZ I would expect that there’s something with happening with the ice-ocean/ice-wind stress. Here I usually use a “semi-implicit” treatment, where I compute the linear drag from cDrag = Cd*abs(ui-uo) (with some minimal drag) and then add the the “symmetric parts” (the cosine part when you do rotate the drag to model some sort of Ekman spiral) to the LHS. But In a python version of the EVP solver we tried both implicit and explicit treatment and didn’t find too much of a difference (in coarse simulations).
I hope that helps"
from cice.
One more comment from Martin:
"HYCOM is on a C-grid, right? If CICE was on B then there needed to be some averaging to get the velocities onto B-points and the ice-ocean stress right, whereas now this averaging needs to be different, right? So I would put my money on the ice-ocean stress …"
from cice.
Well, I am not totally ignoring the possibility of Coriolis instability since, in absence of friction, the explicit representation is unconditionally unstable. However, we had a coupling issue in the past in NEMO that is worth mentioning: it is the feedback between ice-ocean stress computed in the sea-ice component and passed back to NEMO. NEMO uses a leapfrog scheme which is stable to friction if friction uses velocity at n-1 for computing velocity at n+1 (leapfrog on n-1, n, and n+1). However, NEMO was passing ocean velocity at time n to the ice module, which is passed back to NEMO ultimately, once the ice-ocean stress is computed, and is therefore unstable in the leapfrog framework... just a thought!
from cice.
Hi Dave,
In case the problem is Coriolis. I coded a semi-implicit treatment instead of the explicit approach. Have a look at this branch:
https://github.com/JFLemieux73/CICE/tree/semi_imp_Coriolis
I ran gx1 for five days in stand-alone mode. The fields (aice, hi, uvelE, vvelN) are very similar between the standard (explicit) and new (semi-implicit) code.
from cice.
For what its worth ... I ran latest CICE with nuopc/cmeps driver on 1 degree tripole grid for 12 months without any crashes. The uvel/vvel maximum look ok. The resolution is quite different but the configuration is similar, i.e. all coupling for ocean and atmosphere is done on the A-grid but cice is calculating on C-grid (grid_ice="C"
).
from cice.
Thanks Anton for the info.
from cice.
I have just run CICE6-MOM6 coupled with JRA55 forcing for two cycles (122) years. CICE6 / MOM6 are both on the c-grid, but the coupling is still done at A-grid points. This was the 2/3 degree tripole grid.
from cice.
Related Issues (20)
- NLON, ELAT not computed when TLAT, TLON, ANGLET on grid file HOT 14
- Some CMIP variables are computed using a mix of U and T quantities HOT 1
- dxT and other grid length variables
- dsnow optional argument in icepack_step_therm1 HOT 2
- evp1d performance evaluation
- Support netcdf-4 compression & chunking HOT 1
- hist_avg on multiple streams writes the same filenames when .false. HOT 9
- Potential instability related to explicit treatment of Coriolis for C-grid HOT 3
- Arguments in update_state need if present. HOT 2
- dynamics U points are active when T points are not HOT 5
- Commit/PR process HOT 3
- PIO and hdf5 failures HOT 6
- Test various restart formats and add Derecho port that uses pio spack HOT 1
- tripole initial/restart file with inconsistent values on the tripole seam HOT 15
- Can we remove `nprocs` from `ice_in` ? HOT 6
- FSD heat / water / salt conservation
- PIO createfile where path is a symlink
- Minor modifications required in documentation HOT 3
- Unnecessary calculations for uvel, vvel for the C-grid HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cice.