From e3973796bacc608e97968060ef5fc67c51ff3419 Mon Sep 17 00:00:00 2001
From: Axel Kohlmeyer <akohlmey@gmail.com>
Date: Thu, 27 Jul 2017 15:51:45 -0400
Subject: [PATCH] fix bug in power operator in LAMMPS variable expressions

---
 src/variable.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/variable.cpp b/src/variable.cpp
index 6e16597c63..a8f195dbc8 100644
--- a/src/variable.cpp
+++ b/src/variable.cpp
@@ -2148,8 +2148,10 @@ double Variable::evaluate(char *str, Tree **tree)
             argstack[nargstack++] = fmod(value1,value2);
           } else if (opprevious == CARAT) {
             if (value2 == 0.0)
-              error->all(FLERR,"Power by 0 in variable formula");
-            argstack[nargstack++] = pow(value1,value2);
+              argstack[nargstack++] = 1.0;
+            else if ((value1 == 0.0) && (value2 < 0.0))
+              error->all(FLERR,"Invalid power expression in variable formula");
+            else argstack[nargstack++] = pow(value1,value2);
           } else if (opprevious == UNARY) {
             argstack[nargstack++] = -value2;
           } else if (opprevious == NOT) {
-- 
GitLab