diff options
author | Thomas White <taw@physics.org> | 2014-03-06 14:45:44 +0100 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2014-03-06 14:45:44 +0100 |
commit | 8591e4c373f9b9921569b2d8c8e7b57bb555d563 (patch) | |
tree | 23043ec2438cf29d4778ece054b38c6428309d46 | |
parent | 011efea3ee5205ec88e4a1eeee3a76b9c1cad65d (diff) |
Ignore "twin-proof" reflections
-rw-r--r-- | src/ambigator.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/ambigator.c b/src/ambigator.c index 6c4e0ff2..5be72053 100644 --- a/src/ambigator.c +++ b/src/ambigator.c @@ -117,6 +117,22 @@ static struct flist *asymm_and_merge(RefList *in, const SymOpList *sym, get_asymm(sym, h, k, l, &ha, &ka, &la); + if ( amb != NULL ) { + + signed int hr, kr, lr; + signed int hra, kra, lra; + + get_equiv(amb, NULL, 1, ha, ka, la, &hr, &kr, &lr); + get_asymm(sym, hr, kr, lr, &hra, &kra, &lra); + + /* Skip twin-proof reflections */ + if ( (ha==hra) && (ka==kra) && (la==lra) ) { + //STATUS("%i %i %i is twin proof\n", h, k, l); + continue; + } + + } + cr = find_refl(asym, ha, ka, la); if ( cr == NULL ) { cr = add_refl(asym, ha, ka, la); @@ -179,6 +195,7 @@ static struct flist *asymm_and_merge(RefList *in, const SymOpList *sym, get_indices(refl, &h, &k, &l); get_equiv(amb, NULL, 1, h, k, l, &hr, &kr, &lr); get_asymm(sym, hr, kr, lr, &hra, &kra, &lra); + cr = add_refl(reidx, hra, kra, lra); copy_data(cr, refl); } |