aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2009-11-25 15:17:03 +0100
committerThomas White <taw@physics.org>2009-11-25 15:17:03 +0100
commit15c526821d0150b11ef5eb1f637d76e491eaa38c (patch)
tree4dcbb253e75355cb883b57d673fc6e381ba254c7 /src/main.c
parentb0e34adb4187a4a5e4fa738f72817de656bf568a (diff)
Move main.c to pattern_sim.c
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c136
1 files changed, 0 insertions, 136 deletions
diff --git a/src/main.c b/src/main.c
deleted file mode 100644
index b31d11d1..00000000
--- a/src/main.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * main.c
- *
- * (c) 2006-2009 Thomas White <thomas.white@desy.de>
- *
- * pattern_sim - Simulate diffraction patterns from small crystals
- *
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdarg.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "image.h"
-#include "diffraction.h"
-#include "cell.h"
-#include "utils.h"
-#include "hdf5-file.h"
-#include "detector.h"
-
-
-/* Crystal size in metres */
-#define CRYSTAL_SIZE (500.0e-9)
-
-
-static void main_show_help(const char *s)
-{
- printf("Syntax: %s <file1.h5> <file2.h5> [...]\n\n", s);
- printf("Simulate diffraction patterns\n\n");
- printf(" -h Display this help message\n");
-}
-
-
-int main(int argc, char *argv[])
-{
- int c, done;
- struct image image;
- char filename[1024];
- int number = 1;
-
- while ((c = getopt(argc, argv, "h")) != -1) {
-
- switch ( c ) {
-
- case 'h' : {
- main_show_help(argv[0]);
- return 0;
- }
-
- }
-
- }
-
- /* Define image parameters */
- image.width = 1024;
- image.height = 1024;
- image.fmode = FORMULATION_CLEN;
- image.x_centre = 512.5;
- image.y_centre = 512.5;
- image.camera_len = 0.2; /* 20 cm (can move from 5cm-20cm) */
- image.resolution = 13333.3; /* 75 micron pixel size */
- image.xray_energy = eV_to_J(2.0e3); /* 2 keV energy */
- image.lambda = ph_en_to_lambda(image.xray_energy); /* Wavelength */
- image.molecule = NULL;
-
- /* Splurge a few useful numbers */
- printf("Wavelength is %f nm\n", image.lambda/1.0e-9);
-
-again:
-
- /* Read quaternion from stdin */
- done = 0;
- do {
-
- int r;
- float w, x, y, z;
- char line[1024];
- char *rval;
-
- printf("Please input quaternion: w x y z\n");
- rval = fgets(line, 1023, stdin);
- if ( rval == NULL ) return 0;
- chomp(line);
-
- r = sscanf(line, "%f %f %f %f", &w, &x, &y, &z);
- if ( r == 4 ) {
-
- printf("Rotation is: %f %f %f %f (modulus=%f)\n",
- w, x, y, z, sqrtf(w*w + x*x + y*y + z*z));
-
- image.orientation.w = w;
- image.orientation.x = x;
- image.orientation.y = y;
- image.orientation.z = z;
-
- done = 1;
-
- } else {
- fprintf(stderr, "Invalid rotation '%s'\n", line);
- }
-
- } while ( !done );
-
- /* Ensure no residual information */
- image.qvecs = NULL;
- image.sfacs = NULL;
- image.data = NULL;
- image.twotheta = NULL;
- image.hdr = NULL;
-
- get_diffraction(&image);
- record_image(&image);
-
- snprintf(filename, 1023, "results/sim-%i.h5", number);
- number++;
-
- /* Write the output file */
- hdf5_write(filename, image.data, image.width, image.height);
-
- /* Clean up */
- free(image.data);
- free(image.qvecs);
- free(image.hdr);
- free(image.sfacs);
- free(image.twotheta);
-
- /* Do it all again */
- goto again;
-}