diff --git a/CEP/DP3/DPPP_DDECal/include/DPPP_DDECal/DDECal.h b/CEP/DP3/DPPP_DDECal/include/DPPP_DDECal/DDECal.h index b64c013bd54effbaf1fc76632b77356819410186..396b4c45cecbbf76e4a67f4b7c4718982b61aab8 100644 --- a/CEP/DP3/DPPP_DDECal/include/DPPP_DDECal/DDECal.h +++ b/CEP/DP3/DPPP_DDECal/include/DPPP_DDECal/DDECal.h @@ -112,6 +112,7 @@ namespace LOFAR { // For each time, for each channel block, a vector of size nAntennas * nDirections std::vector<std::vector<std::vector<casacore::DComplex> > > itsSols; + std::vector<uint> itsNIter; // Number of iterations taken // For each time, for each constraint, a vector of results (e.g. tec and phase) std::vector<std::vector<std::vector<Constraint::Result> > > itsConstraintSols; diff --git a/CEP/DP3/DPPP_DDECal/src/DDECal.cc b/CEP/DP3/DPPP_DDECal/src/DDECal.cc index 23a9d58325de62670fcfe67590a04964840b8367..2d9540fe84180bc94478be2d1481b6e991b2592e 100644 --- a/CEP/DP3/DPPP_DDECal/src/DDECal.cc +++ b/CEP/DP3/DPPP_DDECal/src/DDECal.cc @@ -220,6 +220,7 @@ namespace LOFAR { uint nSolTimes = (info().ntime()+itsSolInt-1)/itsSolInt; itsSols.resize(nSolTimes); + itsNIter.resize(nSolTimes); itsConstraintSols.resize(nSolTimes); vector<double> chanFreqs(info().nchan()); //nChannelBlocks @@ -306,6 +307,12 @@ namespace LOFAR { os << " "; FlagCounter::showPerc1 (os, itsTimerWrite.getElapsed(), totaltime); os << " of it spent in writing gain solutions to disk" << endl; + + os << "Iterations taken: ["; + for (uint i=0; i<itsNIter.size()-1; ++i) { + os<<itsNIter[i]<<","; + } + os<<itsNIter[itsNIter.size()-1]<<"]"<<endl; } bool DDECal::process (const DPBuffer& bufin) @@ -376,6 +383,7 @@ namespace LOFAR { itsAvgTime / itsSolInt); itsTimerSolve.stop(); + itsNIter[itsTimeStep/itsSolInt] = solveResult.iterations; // Store constraint solutions if (itsMode!="complexgain" && itsMode!="phaseonly") { itsConstraintSols[itsTimeStep/itsSolInt]=solveResult._results;