From ae235b1ef5a59da3bb5f4e2a83f40ab8072a0598 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Tue, 28 Jun 2022 16:19:06 -0600 Subject: [PATCH] Boolean expression corner case --- src/variable.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/variable.cpp b/src/variable.cpp index 7392379017..bcb42f0599 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -4775,7 +4775,7 @@ double Variable::evaluate_boolean(char *str) else argstack[nargstack].value = 0.0; } else if (opprevious == EQ) { if (flag1 != flag2) - error->all(FLERR,"Invalid Boolean syntax in if command"); + error->all(FLERR,"If command boolean comparing string to number"); if (flag2 == 0) { if (value1 == value2) argstack[nargstack].value = 1.0; else argstack[nargstack].value = 0.0; @@ -4845,6 +4845,10 @@ double Variable::evaluate_boolean(char *str) if (nopstack) error->all(FLERR,"Invalid Boolean syntax in if command"); if (nargstack != 1) error->all(FLERR,"Invalid Boolean syntax in if command"); + + // if flag == 1, Boolean expression was a single string with no operator + + if (argstack[0].flag == 1) return 0.0; return argstack[0].value; }