// Execute Method bool Export::process(DUQ& duq, ProcessPool& procPool) { /* * Export data from the target Configuration(s) */ // Loop over target Configurations for (RefListItem<Configuration,bool>* ri = targetConfigurations_.first(); ri != NULL; ri = ri->next) { // Grab Configuration pointer Configuration* cfg = ri->item; // Retrieve control parameters from Configuration const char* saveTrajectory = variableAsChar(cfg, "SaveTrajectory"); /* * Save XYZ Trajectory */ if (!DUQSys::isEmpty(saveTrajectory)) { Messenger::print("Export: Appending to trajectory output file '%s'...\n", cfg->outputCoordinatesFile()); // Only the pool master saves the data if (procPool.isMaster()) { // Open the file LineParser parser; if (!parser.appendOutput(saveTrajectory)) { parser.closeFiles(); procPool.stop(); return false; } else if (!writeConfigurationXYZ(parser, cfg, cfg->name())) { Messenger::print("Export: Failed to append to trajectory file.\n"); parser.closeFiles(); procPool.stop(); return false; } procPool.proceed(); } else if (!procPool.decision()) return false; Messenger::print("Export: Finished appending trajectory file.\n"); } } return true; }