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 REDUCED_HESSIAN_SERIALIZATION_STEP_HPP
00030 #define REDUCED_HESSIAN_SERIALIZATION_STEP_HPP
00031
00032 #include "MoochoPack_ReducedHessianSecantUpdate_Strategy.hpp"
00033 #include "MoochoPack_quasi_newton_stats.hpp"
00034 #include "IterationPack_AlgorithmStep.hpp"
00035 #include "Teuchos_StandardCompositionMacros.hpp"
00036 #include "Teuchos_StandardMemberCompositionMacros.hpp"
00037
00038 namespace MoochoPack {
00039
00044 class ReducedHessianSerialization_Step
00045 : public IterationPack::AlgorithmStep
00046 {
00047 public:
00048
00050 STANDARD_MEMBER_COMPOSITION_MEMBERS( std::string, reduced_hessian_input_file_name );
00051
00053 STANDARD_MEMBER_COMPOSITION_MEMBERS( std::string, reduced_hessian_output_file_name );
00054
00056 ReducedHessianSerialization_Step(
00057 const std::string &reduced_hessian_input_file_name = "reduced_hessian.in"
00058 ,const std::string &reduced_hessian_output_file_name = "reduced_hessian.out"
00059 );
00060
00064 bool do_step(
00065 Algorithm& algo, poss_type step_poss, IterationPack::EDoStepType type
00066 ,poss_type assoc_step_poss
00067 );
00069 void finalize_step(
00070 Algorithm& algo, poss_type step_poss, IterationPack::EDoStepType type
00071 ,poss_type assoc_step_poss
00072 );
00074 void print_step(
00075 const Algorithm& algo, poss_type step_poss, IterationPack::EDoStepType type
00076 ,poss_type assoc_step_poss, std::ostream& out, const std::string& leading_str
00077 ) const;
00079
00080 };
00081
00082 }
00083
00084 #endif // REDUCED_HESSIAN_SERIALIZATION_STEP_HPP