From 9d34d42a9eb3215813ec52a627699bedde089419 Mon Sep 17 00:00:00 2001
From: Mark Driver <mdd31@cam.ac.uk>
Date: Thu, 12 Jul 2018 14:15:13 +0100
Subject: [PATCH] update to check for zero value association constant.

---
 solventmapcreator/solvationcalculation/solvationcalculator.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/solventmapcreator/solvationcalculation/solvationcalculator.py b/solventmapcreator/solvationcalculation/solvationcalculator.py
index 5391212..a116bf1 100644
--- a/solventmapcreator/solvationcalculation/solvationcalculator.py
+++ b/solventmapcreator/solvationcalculation/solvationcalculator.py
@@ -31,6 +31,7 @@ First term in expression. Derivation:
 
 import logging
 import numpy as np
+import sys
 import solventmapcreator.polynomialanalysis.polynomialvaluecalculator as polyvalcalc
 
 logging.basicConfig()
@@ -77,6 +78,9 @@ def calculate_binding_energy(epsilon_i, epsilon_j, temperature, theta):
     This is in kJ/mol.
     """
     association_constant = calculate_association_constant(epsilon_i, epsilon_j, temperature)
+    #when interactions are very repulsive, then association constant is close to 0.
+    if association_constant <= sys.float_info.epsilon:
+        association_constant = sys.float_info.epsilon
     fraction_numerator = -1.0 + np.sqrt(1.0 + 8*association_constant*theta)
     fraction_denominator = 4 * association_constant * theta
     return 2 * (GAS_CONSTANT * CONVERSION_FROM_J_TO_KJ) * temperature * np.log(fraction_numerator/fraction_denominator)
-- 
GitLab