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