From d9982145681e16b896d275e297fe6fc0bb406692 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 22 Sep 2017 13:50:30 +0200 Subject: asdf uses prior information for its volume constraint, so add "cell" to the method --- libcrystfel/src/asdf.c | 17 ++++++++++++++--- libcrystfel/src/index.h | 3 ++- 2 files changed, 16 insertions(+), 4 deletions(-) (limited to 'libcrystfel') diff --git a/libcrystfel/src/asdf.c b/libcrystfel/src/asdf.c index 6fee6952..22fe3320 100644 --- a/libcrystfel/src/asdf.c +++ b/libcrystfel/src/asdf.c @@ -1073,8 +1073,8 @@ int run_asdf(struct image *image, void *ipriv) struct asdf_private *dp = (struct asdf_private *)ipriv; - if ( dp->indm & INDEXING_CHECK_CELL_AXES || - dp->indm & INDEXING_CHECK_CELL_COMBINATIONS) { + if ( dp->indm & INDEXING_USE_CELL_PARAMETERS ) { + double a, b, c, gamma, beta, alpha; cell_get_parameters(dp->template, &a, &b, &c, &alpha, &beta, &gamma); @@ -1171,7 +1171,18 @@ void *asdf_prepare(IndexingMethod *indm, UnitCell *cell, struct asdf_private *dp; /* Flags that asdf knows about */ - *indm &= INDEXING_METHOD_MASK; + *indm &= INDEXING_METHOD_MASK + | INDEXING_USE_CELL_PARAMETERS | INDEXING_USE_LATTICE_TYPE; + + if ( ((*indm & INDEXING_USE_LATTICE_TYPE) + && !(*indm & INDEXING_USE_CELL_PARAMETERS)) + || ((*indm & INDEXING_USE_CELL_PARAMETERS) + && !(*indm & INDEXING_USE_LATTICE_TYPE)) ) + { + ERROR("Invalid asdf options: " + "try asdf-nolatt-nocell or asdf-latt-cell.\n"); + return NULL; + } dp = malloc(sizeof(struct asdf_private)); if ( dp == NULL ) return NULL; diff --git a/libcrystfel/src/index.h b/libcrystfel/src/index.h index 2aad377b..516a9368 100644 --- a/libcrystfel/src/index.h +++ b/libcrystfel/src/index.h @@ -41,7 +41,8 @@ #define INDEXING_DEFAULTS_DIRAX (INDEXING_DIRAX) -#define INDEXING_DEFAULTS_ASDF (INDEXING_ASDF) +#define INDEXING_DEFAULTS_ASDF (INDEXING_ASDF | INDEXING_USE_LATTICE_TYPE \ + | INDEXING_USE_CELL_PARAMETERS) #define INDEXING_DEFAULTS_MOSFLM (INDEXING_MOSFLM | INDEXING_USE_LATTICE_TYPE \ | INDEXING_USE_CELL_PARAMETERS) -- cgit v1.2.3