[Mitgcm-support] TAF bug for tangent linear
mitgcm-support at dev.mitgcm.org
mitgcm-support at dev.mitgcm.org
Wed Jul 9 15:45:41 EDT 2003
Hi Ralf,
there is a problem with the forward mode of TAF
when exploiting self-adjointness.
What happens is that in S/R g_solve_for_pressure
cg2d is called first to compute the g_... quantities
(g_cg2d_b,g_cg2d_x),
then called again to calculate the actual state
(cg2d_b,cg2d_x).
Before the second call the indices should be reset, thus
firstresidual = 0.
lastresidual = 0.
numiters = cg2dmaxiters
but the reset is missing.
The flow directive should have the information,
since the correct resetting is done in the adjoint code:
C----------------------------------------
C subroutine cg2d
C----------------------------------------
CADJ SUBROUTINE cg2d ADNAME = cg2d
CADJ SUBROUTINE cg2d FTLNAME = cg2d
CADJ SUBROUTINE cg2d INPUT = 1,2,3,4,5,6
CADJ SUBROUTINE cg2d OUTPUT = 2,3,4,5
CADJ SUBROUTINE cg2d ACTIVE = 1,2
CADJ SUBROUTINE cg2d DEPEND = 6
Another issue (or, why I do all this) is that
I try to do forward mode vs. finite difference gradient checks.
Assuming that
g_fc = (grad J)_(ith-component) * (delta xx)_(ith-component)
I should be able to recover (grad J)_(ith-component)
by setting
(delta xx)_(ith-component) = 1.
(all others = 0.).
Well, I get the correct order of magnitude,
but not really correct gradients.
Do you have an idea what else could go wrong
(I've tried it with my above hand-fix).
Cheers
Patrick
--
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Patrick Heimbach Massachusetts Institute of Technology
FON: +1/617/253-5259 EAPS, Room 54-1518
FAX: +1/617/253-4464 77 Massachusetts Avenue
mailto:heimbach at mit.edu Cambridge MA 02139
http://www.mit.edu/~heimbach/ U.S.A.
More information about the MITgcm-support
mailing list