00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef PRE_PROCESS_BARRIER_LINE_SEARCH_STEP_H
00030 #define PRE_PROCESS_BARRIER_LINE_SEARCH_STEP_H
00031
00032 #include <list>
00033
00034 #include "MoochoPack_Types.hpp"
00035 #include "MoochoPack_LineSearchFilter_Step.hpp"
00036 #include "IterationPack_AlgorithmStep.hpp"
00037 #include "Teuchos_StandardCompositionMacros.hpp"
00038 #include "Teuchos_StandardMemberCompositionMacros.hpp"
00039
00040 #include "OptionsFromStreamPack_SetOptionsFromStreamNode.hpp"
00041 #include "OptionsFromStreamPack_SetOptionsToTargetBase.hpp"
00042
00043 namespace MoochoPack {
00044
00053 class PreProcessBarrierLineSearch_Step
00054 : public IterationPack::AlgorithmStep
00055 {
00056 public:
00057
00060
00065 STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, tau_boundary_frac );
00066
00069 PreProcessBarrierLineSearch_Step(
00070 Teuchos::RCP<NLPInterfacePack::NLPBarrier> barrier_nlp,
00071 const value_type tau_boundary_frac = 0.99
00072 );
00074
00078 bool do_step(Algorithm& algo, poss_type step_poss, IterationPack::EDoStepType type
00079 , poss_type assoc_step_poss);
00080
00081
00082 void print_step( const IterationPack::Algorithm& algo, poss_type step_poss, IterationPack::EDoStepType type
00083 , poss_type assoc_step_poss, std::ostream& out, const std::string& leading_str ) const;
00085
00086 private:
00087
00088
00089
00090
00091 Teuchos::RCP<NLPInterfacePack::NLPBarrier> barrier_nlp_;
00092 CastIQMember< Filter_T > filter_;
00093
00094 };
00095
00096
00097 class PreProcessBarrierLineSearch_StepSetOptions
00098 : public OptionsFromStreamPack::SetOptionsFromStreamNode,
00099 public OptionsFromStreamPack::SetOptionsToTargetBase< PreProcessBarrierLineSearch_Step >
00100 {
00101 public:
00102 PreProcessBarrierLineSearch_StepSetOptions(
00103 PreProcessBarrierLineSearch_Step* target = 0,
00104 const char opt_grp_name[] = "PreProcessBarrierLineSearch" );
00105
00106 protected:
00107
00109 void setOption( int option_num, const std::string& option_value );
00110
00111 };
00112
00113 }
00114
00115 #endif // #if !defined PRE_PROCESS_BARRIER_LINE_SEARCH_STEP_H