1 #ifndef DEF_VARIATIONAL_IMPLICITEULERSTEP 2 #define DEF_VARIATIONAL_IMPLICITEULERSTEP 5 #include <NOX_Common.H> 7 #include <Teuchos_StandardCatchMacros.hpp> 11 template <
typename T_M,
17 Teuchos::RCP<Teuchos::ParameterList> m_solverParametersPtr;
18 Teuchos::RCP<NOX::StatusTest::Combo> m_statusTests;
19 Teuchos::RCP<NOXGroup<T_Q,1>> m_grp;
20 Teuchos::RCP<NOX::Solver::Generic> m_solver;
28 this->m_internals = internals;
31 this->m_solverParametersPtr = Teuchos::rcp(
new Teuchos::ParameterList);
32 Teuchos::ParameterList& solverParameters = *m_solverParametersPtr;
34 solverParameters.set(
"Nonlinear Solver",
"Line Search Based");
35 Teuchos::ParameterList& lineSearchParameters = solverParameters.sublist(
"Line Search");
36 lineSearchParameters.set(
"Method",
"Full Step");
38 Teuchos::RCP<NOX::StatusTest::NormF> statusTestA = Teuchos::rcp(
new NOX::StatusTest::NormF(1.0e-8,NOX::StatusTest::NormF::Unscaled));
39 Teuchos::RCP<NOX::StatusTest::MaxIters> statusTestB = Teuchos::rcp(
new NOX::StatusTest::MaxIters(500));
40 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); }
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: Abstract_Step.hpp:12
Definition: Abstract_LieProblem.hpp:6
Definition: ImplicitEulerStepInternals.hpp:11
Definition: ImplicitEulerStep.hpp:14
Definition: NOXVector.hpp:14