changes to imbalance weight factors
This commit is contained in:
@ -4813,72 +4813,6 @@ double Variable::evaluate_boolean(char *str)
|
||||
return argstack[0].value;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
unsigned int Variable::data_mask(int ivar)
|
||||
{
|
||||
if (eval_in_progress[ivar]) return EMPTY_MASK;
|
||||
eval_in_progress[ivar] = 1;
|
||||
unsigned int datamask = data_mask(data[ivar][0]);
|
||||
eval_in_progress[ivar] = 0;
|
||||
return datamask;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
unsigned int Variable::data_mask(char *str)
|
||||
{
|
||||
unsigned int datamask = EMPTY_MASK;
|
||||
|
||||
for (unsigned int i = 0; i < strlen(str)-2; i++) {
|
||||
int istart = i;
|
||||
while (isalnum(str[i]) || str[i] == '_') i++;
|
||||
int istop = i-1;
|
||||
|
||||
int n = istop - istart + 1;
|
||||
char *word = new char[n+1];
|
||||
strncpy(word,&str[istart],n);
|
||||
word[n] = '\0';
|
||||
|
||||
// ----------------
|
||||
// compute
|
||||
// ----------------
|
||||
|
||||
if ((strncmp(word,"c_",2) == 0) && (i>0) && (!isalnum(str[i-1]))) {
|
||||
if (domain->box_exist == 0)
|
||||
error->all(FLERR,
|
||||
"Variable evaluation before simulation box is defined");
|
||||
|
||||
int icompute = modify->find_compute(word+2);
|
||||
if (icompute < 0)
|
||||
error->all(FLERR,"Invalid compute ID in variable formula");
|
||||
|
||||
datamask &= modify->compute[icompute]->data_mask();
|
||||
}
|
||||
|
||||
if ((strncmp(word,"f_",2) == 0) && (i>0) && (!isalnum(str[i-1]))) {
|
||||
if (domain->box_exist == 0)
|
||||
error->all(FLERR,
|
||||
"Variable evaluation before simulation box is defined");
|
||||
|
||||
int ifix = modify->find_fix(word+2);
|
||||
if (ifix < 0) error->all(FLERR,"Invalid fix ID in variable formula");
|
||||
|
||||
datamask &= modify->fix[ifix]->data_mask();
|
||||
}
|
||||
|
||||
if ((strncmp(word,"v_",2) == 0) && (i>0) && (!isalnum(str[i-1]))) {
|
||||
int ivar = find(word+2);
|
||||
if (ivar < 0) error->all(FLERR,"Invalid variable name in variable formula");
|
||||
datamask &= data_mask(ivar);
|
||||
}
|
||||
|
||||
delete [] word;
|
||||
}
|
||||
|
||||
return datamask;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
class to read variable values from a file
|
||||
for flag = SCALARFILE, reads one value per line
|
||||
|
||||
Reference in New Issue
Block a user