diff options
author | Tom White <weiss@jade.(none)> | 2008-09-23 17:13:49 +0100 |
---|---|---|
committer | Thomas White <taw27@cam.ac.uk> | 2008-10-02 17:54:49 +0100 |
commit | 2e810b5880cc6378c41ea050b1196c80f21b77cf (patch) | |
tree | 6ede0966771c2095f894297a237359a6c14c285e | |
parent | 2eee6640aeb692a4491febddb2cdad22d9500cbf (diff) |
Only apply deviations if a better devcell is found
-rw-r--r-- | src/refine.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/refine.c b/src/refine.c index ca6f3cc..ed813ec 100644 --- a/src/refine.c +++ b/src/refine.c @@ -243,6 +243,7 @@ double refine_do_cell(ControlContext *ctx) { devcell_try = malloc(sizeof(Basis)); devcell_try_best = malloc(sizeof(Basis)); for ( it=1; it<=2000; it++ ) { + int found = 0; for ( comp=0; comp<18; comp++ ) { memcpy(devcell_try, devcell, sizeof(Basis)); switch ( comp ) { @@ -269,9 +270,10 @@ double refine_do_cell(ControlContext *ctx) { if ( mean_dev_try < mean_dev ) { mean_dev = mean_dev_try; memcpy(devcell_try_best, devcell_try, sizeof(Basis)); + found = 1; } } - memcpy(devcell, devcell_try_best, sizeof(Basis)); + if ( found ) memcpy(devcell, devcell_try_best, sizeof(Basis)); if ( !(it % 20) ) printf("After %5i iterations: mean dev = %13.8f nm^1\n", it, mean_dev/DISPFACTOR); } free(devcell_try); |