@@ -168,6 +168,7 @@ void SimpleMD::LoadControlJson()
168
168
m_T0 = Json2KeyWord<double >(m_defaults, " T" );
169
169
m_rmrottrans = Json2KeyWord<int >(m_defaults, " rmrottrans" );
170
170
m_nocenter = Json2KeyWord<bool >(m_defaults, " nocenter" );
171
+ m_COM = Json2KeyWord<bool >(m_defaults, " COM" );
171
172
m_dump = Json2KeyWord<int >(m_defaults, " dump" );
172
173
m_print = Json2KeyWord<int >(m_defaults, " print" );
173
174
m_max_top_diff = Json2KeyWord<int >(m_defaults, " MaxTopoDiff" );
@@ -339,7 +340,7 @@ bool SimpleMD::Initialise()
339
340
m_molecule.setCharge (0 );
340
341
if (!m_nocenter) {
341
342
std::cout << " Move stucture to the origin ... " << std::endl;
342
- m_molecule.setGeometry ( GeometryTools::TranslateGeometry (m_molecule. getGeometry (), GeometryTools::Centroid (m_molecule. getGeometry ()), Position{ 0 , 0 , 0 }) );
343
+ m_molecule.Center (m_COM );
343
344
} else
344
345
std::cout << " Move stucture NOT to the origin ... " << std::endl;
345
346
@@ -714,6 +715,7 @@ nlohmann::json SimpleMD::WriteRestartInformation()
714
715
restart[" gradient" ] = Tools::DoubleVector2String (m_gradient);
715
716
restart[" rmrottrans" ] = m_rmrottrans;
716
717
restart[" nocenter" ] = m_nocenter;
718
+ restart[" COM" ] = m_COM;
717
719
restart[" average_T" ] = m_aver_Temp;
718
720
restart[" average_Epot" ] = m_aver_Epot;
719
721
restart[" average_Ekin" ] = m_aver_Ekin;
@@ -819,6 +821,10 @@ bool SimpleMD::LoadRestartInformation(const json& state)
819
821
m_nocenter = state[" nocenter" ];
820
822
} catch (json::type_error& e) {
821
823
}
824
+ try {
825
+ m_COM = state[" COM" ];
826
+ } catch (json::type_error& e) {
827
+ }
822
828
try {
823
829
m_T0 = state[" T" ];
824
830
} catch (json::type_error& e) {
@@ -1109,6 +1115,12 @@ void SimpleMD::start()
1109
1115
}
1110
1116
}
1111
1117
1118
+ // ///////// Dipole calc
1119
+
1120
+
1121
+
1122
+
1123
+ // ///////// Dipole calc
1112
1124
if (m_step % m_dump == 0 ) {
1113
1125
bool write = WriteGeometry ();
1114
1126
if (write ) {
0 commit comments