Commit f15dc3d8 authored by Thomas White's avatar Thomas White
Browse files

Make it obvious, when using GPU simulation, if a required reflection is unavailable

parent bdd2a7b4
......@@ -342,7 +342,7 @@ void get_diffraction_gpu(struct gpu_context *gctx, struct image *image,
/* Setup the OpenCL stuff, create buffers, load the structure factor table */
struct gpu_context *setup_gpu(int no_sfac, struct image *image,
double *intensities)
double *intensities, unsigned int *counts)
{
struct gpu_context *gctx;
cl_uint nplat;
......@@ -403,7 +403,11 @@ struct gpu_context *setup_gpu(int no_sfac, struct image *image,
intensities_ptr = malloc(intensities_size);
if ( intensities != NULL ) {
for ( i=0; i<IDIM*IDIM*IDIM; i++ ) {
intensities_ptr[i] = intensities[i];
if ( counts[i] == 1 ) {
intensities_ptr[i] = intensities[i];
} else {
intensities_ptr[i] = 1.0e20;
}
}
} else {
for ( i=0; i<IDIM*IDIM*IDIM; i++ ) {
......
......@@ -26,7 +26,7 @@ struct gpu_context;
extern void get_diffraction_gpu(struct gpu_context *gctx, struct image *image,
int na, int nb, int nc, UnitCell *ucell);
extern struct gpu_context *setup_gpu(int no_sfac, struct image *image,
double *intensities);
double *intensities, unsigned int *counts);
extern void cleanup_gpu(struct gpu_context *gctx);
#else
......@@ -39,7 +39,7 @@ static void get_diffraction_gpu(struct gpu_context *gctx, struct image *image,
}
static struct gpu_context *setup_gpu(int no_sfac, struct image *image,
double *intensities)
double *intensities, unsigned int *counts)
{
return NULL;
}
......
......@@ -151,7 +151,7 @@ static void simulate_and_write(struct image *simage, struct gpu_context **gctx,
{
/* Set up GPU if necessary */
if ( (gctx != NULL) && (*gctx == NULL) ) {
*gctx = setup_gpu(0, simage, intensities);
*gctx = setup_gpu(0, simage, intensities, counts);
}
if ( (gctx != NULL) && (*gctx != NULL) ) {
......
......@@ -292,7 +292,7 @@ int main(int argc, char *argv[])
if ( config_gpu ) {
if ( gctx == NULL ) {
gctx = setup_gpu(config_nosfac, &image,
intensities);
intensities, counts);
}
get_diffraction_gpu(gctx, &image, na, nb, nc, cell);
} else {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment