Index: kernel/src/optimizers/states/CMMLogOptimizerState.cpp =================================================================== --- kernel/src/optimizers/states/CMMLogOptimizerState.cpp (revision 404) +++ kernel/src/optimizers/states/CMMLogOptimizerState.cpp (working copy) @@ -25,14 +25,20 @@ void CMMLogOptimizerState::update() { if (skip_steps_ == 0 || (call_number_ % skip_steps_) == 0) { - char buf[1000]; - sprintf(buf, filename_.c_str(), file_number_); - ++file_number_; - write(buf); + write_next_file(); } ++call_number_; } +void CMMLogOptimizerState::write_next_file() +{ + char buf[1000]; + sprintf(buf, filename_.c_str(), file_number_); + ++file_number_; + write(buf); +} + + void CMMLogOptimizerState::write(std::string buf) const { std::ofstream out(buf.c_str()); Index: kernel/src/optimizers/states/VRMLLogOptimizerState.cpp =================================================================== --- kernel/src/optimizers/states/VRMLLogOptimizerState.cpp (revision 404) +++ kernel/src/optimizers/states/VRMLLogOptimizerState.cpp (working copy) @@ -25,14 +25,19 @@ void VRMLLogOptimizerState::update() { if (skip_steps_ == 0 || (call_number_ % skip_steps_) == 0) { - char buf[1000]; - sprintf(buf, filename_.c_str(), file_number_); - ++file_number_; - write(buf); + write_next_file(); } ++call_number_; } +void VRMLLogOptimizerState::write_next_file() +{ + char buf[1000]; + sprintf(buf, filename_.c_str(), file_number_); + ++file_number_; + write(buf); +} + void VRMLLogOptimizerState::write(std::string buf) const { std::ofstream out(buf.c_str()); Index: kernel/include/IMP/optimizers/states/VRMLLogOptimizerState.h =================================================================== --- kernel/include/IMP/optimizers/states/VRMLLogOptimizerState.h (revision 404) +++ kernel/include/IMP/optimizers/states/VRMLLogOptimizerState.h (working copy) @@ -70,9 +70,12 @@ void set_particles(const Particles &pis) { pis_=pis; } + //! Force it to write the next file + void write_next_file(); + void write(std::string name) const; - //! A helper function to just write a list of particles to a file + //! A helper function to just write a list of particles to a file static void write(const Particles &pis, FloatKey radius, FloatKey r, FloatKey g, FloatKey b, Index: kernel/include/IMP/optimizers/states/CMMLogOptimizerState.h =================================================================== --- kernel/include/IMP/optimizers/states/CMMLogOptimizerState.h (revision 404) +++ kernel/include/IMP/optimizers/states/CMMLogOptimizerState.h (working copy) @@ -69,6 +69,10 @@ void set_particles(const Particles &pis) { pis_=pis; } + + //! force it to write the next file + void write_next_file(); + void write(std::string name) const; //! A helper function to just write a list of particles to a file