Update src/nmreval/nmr/coupling.py

Change unit of dipolar distances to avoid problems with tolerances during minimization process.
This commit is contained in:
2026-01-30 16:58:00 +00:00
parent 734a265c2b
commit 3056f8a9a8

View File

@@ -106,7 +106,7 @@ class HomoDipolar(Coupling):
name = 'Homonuclear Dipolar'
parameter = ['r']
unit = ['m']
unit = ['nm']
choice = [
(r'\gamma', 'nucleus', {k: k for k in gamma}),
('Spin', 'spin', OrderedDict([('1/2', 0.5), ('1', 1), ('3/2', 1.5), ('2', 2), ('5/2', 2.5), ('3', 3)])),
@@ -128,7 +128,7 @@ class HomoDipolar(Coupling):
raise KeyError(f'Unknown nucleus {nucleus}')
try:
coupling = mu0 / (4*pi) * hbar_joule * gamma_full[nucleus]**2 / (r+1e-34)**3
coupling = mu0 / (4*pi) * hbar_joule * gamma_full[nucleus]**2 / ((r*1e-9) + 1e-34)**3
except ZeroDivisionError:
return 1e318
@@ -143,7 +143,7 @@ class HeteroDipolar(Coupling):
name = 'Heteronuclear Dipolar'
parameter = ['r']
unit = ['m']
unit = ['nm']
choice = [
(r'\gamma_{1}', 'nucleus1', {k: k for k in gamma}),
(r'\gamma_{2}', 'nucleus2', {k: k for k in gamma}),
@@ -172,7 +172,7 @@ class HeteroDipolar(Coupling):
raise KeyError(f'Unknown nucleus {nucleus2}')
try:
coupling = mu0 / (4*pi) * hbar_joule * gamma_full[nucleus1]*gamma_full[nucleus2] / r**3
coupling = mu0 / (4*pi) * hbar_joule * gamma_full[nucleus1]*gamma_full[nucleus2] / ((r+1e-9) + 1e34)**3
except ZeroDivisionError:
return 1e318