Use consistent naming in PyLAMMPS classes

This commit is contained in:
Richard Berger
2020-09-15 12:22:36 -04:00
parent 2c30de65d2
commit 9490370eb0

View File

@ -1723,8 +1723,8 @@ class OutputCapture(object):
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------
class Variable(object): class Variable(object):
def __init__(self, lammps_wrapper_instance, name, style, definition): def __init__(self, pylammps_instance, name, style, definition):
self.wrapper = lammps_wrapper_instance self._pylmp = pylammps_instance
self.name = name self.name = name
self.style = style self.style = style
self.definition = definition.split() self.definition = definition.split()
@ -1732,9 +1732,9 @@ class Variable(object):
@property @property
def value(self): def value(self):
if self.style == 'atom': if self.style == 'atom':
return list(self.wrapper.lmp.extract_variable(self.name, "all", 1)) return list(self._pylmp.lmp.extract_variable(self.name, "all", 1))
else: else:
value = self.wrapper.lmp_print('"${%s}"' % self.name).strip() value = self._pylmp.lmp_print('"${%s}"' % self.name).strip()
try: try:
return float(value) return float(value)
except ValueError: except ValueError:
@ -1750,10 +1750,10 @@ class AtomList(object):
:ivar natoms: total number of atoms :ivar natoms: total number of atoms
:ivar dimensions: number of dimensions in system :ivar dimensions: number of dimensions in system
""" """
def __init__(self, lammps_wrapper_instance): def __init__(self, pylammps_instance):
self._lmp = lammps_wrapper_instance self._pylmp = pylammps_instance
self.natoms = self.lmp.system.natoms self.natoms = self._lmp.system.natoms
self.dimensions = self.lmp.system.dimensions self.dimensions = self._lmp.system.dimensions
self._loaded = {} self._loaded = {}
def __getitem__(self, index): def __getitem__(self, index):
@ -1766,9 +1766,9 @@ class AtomList(object):
""" """
if index not in self._loaded: if index not in self._loaded:
if self.dimensions == 2: if self.dimensions == 2:
atom = Atom2D(self.lmp, index + 1) atom = Atom2D(self._pylmp, index + 1)
else: else:
atom = Atom(self.lmp, index + 1) atom = Atom(self._pylmp, index + 1)
self._loaded[index] = atom self._loaded[index] = atom
return self._loaded[index] return self._loaded[index]
@ -1779,90 +1779,95 @@ class AtomList(object):
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------
class Atom(object): class Atom(object):
def __init__(self, lammps_wrapper_instance, index): """
self.lmp = lammps_wrapper_instance A wrapper class then represents a single atom inside of LAMMPS
It provides access to properties of the atom and allows you to change some of them.
"""
def __init__(self, pylammps_instance, index):
self._pylmp = pylammps_instance
self.index = index self.index = index
@property @property
def id(self): def id(self):
return int(self.lmp.eval("id[%d]" % self.index)) return int(self._pylmp.eval("id[%d]" % self.index))
@property @property
def type(self): def type(self):
return int(self.lmp.eval("type[%d]" % self.index)) return int(self._pylmp.eval("type[%d]" % self.index))
@property @property
def mol(self): def mol(self):
return self.lmp.eval("mol[%d]" % self.index) return self._pylmp.eval("mol[%d]" % self.index)
@property @property
def mass(self): def mass(self):
return self.lmp.eval("mass[%d]" % self.index) return self._pylmp.eval("mass[%d]" % self.index)
@property @property
def position(self): def position(self):
return (self.lmp.eval("x[%d]" % self.index), return (self._pylmp.eval("x[%d]" % self.index),
self.lmp.eval("y[%d]" % self.index), self._pylmp.eval("y[%d]" % self.index),
self.lmp.eval("z[%d]" % self.index)) self._pylmp.eval("z[%d]" % self.index))
@position.setter @position.setter
def position(self, value): def position(self, value):
self.lmp.set("atom", self.index, "x", value[0]) self._pylmp.set("atom", self.index, "x", value[0])
self.lmp.set("atom", self.index, "y", value[1]) self._pylmp.set("atom", self.index, "y", value[1])
self.lmp.set("atom", self.index, "z", value[2]) self._pylmp.set("atom", self.index, "z", value[2])
@property @property
def velocity(self): def velocity(self):
return (self.lmp.eval("vx[%d]" % self.index), return (self._pylmp.eval("vx[%d]" % self.index),
self.lmp.eval("vy[%d]" % self.index), self._pylmp.eval("vy[%d]" % self.index),
self.lmp.eval("vz[%d]" % self.index)) self._pylmp.eval("vz[%d]" % self.index))
@velocity.setter @velocity.setter
def velocity(self, value): def velocity(self, value):
self.lmp.set("atom", self.index, "vx", value[0]) self._pylmp.set("atom", self.index, "vx", value[0])
self.lmp.set("atom", self.index, "vy", value[1]) self._pylmp.set("atom", self.index, "vy", value[1])
self.lmp.set("atom", self.index, "vz", value[2]) self._pylmp.set("atom", self.index, "vz", value[2])
@property @property
def force(self): def force(self):
return (self.lmp.eval("fx[%d]" % self.index), return (self._pylmp.eval("fx[%d]" % self.index),
self.lmp.eval("fy[%d]" % self.index), self._pylmp.eval("fy[%d]" % self.index),
self.lmp.eval("fz[%d]" % self.index)) self._pylmp.eval("fz[%d]" % self.index))
@property @property
def charge(self): def charge(self):
return self.lmp.eval("q[%d]" % self.index) return self._pylmp.eval("q[%d]" % self.index)
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------
class Atom2D(Atom): class Atom2D(Atom):
def __init__(self, lammps_wrapper_instance, index): def __init__(self, pylammps_instance, index):
super(Atom2D, self).__init__(lammps_wrapper_instance, index) super(Atom2D, self).__init__(pylammps_instance, index)
@property @property
def position(self): def position(self):
return (self.lmp.eval("x[%d]" % self.index), return (self._pylmp.eval("x[%d]" % self.index),
self.lmp.eval("y[%d]" % self.index)) self._pylmp.eval("y[%d]" % self.index))
@position.setter @position.setter
def position(self, value): def position(self, value):
self.lmp.set("atom", self.index, "x", value[0]) self._pylmp.set("atom", self.index, "x", value[0])
self.lmp.set("atom", self.index, "y", value[1]) self._pylmp.set("atom", self.index, "y", value[1])
@property @property
def velocity(self): def velocity(self):
return (self.lmp.eval("vx[%d]" % self.index), return (self._pylmp.eval("vx[%d]" % self.index),
self.lmp.eval("vy[%d]" % self.index)) self._pylmp.eval("vy[%d]" % self.index))
@velocity.setter @velocity.setter
def velocity(self, value): def velocity(self, value):
self.lmp.set("atom", self.index, "vx", value[0]) self._pylmp.set("atom", self.index, "vx", value[0])
self.lmp.set("atom", self.index, "vy", value[1]) self._pylmp.set("atom", self.index, "vy", value[1])
@property @property
def force(self): def force(self):
return (self.lmp.eval("fx[%d]" % self.index), return (self._pylmp.eval("fx[%d]" % self.index),
self.lmp.eval("fy[%d]" % self.index)) self._pylmp.eval("fy[%d]" % self.index))
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------