Нашёл в чём вся хуйня. Исправляю
authorMax <Infinity2573@gmail.com>
Sun, 25 Sep 2022 13:45:43 +0000 (16:45 +0300)
committerMax <Infinity2573@gmail.com>
Sun, 25 Sep 2022 13:45:43 +0000 (16:45 +0300)
src/dssptools.cpp

index 0dc84e871951c3ec750920daa1b43d460dfe9413..8d6328884be5aa842420cd20dcd8dd922d97b509 100644 (file)
@@ -661,7 +661,8 @@ void DsspTool::calculateHBondEnergy(ResInfo& Donor,
                    float prevCODist {CalculateAtomicDistances(Donor.prevResi->getIndex(backboneAtomTypes::AtomC), Donor.prevResi->getIndex(backboneAtomTypes::AtomO), fr, pbc)};
                    for (int i{XX}; i <= ZZ; ++i){
                        float prevCO = fr.x[Donor.prevResi->getIndex(backboneAtomTypes::AtomC)][i] - fr.x[Donor.prevResi->getIndex(backboneAtomTypes::AtomO)][i];
-                       atomH[i] = prevCO / prevCODist;
+                       atomH[i] = fr.x[Donor.getIndex(backboneAtomTypes::AtomH)][i]; // Но на самом деле берутся координаты N
+                       atomH[i] += prevCO / prevCODist;
                    }
                    distanceHO = CalculateAtomicDistances(atomH, Acceptor.getIndex(backboneAtomTypes::AtomO), fr, pbc);
                    distanceHC = CalculateAtomicDistances(atomH, Acceptor.getIndex(backboneAtomTypes::AtomC), fr, pbc);