[MITgcm-support] diagnosing problems with the adjoint

David Ferreira dfer at mit.edu
Wed Aug 12 12:49:23 EDT 2009


Holy,
Just to be sure: does the testreport of tutorial_global_oce_optim run 
fine  for you ?
david


Holly Dail wrote:
> Thanks for the advice Matt.
>
> I'm not using the divided adjoint, but I'll try the 
> autodiff_inadmode_set.F approach.
>
> Here are the viscosities / diffusivities (chosen to be almost exactly 
> that used in ECCO):
>  viscAz=1.E-3,
>  viscAh=1.E4,
>  diffKhT=100.,
>  diffKzT=2.E-5,
>  diffKhS=100.,
>  diffKzS=1.E-5,
>
> I used your advection scheme based on your earlier advice, but haven't 
> tried
>> multiDimAdvection=.FALSE.,
> Will try that too.
>
> My time step is 3600 - again same as ECCO.
>
> Thanks -
> Holly
>
>
> On Aug 12, 2009, at Aug 12 , 11:42 AM, Matthew Mazloff wrote:
>
>> Hi Holly,
>>
>> Your adjoint is definitely blowing up (how many timesteps is your 
>> grad check....its blowing up fast).   Try turning off packages when 
>> you run the adjoint and see if that helps.  Are you using the divided 
>> adjoint?  If so you can just change some things to false in data.pkg 
>> when its about to start.  Turn off KPP and GMREDI and packages of 
>> that nature.  If you are not using the divided adjoint then you have 
>> to use autodiff_inadmode_set.F to turn these things off.  In this 
>> file just set
>>      usePtracers  = .FALSE.
>>      useKPP = .FALSE.
>>      useGMREDI = .FALSE.
>>      useSEAICE = .FALSE.
>>
>> Then try again
>>
>> -Matt
>>
>> ps> out of curiosity, what viscosity and diffusivity are you trying 
>> to run the adjoint with?
>>
>> Oh, and also some of the advection schemes may not be stable.  I am 
>> using
>> multiDimAdvection=.FALSE.,
>> tempAdvScheme=30,
>> saltAdvScheme=30,
>>
>>
>>  pps> of course the real expert is just upstairs from you -- bug him :o)
>>
>>
>>
>>
>> On Aug 12, 2009, at 8:14 AM, Holly Dail wrote:
>>
>>> Hello all -
>>>
>>> I'd like to use optimization with a regional North Atlantic setup.  
>>> As a first case, I started with the approach laid out in 
>>> tutorial_global_oce_optim --
>>> - cost based on (1) divergence of annual mean surface temperatures 
>>> in the model from climatology and (2) reasonable magnitude of 
>>> control vector
>>> - control is a time-mean heat flux correction (2-d field)
>>>
>>> My sensitivities are astronomical (i.e. adxx = 10^16), the gradient 
>>> check seems to fail (as shown below, finite difference gradients 
>>> seem okay, adjoint gradients not so much), and optim.x fails with 
>>> message 'the linesearch failed'.
>>>
>>> (PID.TID 0000.0001) grdchk output:            procId               
>>> I        ITIL  EPOS        JTILEPOS           LAYER            
>>> X(I)      X(I)+/-EPS
>>> (PID.TID 0000.0001) grdchk output:            FC             
>>> FC1             FC2 FC1-FC2/(2*EPS)    ADJ GRAD(FC)   1-FDGRD/ADGRD
>>> (PID.TID 0000.0001) grdchk output:                 0               
>>> 1             56              35               1 0.000000000D+00 
>>> -.100000000D+00
>>> (PID.TID 0000.0001) grdchk output:                   0.261232434D+02 
>>> 0.261232444     D+02 0.261232340D+02 0.523051129D-04 -.115313924+108 
>>> 0.100000000D+01
>>>
>>> I suppose this may mean the adjoint is blowing up?  I've tried 
>>> reducing my time step and increasing viscosity and I checked that my 
>>> climatology & error fields are defined at all wet points; are there 
>>> other fixes folks have had success with?  Also if you have scripts 
>>> that you use to diagnose your optimization runs that would be really 
>>> appreciated.
>>>
>>> Thanks -
>>> Holly
>>> _______________________________________________
>>> MITgcm-support mailing list
>>> MITgcm-support at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list