aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw27@cam.ac.uk>2008-10-02 22:07:25 +0100
committerThomas White <taw27@cam.ac.uk>2008-10-02 22:07:25 +0100
commit27d9bd723dfb48e097b412402d207c856a643bd9 (patch)
tree9fcc99bcd2f279f52fd6e181e5dbc9858033ea55
parent74177a1ca0a321fb1c3ac732cc3e2a80a25788c6 (diff)
Test confidence before refinement
-rw-r--r--src/refine.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/refine.c b/src/refine.c
index 5d1b59a..08408ac 100644
--- a/src/refine.c
+++ b/src/refine.c
@@ -188,6 +188,66 @@ static void refine_cell_delta(Basis *devcell_try, int comp) {
}
+static void refine_test_confidence(Deviation *d, int nf) {
+
+ Basis *devcell;
+ double val, new_val;
+
+ printf("Testing confidence...\n");
+
+ devcell = malloc(sizeof(Basis));
+ devcell->a.x = 0.0e9; devcell->b.x = 0.0e9; devcell->c.x = 0.0e9;
+ devcell->a.y = 0.0e9; devcell->b.y = 0.0e9; devcell->c.y = 0.0e9;
+ devcell->a.z = 0.0e9; devcell->b.z = 0.0e9; devcell->c.z = 0.0e9;
+ val = refine_mean_dev(d, nf, devcell, 0);
+
+ devcell->a.x = 1.0e9;
+ new_val = refine_mean_dev(d, nf, devcell, 0);
+ printf("ax: %10.8f\n", (new_val - val)/DISPFACTOR);
+ devcell->a.x = 0.0;
+
+ devcell->a.y = 1.0e9;
+ new_val = refine_mean_dev(d, nf, devcell, 0);
+ printf("ay: %10.8f\n", (new_val - val)/DISPFACTOR);
+ devcell->a.y = 0.0;
+
+ devcell->a.z = 1.0e9;
+ new_val = refine_mean_dev(d, nf, devcell, 0);
+ printf("az: %10.8f\n", (new_val - val)/DISPFACTOR);
+ devcell->a.z = 0.0;
+
+ devcell->b.x = 1.0e9;
+ new_val = refine_mean_dev(d, nf, devcell, 0);
+ printf("bx: %10.8f\n", (new_val - val)/DISPFACTOR);
+ devcell->b.x = 0.0;
+
+ devcell->b.y = 1.0e9;
+ new_val = refine_mean_dev(d, nf, devcell, 0);
+ printf("by: %10.8f\n", (new_val - val)/DISPFACTOR);
+ devcell->b.y = 0.0;
+
+ devcell->b.z = 1.0e9;
+ new_val = refine_mean_dev(d, nf, devcell, 0);
+ printf("bz: %10.8f\n", (new_val - val)/DISPFACTOR);
+ devcell->b.z = 0.0;
+
+ devcell->c.x = 1.0e9;
+ new_val = refine_mean_dev(d, nf, devcell, 0);
+ printf("cx: %10.8f\n", (new_val - val)/DISPFACTOR);
+ devcell->c.x = 0.0;
+
+ devcell->c.y = 1.0e9;
+ new_val = refine_mean_dev(d, nf, devcell, 0);
+ printf("cy: %10.8f\n", (new_val - val)/DISPFACTOR);
+ devcell->c.y = 0.0;
+
+ devcell->c.z = 1.0e9;
+ new_val = refine_mean_dev(d, nf, devcell, 0);
+ printf("cz: %10.8f\n", (new_val - val)/DISPFACTOR);
+ devcell->c.z = 0.0;
+
+}
+
double refine_do_cell(ControlContext *ctx) {
Deviation *d;
@@ -304,6 +364,9 @@ double refine_do_cell(ControlContext *ctx) {
printf("Initial mean deviation: %13.8f nm^1\n", mean_dev/DISPFACTOR);
#endif /* REFINE_DEBUG */
+ /* Test confidence */
+ refine_test_confidence(d, nf);
+
/* Determine direction of steepest gradient */
devcell_try = malloc(sizeof(Basis));
devcell_try_best = malloc(sizeof(Basis));