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 UPDATE_BARRIER_PARAMETER_STEP_H
00030 #define UPDATE_BARRIER_PARAMETER_STEP_H
00031
00032 #include "MoochoPack_Types.hpp"
00033 #include "IterationPack_AlgorithmStep.hpp"
00034 #include "Teuchos_StandardCompositionMacros.hpp"
00035 #include "Teuchos_StandardMemberCompositionMacros.hpp"
00036
00037 #include "OptionsFromStreamPack_SetOptionsFromStreamNode.hpp"
00038 #include "OptionsFromStreamPack_SetOptionsToTargetBase.hpp"
00039
00040 namespace MoochoPack {
00041
00048 class UpdateBarrierParameter_Step
00049 : public IterationPack::AlgorithmStep
00050 {
00051 public:
00052
00055
00060 STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, init_barrier_parameter );
00061
00066 STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, tau_mu );
00067
00072 STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, theta_mu );
00073
00078 STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, tau_epsilon );
00079
00084 STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, theta_epsilon );
00085
00089 STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, e_tol_max );
00090
00093 UpdateBarrierParameter_Step(
00094 const value_type init_barrier_parameter = 0.1,
00095 const value_type tau_mu = 0.2,
00096 const value_type theta_mu = 1.5,
00097 const value_type tau_epsilon = 10,
00098 const value_type theta_epsilon = 1.1,
00099 const value_type e_tol_max = 1000
00100 );
00102
00106 bool do_step(Algorithm& algo, poss_type step_poss, IterationPack::EDoStepType type
00107 , poss_type assoc_step_poss);
00108
00109
00110 void print_step( const IterationPack::Algorithm& algo, poss_type step_poss, IterationPack::EDoStepType type
00111 , poss_type assoc_step_poss, std::ostream& out, const std::string& leading_str ) const;
00113
00114 private:
00115 value_type Calculate_e_tol(value_type mu);
00116
00117 };
00118
00119
00120 class UpdateBarrierParameter_StepSetOptions
00121 : public OptionsFromStreamPack::SetOptionsFromStreamNode,
00122 public OptionsFromStreamPack::SetOptionsToTargetBase< UpdateBarrierParameter_Step >
00123 {
00124 public:
00125 UpdateBarrierParameter_StepSetOptions(
00126 UpdateBarrierParameter_Step* target = 0,
00127 const char opt_grp_name[] = "UpdateBarrierParameter" );
00128
00129 protected:
00130
00132 void setOption( int option_num, const std::string& option_value );
00133
00134 };
00135
00136 }
00137
00138 #endif // #if !defined UPDATE_BARRIER_PARAMETER_STEP_H