8 #ifndef MMPARAMETRIZATION_FULLHESSIANASSEMBLER_H
9 #define MMPARAMETRIZATION_FULLHESSIANASSEMBLER_H
22 namespace MMParametrization {
23 struct ParametrizationData;
44 void assembleFullHessianFromSubsystems();
46 void assembleBondContributions();
48 void assembleAngleContributions();
50 void assembleDihedralContributions();
52 void assembleImproperDihedralContributions();
57 void addContributionToSparseHessian(
const std::pair<int, int>& relevantAtoms,
58 const std::vector<int>& orderedPotentialCandidatesForHessian);
60 void transferSubblockToSparseHessian(
const Utils::HessianMatrix& subblock,
int index1,
int index2);
65 void addNeighboringAtomsToListOfHessianCandidates(std::vector<int>& orderedCandidatesForHessian);
71 std::unique_ptr<FragmentDataDistributor> fragmentDataDistributor_;
77 #endif // MMPARAMETRIZATION_FULLHESSIANASSEMBLER_H
Assembles the full system's Hessian matrix from the subsystem's Hessians.
Definition: FullHessianAssembler.h:29
This struct holds all objects used inside the MM parametrization algorithm.
Definition: ParametrizationData.h:29
void assembleFullHessian()
This function takes all the Hessians from the subsystems and the mapping of the parameters to the sub...
Definition: FullHessianAssembler.cpp:20
FullHessianAssembler(ParametrizationData &data, Core::Log &log)
Constructor.
Definition: FullHessianAssembler.cpp:16