aboutsummaryrefslogtreecommitdiff
path: root/src/partialator.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/partialator.c')
-rw-r--r--src/partialator.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/partialator.c b/src/partialator.c
index de59efde..6d362a01 100644
--- a/src/partialator.c
+++ b/src/partialator.c
@@ -896,6 +896,7 @@ struct log_qargs
int iter;
int next;
Crystal **crystals;
+ struct image **images;
int n_crystals;
RefList *full;
int scaleflags;
@@ -908,6 +909,7 @@ struct log_qargs
struct log_args
{
Crystal *cr;
+ struct image *image;
RefList *full;
int scaleflags;
PartialityModel pmodel;
@@ -928,6 +930,7 @@ static void *get_log_task(void *vp)
if ( task == NULL ) return NULL;
task->cr = qargs->crystals[qargs->next];
+ task->image = qargs->images[qargs->next];
task->full = qargs->full;
task->iter = qargs->iter;
task->cnum = qargs->next;
@@ -943,11 +946,11 @@ static void *get_log_task(void *vp)
static void write_logs(void *vp, int cookie)
{
struct log_args *args = vp;
- write_specgraph(args->cr, args->full, args->iter, args->cnum,
+ write_specgraph(args->cr, args->image, args->full, args->iter, args->cnum,
args->log_folder);
- write_gridscan(args->cr, args->full, args->iter, args->cnum,
+ write_gridscan(args->cr, args->image, args->full, args->iter, args->cnum,
args->scaleflags, args->pmodel, args->log_folder);
- write_test_logs(args->cr, args->full, args->iter, args->cnum,
+ write_test_logs(args->cr, args->image, args->full, args->iter, args->cnum,
args->log_folder);
}
@@ -962,7 +965,8 @@ static void done_log(void *vqargs, void *vp)
}
-static void write_logs_parallel(Crystal **crystals, int n_crystals,
+static void write_logs_parallel(Crystal **crystals, struct image **images,
+ int n_crystals,
RefList *full, int iter, int n_threads,
int scaleflags, PartialityModel pmodel,
const char *log_folder)
@@ -973,6 +977,7 @@ static void write_logs_parallel(Crystal **crystals, int n_crystals,
qargs.next = 0;
qargs.full = full;
qargs.crystals = crystals;
+ qargs.images = images;
qargs.n_done = 0;
qargs.n_crystals = n_crystals;
qargs.scaleflags = scaleflags;
@@ -1727,7 +1732,7 @@ int main(int argc, char *argv[])
if ( do_write_logs ) {
write_pgraph(full, crystals, n_crystals, 0, "", log_folder);
- write_logs_parallel(crystals, n_crystals, full, 0, nthreads,
+ write_logs_parallel(crystals, images, n_crystals, full, 0, nthreads,
scaleflags, pmodel, log_folder);
}
@@ -1737,7 +1742,7 @@ int main(int argc, char *argv[])
STATUS("Scaling and refinement cycle %i of %i\n", itn+1, n_iter);
if ( !no_pr ) {
- refine_all(crystals, n_crystals, full, nthreads, pmodel,
+ refine_all(crystals, images, n_crystals, full, nthreads, pmodel,
itn+1, no_logs, sym, amb, scaleflags,
log_folder);
}
@@ -1816,7 +1821,7 @@ int main(int argc, char *argv[])
show_all_residuals(crystals, n_crystals, full, no_free);
if ( do_write_logs ) {
write_pgraph(full, crystals, n_crystals, -1, "", log_folder);
- write_logs_parallel(crystals, n_crystals, full, -1, nthreads,
+ write_logs_parallel(crystals, images, n_crystals, full, -1, nthreads,
scaleflags, pmodel, log_folder);
}