Merge branch 'lammps:master' into type-labels

This commit is contained in:
Jacob Gissinger
2021-09-30 09:44:18 -04:00
committed by GitHub
1396 changed files with 36153 additions and 25022 deletions

View File

@ -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++;