4 |
Notes on tags used in MITgcmUV |
Notes on tags used in MITgcmUV |
5 |
============================== |
============================== |
6 |
|
|
7 |
|
o pkg/seaice: add Jacobian-free Newton Krylov solver for ice dynamics |
8 |
|
(Lemieux et al. 2010, 2012). Turn on with the usual SEAICE_ALLOW_JFNK |
9 |
|
and SEAICEuseJFNK=.true. A few things to note: |
10 |
|
- involves a FGMRES, that is parallel but very inefficient, |
11 |
|
because of many scalar products (global sums) in the Gram-Schmidt |
12 |
|
orthogonalization method. Needs to be replaced. Original code |
13 |
|
from J.-F. Lemieux |
14 |
|
- preconditioner for FGMRES is a stripped down version of LSOR |
15 |
|
- SOLV_MAX_ITERS is now used for LSOR as a solver and as a |
16 |
|
preconditioner. For the preconditioner, the default is set to 10. |
17 |
|
- Jacobian times vector is computed with finite differences |
18 |
|
- marginally related to JFNK-solver: add a smooth regularization for |
19 |
|
zeta with tanh that will improve convergence (Lemieux and Tremblay, |
20 |
|
2009) for any implicit solver (not implemented for EVP because EVP |
21 |
|
does not need this regularization in the first place). Define |
22 |
|
SEAICE_ZETA_SMOOTHREG in SEAICE_OPTIONS.h to use. |
23 |
o eesupp/src: |
o eesupp/src: |
24 |
- check in genmake2 that intrinsic S/R flush is available. |
- check in genmake2 that intrinsic S/R flush is available. |
25 |
- add S/R to flush IO unit (if intrinsic S/R flush is available) |
- add S/R to flush IO unit (if intrinsic S/R flush is available) |