Commit c2153753 authored by peastman's avatar peastman
Browse files

Improved robustness of custom GB forces

parent 3c5d19f8
...@@ -541,7 +541,7 @@ class GBSAHCTForce(CustomAmberGBForceBase): ...@@ -541,7 +541,7 @@ class GBSAHCTForce(CustomAmberGBForceBase):
self.addPerParticleParameter("charge") self.addPerParticleParameter("charge")
self.addPerParticleParameter("or") # Offset radius self.addPerParticleParameter("or") # Offset radius
self.addPerParticleParameter("sr") # Scaled offset radius self.addPerParticleParameter("sr") # Scaled offset radius
self.addComputedValue("I", "step(r+sr2-or1)*0.5*(1/L-1/U+0.25*(r-sr2^2/r)*(1/(U^2)-1/(L^2))+0.5*log(L/U)/r);" self.addComputedValue("I", "select(step(r+sr2-or1), 0.5*(1/L-1/U+0.25*(r-sr2^2/r)*(1/(U^2)-1/(L^2))+0.5*log(L/U)/r), 0);"
"U=r+sr2;" "U=r+sr2;"
"L=max(or1, D);" "L=max(or1, D);"
"D=abs(r-sr2)", "D=abs(r-sr2)",
...@@ -607,7 +607,7 @@ class GBSAOBC1Force(CustomAmberGBForceBase): ...@@ -607,7 +607,7 @@ class GBSAOBC1Force(CustomAmberGBForceBase):
self.addPerParticleParameter("charge") self.addPerParticleParameter("charge")
self.addPerParticleParameter("or") # Offset radius self.addPerParticleParameter("or") # Offset radius
self.addPerParticleParameter("sr") # Scaled offset radius self.addPerParticleParameter("sr") # Scaled offset radius
self.addComputedValue("I", "step(r+sr2-or1)*0.5*(1/L-1/U+0.25*(r-sr2^2/r)*(1/(U^2)-1/(L^2))+0.5*log(L/U)/r);" self.addComputedValue("I", "select(step(r+sr2-or1), 0.5*(1/L-1/U+0.25*(r-sr2^2/r)*(1/(U^2)-1/(L^2))+0.5*log(L/U)/r), 0);"
"U=r+sr2;" "U=r+sr2;"
"L=max(or1, D);" "L=max(or1, D);"
"D=abs(r-sr2)", CustomGBForce.ParticlePairNoExclusions) "D=abs(r-sr2)", CustomGBForce.ParticlePairNoExclusions)
...@@ -675,7 +675,7 @@ class GBSAOBC2Force(GBSAOBC1Force): ...@@ -675,7 +675,7 @@ class GBSAOBC2Force(GBSAOBC1Force):
self.addPerParticleParameter("charge") self.addPerParticleParameter("charge")
self.addPerParticleParameter("or") # Offset radius self.addPerParticleParameter("or") # Offset radius
self.addPerParticleParameter("sr") # Scaled offset radius self.addPerParticleParameter("sr") # Scaled offset radius
self.addComputedValue("I", "step(r+sr2-or1)*0.5*(1/L-1/U+0.25*(r-sr2^2/r)*(1/(U^2)-1/(L^2))+0.5*log(L/U)/r);" self.addComputedValue("I", "select(step(r+sr2-or1), 0.5*(1/L-1/U+0.25*(r-sr2^2/r)*(1/(U^2)-1/(L^2))+0.5*log(L/U)/r), 0);"
"U=r+sr2;" "U=r+sr2;"
"L=max(or1, D);" "L=max(or1, D);"
"D=abs(r-sr2)", CustomGBForce.ParticlePairNoExclusions) "D=abs(r-sr2)", CustomGBForce.ParticlePairNoExclusions)
......
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