diff --git a/modules/mol/mm/src/gromacs_block_modifiers.cc b/modules/mol/mm/src/gromacs_block_modifiers.cc index 55ce401c46e85cfc1d3602ee730867912fe8f06a..083b0b84249355cea7a1233a76e8fab5e3128b32 100644 --- a/modules/mol/mm/src/gromacs_block_modifiers.cc +++ b/modules/mol/mm/src/gromacs_block_modifiers.cc @@ -260,9 +260,8 @@ void GromacsHydrogenConstructor::ApplyOnResidue(ost::mol::ResidueHandle& res, os for(int b=0;b<number;++b){ //only add hydrogen if not already present! atom = res.FindAtom(hydrogen_names[b]); - if(!atom.IsValid()){ - atom = ed.InsertAtom(res,hydrogen_names[b],hydrogen_positions[b],"H"); - } + if(!atom.IsValid()) atom = ed.InsertAtom(res,hydrogen_names[b],hydrogen_positions[b],"H"); + else ed.SetAtomPos(atom,hydrogen_positions[b]); } } } @@ -416,6 +415,7 @@ void GromacsBlockModifier::ApplyOnResidue(ost::mol::ResidueHandle& res, ost::mol for(int j=0; j<number; ++j){ ost::mol::AtomHandle at = res.FindAtom(names[j]); if(!at.IsValid()) at = ed.InsertAtom(res,names[j],positions[j],ele); + else ed.SetAtomPos(at,positions[j]); ed.Connect(at, anchor_atoms[0]); } }