"vscode:/vscode.git/clone" did not exist on "ec1c8ebea026ba6920df45eb9cf6741d5d30118a"
Commit c6ebf6e2 authored by Peter Eastman's avatar Peter Eastman
Browse files

Removed the word "harmonic" from lots of places it didn't belong, including class and method names

parent 58b094ce
...@@ -1419,11 +1419,11 @@ def countConstraint(data): ...@@ -1419,11 +1419,11 @@ def countConstraint(data):
print "Constraints bond=%d angle=%d total=%d" % (bondCount, angleCount, (bondCount+angleCount)) print "Constraints bond=%d angle=%d total=%d" % (bondCount, angleCount, (bondCount+angleCount))
## @private ## @private
class AmoebaHarmonicBondGenerator: class AmoebaBondGenerator:
#============================================================================================= #=============================================================================================
"""An AmoebaHarmonicBondGenerator constructs a AmoebaHarmonicBondForce.""" """An AmoebaBondGenerator constructs a AmoebaBondForce."""
#============================================================================================= #=============================================================================================
...@@ -1442,10 +1442,10 @@ class AmoebaHarmonicBondGenerator: ...@@ -1442,10 +1442,10 @@ class AmoebaHarmonicBondGenerator:
@staticmethod @staticmethod
def parseElement(element, forceField): def parseElement(element, forceField):
# <AmoebaHarmonicBondForce bond-cubic="-25.5" bond-quartic="379.3125"> # <AmoebaBondForce bond-cubic="-25.5" bond-quartic="379.3125">
# <Bond class1="1" class2="2" length="0.1437" k="156900.0"/> # <Bond class1="1" class2="2" length="0.1437" k="156900.0"/>
generator = AmoebaHarmonicBondGenerator(float(element.attrib['bond-cubic']), float(element.attrib['bond-quartic'])) generator = AmoebaBondGenerator(float(element.attrib['bond-cubic']), float(element.attrib['bond-quartic']))
forceField._forces.append(generator) forceField._forces.append(generator)
for bond in element.findall('Bond'): for bond in element.findall('Bond'):
types = forceField._findAtomTypes(bond, 2) types = forceField._findAtomTypes(bond, 2)
...@@ -1455,7 +1455,7 @@ class AmoebaHarmonicBondGenerator: ...@@ -1455,7 +1455,7 @@ class AmoebaHarmonicBondGenerator:
generator.length.append(float(bond.attrib['length'])) generator.length.append(float(bond.attrib['length']))
generator.k.append(float(bond.attrib['k'])) generator.k.append(float(bond.attrib['k']))
else: else:
outputString = "AmoebaHarmonicBondGenerator: error getting types: %s %s" % ( outputString = "AmoebaBondGenerator: error getting types: %s %s" % (
bond.attrib['class1'], bond.attrib['class1'],
bond.attrib['class2']) bond.attrib['class2'])
raise ValueError(outputString) raise ValueError(outputString)
...@@ -1472,15 +1472,15 @@ class AmoebaHarmonicBondGenerator: ...@@ -1472,15 +1472,15 @@ class AmoebaHarmonicBondGenerator:
#countConstraint(data) #countConstraint(data)
existing = [sys.getForce(i) for i in range(sys.getNumForces())] existing = [sys.getForce(i) for i in range(sys.getNumForces())]
existing = [f for f in existing if type(f) == mm.AmoebaHarmonicBondForce] existing = [f for f in existing if type(f) == mm.AmoebaBondForce]
if len(existing) == 0: if len(existing) == 0:
force = mm.AmoebaHarmonicBondForce() force = mm.AmoebaBondForce()
sys.addForce(force) sys.addForce(force)
else: else:
force = existing[0] force = existing[0]
force.setAmoebaGlobalHarmonicBondCubic(self.cubic) force.setAmoebaGlobalBondCubic(self.cubic)
force.setAmoebaGlobalHarmonicBondQuartic(self.quartic) force.setAmoebaGlobalBondQuartic(self.quartic)
for bond in data.bonds: for bond in data.bonds:
type1 = data.atomType[data.atoms[bond.atom1]] type1 = data.atomType[data.atoms[bond.atom1]]
...@@ -1499,10 +1499,10 @@ class AmoebaHarmonicBondGenerator: ...@@ -1499,10 +1499,10 @@ class AmoebaHarmonicBondGenerator:
break break
if (hit == 0): if (hit == 0):
outputString = "AmoebaHarmonicBondGenerator missing: types=[%5s %5s] atoms=[%6d %6d] " % (type1, type2, bond.atom1, bond.atom2) outputString = "AmoebaBondGenerator missing: types=[%5s %5s] atoms=[%6d %6d] " % (type1, type2, bond.atom1, bond.atom2)
raise ValueError(outputString) raise ValueError(outputString)
parsers["AmoebaHarmonicBondForce"] = AmoebaHarmonicBondGenerator.parseElement parsers["AmoebaBondForce"] = AmoebaBondGenerator.parseElement
#============================================================================================= #=============================================================================================
# Add angle constraint # Add angle constraint
...@@ -1534,10 +1534,10 @@ def addAngleConstraint(angle, idealAngle, data, sys): ...@@ -1534,10 +1534,10 @@ def addAngleConstraint(angle, idealAngle, data, sys):
#============================================================================================= #=============================================================================================
## @private ## @private
class AmoebaHarmonicAngleGenerator: class AmoebaAngleGenerator:
#============================================================================================= #=============================================================================================
"""An AmoebaHarmonicAngleGenerator constructs a AmoebaHarmonicAngleForce.""" """An AmoebaAngleGenerator constructs a AmoebaAngleForce."""
#============================================================================================= #=============================================================================================
def __init__(self, forceField, cubic, quartic, pentic, sextic): def __init__(self, forceField, cubic, quartic, pentic, sextic):
...@@ -1562,10 +1562,10 @@ class AmoebaHarmonicAngleGenerator: ...@@ -1562,10 +1562,10 @@ class AmoebaHarmonicAngleGenerator:
@staticmethod @staticmethod
def parseElement(element, forceField): def parseElement(element, forceField):
# <AmoebaHarmonicAngleForce angle-cubic="-0.014" angle-quartic="5.6e-05" angle-pentic="-7e-07" angle-sextic="2.2e-08"> # <AmoebaAngleForce angle-cubic="-0.014" angle-quartic="5.6e-05" angle-pentic="-7e-07" angle-sextic="2.2e-08">
# <Angle class1="2" class2="1" class3="3" k="0.0637259642196" angle1="122.00" /> # <Angle class1="2" class2="1" class3="3" k="0.0637259642196" angle1="122.00" />
generator = AmoebaHarmonicAngleGenerator(forceField, float(element.attrib['angle-cubic']), float(element.attrib['angle-quartic']), float(element.attrib['angle-pentic']), float(element.attrib['angle-sextic'])) generator = AmoebaAngleGenerator(forceField, float(element.attrib['angle-cubic']), float(element.attrib['angle-quartic']), float(element.attrib['angle-pentic']), float(element.attrib['angle-sextic']))
forceField._forces.append(generator) forceField._forces.append(generator)
for angle in element.findall('Angle'): for angle in element.findall('Angle'):
types = forceField._findAtomTypes(angle, 3) types = forceField._findAtomTypes(angle, 3)
...@@ -1589,7 +1589,7 @@ class AmoebaHarmonicAngleGenerator: ...@@ -1589,7 +1589,7 @@ class AmoebaHarmonicAngleGenerator:
generator.angle.append(angleList) generator.angle.append(angleList)
generator.k.append(float(angle.attrib['k'])) generator.k.append(float(angle.attrib['k']))
else: else:
outputString = "AmoebaHarmonicAngleGenerator: error getting types: %s %s %s" % ( outputString = "AmoebaAngleGenerator: error getting types: %s %s %s" % (
angle.attrib['class1'], angle.attrib['class1'],
angle.attrib['class2'], angle.attrib['class2'],
angle.attrib['class3']) angle.attrib['class3'])
...@@ -1617,20 +1617,20 @@ class AmoebaHarmonicAngleGenerator: ...@@ -1617,20 +1617,20 @@ class AmoebaHarmonicAngleGenerator:
# get force # get force
existing = [sys.getForce(i) for i in range(sys.getNumForces())] existing = [sys.getForce(i) for i in range(sys.getNumForces())]
existing = [f for f in existing if type(f) == mm.AmoebaHarmonicAngleForce] existing = [f for f in existing if type(f) == mm.AmoebaAngleForce]
if len(existing) == 0: if len(existing) == 0:
force = mm.AmoebaHarmonicAngleForce() force = mm.AmoebaAngleForce()
sys.addForce(force) sys.addForce(force)
else: else:
force = existing[0] force = existing[0]
# set scalars # set scalars
force.setAmoebaGlobalHarmonicAngleCubic(self.cubic) force.setAmoebaGlobalAngleCubic(self.cubic)
force.setAmoebaGlobalHarmonicAngleQuartic(self.quartic) force.setAmoebaGlobalAngleQuartic(self.quartic)
force.setAmoebaGlobalHarmonicAnglePentic(self.pentic) force.setAmoebaGlobalAnglePentic(self.pentic)
force.setAmoebaGlobalHarmonicAngleSextic(self.sextic) force.setAmoebaGlobalAngleSextic(self.sextic)
for angleDict in angleList: for angleDict in angleList:
angle = angleDict['angle'] angle = angleDict['angle']
...@@ -1665,7 +1665,7 @@ class AmoebaHarmonicAngleGenerator: ...@@ -1665,7 +1665,7 @@ class AmoebaHarmonicAngleGenerator:
if (numberOfHydrogens < lenAngle): if (numberOfHydrogens < lenAngle):
angleValue = self.angle[i][numberOfHydrogens] angleValue = self.angle[i][numberOfHydrogens]
else: else:
outputString = "AmoebaHarmonicAngleGenerator angle index=%d is out of range: [0, %5d] " % (numberOfHydrogens, lenAngle) outputString = "AmoebaAngleGenerator angle index=%d is out of range: [0, %5d] " % (numberOfHydrogens, lenAngle)
raise ValueError(outputString) raise ValueError(outputString)
else: else:
angleValue = self.angle[i][0] angleValue = self.angle[i][0]
...@@ -1674,7 +1674,7 @@ class AmoebaHarmonicAngleGenerator: ...@@ -1674,7 +1674,7 @@ class AmoebaHarmonicAngleGenerator:
force.addAngle(angle[0], angle[1], angle[2], angleValue, self.k[i]) force.addAngle(angle[0], angle[1], angle[2], angleValue, self.k[i])
break break
if (hit == 0): if (hit == 0):
outputString = "AmoebaHarmonicAngleGenerator missing types: [%s %s %s] for atoms: " % (type1, type2, type3) outputString = "AmoebaAngleGenerator missing types: [%s %s %s] for atoms: " % (type1, type2, type3)
outputString += getAtomPrint( data, angle[0] ) + ' ' outputString += getAtomPrint( data, angle[0] ) + ' '
outputString += getAtomPrint( data, angle[1] ) + ' ' outputString += getAtomPrint( data, angle[1] ) + ' '
outputString += getAtomPrint( data, angle[2] ) outputString += getAtomPrint( data, angle[2] )
...@@ -1693,20 +1693,20 @@ class AmoebaHarmonicAngleGenerator: ...@@ -1693,20 +1693,20 @@ class AmoebaHarmonicAngleGenerator:
# get force # get force
existing = [sys.getForce(i) for i in range(sys.getNumForces())] existing = [sys.getForce(i) for i in range(sys.getNumForces())]
existing = [f for f in existing if type(f) == mm.AmoebaHarmonicInPlaneAngleForce] existing = [f for f in existing if type(f) == mm.AmoebaInPlaneAngleForce]
if len(existing) == 0: if len(existing) == 0:
force = mm.AmoebaHarmonicInPlaneAngleForce() force = mm.AmoebaInPlaneAngleForce()
sys.addForce(force) sys.addForce(force)
else: else:
force = existing[0] force = existing[0]
# scalars # scalars
force.setAmoebaGlobalHarmonicInPlaneAngleCubic(self.cubic) force.setAmoebaGlobalInPlaneAngleCubic(self.cubic)
force.setAmoebaGlobalHarmonicInPlaneAngleQuartic(self.quartic) force.setAmoebaGlobalInPlaneAngleQuartic(self.quartic)
force.setAmoebaGlobalHarmonicInPlaneAnglePentic(self.pentic) force.setAmoebaGlobalInPlaneAnglePentic(self.pentic)
force.setAmoebaGlobalHarmonicInPlaneAngleSextic(self.sextic) force.setAmoebaGlobalInPlaneAngleSextic(self.sextic)
for angleDict in angleList: for angleDict in angleList:
...@@ -1734,19 +1734,19 @@ class AmoebaHarmonicAngleGenerator: ...@@ -1734,19 +1734,19 @@ class AmoebaHarmonicAngleGenerator:
break break
if (hit == 0): if (hit == 0):
outputString = "AmoebaHarmonicInPlaneAngleGenerator missing types: [%s %s %s] atoms: " % (type1, type2, type3) outputString = "AmoebaInPlaneAngleGenerator missing types: [%s %s %s] atoms: " % (type1, type2, type3)
outputString += getAtomPrint( data, angle[0] ) + ' ' outputString += getAtomPrint( data, angle[0] ) + ' '
outputString += getAtomPrint( data, angle[1] ) + ' ' outputString += getAtomPrint( data, angle[1] ) + ' '
outputString += getAtomPrint( data, angle[2] ) outputString += getAtomPrint( data, angle[2] )
outputString += " indices: [%6d %6d %6d]" % (angle[0], angle[1], angle[2]) outputString += " indices: [%6d %6d %6d]" % (angle[0], angle[1], angle[2])
raise ValueError(outputString) raise ValueError(outputString)
parsers["AmoebaHarmonicAngleForce"] = AmoebaHarmonicAngleGenerator.parseElement parsers["AmoebaAngleForce"] = AmoebaAngleGenerator.parseElement
#============================================================================================= #=============================================================================================
# Generator for the AmoebaOutOfPlaneBend covalent force; also calls methods in the # Generator for the AmoebaOutOfPlaneBend covalent force; also calls methods in the
# AmoebaHarmonicAngleGenerator to generate the AmoebaHarmonicAngleForce and # AmoebaAngleGenerator to generate the AmoebaAngleForce and
# AmoebaHarmonicInPlaneAngleForce # AmoebaInPlaneAngleForce
#============================================================================================= #=============================================================================================
## @private ## @private
...@@ -2011,20 +2011,20 @@ class AmoebaOutOfPlaneBendGenerator: ...@@ -2011,20 +2011,20 @@ class AmoebaOutOfPlaneBendGenerator:
angleDict['isConstrained'] = isConstrained angleDict['isConstrained'] = isConstrained
nonInPlaneAngles.append(angleDict) nonInPlaneAngles.append(angleDict)
# get AmoebaHarmonicAngleGenerator and add AmoebaHarmonicAngle and AmoebaHarmonicInPlaneAngle forces # get AmoebaAngleGenerator and add AmoebaAngle and AmoebaInPlaneAngle forces
for force in self.forceField._forces: for force in self.forceField._forces:
if (force.__class__.__name__ == 'AmoebaHarmonicAngleGenerator'): if (force.__class__.__name__ == 'AmoebaAngleGenerator'):
force.createForcePostOpBendAngle(sys, data, nonbondedMethod, nonbondedCutoff, nonInPlaneAngles, args) force.createForcePostOpBendAngle(sys, data, nonbondedMethod, nonbondedCutoff, nonInPlaneAngles, args)
force.createForcePostOpBendInPlaneAngle(sys, data, nonbondedMethod, nonbondedCutoff, inPlaneAngles, args) force.createForcePostOpBendInPlaneAngle(sys, data, nonbondedMethod, nonbondedCutoff, inPlaneAngles, args)
if (force.__class__.__name__ == 'AmoebaHarmonicBondGenerator'): if (force.__class__.__name__ == 'AmoebaBondGenerator'):
force.createForce(sys, data, nonbondedMethod, nonbondedCutoff, args) force.createForce(sys, data, nonbondedMethod, nonbondedCutoff, args)
for force in self.forceField._forces: for force in self.forceField._forces:
if (force.__class__.__name__ == 'AmoebaStretchBendGenerator'): if (force.__class__.__name__ == 'AmoebaStretchBendGenerator'):
for angleDict in inPlaneAngles: for angleDict in inPlaneAngles:
nonInPlaneAngles.append(angleDict) nonInPlaneAngles.append(angleDict)
force.createForcePostAmoebaHarmonicBondForce(sys, data, nonbondedMethod, nonbondedCutoff, nonInPlaneAngles, args) force.createForcePostAmoebaBondForce(sys, data, nonbondedMethod, nonbondedCutoff, nonInPlaneAngles, args)
parsers["AmoebaOutOfPlaneBendForce"] = AmoebaOutOfPlaneBendGenerator.parseElement parsers["AmoebaOutOfPlaneBendForce"] = AmoebaOutOfPlaneBendGenerator.parseElement
...@@ -2569,12 +2569,12 @@ class AmoebaStretchBendGenerator: ...@@ -2569,12 +2569,12 @@ class AmoebaStretchBendGenerator:
#============================================================================================= #=============================================================================================
# The setup of this force is dependent on AmoebaHarmonicBondForce and AmoebaHarmonicAngleForce # The setup of this force is dependent on AmoebaBondForce and AmoebaAngleForce
# having been called since the ideal bond lengths and angle are needed here. # having been called since the ideal bond lengths and angle are needed here.
# As a conseqeunce, createForce() is not implemented since it is not guaranteed that the generator for # As a conseqeunce, createForce() is not implemented since it is not guaranteed that the generator for
# AmoebaHarmonicBondForce and AmoebaHarmonicAngleForce have been called prior to AmoebaStretchBendGenerator(). # AmoebaBondForce and AmoebaAngleForce have been called prior to AmoebaStretchBendGenerator().
# Instead, createForcePostAmoebaHarmonicBondForce() is called # Instead, createForcePostAmoebaBondForce() is called
# after the generators for AmoebaHarmonicBondForce and AmoebaHarmonicAngleForce have been called # after the generators for AmoebaBondForce and AmoebaAngleForce have been called
#============================================================================================= #=============================================================================================
...@@ -2587,7 +2587,7 @@ class AmoebaStretchBendGenerator: ...@@ -2587,7 +2587,7 @@ class AmoebaStretchBendGenerator:
#============================================================================================= #=============================================================================================
def createForcePostAmoebaHarmonicBondForce(self, sys, data, nonbondedMethod, nonbondedCutoff, angleList, args): def createForcePostAmoebaBondForce(self, sys, data, nonbondedMethod, nonbondedCutoff, angleList, args):
if (self.hasBeenCalled): if (self.hasBeenCalled):
return return
......
...@@ -17,9 +17,9 @@ SKIP_METHODS = [('State',), ...@@ -17,9 +17,9 @@ SKIP_METHODS = [('State',),
('Stream',), ('Stream',),
('Vec3',), ('Vec3',),
('AmoebaGeneralizedKirkwoodForceImpl',), ('AmoebaGeneralizedKirkwoodForceImpl',),
('AmoebaHarmonicAngleForceImpl',), ('AmoebaAngleForceImpl',),
('AmoebaHarmonicBondForceImpl',), ('AmoebaBondForceImpl',),
('AmoebaHarmonicInPlaneAngleForceImpl',), ('AmoebaInPlaneAngleForceImpl',),
('AmoebaMultipoleForceImpl',), ('AmoebaMultipoleForceImpl',),
('AmoebaOutOfPlaneBendForceImpl',), ('AmoebaOutOfPlaneBendForceImpl',),
('AmoebaPiTorsionForceImpl',), ('AmoebaPiTorsionForceImpl',),
...@@ -35,9 +35,9 @@ SKIP_METHODS = [('State',), ...@@ -35,9 +35,9 @@ SKIP_METHODS = [('State',),
('BondInfo',), ('BondInfo',),
('BondParameterInfo',), ('BondParameterInfo',),
('CalcAmoebaGeneralizedKirkwoodForceKernel',), ('CalcAmoebaGeneralizedKirkwoodForceKernel',),
('CalcAmoebaHarmonicAngleForceKernel',), ('CalcAmoebaAngleForceKernel',),
('CalcAmoebaHarmonicBondForceKernel',), ('CalcAmoebaBondForceKernel',),
('CalcAmoebaHarmonicInPlaneAngleForceKernel',), ('CalcAmoebaInPlaneAngleForceKernel',),
('CalcAmoebaMultipoleForceKernel',), ('CalcAmoebaMultipoleForceKernel',),
('CalcAmoebaOutOfPlaneBendForceKernel',), ('CalcAmoebaOutOfPlaneBendForceKernel',),
('CalcAmoebaPiTorsionForceKernel',), ('CalcAmoebaPiTorsionForceKernel',),
...@@ -234,21 +234,21 @@ UNITS = { ...@@ -234,21 +234,21 @@ UNITS = {
("AmoebaGeneralizedKirkwoodForce", "getProbeRadius") : ( 'unit.nanometer', ()), ("AmoebaGeneralizedKirkwoodForce", "getProbeRadius") : ( 'unit.nanometer', ()),
("AmoebaGeneralizedKirkwoodForce", "getSurfaceAreaFactor") : ( '(unit.nanometer*unit.nanometer)/unit.kilojoule_per_mole',()), ("AmoebaGeneralizedKirkwoodForce", "getSurfaceAreaFactor") : ( '(unit.nanometer*unit.nanometer)/unit.kilojoule_per_mole',()),
("AmoebaHarmonicAngleForce", "getAmoebaGlobalHarmonicAngleCubic") : ( None,()), ("AmoebaAngleForce", "getAmoebaGlobalAngleCubic") : ( None,()),
("AmoebaHarmonicAngleForce", "getAmoebaGlobalHarmonicAngleQuartic") : ( None,()), ("AmoebaAngleForce", "getAmoebaGlobalAngleQuartic") : ( None,()),
("AmoebaHarmonicAngleForce", "getAmoebaGlobalHarmonicAnglePentic") : ( None,()), ("AmoebaAngleForce", "getAmoebaGlobalAnglePentic") : ( None,()),
("AmoebaHarmonicAngleForce", "getAmoebaGlobalHarmonicAngleSextic") : ( None,()), ("AmoebaAngleForce", "getAmoebaGlobalAngleSextic") : ( None,()),
("AmoebaHarmonicAngleForce", "getAngleParameters") : ( None, (None, None, None, 'unit.radian', 'unit.kilojoule_per_mole/(unit.radian*unit.radian)')), ("AmoebaAngleForce", "getAngleParameters") : ( None, (None, None, None, 'unit.radian', 'unit.kilojoule_per_mole/(unit.radian*unit.radian)')),
("AmoebaHarmonicBondForce", "getAmoebaGlobalHarmonicBondCubic") : ( None,()), ("AmoebaBondForce", "getAmoebaGlobalBondCubic") : ( None,()),
("AmoebaHarmonicBondForce", "getAmoebaGlobalHarmonicBondQuartic") : ( None,()), ("AmoebaBondForce", "getAmoebaGlobalBondQuartic") : ( None,()),
("AmoebaHarmonicBondForce", "getBondParameters") : ( None, (None, None, 'unit.nanometer', 'unit.kilojoule_per_mole/(unit.nanometer*unit.nanometer)')), ("AmoebaBondForce", "getBondParameters") : ( None, (None, None, 'unit.nanometer', 'unit.kilojoule_per_mole/(unit.nanometer*unit.nanometer)')),
("AmoebaHarmonicInPlaneAngleForce", "getAmoebaGlobalHarmonicInPlaneAngleCubic") : ( None,()), ("AmoebaInPlaneAngleForce", "getAmoebaGlobalInPlaneAngleCubic") : ( None,()),
("AmoebaHarmonicInPlaneAngleForce", "getAmoebaGlobalHarmonicInPlaneAngleQuartic") : ( None,()), ("AmoebaInPlaneAngleForce", "getAmoebaGlobalInPlaneAngleQuartic") : ( None,()),
("AmoebaHarmonicInPlaneAngleForce", "getAmoebaGlobalHarmonicInPlaneAnglePentic") : ( None,()), ("AmoebaInPlaneAngleForce", "getAmoebaGlobalInPlaneAnglePentic") : ( None,()),
("AmoebaHarmonicInPlaneAngleForce", "getAmoebaGlobalHarmonicInPlaneAngleSextic") : ( None,()), ("AmoebaInPlaneAngleForce", "getAmoebaGlobalInPlaneAngleSextic") : ( None,()),
("AmoebaHarmonicInPlaneAngleForce", "getAngleParameters") : ( None, (None, None, None, None, 'unit.radian', 'unit.kilojoule_per_mole/(unit.radian*unit.radian)')), ("AmoebaInPlaneAngleForce", "getAngleParameters") : ( None, (None, None, None, None, 'unit.radian', 'unit.kilojoule_per_mole/(unit.radian*unit.radian)')),
("AmoebaMultipoleForce", "getNumMultipoles") : ( None,()), ("AmoebaMultipoleForce", "getNumMultipoles") : ( None,()),
("AmoebaMultipoleForce", "getNonbondedMethod") : ( None,()), ("AmoebaMultipoleForce", "getNonbondedMethod") : ( None,()),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment