aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom White <weiss@jade.(none)>2008-09-23 17:13:49 +0100
committerThomas White <taw27@cam.ac.uk>2008-10-02 17:54:49 +0100
commit2e810b5880cc6378c41ea050b1196c80f21b77cf (patch)
tree6ede0966771c2095f894297a237359a6c14c285e
parent2eee6640aeb692a4491febddb2cdad22d9500cbf (diff)
Only apply deviations if a better devcell is found
-rw-r--r--src/refine.c4
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);