From c7c734781cc3a75d98b6dcb3c9c383e67b6cc032 Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Thu, 6 Mar 2025 12:15:04 -0700 Subject: [PATCH] add local changes --- flowermd/base/simulation.py | 23 ++++++++++++----------- flowermd/library/forcefields.py | 13 ++++++++++++- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/flowermd/base/simulation.py b/flowermd/base/simulation.py index e05d99c3..d02eba14 100644 --- a/flowermd/base/simulation.py +++ b/flowermd/base/simulation.py @@ -13,7 +13,7 @@ import numpy as np import unyt as u -from flowermd.internal import validate_ref_value +from flowermd.internal import check_return_iterable, validate_ref_value from flowermd.utils.actions import StdOutLogger, UpdateWalls from flowermd.utils.base_types import HOOMDThermostats @@ -52,7 +52,7 @@ class Simulation(hoomd.simulation.Simulation): thermostat : flowermd.utils.HOOMDThermostats, default HOOMDThermostats.MTTK The thermostat to use for the simulation. - constraint : hoomd.md.constrain object + constraint : list of hoomd.md.constrain objects Sets constraints for the simulation. See flowermd.utils.constraints for built-in helpers or see https://hoomd-blue.readthedocs.io/en/stable/hoomd/md/module-constrain.html @@ -108,17 +108,18 @@ def __init__( self._dt = dt self._reference_values = dict() self._reference_values = reference_values - self.constraint = constraint + self.constraint = check_return_iterable(constraint) self._rigid_constraint = None self._distance_constraint = None - if constraint and isinstance(constraint, hoomd.md.constrain.Rigid): - self._rigid_constraint = constraint - elif constraint and isinstance(constraint, hoomd.md.constrain.Distance): - self._distance_constraint = constraint - elif constraint: - raise ValueError( - "`constaint` must be an instance of hoomd.md.constrain." - ) + for obj in self.constraint: + if isinstance(obj, hoomd.md.constrain.Rigid): + self._rigid_constraint = obj + elif isinstance(obj, hoomd.md.constrain.Distance): + self._distance_constraint = obj + else: + raise ValueError( + "`constaint` must be an instance of hoomd.md.constrain." + ) self._integrate_group = self._create_integrate_group( rigid=True if self._rigid_constraint else False ) diff --git a/flowermd/library/forcefields.py b/flowermd/library/forcefields.py index 2f28ee22..9a138710 100644 --- a/flowermd/library/forcefields.py +++ b/flowermd/library/forcefields.py @@ -618,6 +618,7 @@ def _create_forcefield(self): k=self.angle_k, t0=self.angle_theta0 ) angle.params["_H-_C-_H"] = dict(k=0, t0=0) + # angle.params["_H-_C-_T"] = dict(k=0, t0=0) forces.append(angle) # Gay-Berne Pairs nlist = hoomd.md.nlist.Cell(buffer=0.40) @@ -626,7 +627,17 @@ def _create_forcefield(self): epsilon=self.epsilon, lperp=self.lperp, lpar=self.lpar ) # Add zero pairs - for pair in [("_H", "_H"), ("_C", "_H")]: + for pair in [ + ("_H", "_H"), + ("_T", "_T"), + ("R", "R"), + ("_C", "_H"), + ("_C", "_T"), + ("_C", "R"), + ("_T", "_H"), + ("_T", "R"), + ("_H", "R"), + ]: gb.params[pair] = dict(epsilon=0.0, lperp=0.0, lpar=0.0) gb.params[pair].r_cut = 0.0 forces.append(gb)