Skip to content

Commit

Permalink
Merge pull request #2168 from sconde/tempus-verbose-output-interval
Browse files Browse the repository at this point in the history
Tempus: (fix) output integrator info at interval specified
  • Loading branch information
sconde authored Jan 19, 2018
2 parents b70761f + b81a380 commit f9c3a6c
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 20 deletions.
5 changes: 0 additions & 5 deletions packages/tempus/src/Tempus_IntegratorBasic_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -551,11 +551,6 @@ void IntegratorBasic<Scalar>::acceptTimeStep()
csmd->setNFailures(std::max(csmd->getNFailures()-1,0));
csmd->setNConsecutiveFailures(0);

if ((csmd->getOutputScreen() == true) or
(csmd->getOutput() == true) or
(csmd->getTime() == timeStepControl_->getFinalTime())) {
}

// Output and screen output
if (csmd->getOutput() == true) {
// Dump solution!
Expand Down
36 changes: 21 additions & 15 deletions packages/tempus/src/Tempus_IntegratorObserverBasic_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,21 +62,27 @@ observeAcceptedTimeStep(const Integrator<Scalar>& integrator){
RCP<SolutionStateMetaData<Scalar> > csmd =
integrator.getSolutionHistory()->getCurrentState()->getMetaData();

const Scalar steppertime = integrator.getStepperTimer()->totalElapsedTime();
const Teuchos::RCP<Teuchos::FancyOStream> out = integrator.getOStream();
Teuchos::OSTab ostab(out,0,"ScreenOutput");
*out<<std::scientific<<std::setw( 6)<<std::setprecision(3)<<csmd->getIStep()
<<std::setw(11)<<std::setprecision(3)<<csmd->getTime()
<<std::setw(11)<<std::setprecision(3)<<csmd->getDt()
<<std::setw(11)<<std::setprecision(3)<<csmd->getErrorAbs()
<<std::setw(11)<<std::setprecision(3)<<csmd->getErrorRel()
<<std::fixed <<std::setw( 7)<<std::setprecision(1)<<csmd->getOrder()
<<std::scientific<<std::setw( 7)<<std::setprecision(3)<<csmd->getNFailures()
<<std::setw(11)<<std::setprecision(3)<<steppertime
<<std::endl;

// reset the stepper timer
integrator.getStepperTimer()->reset();
if ((csmd->getOutputScreen() == true) or
(csmd->getOutput() == true) or
(csmd->getTime() == integrator.getTimeStepControl()->getFinalTime())) {

const Scalar steppertime = integrator.getStepperTimer()->totalElapsedTime();
// reset the stepper timer
integrator.getStepperTimer()->reset();

const Teuchos::RCP<Teuchos::FancyOStream> out = integrator.getOStream();
Teuchos::OSTab ostab(out,0,"ScreenOutput");
*out<<std::scientific<<std::setw( 6)<<std::setprecision(3)<<csmd->getIStep()
<<std::setw(11)<<std::setprecision(3)<<csmd->getTime()
<<std::setw(11)<<std::setprecision(3)<<csmd->getDt()
<<std::setw(11)<<std::setprecision(3)<<csmd->getErrorAbs()
<<std::setw(11)<<std::setprecision(3)<<csmd->getErrorRel()
<<std::fixed <<std::setw( 7)<<std::setprecision(1)<<csmd->getOrder()
<<std::scientific<<std::setw( 7)<<std::setprecision(3)<<csmd->getNFailures()
<<std::setw(11)<<std::setprecision(3)<<steppertime
<<std::endl;
}

}

template<class Scalar>
Expand Down

0 comments on commit f9c3a6c

Please sign in to comment.