32  TEUCHOS_TEST_FOR_EXCEPT(!tscs->isInitialized());
 
   35  TEUCHOS_TEST_FOR_EXCEPT(tscs->getStrategyType() != 
"Basic VS");
 
   36  TEUCHOS_TEST_FOR_EXCEPT(tscs->getStepType() != 
"Variable");
 
   37  TEUCHOS_TEST_FOR_EXCEPT(tscs->getAmplFactor() != 1.75);
 
   38  TEUCHOS_TEST_FOR_EXCEPT(tscs->getReductFactor() != 0.5);
 
   39  TEUCHOS_TEST_FOR_EXCEPT(tscs->getMinEta() != 0.0);
 
   40  TEUCHOS_TEST_FOR_EXCEPT(tscs->getMaxEta() != 1.0e+16);
 
   43  tscs->setAmplFactor(1.33);
 
   45  TEUCHOS_TEST_FOR_EXCEPT(!tscs->isInitialized());
 
   46  tscs->setReductFactor(0.75);
 
   48  TEUCHOS_TEST_FOR_EXCEPT(!tscs->isInitialized());
 
   49  tscs->setMinEta(0.01);
 
   51  TEUCHOS_TEST_FOR_EXCEPT(!tscs->isInitialized());
 
   52  tscs->setMaxEta(0.05);
 
   54  TEUCHOS_TEST_FOR_EXCEPT(!tscs->isInitialized());
 
   56  TEUCHOS_TEST_FOR_EXCEPT(tscs->getAmplFactor() != 1.33);
 
   57  TEUCHOS_TEST_FOR_EXCEPT(tscs->getReductFactor() != 0.75);
 
   58  TEUCHOS_TEST_FOR_EXCEPT(tscs->getMinEta() != 0.01);
 
   59  TEUCHOS_TEST_FOR_EXCEPT(tscs->getMaxEta() != 0.05);
 
 
   67      1.33, 0.75, 0.01, 0.05));
 
   68  TEUCHOS_TEST_FOR_EXCEPT(!tscs->isInitialized());
 
   70  TEUCHOS_TEST_FOR_EXCEPT(tscs->getStrategyType() != 
"Basic VS");
 
   71  TEUCHOS_TEST_FOR_EXCEPT(tscs->getStepType() != 
"Variable");
 
   72  TEUCHOS_TEST_FOR_EXCEPT(tscs->getAmplFactor() != 1.33);
 
   73  TEUCHOS_TEST_FOR_EXCEPT(tscs->getReductFactor() != 0.75);
 
   74  TEUCHOS_TEST_FOR_EXCEPT(tscs->getMinEta() != 0.01);
 
   75  TEUCHOS_TEST_FOR_EXCEPT(tscs->getMaxEta() != 0.05);
 
 
   82  auto pl = Tempus::getTimeStepControlStrategyBasicVS_PL<double>();
 
   84  pl->set<
double>(
"Amplification Factor", 1.33);
 
   85  pl->set<
double>(
"Reduction Factor", 0.75);
 
   86  pl->set<
double>(
"Minimum Value Monitoring Function", 0.01);
 
   87  pl->set<
