From dd96fc24b2012d588a7954190b7c8325c412e9c3 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 6 Sep 2012 14:40:26 +0200 Subject: pattern_sim: Add 32 and m-3 to GPU simulation --- data/diffraction.cl | 43 +++++++++++++++++++++++++++++++++++++++++++ src/diffraction-gpu.c | 4 ++++ 2 files changed, 47 insertions(+) diff --git a/data/diffraction.cl b/data/diffraction.cl index d128446e..75933927 100644 --- a/data/diffraction.cl +++ b/data/diffraction.cl @@ -205,6 +205,49 @@ float molecule_factor(global float *intensities, global float *flags, val += lookup_flagged_intensity(intensities, flags, i, k, l); #endif /* PG6MMM */ + #ifdef PG23 + val += lookup_flagged_intensity(intensities, flags, h, k, l); + val += lookup_flagged_intensity(intensities, flags, -h, -k, l); + val += lookup_flagged_intensity(intensities, flags, -h, k, -l); + val += lookup_flagged_intensity(intensities, flags, h, -k, -l); + val += lookup_flagged_intensity(intensities, flags, k, l, h); + val += lookup_flagged_intensity(intensities, flags, l, h, k); + val += lookup_flagged_intensity(intensities, flags, -k, -l, h); + val += lookup_flagged_intensity(intensities, flags, -l, -h, k); + val += lookup_flagged_intensity(intensities, flags, -k, l, -h); + val += lookup_flagged_intensity(intensities, flags, -l, h, -k); + val += lookup_flagged_intensity(intensities, flags, k, -l, -h); + val += lookup_flagged_intensity(intensities, flags, l, -h, -k); + #endif /* PG23 */ + + #ifdef PGM3 + val += lookup_flagged_intensity(intensities, flags, h, k, l); + val += lookup_flagged_intensity(intensities, flags, -h, -k, l); + val += lookup_flagged_intensity(intensities, flags, -h, k, -l); + val += lookup_flagged_intensity(intensities, flags, h, -k, -l); + val += lookup_flagged_intensity(intensities, flags, k, l, h); + val += lookup_flagged_intensity(intensities, flags, l, h, k); + val += lookup_flagged_intensity(intensities, flags, -k, -l, h); + val += lookup_flagged_intensity(intensities, flags, -l, -h, k); + val += lookup_flagged_intensity(intensities, flags, -k, l, -h); + val += lookup_flagged_intensity(intensities, flags, -l, h, -k); + val += lookup_flagged_intensity(intensities, flags, k, -l, -h); + val += lookup_flagged_intensity(intensities, flags, l, -h, -k); + + val += lookup_flagged_intensity(intensities, flags, -h, -k, -l); + val += lookup_flagged_intensity(intensities, flags, h, k, -l); + val += lookup_flagged_intensity(intensities, flags, h, -k, l); + val += lookup_flagged_intensity(intensities, flags, -h, k, l); + val += lookup_flagged_intensity(intensities, flags, -k, -l, -h); + val += lookup_flagged_intensity(intensities, flags, -l, -h, -k); + val += lookup_flagged_intensity(intensities, flags, k, l, -h); + val += lookup_flagged_intensity(intensities, flags, l, h, -k); + val += lookup_flagged_intensity(intensities, flags, k, -l, h); + val += lookup_flagged_intensity(intensities, flags, l, -h, k); + val += lookup_flagged_intensity(intensities, flags, -k, l, h); + val += lookup_flagged_intensity(intensities, flags, -l, h, k); + #endif /* PGM3 */ + return val; #endif /* FLAT_INTENSITIIES */ } diff --git a/src/diffraction-gpu.c b/src/diffraction-gpu.c index 15ff39cc..e90f2822 100644 --- a/src/diffraction-gpu.c +++ b/src/diffraction-gpu.c @@ -471,6 +471,10 @@ struct gpu_context *setup_gpu(int no_sfac, strncat(cflags, "-DPG6M ", 511-strlen(cflags)); } else if ( strcmp(sym, "mmm") == 0 ) { strncat(cflags, "-DPGMMM ", 511-strlen(cflags)); + } else if ( strcmp(sym, "23") == 0 ) { + strncat(cflags, "-DPG23 ", 511-strlen(cflags)); + } else if ( strcmp(sym, "m-3") == 0 ) { + strncat(cflags, "-DPGM3 ", 511-strlen(cflags)); } else { ERROR("Sorry! Point group '%s' is not currently" " supported on the GPU." -- cgit v1.2.3