33  TEST_ASSERT(integrator->isInitialized() == 
false);
 
   35  TEST_COMPARE(integrator->getIntegratorName(), ==, 
"Integrator Basic");
 
   36  TEST_COMPARE(integrator->getIntegratorType(), ==, 
"Integrator Basic");
 
   37  TEST_COMPARE(integrator->getStepper()->getStepperName(), ==, 
"Forward Euler");
 
   38  TEST_ASSERT(integrator->getStepper()->getModel() == Teuchos::null);
 
   39  TEST_ASSERT(integrator->getSolutionHistory() != Teuchos::null);
 
   40  TEST_COMPARE(integrator->getSolutionHistory()->getNumStates(), ==, 0);
 
   41  TEST_ASSERT(integrator->getTimeStepControl() != Teuchos::null);
 
   42  TEST_ASSERT(integrator->getTimeStepControl()->getStepType() == 
"Constant");
 
   43  TEST_ASSERT(integrator->getObserver() != Teuchos::null);
 
   47  integrator->setModel(model);
 
   50  auto inArgsIC = model->getNominalValues();
 
   52      rcp_const_cast<Thyra::VectorBase<double> >(inArgsIC.get_x());
 
   55  solutionHistory->addState(icState);
 
   57  integrator->setSolutionHistory(solutionHistory);
 
   58  integrator->initialize();
 
   60  TEST_ASSERT(integrator->isInitialized() == 
true);
 
 
   69  stepper->setModel(model);
 
   72  auto inArgsIC = model->getNominalValues();
 
   74      rcp_const_cast<Thyra::VectorBase<double> >(inArgsIC.get_x());
 
   77  solutionHistory->addState(icState);
 
   85  std::vector<int> outputScreenIndices{10, 20, 30};
 
   86  int outputScreenInterval = 72;
 
   90      stepper, solutionHistory, timeStepControl, integratorObserver,
 
   91      outputScreenIndices, outputScreenInterval));
 
   93  TEST_ASSERT(integrator->isInitialized() == 
true);
 
   95  TEST_COMPARE(integrator->getIntegratorName(), ==, 
"Integrator Basic");
 
   96  TEST_COMPARE(integrator->getIntegratorType(), ==, 
"Integrator Basic");
 
   97  TEST_COMPARE(integrator->getStepper()->getStepperName(), ==,
 
   99  TEST_ASSERT(integrator->getStepper()->getModel() != Teuchos::null);
 
  100  TEST_ASSERT(integrator->getSolutionHistory() != Teuchos::null);
 
  101  TEST_COMPARE(integrator->getSolutionHistory()->getNumStates(), ==, 1);
 
  102  TEST_ASSERT(integrator->getTimeStepControl() != Teuchos::null);
 
  103  TEST_ASSERT(integrator->getTimeStepControl()->getStepType() == 
"Constant");
 
  104  TEST_ASSERT(integrator->getObserver() != Teuchos::null);
 
  105  TEST_ASSERT(integrator->getScreenOutputIndexList() == outputScreenIndices);
 
  106  TEST_ASSERT(integrator->getScreenOutputIndexInterval() ==
 
  107              outputScreenInterval);
 
 
  115  RCP<ParameterList> pl =
 
  116      Teuchos::getParametersFromXmlFile(
"Tempus_IntegratorBasic_default.xml");
 
  122  RCP<ParameterList> tempusPL = sublist(pl, 
"Tempus", 
true);
 
  123  RCP<Tempus::IntegratorBasic<double> > integrator =
 
  124      Tempus::createIntegratorBasic<double>(tempusPL, model);
 
  126  std::ostringstream ss;
 
  127  Teuchos::RCP<Teuchos::FancyOStream> myOut =
 
  128      Teuchos::fancyOStream(Teuchos::rcpFromRef(ss));
 
  130  integrator->describe(*myOut, Teuchos::VERB_EXTREME);
 
  132  auto testS = ss.str();
 
  135  auto npos = std::string::npos;
 
  136  TEST_ASSERT(npos != testS.find(
"--- Tempus::IntegratorBasic ---"));
 
  137  TEST_ASSERT(npos != testS.find(
"--- Tempus::SolutionHistory"));
 
  138  TEST_ASSERT(npos != testS.find(
"--- SolutionState (index =     0; time =     " 
  139                                 "    0; dt =     1e+99) ---"));
 
  140  TEST_ASSERT(npos != testS.find(
"--- Tempus::SolutionStateMetaData ---"));
 
  141  TEST_ASSERT(npos != testS.find(
"--- Tempus::StepperState"));
 
  142  TEST_ASSERT(npos != testS.find(
"--- Tempus::PhysicsState"));
 
  143  TEST_ASSERT(npos != testS.find(
"--- Tempus::TimeStepControl ---"));
 
  145              testS.find(
"--- Tempus::TimeStepControlStrategyConstant ---"));
 
  146  TEST_ASSERT(npos != testS.find(
"--- Stepper ---"));
 
  147  TEST_ASSERT(npos != testS.find(
"stepperType_        = Forward Euler"));
 
  148  TEST_ASSERT(npos != testS.find(
"--- StepperExplicit ---"));
 
 
  163  auto integrator = Tempus::createIntegratorBasic<double>(
 
  164      model, std::string(
"Backward Euler"));
 
  167  integrator->getNonConstSolutionHistory()->initWorkingState();
 
  170  auto tsc = integrator->getNonConstTimeStepControl();
 
  171  auto ws  = integrator->getSolutionHistory()->getWorkingState();
 
  176  ws->setNFailures(11);
 
  177  integrator->checkTimeStep();
 
  184  ws->setNConsecutiveFailures(6);
 
  185  integrator->checkTimeStep();
 
  188  ws->setNConsecutiveFailures(0);
 
  192  ws->setTimeStep(1.0);
 
  194  tsc->setMinTimeStep(1.0);
 
  195  integrator->checkTimeStep();
 
  199  tsc->setMinTimeStep(0.1);
 
  204  integrator->checkTimeStep();
 
  205  TEST_ASSERT(ws->getNFailures() == 1);
 
  206  TEST_ASSERT(ws->getNRunningFailures() == 1);
 
  207  TEST_ASSERT(ws->getNConsecutiveFailures() == 1);
 
  211  ws->setNRunningFailures(0);
 
  212  ws->setNConsecutiveFailures(0);
 
  217  tsc->setTimeStepControlStrategy(tscs);
 
  218  ws->setTimeStep(0.1);
 
  219  tsc->setInitTimeStep(1.0);
 
  220  integrator->checkTimeStep();
 
  221  TEST_ASSERT(ws->getNFailures() == 1);
 
  222  TEST_ASSERT(ws->getNRunningFailures() == 1);
 
  223  TEST_ASSERT(ws->getNConsecutiveFailures() == 1);
 
 
  234  RCP<Tempus::IntegratorBasic<double> > integrator =
 
  235      Tempus::createIntegratorBasic<double>();
 
  240  RCP<ParameterList> tempusPL =
 
  241      Teuchos::rcp_const_cast<ParameterList>(integrator->getValidParameters());
 
  243  tempusPL->sublist(
"Default Integrator").set(
"Stepper Name", 
"Demo Stepper");
 
  244  RCP<ParameterList> stepperPL = Teuchos::parameterList();
 
  245  stepperPL->set(
"Stepper Type", 
"Forward Euler");
 
  246  tempusPL->set(
"Demo Stepper", *stepperPL);
 
  250  integrator = Tempus::createIntegratorBasic<double>(tempusPL, model);
 
  253  auto testPL = integrator->getValidParameters();
 
  258  RCP<ParameterList> referencePL =
 
  259      Teuchos::getParametersFromXmlFile(
"Tempus_IntegratorBasic_ref.xml");
 
  261  bool pass = haveSameValuesSorted(*testPL, *referencePL, 
true);
 
  264    out << 
"testPL      -------------- \n" 
  265        << *testPL << std::endl;
 
  266    out << 
"referencePL -------------- \n" 
  267        << *referencePL << std::endl;
 
 
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
 
Teuchos::RCP< SolutionState< Scalar > > createSolutionStateX(const Teuchos::RCP< Thyra::VectorBase< Scalar > > &x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &xdot=Teuchos::null, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &xdotdot=Teuchos::null)
Nonmember constructor from non-const solution vectors, x.