From f4078ed7f76332ba7a0aa25ab489d17b9e4de7be Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 26 May 2016 11:50:45 -0400 Subject: [PATCH] Added easy way to access variable value --- python/lammps.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/python/lammps.py b/python/lammps.py index 7473e1de52..ea40e1d4e9 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -297,6 +297,18 @@ class OutputCapture(object): return self.read_pipe(self.stdout_pipe_read) +class LammpsVariable(object): + def __init__(self, lammps_wrapper_instance, name, style, definition): + self.lmp = lammps_wrapper_instance + self.name = name + self.style = style + self.definition = definition + + @property + def value(self): + return float(self.lmp.print('"${%s}"' % self.name)) + + class LammpsWrapper(object): def __init__(self, lmp): self.lmp = lmp @@ -334,7 +346,10 @@ class LammpsWrapper(object): @property def variables(self): output = self.info("variables") - return self._parse_element_list(output) + vars = {} + for v in self._parse_element_list(output): + vars[v['name']] = LammpsVariable(self, v['name'], v['style'], v['def']) + return vars def _split_values(self, line): return [x.strip() for x in line.split(',')]