From 051077e3bcb44822713ec341a25e853fbbc1c811 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Tue, 26 Mar 2019 15:13:45 +0100 Subject: cell_tool: Add --csl --- libcrystfel/src/cell-utils.c | 12 ++++++------ libcrystfel/src/cell-utils.h | 2 +- src/cell_tool.c | 11 ++++++++--- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/libcrystfel/src/cell-utils.c b/libcrystfel/src/cell-utils.c index 2a3bcfa2..847ddb55 100644 --- a/libcrystfel/src/cell-utils.c +++ b/libcrystfel/src/cell-utils.c @@ -1875,7 +1875,7 @@ static int cmpcand(const void *av, const void *bv) static Rational *find_candidates(double len, double *a, double *b, double *c, - double ltl, int *pncand) + double ltl, int csl, int *pncand) { Rational *r; struct cand *cands; @@ -1890,7 +1890,7 @@ static Rational *find_candidates(double len, double *a, double *b, double *c, cands = malloc(max_cand * sizeof(struct cand)); if ( cands == NULL ) return NULL; - rat = rtnl_list(-5, 5, 1, 4, &nrat); + rat = rtnl_list(-5, 5, 1, csl ? 4 : 1, &nrat); if ( rat == NULL ) return NULL; for ( ia=0; ia Set the tolerances for cell comparison.\n" " Default: 5,1.5 (axis percentage, angle deg).\n" " --highres=n Resolution limit (Angstroms) for --rings\n" +" --csl Allow --compare to find coincidence site lattice relationships.\n" ); } static int comparecells(UnitCell *cell, const char *comparecell, - double ltl, double atl) + double ltl, double atl, int csl) { UnitCell *cell2; RationalMatrix *m; @@ -90,7 +91,7 @@ static int comparecells(UnitCell *cell, const char *comparecell, cell_print(cell2); STATUS("------------------> The comparison results:\n"); - if ( !compare_reindexed_cell_parameters(cell, cell2, ltl, atl, &m) ) { + if ( !compare_reindexed_cell_parameters(cell, cell2, ltl, atl, csl, &m) ) { STATUS("No relationship found between lattices.\n"); return 0; } else { @@ -425,6 +426,7 @@ int main(int argc, char *argv[]) float highres; double rmax = 1/(2.0e-10); char *trans_str = NULL; + int csl = 0; /* Long options */ const struct option longopts[] = { @@ -440,8 +442,10 @@ int main(int argc, char *argv[]) {"rings", 0, &mode, CT_RINGS}, {"compare-cell", 1, NULL, 3}, {"cell-choices", 0, &mode, CT_CHOICES}, + {"transform", 1, NULL, 4}, {"highres", 1, NULL, 5}, + {"csl", 0, &csl, 1}, {0, 0, NULL, 0} }; @@ -568,7 +572,8 @@ int main(int argc, char *argv[]) if ( mode == CT_FINDAMBI ) return find_ambi(cell, sym, ltl, atl); if ( mode == CT_UNCENTER ) return uncenter(cell, out_file); if ( mode == CT_RINGS ) return all_rings(cell, sym, rmax); - if ( mode == CT_COMPARE ) return comparecells(cell, comparecell, ltl, atl); + if ( mode == CT_COMPARE ) return comparecells(cell, comparecell, + ltl, atl, csl); if ( mode == CT_TRANSFORM ) return transform(cell, trans_str, out_file); if ( mode == CT_CHOICES ) return cell_choices(cell); -- cgit v1.2.3