I'm using custom force in Hoomd V-3
class MyCustomForce(hoomd.md.force.Custom):
def __init__(self):
super().__init__(aniso=True)
def set_forces(self,timestep):
with self.cpu_local_force_arrays as arrays:
arrays.force[:] += -5
custom_force = MyCustomForce()
If I run this:
custom_force.set_forces(sim.timestep)
I get the error:
How can I apply the forces?
Thanks for your help~
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Input In [21], in <cell line: 9>()
7 arrays.force[:] += -5
8 custom_force = MyCustomForce()
----> 9 custom_force.set_forces(sim.timestep)
Input In [21], in MyCustomForce.set_forces(self, timestep)
5 def set_forces(self,timestep):
----> 6 with self.cpu_local_force_arrays as arrays:
7 arrays.force[:] += -5
File ~/miniconda3/envs/HoomdLatest/lib/python3.10/site-packages/hoomd/md/force.py:177, in Force.cpu_local_force_arrays(self)
173 if self._in_context_manager:
174 raise RuntimeError("Cannot enter cpu_local_force_arrays context "
175 "manager inside another local_force_arrays "
176 "context manager")
--> 177 return hoomd.md.data.ForceLocalAccess(self)
File ~/miniconda3/envs/HoomdLatest/lib/python3.10/site-packages/hoomd/md/data/local_access.py:28, in _ForceLocalAccessBase.__init__(self, force_obj)
26 super().__init__()
27 self._force_obj = force_obj
---> 28 self._cpp_obj = self._cpp_cls(force_obj._cpp_obj)
TypeError: __init__(): incompatible constructor arguments. The following argument types are supported:
1. hoomd._hoomd.LocalForceComputeDataHost(arg0: hoomd._hoomd.ForceCompute)
Invoked with: None
----------