/[MITgcm]/MITgcm_contrib/ecco_utils/ecco_v4_release3_optimization/README
ViewVC logotype

Annotation of /MITgcm_contrib/ecco_utils/ecco_v4_release3_optimization/README

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (hide annotations) (download)
Wed Jan 17 18:01:05 2018 UTC (7 years, 6 months ago) by ou.wang
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +32 -12 lines
Update README and add more printouts

1 ou.wang 1.1 20171119
2     Ou Wang
3     Jet Propulsion Laboratory
4    
5     This directory contains the updated optimization package
6 ou.wang 1.3 used in ECCO Version 4, Release 3. The optimization package
7     is the so-called "offline" version, where the optimization
8     package generates ecco_ctrl for offline forward/adjoint
9     runs. As such, the logical variable "loffline" has to be
10     set to .TRUE. Also, one has to set numiter=1 and nfunc=1.
11     The code will stop if numiter or nfunc is not set to one.
12     Nothing has been tested for "online" iterations where forward/
13     adjoint runs are conducted within the optimization package.
14    
15     The main differences between this updated version and that
16     in the MITgcm main CVS repository are
17     a) whether to overwrite OPWARMI and OPWARMD when either
18     of the two Wolfe conditions is not satisfied. This updated
19     version would not overwrite OPWARMI and OPWARMD, while that
20     in the main repository would.
21     b) In this version, tact (step size) in the beginning is
22     computed as (xx(i+1)-xx(i))/dd(i-1), but in the version
23     in the main repository tact was set to 1.
24     c) The two parameters used in Wolfe's conditions are
25     xpara1 = 0.000001 and xpara2 = 0.99999. They were
26     0.0001 and 0.9 in the original code.
27 ou.wang 1.1
28 ou.wang 1.2 1) Compile
29 ou.wang 1.3 To compile, one has to
30     a) set MAX_INDEPEND in
31     optim/Makefile (line 52) to the control vector length of
32     his/her model;
33     b) include his/her build directory by replacing
34     "../../../verification/release3/build/" in optim/Makefile
35     (line 31) with the path of his/her own build directory.
36     And then do the following:
37 ou.wang 1.1 cd lsopt
38 ou.wang 1.2 make clean
39 ou.wang 1.1 make
40     cd optim
41 ou.wang 1.2 make clean
42 ou.wang 1.1 make
43     The executable would be optim.x in optim/.
44    
45 ou.wang 1.2 2) Check for Wolfe conditions
46     This updated version will NOT overwrite OPWARMI
47     and OPWARMD, when either of the two Wolfe
48     conditions is NOT satisfied. The two Wolfe
49     conditions are 1) sufficient decrease condition
50     (Armijo rule) and 2) curvature condition (cf.
51     Wolfe [1969], [1971]). Suppose we are computing
52     ecco_ctrl for iteration i (i>1) and we direct the
53     print-outs to a file called op.txt. If we
54     found 'Wolfe test 1: failed' or 'Wolfe test 2: failed'
55     in op.txt, then the previous iteration (i-1) is
56     NOT a solution. The optimization package will still
57     generate a new ecco_ctrl file that we would use to
58     re-do a new iteration. Note that when deriving
59     iteration one, one would always find
60     'Wolfe test 1: failed' or 'Wolfe test 2: failed'
61 ou.wang 1.3 for iteration zero in in op.txt and need to
62     disregard this message, since iteration zero is
63     always a solution.
64 ou.wang 1.2
65     References:
66     Wolfe, P. (1969). "Convergence Conditions for Ascent Methods". SIAM Review.
67     11 (2): 226-235. doi:10.1137/1011036.
68     Wolfe, P. (1971). "Convergence Conditions for Ascent Methods. II: Some Corrections".
69     SIAM Review. 13 (2): 185-188. doi:10.1137/1013035

  ViewVC Help
Powered by ViewVC 1.1.22