diff options
author | Thomas White <taw@physics.org> | 2012-09-06 14:40:26 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2012-09-06 14:40:47 +0200 |
commit | dd96fc24b2012d588a7954190b7c8325c412e9c3 (patch) | |
tree | 8abb34e7e200a29299588bce8b6b2bd62c1bd90a | |
parent | ace568f10503f9157ab483bfce8577c22275e166 (diff) |
pattern_sim: Add 32 and m-3 to GPU simulation
-rw-r--r-- | data/diffraction.cl | 43 | ||||
-rw-r--r-- | src/diffraction-gpu.c | 4 |
2 files changed, 47 insertions, 0 deletions
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." |