conjugate_gradient_versus_svd_or_lu_decomposition
Differences
This shows you the differences between two versions of the page.
Previous revision | |||
— | conjugate_gradient_versus_svd_or_lu_decomposition [2022/11/03 15:08] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | --- // | ||
+ | |||
+ | TOPAS uses the Conjugate Gradient (CG) routine as described at: | ||
+ | < | ||
+ | Coelho, A. A. (2005). J. Appl. Cryst. 38, 455-461. "A bound constrained conjugate gradient solution method as applied to crystallographic refinement problems" | ||
+ | </ | ||
+ | |||
+ | The routine uses min/max limits during the solution to the normal equations. Newton methods such as LU-Decomposition, | ||
+ | |||
+ | < | ||
+ | Use of TOPAS Conjugate Gradient routine on PAWLEY1.INP: | ||
+ | |||
+ | TOPAS-32 Version 6 (c) 1992-2017 Alan A. Coelho | ||
+ | | ||
+ | Time 0.01, INP file pre-processed | ||
+ | Loading xyz's for p-1 from file C: | ||
+ | Number of hkls generated for C: | ||
+ | Number of independent parameters : 551 | ||
+ | 0 Time | ||
+ | Sparse matrix methods invoked - 83.0% of the A matrix elements are zero | ||
+ | 1 Time | ||
+ | 2 Time | ||
+ | 3 Time | ||
+ | 4 Time | ||
+ | 5 Time | ||
+ | 6 Time | ||
+ | 7 Time | ||
+ | 8 Time | ||
+ | 9 Time | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | --- 0.213 seconds --- | ||
+ | |||
+ | *** Parameter(s) close to limit(s). | ||
+ | Check for LIMIT_MIN and LIMIT_MAX in Grid/Text | ||
+ | Errors calculated | ||
+ | | ||
+ | File C: | ||
+ | with parameters from last iteration | ||
+ | |||
+ | Process Times (secs) | ||
+ | 0.01 = Peak buffer derivatives | ||
+ | 0.01 = Ycalc calculation and Penalties | ||
+ | 0.10 = A and Y matrix dot products and derivatives | ||
+ | 0.06 = Ycalc derivatives | ||
+ | 0.04 = A and Y matrix dot products | ||
+ | 0.07 = Solution to the normal equations | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | Using Cholsky Decomposition on PAWLEY1.INP: | ||
+ | |||
+ | TOPAS-32 Version 6 (c) 1992-2017 Alan A. Coelho | ||
+ | | ||
+ | Loading C: | ||
+ | Time 0.02, INP file pre-processed | ||
+ | Loading xyz's for p-1 from file C: | ||
+ | Number of hkls generated for C: | ||
+ | Number of independent parameters : 551 | ||
+ | 0 Time | ||
+ | Loading C: | ||
+ | Loading C: | ||
+ | 1 Time | ||
+ | 2 Time | ||
+ | 3 Time | ||
+ | 4 Time | ||
+ | 5 Time | ||
+ | 6 Time | ||
+ | 7 Time | ||
+ | 8 Time | ||
+ | 9 Time | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 100 Time | ||
+ | 101 Time | ||
+ | 102 Time | ||
+ | 103 Time | ||
+ | 104 Time | ||
+ | 105 Time | ||
+ | 106 Time | ||
+ | 107 Time | ||
+ | 108 Time | ||
+ | 109 Time | ||
+ | 110 Time | ||
+ | 111 Time | ||
+ | 112 Time | ||
+ | 113 Time | ||
+ | 114 Time | ||
+ | 115 Time | ||
+ | 116 Time | ||
+ | 117 Time | ||
+ | 118 Time | ||
+ | 119 Time | ||
+ | 120 Time 10.06 Rwp 4.289 | ||
+ | 121 Time 10.12 Rwp 4.288 | ||
+ | 122 Time 10.22 Rwp 4.286 | ||
+ | 123 Time 10.29 Rwp 4.285 | ||
+ | 124 Time 10.38 Rwp 4.282 | ||
+ | 125 Time 10.47 Rwp 4.281 | ||
+ | 126 Time 10.57 Rwp 4.279 | ||
+ | 127 Time 10.63 Rwp 4.278 | ||
+ | --- 10.649 seconds --- | ||
+ | |||
+ | *** Parameter(s) close to limit(s). | ||
+ | Check for LIMIT_MIN and LIMIT_MAX in Grid/Text | ||
+ | Errors calculated | ||
+ | | ||
+ | File C: | ||
+ | with parameters from last iteration | ||
+ | |||
+ | Process Times (secs) | ||
+ | 0.07 = Peak buffer derivatives | ||
+ | 0.20 = Ycalc calculation and Penalties | ||
+ | 1.37 = A and Y matrix dot products and derivatives | ||
+ | 0.58 = Ycalc derivatives | ||
+ | 0.79 = A and Y matrix dot products | ||
+ | 6.37 = Solution to the normal equations | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | SVD convergence behavior on PAWLEY1.INP: | ||
+ | |||
+ | 0 Time | ||
+ | 1 Time | ||
+ | 2 Time | ||
+ | 3 Time | ||
+ | 4 Time | ||
+ | 5 Time | ||
+ | 6 Time | ||
+ | 7 Time 10.84 Rwp 8.807 | ||
+ | 8 Time 12.16 Rwp 7.804 | ||
+ | 9 Time 13.46 Rwp 7.694 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | A few points to note: | ||
+ | |||
+ | - Convergence of the CG routine is fast. | ||
+ | |||
+ | - The SVD routine does try and minimize on the residual (A x – b)^2 | ||
+ | |||
+ | - The SVD refinement was truncated at 50 iterations to minimize on waiting time. | ||
+ | |||
+ | - On a problem with 551 independent parameters, SVD is 100s of times slower over the whole refinement. Note, the CG routine is threaded. | ||
+ | |||
+ | - The Solution to the normal equations for CG took 0.07s; for LU decomposition its 6.37s. | ||
+ | |||
+ | |||
+ | **Using the CG routine without limits** | ||
+ | |||
+ | The following INP file is used: | ||
+ | |||
+ | < | ||
+ | r_wp 0 | ||
+ | process_times | ||
+ | |||
+ | xdd alvo4.xdd | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | bkg @ 0 0 0 0 0 0 0 0 | ||
+ | |||
+ | | ||
+ | a | ||
+ | b | ||
+ | c | ||
+ | al @ 96.1 | ||
+ | be @ 107.2 | ||
+ | ga @ 101.4 | ||
+ | | ||
+ | PV_Peak_Type(, | ||
+ | | ||
+ | |||
+ | macro VV(v) | ||
+ | { | ||
+ | #m_unique i v min = -1e40; max = 1e40; update = Max(Val+Change, | ||
+ | = i; | ||
+ | } | ||
+ | space_group " | ||
+ | | ||
+ | load hkl_m_d_th2 prm I | ||
+ | { | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 1 | ||
+ | 1 | ||
+ | 1 -1 | ||
+ | 0 | ||
+ | 1 -1 -1 | ||
+ | 1 | ||
+ | 1 | ||
+ | 0 | ||
+ | 1 -1 | ||
+ | 1 | ||
+ | 1 | ||
+ | 0 | ||
+ | 0 | ||
+ | 1 | ||
+ | 0 | ||
+ | 1 -1 -2 | ||
+ | 1 -2 | ||
+ | 0 | ||
+ | 1 | ||
+ | 1 -2 -1 | ||
+ | 1 -2 | ||
+ | 0 | ||
+ | 2 | ||
+ | 2 -1 -1 | ||
+ | 1 -1 | ||
+ | 0 | ||
+ | 2 -1 | ||
+ | 1 | ||
+ | 2 | ||
+ | 1 | ||
+ | 1 | ||
+ | 2 | ||
+ | 1 | ||
+ | 2 -1 -2 | ||
+ | 0 | ||
+ | 0 | ||
+ | 1 | ||
+ | 1 | ||
+ | 1 -2 -2 | ||
+ | 2 | ||
+ | 1 -2 | ||
+ | 1 -1 -3 | ||
+ | 2 -2 -1 | ||
+ | 2 -2 | ||
+ | 2 -1 | ||
+ | 2 | ||
+ | 1 | ||
+ | 2 | ||
+ | 0 | ||
+ | 2 | ||
+ | 2 | ||
+ | 1 -3 | ||
+ | 0 | ||
+ | 1 | ||
+ | 0 | ||
+ | 0 | ||
+ | 0 | ||
+ | 2 -2 -2 | ||
+ | 2 -2 | ||
+ | 1 -3 | ||
+ | 2 -1 -3 | ||
+ | 1 | ||
+ | 1 -3 -1 | ||
+ | 1 -1 | ||
+ | 2 | ||
+ | 0 | ||
+ | 1 | ||
+ | 0 | ||
+ | 2 | ||
+ | 1 | ||
+ | 1 -2 -3 | ||
+ | 2 -1 | ||
+ | 2 | ||
+ | 1 | ||
+ | 1 -3 | ||
+ | 1 -2 | ||
+ | 1 | ||
+ | 2 | ||
+ | 2 -3 | ||
+ | 2 -3 -1 | ||
+ | 3 -1 -1 | ||
+ | 2 | ||
+ | 0 | ||
+ | 1 | ||
+ | 0 | ||
+ | 2 -2 -3 | ||
+ | 1 -3 -2 | ||
+ | 1 | ||
+ | 2 -2 | ||
+ | 3 | ||
+ | 3 -1 -2 | ||
+ | 1 | ||
+ | 2 | ||
+ | 1 -1 -4 | ||
+ | 3 | ||
+ | 2 | ||
+ | 0 | ||
+ | 2 -3 | ||
+ | 3 -1 | ||
+ | 1 | ||
+ | 0 | ||
+ | 2 | ||
+ | 3 -2 -1 | ||
+ | 2 -3 -2 | ||
+ | 2 | ||
+ | 1 | ||
+ | 3 | ||
+ | 2 -1 -4 | ||
+ | 0 | ||
+ | 0 | ||
+ | 3 -2 | ||
+ | 3 -2 -2 | ||
+ | 3 | ||
+ | 1 | ||
+ | 3 -1 -3 | ||
+ | 0 | ||
+ | 1 | ||
+ | 3 | ||
+ | 2 | ||
+ | 3 | ||
+ | 1 -3 | ||
+ | 1 -4 | ||
+ | 2 | ||
+ | 1 -4 | ||
+ | 3 -1 | ||
+ | 2 -3 | ||
+ | 0 | ||
+ | 1 -1 | ||
+ | 0 | ||
+ | 2 -1 | ||
+ | 3 | ||
+ | 1 -2 -4 | ||
+ | 1 -3 -3 | ||
+ | 3 -2 | ||
+ | 1 -4 -1 | ||
+ | 3 | ||
+ | 1 | ||
+ | 3 -2 -3 | ||
+ | 3 | ||
+ | 2 | ||
+ | 0 | ||
+ | 2 -2 -4 | ||
+ | 1 -2 | ||
+ | 2 -2 | ||
+ | 3 -3 -1 | ||
+ | 2 -3 -3 | ||
+ | 1 | ||
+ | 2 | ||
+ | 2 | ||
+ | 1 | ||
+ | 2 | ||
+ | 1 -4 | ||
+ | 2 -4 | ||
+ | 3 -3 | ||
+ | 3 | ||
+ | 0 | ||
+ | 1 | ||
+ | 3 -1 -4 | ||
+ | 2 -4 -1 | ||
+ | 0 | ||
+ | 1 | ||
+ | 3 -3 -2 | ||
+ | 2 | ||
+ | 2 -4 | ||
+ | 0 | ||
+ | 2 | ||
+ | 1 | ||
+ | 0 | ||
+ | 0 | ||
+ | 2 | ||
+ | 1 | ||
+ | 2 | ||
+ | 3 | ||
+ | 1 -1 -5 | ||
+ | 0 | ||
+ | 3 | ||
+ | 1 | ||
+ | 1 | ||
+ | 0 | ||
+ | 1 -4 -2 | ||
+ | 3 -3 | ||
+ | 1 | ||
+ | 3 | ||
+ | 2 -1 -5 | ||
+ | 3 -1 | ||
+ | 2 | ||
+ | 3 | ||
+ | 2 -3 | ||
+ | 1 | ||
+ | 0 | ||
+ | 3 | ||
+ | 1 -3 | ||
+ | 2 -4 -2 | ||
+ | 3 -2 | ||
+ | 2 | ||
+ | 3 -2 -4 | ||
+ | 1 -4 | ||
+ | 3 -3 -3 | ||
+ | 2 -4 | ||
+ | 3 | ||
+ | 1 | ||
+ | 4 -1 -2 | ||
+ | 4 -1 -1 | ||
+ | 3 | ||
+ | 2 | ||
+ | 0 | ||
+ | 0 | ||
+ | 2 | ||
+ | 2 | ||
+ | 2 -3 -4 | ||
+ | 1 -3 -4 | ||
+ | 4 | ||
+ | 4 -2 -1 | ||
+ | 3 | ||
+ | 4 -2 -2 | ||
+ | 4 | ||
+ | 4 -1 -3 | ||
+ | 2 -1 | ||
+ | 3 -4 -1 | ||
+ | 3 -4 | ||
+ | 3 | ||
+ | 1 | ||
+ | 3 -3 | ||
+ | 2 -2 -5 | ||
+ | 4 | ||
+ | 1 -1 | ||
+ | 1 -2 -5 | ||
+ | 4 -1 | ||
+ | 3 -1 -5 | ||
+ | 2 -2 | ||
+ | 1 | ||
+ | 0 | ||
+ | 0 | ||
+ | 3 | ||
+ | 1 -5 | ||
+ | 1 -5 | ||
+ | 1 -4 -3 | ||
+ | 4 -2 | ||
+ | 2 -4 -3 | ||
+ | 1 -2 | ||
+ | 2 | ||
+ | 3 -4 -2 | ||
+ | 4 -2 -3 | ||
+ | 1 | ||
+ | 1 | ||
+ | 1 | ||
+ | 3 -4 | ||
+ | 0 | ||
+ | 3 | ||
+ | 4 | ||
+ | 1 | ||
+ | 1 | ||
+ | 4 | ||
+ | 2 | ||
+ | 2 -4 | ||
+ | 1 | ||
+ | 3 | ||
+ | 3 -3 -4 | ||
+ | 0 | ||
+ | 1 -5 | ||
+ | 0 | ||
+ | 2 | ||
+ | 0 | ||
+ | 3 | ||
+ | 2 | ||
+ | 4 -3 -1 | ||
+ | 3 -1 | ||
+ | 2 -5 | ||
+ | 1 -5 -1 | ||
+ | 4 -1 -4 | ||
+ | 1 -4 | ||
+ | 4 | ||
+ | 4 | ||
+ | 2 | ||
+ | 4 | ||
+ | 3 -2 | ||
+ | 2 | ||
+ | 4 -3 -2 | ||
+ | 2 -3 | ||
+ | 3 -2 -5 | ||
+ | 2 -5 | ||
+ | 3 | ||
+ | 2 | ||
+ | 3 | ||
+ | 2 -5 -1 | ||
+ | 2 | ||
+ | 0 | ||
+ | 4 -3 | ||
+ | 1 | ||
+ | 4 -1 | ||
+ | 2 | ||
+ | 0 | ||
+ | 4 -2 | ||
+ | 0 | ||
+ | 1 -3 | ||
+ | 3 | ||
+ | 2 -1 -6 | ||
+ | 3 -4 -3 | ||
+ | 1 | ||
+ | 3 | ||
+ | 2 | ||
+ | 1 -1 -6 | ||
+ | 4 -2 -4 | ||
+ | 1 | ||
+ | 0 | ||
+ | 2 | ||
+ | 0 | ||
+ | 3 -4 | ||
+ | 0 | ||
+ | 4 -3 -3 | ||
+ | 4 | ||
+ | 0 | ||
+ | 3 -3 | ||
+ | 4 | ||
+ | 2 | ||
+ | 1 -5 | ||
+ | 4 | ||
+ | 2 -5 | ||
+ | 1 | ||
+ | 3 | ||
+ | 1 | ||
+ | 2 -3 -5 | ||
+ | 3 | ||
+ | 1 -5 -2 | ||
+ | 2 -5 -2 | ||
+ | 3 | ||
+ | 2 | ||
+ | 2 -4 -4 | ||
+ | 4 -3 | ||
+ | 1 -3 -5 | ||
+ | 0 | ||
+ | 1 | ||
+ | 4 | ||
+ | 4 | ||
+ | 1 -4 -4 | ||
+ | 3 | ||
+ | 1 | ||
+ | 4 -1 -5 | ||
+ | 3 -1 -6 | ||
+ | 1 | ||
+ | 4 | ||
+ | 3 | ||
+ | 3 -5 | ||
+ | 1 | ||
+ | 3 -5 -1 | ||
+ | 4 -4 -1 | ||
+ | 2 -4 | ||
+ | 0 | ||
+ | 2 | ||
+ | 2 -1 | ||
+ | 2 -2 -6 | ||
+ | 4 | ||
+ | 3 -3 -5 | ||
+ | 3 | ||
+ | 2 -2 | ||
+ | 4 -4 -2 | ||
+ | 4 -4 | ||
+ | 0 | ||
+ | 4 -3 -4 | ||
+ | 1 | ||
+ | 4 -1 | ||
+ | 4 -2 | ||
+ | 0 | ||
+ | 3 -5 | ||
+ | 0 | ||
+ | 1 -2 -6 | ||
+ | 4 | ||
+ | 3 -4 -4 | ||
+ | 1 -4 | ||
+ | 2 -5 | ||
+ | 4 | ||
+ | 4 | ||
+ | 1 -1 | ||
+ | 4 -2 -5 | ||
+ | 3 -5 -2 | ||
+ | 3 | ||
+ | 3 | ||
+ | 3 -4 | ||
+ | 2 | ||
+ | 2 | ||
+ | 1 -2 | ||
+ | 3 -2 | ||
+ | 3 -1 | ||
+ | 1 | ||
+ | 1 -5 | ||
+ | 3 | ||
+ | 2 -5 -3 | ||
+ | 2 | ||
+ | 1 | ||
+ | 1 | ||
+ | 3 -2 -6 | ||
+ | 0 | ||
+ | 2 | ||
+ | 5 -1 -2 | ||
+ | 2 | ||
+ | 1 | ||
+ | 1 -5 -3 | ||
+ | 2 -3 | ||
+ | 4 -4 -3 | ||
+ | 4 | ||
+ | 4 -3 | ||
+ | 0 | ||
+ | 1 | ||
+ | 4 | ||
+ | 4 -4 | ||
+ | 3 | ||
+ | 1 | ||
+ | 5 -1 -3 | ||
+ | 5 -2 -2 | ||
+ | 2 | ||
+ | 1 -6 | ||
+ | 2 | ||
+ | 5 -1 -1 | ||
+ | 3 | ||
+ | 1 | ||
+ | 3 -5 | ||
+ | 1 -6 | ||
+ | 5 -2 -1 | ||
+ | 5 | ||
+ | 3 -3 | ||
+ | 2 | ||
+ | 3 | ||
+ | 3 | ||
+ | 5 -2 -3 | ||
+ | 5 | ||
+ | 1 -6 | ||
+ | 1 -3 | ||
+ | 1 | ||
+ | 2 | ||
+ | 0 | ||
+ | 3 -5 -3 | ||
+ | 4 | ||
+ | 2 -6 | ||
+ | 0 | ||
+ | 4 | ||
+ | 2 | ||
+ | 2 | ||
+ | 2 -6 | ||
+ | 5 | ||
+ | 0 | ||
+ | 4 -1 -6 | ||
+ | 5 -1 -4 | ||
+ | 2 -4 -5 | ||
+ | 2 -1 -7 | ||
+ | 2 | ||
+ | 3 | ||
+ | 1 | ||
+ | 2 | ||
+ | 4 -3 -5 | ||
+ | 1 -6 -1 | ||
+ | 0 | ||
+ | 5 -3 -2 | ||
+ | 0 | ||
+ | 2 -3 -6 | ||
+ | 5 -1 | ||
+ | 5 -2 | ||
+ | 4 | ||
+ | 0 | ||
+ | 2 -6 -1 | ||
+ | 4 | ||
+ | 5 | ||
+ | 3 | ||
+ | 3 | ||
+ | 5 -3 -1 | ||
+ | 0 | ||
+ | 1 -1 -7 | ||
+ | 0 | ||
+ | 4 | ||
+ | 1 | ||
+ | 4 -4 -4 | ||
+ | 5 -2 -4 | ||
+ | 2 -5 | ||
+ | 1 -4 -5 | ||
+ | 3 | ||
+ | 3 | ||
+ | 4 -5 -1 | ||
+ | 0 | ||
+ | 4 | ||
+ | 4 -2 | ||
+ | 4 -4 | ||
+ | 1 | ||
+ | 2 | ||
+ | 2 -6 | ||
+ | 3 | ||
+ | 2 -4 | ||
+ | 3 -4 -5 | ||
+ | 5 -3 -3 | ||
+ | 0 | ||
+ | 4 | ||
+ | 4 -1 | ||
+ | 3 | ||
+ | 0 | ||
+ | 1 | ||
+ | 1 -6 | ||
+ | 1 -3 -6 | ||
+ | 4 -5 | ||
+ | 5 | ||
+ | 5 | ||
+ | 2 | ||
+ | 4 | ||
+ | 3 -1 -7 | ||
+ | 3 -3 -6 | ||
+ | 4 | ||
+ | 2 -5 -4 | ||
+ | 4 -2 -6 | ||
+ | 4 -5 -2 | ||
+ | 5 | ||
+ | 5 -3 | ||
+ | 3 -4 | ||
+ | 1 | ||
+ | 3 | ||
+ | 3 -5 | ||
+ | 1 -5 | ||
+ | 2 | ||
+ | 0 | ||
+ | 4 -3 | ||
+ | 2 -6 -2 | ||
+ | 5 | ||
+ | 5 | ||
+ | 3 -6 | ||
+ | 1 -5 -4 | ||
+ | 1 | ||
+ | 5 -1 -5 | ||
+ | 3 | ||
+ | 1 -6 -2 | ||
+ | 1 | ||
+ | 1 -4 | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | The CG routine in this case is used to solve the normal equations but the limits on the intensity parameter is set to the very large values of -1e40 and 1e40. The macro VV limits the intensity to a positive value after the solution to the normal equations; this is performed using: | ||
+ | |||
+ | < | ||
+ | #m_unique i v min = -1e40; max = 1e40; update = Max(Val+Change, | ||
+ | </ | ||
+ | |||
+ | Thus convergence output is as follows: | ||
+ | |||
+ | < | ||
+ | TOPAS-32 Version 6 (c) 1992-2017 Alan A. Coelho | ||
+ | | ||
+ | Time 0.01, INP file pre-processed | ||
+ | Number of independent parameters : 551 | ||
+ | 0 Time | ||
+ | Sparse matrix methods invoked - 83.0% of the A matrix elements are zero | ||
+ | 1 Time | ||
+ | 2 Time | ||
+ | 3 Time | ||
+ | 4 Time | ||
+ | 5 Time | ||
+ | 6 Time | ||
+ | 7 Time | ||
+ | 8 Time | ||
+ | 9 Time | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | --- 0.483 seconds --- | ||
+ | |||
+ | *** Parameter(s) close to limit(s). | ||
+ | Check for LIMIT_MIN and LIMIT_MAX in Grid/Text | ||
+ | File C: | ||
+ | with parameters from last iteration | ||
+ | |||
+ | Process Times (secs) | ||
+ | 0.02 = Peak buffer derivatives | ||
+ | 0.04 = Ycalc calculation and Penalties | ||
+ | 0.22 = A and Y matrix dot products and derivatives | ||
+ | 0.15 = Ycalc derivatives | ||
+ | 0.07 = A and Y matrix dot products | ||
+ | 0.13 = Solution to the normal equations | ||
+ | </ | ||
+ | |||
+ | As can be seen, not having min/max limits on the intensity parameters leads to slow convergence. | ||
+ | |||
+ | Removing the ' | ||
+ | |||
+ | #m_unique i v min = -1e40; max = 1e40; | ||
+ | |||
+ | results in fast convergence but many of the intensities become negative. | ||
+ | |||