1 #ifndef DEF_VARIATIONAL_EULERSTEP 2 #define DEF_VARIATIONAL_EULERSTEP 5 #include <NOX_Common.H> 7 #include <Teuchos_StandardCatchMacros.hpp> 11 template <
typename T_M,
19 Teuchos::RCP<Teuchos::ParameterList> m_solverParametersPtr;
20 Teuchos::RCP<NOX::StatusTest::Combo> m_statusTests;
21 Teuchos::RCP<NOXGroup<T_Q,1>> m_grp;
22 Teuchos::RCP<NOX::Solver::Generic> m_solver;
32 this->m_solverParametersPtr = Teuchos::rcp(
new Teuchos::ParameterList);
33 Teuchos::ParameterList& solverParameters = *m_solverParametersPtr;
35 solverParameters.set(
"Nonlinear Solver",
"Line Search Based");
36 Teuchos::ParameterList& lineSearchParameters = solverParameters.sublist(
"Line Search");
37 lineSearchParameters.set(
"Method",
"Full Step");
39 Teuchos::RCP<NOX::StatusTest::NormF> statusTestA = Teuchos::rcp(
new NOX::StatusTest::NormF(1.0e-8,NOX::StatusTest::NormF::Unscaled));
40 Teuchos::RCP<NOX::StatusTest::MaxIters> statusTestB = Teuchos::rcp(
new NOX::StatusTest::MaxIters(500));
41 this->m_statusTests = Teuchos::rcp(
new NOX::StatusTest::Combo(NOX::StatusTest::Combo::OR,statusTestA,statusTestB));
44 this->m_solver = NOX::Solver::buildSolver(this->m_grp,this->m_statusTests,this->m_solverParametersPtr);
51 setData (T_M h_var, T_Q q0_var, T_Q q1_var)
52 { this->m_internals->setData(h_var,q0_var,q1_var); }
66 m_solver->reset(this->m_internals->getInitialGuess());
67 NOX::StatusTest::StatusType status = m_solver->solve();
71 if (status != NOX::StatusTest::Converged)
74 T_Q solution(solnVec);
77 } TEUCHOS_STANDARD_CATCH_STATEMENTS(verbose, std::cerr, success);
Definition: Abstract_Problem.hpp:10
Definition: NOXGroup.hpp:14
Definition: EulerStep.hpp:13
Definition: Abstract_Step.hpp:12
Definition: Abstract_LieProblem.hpp:6
Definition: EulerStepInternals.hpp:10
Definition: NOXVector.hpp:14