[MITgcm-devel] DIVA and seaice dynamics
Martin Losch
Martin.Losch at awi.de
Thu May 8 02:11:38 EDT 2014
Hi Patrick,
the only thing I can contribute is that my PhD student Mischa (included in CC) has a hard time setting up and running the adjoint versions of offline_exf_seaice, with quickly diverging adjoints when he runs the experiments a little longer than in the verification experiment. We are currently examining this.
The last time I had a look (a while ago), the adjoint of the dynamics gave, after many interesting calculations, exacatly zero sensitivity, so I am surprised that turning this part of the code on even makes a difference.
Martin
On May 8, 2014, at 4:04 AM, Patrick Heimbach <heimbach at MIT.EDU> wrote:
>
> Hi there,
>
> I am trying to hunt down a problem with DIVA:
> Running An’s ASTE setup with DIVA very quickly leads to diverging adjoint values.
> After some unsuccessful fiddling with full ASTE setup,
> I went back to verification/global_ocean.cs32x15/
> and constructed a DIVA setup based on input_ad.seaice/
>
> I extended the run to 16 time steps (with nchklev_3 = 3, so it does 4 sweeps).
> To my considerable amazement, astonishment, and surprise, it is the *DIVA*
> that gives correct gradients, whereas the standard (non-DIVA) setup diverges
> (by many orders of magn.) after a couple of time steps.
>
> (Ronaldo didn’t score 4 goals against Bayern today, so I think I got it right;
> I actually ran twice to be sure).
>
> When I switch seaice dynamics off, then non-DIVA and DIVA give good agreement.
> For ASTE we’re switching off seaice dynamics in the adjoint, and that should
> essentially happen in same/similar way with or without DIVA.
> But apparently not so.
>
> For the tests I’ve used:
> integer nchklev_1
> parameter( nchklev_1 = 2 )
> integer nchklev_2
> parameter( nchklev_2 = 3 )
> integer nchklev_3
> parameter( nchklev_3 = 3 )
> (I’ve also tested changing to nchklev_2 = 4).
>
> Certainly, seaice dynamics shouldn’t play a big role in this verif.
> so we expect gradients to be fairly similar with or without.
> A vague hunch is that something gets messed up (in memory?)
> that gets corrected due to adjoint dump/restart, but not
> when running the adjoint in single sweep(???)
>
> Ah, those divas… Any ideas, anyone?
> -Patrick
>
> ---
> Patrick Heimbach | heimbach at mit.edu | http://www.mit.edu/~heimbach
> MIT | EAPS 54-1420 | 77 Massachusetts Ave | Cambridge MA 02139 USA
> FON +1-617-253-5259 | FAX +1-617-253-4464 | SKYPE patrick.heimbach
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
More information about the MITgcm-devel
mailing list