Merge branch 'lammps:master' into type-labels
This commit is contained in:
@ -49,7 +49,6 @@ using namespace MathConst;
|
||||
#define MAXLEVEL 4
|
||||
#define MAXLINE 256
|
||||
#define CHUNK 1024
|
||||
#define VALUELENGTH 64 // also in python.cpp
|
||||
#define MAXFUNCARG 6
|
||||
|
||||
#define MYROUND(a) (( a-floor(a) ) >= .5) ? ceil(a) : floor(a)
|
||||
@ -1295,8 +1294,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = atof(number);
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->extra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = atof(number);
|
||||
|
||||
@ -1387,8 +1384,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value1;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value1;
|
||||
|
||||
@ -1416,8 +1411,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value1;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value1;
|
||||
|
||||
@ -1448,8 +1441,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value1;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value1;
|
||||
|
||||
@ -1480,9 +1471,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
newtree->array = compute->vector;
|
||||
newtree->nvector = compute->size_vector;
|
||||
newtree->nstride = 1;
|
||||
newtree->selfalloc = 0;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
// c_ID[i] = vector from global array, lowercase or uppercase
|
||||
@ -1512,9 +1500,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
newtree->array = &compute->array[0][index1-1];
|
||||
newtree->nvector = compute->size_array_rows;
|
||||
newtree->nstride = compute->size_array_cols;
|
||||
newtree->selfalloc = 0;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
// c_ID[i] = scalar from per-atom vector
|
||||
@ -1584,9 +1569,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
newtree->type = ATOMARRAY;
|
||||
newtree->array = compute->vector_atom;
|
||||
newtree->nstride = 1;
|
||||
newtree->selfalloc = 0;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
// c_ID[i] = vector from per-atom array
|
||||
@ -1616,12 +1598,7 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
newtree->type = ATOMARRAY;
|
||||
if (compute->array_atom)
|
||||
newtree->array = &compute->array_atom[0][index1-1];
|
||||
else
|
||||
newtree->array = nullptr;
|
||||
newtree->nstride = compute->size_peratom_cols;
|
||||
newtree->selfalloc = 0;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
} else if (nbracket == 1 && compute->local_flag) {
|
||||
@ -1684,8 +1661,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value1;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value1;
|
||||
|
||||
@ -1706,8 +1681,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value1;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value1;
|
||||
|
||||
@ -1731,8 +1704,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value1;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value1;
|
||||
|
||||
@ -1765,8 +1736,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
newtree->nvector = nvec;
|
||||
newtree->nstride = 1;
|
||||
newtree->selfalloc = 1;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
// f_ID[i] = vector from global array, lowercase or uppercase
|
||||
@ -1798,8 +1767,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
newtree->nvector = nvec;
|
||||
newtree->nstride = 1;
|
||||
newtree->selfalloc = 1;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
// f_ID[i] = scalar from per-atom vector
|
||||
@ -1854,9 +1821,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
newtree->type = ATOMARRAY;
|
||||
newtree->array = fix->vector_atom;
|
||||
newtree->nstride = 1;
|
||||
newtree->selfalloc = 0;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
// f_ID[i] = vector from per-atom array
|
||||
@ -1879,12 +1843,7 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
newtree->type = ATOMARRAY;
|
||||
if (fix->array_atom)
|
||||
newtree->array = &fix->array_atom[0][index1-1];
|
||||
else
|
||||
newtree->array = nullptr;
|
||||
newtree->nstride = fix->size_peratom_cols;
|
||||
newtree->selfalloc = 0;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
} else print_var_error(FLERR,"Mismatched fix in variable formula",ivar);
|
||||
@ -1927,8 +1886,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value1;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value1;
|
||||
|
||||
@ -1946,8 +1903,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = atof(var);
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = atof(var);
|
||||
|
||||
@ -1982,9 +1937,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
newtree->type = ATOMARRAY;
|
||||
newtree->array = reader[ivar]->fixstore->vstore;
|
||||
newtree->nstride = 1;
|
||||
newtree->selfalloc = 0;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
// v_name = vector from vector-style variable
|
||||
@ -2007,9 +1959,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
newtree->array = vec;
|
||||
newtree->nvector = nvec;
|
||||
newtree->nstride = 1;
|
||||
newtree->selfalloc = 0;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
// v_name[N] = scalar from atom-style variable
|
||||
@ -2048,8 +1997,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = vec[m-1];
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = vec[m-1];
|
||||
|
||||
@ -2122,8 +2069,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value1;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value1;
|
||||
|
||||
@ -2144,8 +2089,6 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value1;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value1;
|
||||
}
|
||||
@ -2224,12 +2167,9 @@ double Variable::evaluate(char *str, Tree **tree, int ivar)
|
||||
newtree->type = opprevious;
|
||||
if ((opprevious == UNARY) || (opprevious == NOT)) {
|
||||
newtree->first = treestack[--ntreestack];
|
||||
newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
} else {
|
||||
newtree->second = treestack[--ntreestack];
|
||||
newtree->first = treestack[--ntreestack];
|
||||
newtree->nextra = 0;
|
||||
}
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
@ -3406,8 +3346,6 @@ int Variable::math_function(char *word, char *contents, Tree **tree,
|
||||
|
||||
if (tree) {
|
||||
newtree = new Tree();
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
Tree *argtree = nullptr;
|
||||
evaluate(args[0],&argtree,ivar);
|
||||
newtree->first = argtree;
|
||||
@ -3839,7 +3777,7 @@ int Variable::group_function(char *word, char *contents, Tree **tree,
|
||||
|
||||
// match word to group function
|
||||
|
||||
double value;
|
||||
double value = 0.0;
|
||||
|
||||
if (strcmp(word,"count") == 0) {
|
||||
if (narg == 1) value = group->count(igroup);
|
||||
@ -4030,8 +3968,6 @@ int Variable::group_function(char *word, char *contents, Tree **tree,
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value;
|
||||
|
||||
@ -4321,8 +4257,6 @@ int Variable::special_function(char *word, char *contents, Tree **tree,
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value;
|
||||
|
||||
@ -4342,8 +4276,6 @@ int Variable::special_function(char *word, char *contents, Tree **tree,
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = GMASK;
|
||||
newtree->ivalue1 = group->bitmask[igroup];
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
} else if (strcmp(word,"rmask") == 0) {
|
||||
@ -4359,8 +4291,6 @@ int Variable::special_function(char *word, char *contents, Tree **tree,
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = RMASK;
|
||||
newtree->ivalue1 = iregion;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
} else if (strcmp(word,"grmask") == 0) {
|
||||
@ -4380,8 +4310,6 @@ int Variable::special_function(char *word, char *contents, Tree **tree,
|
||||
newtree->type = GRMASK;
|
||||
newtree->ivalue1 = group->bitmask[igroup];
|
||||
newtree->ivalue2 = iregion;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
// special function for file-style or atomfile-style variables
|
||||
@ -4410,8 +4338,6 @@ int Variable::special_function(char *word, char *contents, Tree **tree,
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value;
|
||||
|
||||
@ -4436,8 +4362,6 @@ int Variable::special_function(char *word, char *contents, Tree **tree,
|
||||
newtree->array = result;
|
||||
newtree->nstride = 1;
|
||||
newtree->selfalloc = 1;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
} else print_var_error(FLERR,"Invalid variable style in "
|
||||
@ -4457,8 +4381,6 @@ int Variable::special_function(char *word, char *contents, Tree **tree,
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value;
|
||||
|
||||
@ -4476,8 +4398,6 @@ int Variable::special_function(char *word, char *contents, Tree **tree,
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value;
|
||||
|
||||
@ -4495,8 +4415,6 @@ int Variable::special_function(char *word, char *contents, Tree **tree,
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value;
|
||||
|
||||
@ -4515,8 +4433,6 @@ int Variable::special_function(char *word, char *contents, Tree **tree,
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value;
|
||||
}
|
||||
@ -4663,8 +4579,6 @@ void Variable::peratom2global(int flag, char *word,
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = VALUE;
|
||||
newtree->value = value;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
} else argstack[nargstack++] = value;
|
||||
}
|
||||
@ -4712,9 +4626,6 @@ void Variable::atom_vector(char *word, Tree **tree,
|
||||
Tree *newtree = new Tree();
|
||||
newtree->type = ATOMARRAY;
|
||||
newtree->nstride = 3;
|
||||
newtree->selfalloc = 0;
|
||||
newtree->first = newtree->second = nullptr;
|
||||
newtree->nextra = 0;
|
||||
treestack[ntreestack++] = newtree;
|
||||
|
||||
if (strcmp(word,"id") == 0) {
|
||||
@ -4785,7 +4696,7 @@ int Variable::parse_args(char *str, char **args)
|
||||
while (ptr && narg < MAXFUNCARG) {
|
||||
ptrnext = find_next_comma(ptr);
|
||||
if (ptrnext) *ptrnext = '\0';
|
||||
args[narg] = utils::strdup(ptr);
|
||||
args[narg] = utils::strdup(utils::trim(ptr));
|
||||
narg++;
|
||||
ptr = ptrnext;
|
||||
if (ptr) ptr++;
|
||||
|
||||
Reference in New Issue
Block a user