double>(
"Maximum Value Monitoring Function", 0.05);
 
   89  auto tscs = Tempus::createTimeStepControlStrategyBasicVS<double>(pl);
 
   91  TEUCHOS_TEST_FOR_EXCEPT(tscs->getStrategyType() != 
"Basic VS");
 
   92  TEUCHOS_TEST_FOR_EXCEPT(tscs->getStepType() != 
"Variable");
 
   93  TEUCHOS_TEST_FOR_EXCEPT(tscs->getAmplFactor() != 1.33);
 
   94  TEUCHOS_TEST_FOR_EXCEPT(tscs->getReductFactor() != 0.75);
 
   95  TEUCHOS_TEST_FOR_EXCEPT(tscs->getMinEta() != 0.01);
 
   96  TEUCHOS_TEST_FOR_EXCEPT(tscs->getMaxEta() != 0.05);
 
 
  104  tscs->setAmplFactor(1.1);
 
  105  tscs->setReductFactor(0.5);
 
  106  tscs->setMinEta(0.01);
 
  107  tscs->setMaxEta(0.05);
 
  109  TEUCHOS_TEST_FOR_EXCEPT(!tscs->isInitialized());
 
  113  tsc->setTimeStepControlStrategy(tscs);
 
  114  tsc->setInitTime(0.0);
 
  115  tsc->setFinalTime(10.0);
 
  116  tsc->setMinTimeStep(0.01);
 
  117  tsc->setInitTimeStep(0.1);
 
  118  tsc->setMaxTimeStep(1.0);
 
  119  tsc->setFinalIndex(100);
 
  121  TEUCHOS_TEST_FOR_EXCEPT(!tsc->isInitialized());
 
  126  auto inArgsIC = model->getNominalValues();
 
  128      rcp_const_cast<Thyra::VectorBase<double> >(inArgsIC.get_x());
 
  129  auto icState         = Tempus::createSolutionStateX<double>(icSolution);
 
  134    solutionHistory->addState(icState);
 
  135    solutionHistory->getCurrentState()->setTimeStep(0.5);
 
  136    solutionHistory->getCurrentState()->setTime(0.0);
 
  137    solutionHistory->getCurrentState()->setIndex(0);
 
  140    for (
int i = 0; i < 2; i++) {
 
  141      solutionHistory->initWorkingState();
 
  143      tsc->setNextTimeStep(solutionHistory, status);
 
  146        auto currentState = solutionHistory->getCurrentState();
 
  147        auto workingState = solutionHistory->getWorkingState();
 
  148        auto xN           = workingState->getX();
 
  149        Thyra::Vp_S(xN.ptr(), 1.0);
 
  151        workingState->computeNorms(currentState);
 
  154      solutionHistory->promoteWorkingState();
 
  158    auto currentState = solutionHistory->getCurrentState();
 
  159    TEST_FLOATING_EQUALITY(currentState->getTimeStep(), 0.25, 1.0e-14);
 
  160    TEST_FLOATING_EQUALITY(currentState->getTime(), 0.75, 1.0e-14);
 
  165    solutionHistory->clear();
 
  166    solutionHistory->addState(icState);
 
  167    solutionHistory->getCurrentState()->setTimeStep(0.5);
 
  168    solutionHistory->getCurrentState()->setTime(0.0);
 
  169    solutionHistory->getCurrentState()->setIndex(0);
 
  172    for (
int i = 0; i < 2; i++) {
 
  173      solutionHistory->initWorkingState();
 
  175      tsc->setNextTimeStep(solutionHistory, status);
 
  178        auto currentState = solutionHistory->getCurrentState();
 
  179        auto workingState = solutionHistory->getWorkingState();
 
  180        auto xN           = workingState->getX();
 
  181        Thyra::Vp_S(xN.ptr(), 0.0);
 
  183        workingState->computeNorms(currentState);
 
  186      solutionHistory->promoteWorkingState();
 
  191    auto currentState = solutionHistory->getCurrentState();
 
  192    TEST_FLOATING_EQUALITY(currentState->getTimeStep(), 0.55, 1.0e-14);
 
  193    TEST_FLOATING_EQUALITY(currentState->getTime(), 1.05, 1.0e-14);
 
 
  203  auto pl = tscs->getValidParameters();
 
  205  TEST_COMPARE(pl->get<std::string>(
"Strategy Type"), ==, 
"Basic VS");
 
  206  TEST_FLOATING_EQUALITY(pl->get<
double>(
"Amplification Factor"), 1.75,
 
  208  TEST_FLOATING_EQUALITY(pl->get<
double>(
"Reduction Factor"), 0.5, 1.0e-14);
 
  209  TEST_FLOATING_EQUALITY(pl->get<
double>(
"Minimum Value Monitoring Function"),
 
  211  TEST_FLOATING_EQUALITY(pl->get<
double>(
"Maximum Value Monitoring Function"),
 
  215    std::ostringstream unusedParameters;
 
  216    pl->unused(unusedParameters);
 
  217    TEST_COMPARE(unusedParameters.str(), ==, 
"");
 
 
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...