Fixed an incommensurate problem
No duplicate reflections are created with propagation vectors containing .5
This commit is contained in:
36
reflist.c
36
reflist.c
@ -25,6 +25,8 @@ static char undef[] = "Undefined";
|
||||
#define IDXFMT " %8.4f"
|
||||
#define ANGFMT " %8.2f"
|
||||
|
||||
#define ABS(x) (x < 0 ? -(x) : (x))
|
||||
|
||||
int CountTblCmd(pSICSOBJ self, SConnection *pCon, pHdb commandNode,
|
||||
pHdb par[], int nPar); /* from hdbtable.c */
|
||||
|
||||
@ -369,6 +371,32 @@ static int ShowCmd(pSICSOBJ self, SConnection * pCon, pHdb commandNode,
|
||||
return 1;
|
||||
}
|
||||
/*-----------------------------------------------------------------------*/
|
||||
const char *FindHKL(pSICSOBJ self, double h, double k, double l)
|
||||
{
|
||||
pHdb node, idx;
|
||||
|
||||
node = GetHipadabaNode(self->objectNode, "data");
|
||||
node = node->child;
|
||||
while(node != NULL){
|
||||
idx = node->child;
|
||||
if(ABS(idx->value.v.doubleValue-h) > .1){
|
||||
node = node->next;
|
||||
continue;
|
||||
}
|
||||
idx = idx->next;
|
||||
if(ABS(idx->value.v.doubleValue-k) > .1){
|
||||
node = node->next;
|
||||
continue;
|
||||
}
|
||||
idx = idx->next;
|
||||
if(ABS(idx->value.v.doubleValue-l) < .1){
|
||||
return node->name;
|
||||
}
|
||||
node = node->next;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
/*-----------------------------------------------------------------------*/
|
||||
static int NamesCmd(pSICSOBJ self, SConnection * pCon, pHdb commandNode,
|
||||
pHdb par[], int nPar)
|
||||
{
|
||||
@ -687,10 +715,10 @@ int GetRefIndexID(pSICSOBJ refl, char *id, double hkl[])
|
||||
snprintf(path, 132, "data/%s", id);
|
||||
node = GetHipadabaNode(refl->objectNode, path);
|
||||
if (node != NULL) {
|
||||
child = node->child;
|
||||
for(i = 0; i < 3; i++, child = child->next){
|
||||
hkl[i] = child->value.v.doubleValue;
|
||||
}
|
||||
child = node->child;
|
||||
for(i = 0; i < 3; i++, child = child->next){
|
||||
hkl[i] = child->value.v.doubleValue;
|
||||
}
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user