45 #include "MoochoPack_MeritFunc_DummyUpdate_Step.hpp"
46 #include "MoochoPack_moocho_algo_conversion.hpp"
47 #include "ConstrainedOptPack_MeritFuncNLP.hpp"
48 #include "ConstrainedOptPack_MeritFuncNLPDirecDeriv.hpp"
49 #include "IterationPack_print_algorithm_step.hpp"
50 #include "AbstractLinAlgPack_VectorMutable.hpp"
51 #include "AbstractLinAlgPack_VectorOut.hpp"
52 #include "Teuchos_dyn_cast.hpp"
54 namespace MoochoPack {
62 NLPAlgo &algo = rsqp_algo(_algo);
65 EJournalOutputLevel olevel = algo.algo_cntr().journal_output_level();
69 if( static_cast<int>(olevel) >= static_cast<int>(PRINT_ALGORITHM_STEPS) ) {
70 using IterationPack::print_algorithm_step;
71 print_algorithm_step( algo, step_poss, type, assoc_step_poss, out );
74 IterQuantityAccess<MeritFuncNLP>
75 &merit_func_nlp_iq = s.merit_func_nlp();
77 if(!merit_func_nlp_iq.updated_k(0)) {
78 const int last_updated_k = merit_func_nlp_iq.last_updated();
80 &merit_func_nlp_k = ( last_updated_k != IterQuantity::NONE_UPDATED
81 ? merit_func_nlp_iq.set_k(0,last_updated_k)
82 : merit_func_nlp_iq.set_k(0) );
83 MeritFuncNLPDirecDeriv
84 &direc_deriv =
dyn_cast<MeritFuncNLPDirecDeriv>(merit_func_nlp_k);
86 direc_deriv.calc_deriv(
102 ,
poss_type assoc_step_poss, std::ostream& out,
const std::string& L
106 << L <<
"*** Simply sets the current merit function value for unconstrained linesearch\n"
107 << L <<
"if merit_func_nlp_k not updated set merit_func_nlp_k = merit_func_nlp_k(last_updated)\n";
T_To & dyn_cast(T_From &from)
rSQP Algorithm control class.
bool do_step(Algorithm &algo, poss_type step_poss, IterationPack::EDoStepType type, poss_type assoc_step_poss)
virtual std::ostream & journal_out() const
Reduced space SQP state encapsulation interface.
AlgorithmTracker & track()
NLPAlgoState & rsqp_state()
<<std aggr>="">> members for algo_cntr
void print_step(const Algorithm &algo, poss_type step_poss, IterationPack::EDoStepType type, poss_type assoc_step_poss, std::ostream &out, const std::string &leading_str) const