};
do_ene = (do_per_step(step,ir->nstenergy) || bLastStep);
- if (mdof_flags != 0)
+ if (mdof_flags != 0 || do_ene || do_log)
{
+ wallcycle_start(wcycle,ewcTRAJ);
+ bF = (mdof_flags & MDOF_F);
bX = (mdof_flags & (MDOF_X | MDOF_XTC | MDOF_CPT));
bV = (mdof_flags & (MDOF_V | MDOF_CPT));
- wallcycle_start(wcycle,ewcTRAJ);
- openmm_copy_state(openmmData, state, &t, f, enerd, bX, bV, 0, 0);
- wallcycle_stop(wcycle,ewcTRAJ);
- }
-
- openmm_take_one_step(openmmData);
+ openmm_copy_state(openmmData, state, &t, f, enerd, bX, bV, bF, do_ene);
- if (mdof_flags != 0 || do_ene || do_log)
- {
- wallcycle_start(wcycle,ewcTRAJ);
- bF = (mdof_flags & MDOF_F);
- if (bF || do_ene || do_log)
- {
- openmm_copy_state(openmmData, state, &t, f, enerd, 0, 0, bF, do_ene);
- }
upd_mdebin(mdebin, NULL,TRUE,
t,mdatoms->tmass,enerd,state,lastbox,
shake_vir,force_vir,total_vir,pres,
bStartingFromCpt = FALSE;
step++;
step_rel++;
+
+ openmm_take_one_step(openmmData);
}
/* End of main MD loop */
debug_gmx();