[MITgcm-devel] seaice dynamics parameters
Jean-Michel Campin
jmc at ocean.mit.edu
Tue Jan 26 10:33:26 EST 2016
Hi Martin,
I have the impression that the simplification you propose, with a clear separation
between linear-solver and non-lin solver, which applies to all solver, is a good thing.
And the IterMax params (point 1) as well as for preconditioner (2) is clear
(may be with shorter name here, like SEAICEpreconLinItMax & SEAICEpreconNL_ItMax ?).
Regarding the solver tolerance, it's less clear to me what these gamma_lin_max,gamma_lin_min
are doing (I would need to check in the code), and it's not very clear to me that
"gamma" means "solver tolerance" (e.g., for cg2d, we have TargetResidual and TargetResWunit,
a little bit more explicit for a name).
Backward compat:
a) Are you going to maintain the current default for LSR (setting default SEAICEnonLinIterMax
to 2 if using LSR ?).
b) We could maintain a backward compatibility for LSR_ERROR during some time (with a
warning ?) since it is commonly prescribed in data.seaice (see our set of verif exp).
But I would agree that the other old params could just go retired.
Cheers,
Jean-Michel
On Tue, Jan 26, 2016 at 11:31:29AM +0100, Martin Losch wrote:
> Hi Jean-Michel, and other sea ice modellers,
>
> I am about to check in yet another (Picard) solver for sea ice dynamics, and I find the amount of different parameters that would ensue a little annoying. Since I am mostly responsible for them, I???d like to clean them up a little, and at the same time get rid of the old parameters for LSR.
> 1. I would like to have only SEAICEnonLinIterMax and SEAICElinearIterMax. They would replace NPSEUDOTIMESTEPS/SEAICEnewtonIterMax and SOLV_MAX_ITER/SEAICEkrylovIterMax.
> 2. I still need to be able to set separater maximum iterations for the preconditioner, SEAICEpreconIterMax, and also a nonlinear Iteration of the preconditioner, but that could be held fixed for now. Otherwise I would need to have SEAICEpreconLinearIterMax and SEAICEpreconNonLinIterMax (very long names)
> 3. I would like to have tolerance for the nonlinear and the linear convergence. Currently we have SEAICEgamma_nonlin for JFNK and nothing for the LSR-Picard solver, and SEAICEgamma_lin_max, SEAICEgamma_lin_min, from which SEAICEgamma_lin is computed for JFNK, and there is LSR_ERROR for the LSR solver. I suggest to keep the three parameters of the JFNK solver and use SEAICEgamma_lin_max for the linear LSR tolerance (replace LSR_ERROR).
>
> The consequence is clear: fewer parameters, but the parameters have a slightly different meaing depending on which solver is used.
>
> For the changes: I could keep the old parameters in the namelist and do some fancy copying the keep the default behavior, or I could just retire them, because I believe that most people do not use them anyway (except for maybe LSR_ERROR?).
>
> What do you think? Do you have a better suggestion? Or is it a bad idea to use the same iteration/tolerance parameters for different solvers?
>
> Martin
>
>
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
More information about the MITgcm-devel
mailing list