add a lammps_eval() function to the C library interface and all derived wrappers
This commit is contained in:
@ -339,6 +339,9 @@ class lammps(object):
|
||||
self.lib.lammps_extract_variable_datatype.argtypes = [c_void_p, c_char_p]
|
||||
self.lib.lammps_extract_variable_datatype.restype = c_int
|
||||
|
||||
self.lib.lammps_eval.argtypes = [c_void_p, c_char_p]
|
||||
self.lib.lammps_eval.restype = c_double
|
||||
|
||||
self.lib.lammps_fix_external_get_force.argtypes = [c_void_p, c_char_p]
|
||||
self.lib.lammps_fix_external_get_force.restype = POINTER(POINTER(c_double))
|
||||
|
||||
@ -1533,6 +1536,30 @@ class lammps(object):
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
def eval(self, expr):
|
||||
""" Evaluate a LAMMPS immediate variable expression
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
This function is a wrapper around the function :cpp:func:`lammps_eval`
|
||||
of the C library interface. It evaluates and expression like in
|
||||
immediate variables and returns the value.
|
||||
|
||||
:param expr: immediate variable expression
|
||||
:type name: string
|
||||
:return: the result of the evaluation
|
||||
:rtype: c_double
|
||||
"""
|
||||
|
||||
if expr: newexpr = expr.encode()
|
||||
else: return None
|
||||
|
||||
with ExceptionCheck(self):
|
||||
return self.lib.lammps_eval(self.lmp, newexpr)
|
||||
return None
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
# return vector of atom properties gathered across procs
|
||||
# 3 variants to match src/library.cpp
|
||||
# name = atom property recognized by LAMMPS in atom->extract()
|
||||
|
||||
Reference in New Issue
Block a user