MoochoPack : Framework for Large-Scale Optimization Algorithms  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
MoochoPack_IpState.cpp
1 // @HEADER
2 // ***********************************************************************
3 //
4 // Moocho: Multi-functional Object-Oriented arCHitecture for Optimization
5 // Copyright (2003) Sandia Corporation
6 //
7 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8 // license for use of this work by or on behalf of the U.S. Government.
9 //
10 // Redistribution and use in source and binary forms, with or without
11 // modification, are permitted provided that the following conditions are
12 // met:
13 //
14 // 1. Redistributions of source code must retain the above copyright
15 // notice, this list of conditions and the following disclaimer.
16 //
17 // 2. Redistributions in binary form must reproduce the above copyright
18 // notice, this list of conditions and the following disclaimer in the
19 // documentation and/or other materials provided with the distribution.
20 //
21 // 3. Neither the name of the Corporation nor the names of the
22 // contributors may be used to endorse or promote products derived from
23 // this software without specific prior written permission.
24 //
25 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 //
37 // Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov)
38 //
39 // ***********************************************************************
40 // @HEADER
41 //
42 #include "MoochoPack_IpState.hpp"
43 #include "AbstractLinAlgPack_MatrixSymDiagStd.hpp"
44 
45 // Iteration Quantity Strings
46 const std::string MoochoPack::barrier_parameter_name = "barrier_parameter";
47 const std::string MoochoPack::barrier_obj_name = "barrier_obj";
48 const std::string MoochoPack::grad_barrier_obj_name = "grad_barrier_obj";
49 const std::string MoochoPack::e_tol_name = "e_tol";
50 const std::string MoochoPack::comp_err_mu_name = "comp_err_mu";
51 const std::string MoochoPack::Vu_name = "Vu";
52 const std::string MoochoPack::Vl_name = "Vl";
53 const std::string MoochoPack::invXu_name = "invXu";
54 const std::string MoochoPack::invXl_name = "invXl";
55 const std::string MoochoPack::rHB_name = "rHB";
56 const std::string MoochoPack::B_name = "B";
57 const std::string MoochoPack::Sigma_name = "Sigma";
58 const std::string MoochoPack::w_sigma_name = "w_sigma";
59 const std::string MoochoPack::dvl_name = "dvl";
60 const std::string MoochoPack::dvu_name = "dvu";
61 const std::string MoochoPack::alpha_vl_name = "alpha_vl";
62 const std::string MoochoPack::alpha_vu_name = "alpha_vu";
63 
64 namespace MoochoPack {
65 
66 IpState::IpState(
67  const decomp_sys_ptr_t& decomp_sys
68  ,const vec_space_ptr_t& space_x
69  ,const vec_space_ptr_t& space_c
70  ,const vec_space_ptr_t& space_range
71  ,const vec_space_ptr_t& space_null
72  )
73  :
74  NLPAlgoState(decomp_sys, space_x, space_c, space_range, space_null)
75  {
76  }
77 
78 IpState::~IpState()
79  {
80  }
81 
83 
84 STATE_SCALAR_IQ_DEF(IpState, barrier_parameter, barrier_parameter_name)
85 
86 STATE_SCALAR_IQ_DEF(IpState, barrier_obj, barrier_obj_name)
87 
88 STATE_VECTOR_IQ_DEF(IpState, grad_barrier_obj, grad_barrier_obj_name, get_space_x(), VST_SPACE_X)
89 
90 STATE_SCALAR_IQ_DEF(IpState, e_tol, e_tol_name)
91 
92 STATE_SCALAR_IQ_DEF(IpState, comp_err_mu, comp_err_mu_name)
93 
94 STATE_IQ_DEF(IpState, MatrixSymDiagStd, Vu, Vu_name)
95 
96 STATE_IQ_DEF(IpState, MatrixSymDiagStd, Vl, Vl_name)
97 
98 STATE_IQ_DEF(IpState, MatrixSymDiagStd, invXu, invXu_name)
99 
100 STATE_IQ_DEF(IpState, MatrixSymDiagStd, invXl, invXl_name)
101 
102 STATE_IQ_DEF(IpState, MatrixSymOp, rHB, rHB_name)
103 
104 STATE_IQ_DEF(IpState, MatrixSymOp, B, B_name)
105 
106 STATE_IQ_DEF(IpState, MatrixSymDiagStd, Sigma, Sigma_name)
107 
108 STATE_VECTOR_IQ_DEF(IpState, w_sigma, w_sigma_name, get_space_null(), VST_SPACE_NULL )
109 STATE_VECTOR_IQ_DEF(IpState, dvl, dvl_name, get_space_x(), VST_SPACE_X)
110 STATE_VECTOR_IQ_DEF(IpState, dvu, dvu_name, get_space_x(), VST_SPACE_X)
111 
112 STATE_SCALAR_IQ_DEF(IpState, alpha_vl, alpha_vl_name)
113 STATE_SCALAR_IQ_DEF(IpState, alpha_vu, alpha_vu_name)
114 } // end namespace MoochoPack
#define STATE_SCALAR_IQ_DEF(CLASS, NAME, NAME_STR)
Add class definitions for a value_type iteration quantity.
#define STATE_VECTOR_IQ_DEF(CLASS, NAME, NAME_STR, VEC_SPC, VEC_RN)
Add class definitions for a VectorMutable iteration quantity.
#define STATE_IQ_DEF(CLASS, TYPE, NAME, NAME_STR)
Add class definitions for an arbitrary iteration quantity.