Skip to content

Commit 1780f2c

Browse files
committed
Update on 03/13/26 at 10:25:18
1 parent 07ce2c7 commit 1780f2c

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

pyMBE/pyMBE.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -552,9 +552,15 @@ def formal_charge(particle_name):
552552
raise ValueError(f"Unknown acidity '{acidity}' for particle '{particle}'")
553553
if "pka_values" in entry:
554554
pka_list = entry["pka_values"]
555+
n = len(pka_list)
556+
cumsum_pK = np.cumsum(pka_list)
557+
terms = [10.0 ** (-cumsum_pK[i] + (i + 1) * pH) for i in range(n)]
558+
denominator = 1.0 + sum(terms)
559+
numerator = sum((i + 1) * terms[i] for i in range(n))
560+
charge = psi * numerator / denominator
555561
else:
556-
pka_list = [entry["pka_value"]]
557-
charge = sum(psi / (1.0 + 10.0 ** (psi * (pH - pka))) for pka in pka_list)
562+
pka = entry["pka_value"]
563+
charge = psi / (1.0 + 10.0 ** (psi * (pH - pka)))
558564
Z += multiplicity * charge
559565
else:
560566
Z += multiplicity * formal_charge(particle)

0 commit comments

Comments
 (0)