53 int main(
int argc,
char *argv[]) {
67 Teuchos::GlobalMPISession mpiSession(&argc, &argv);
69 int iprint = argc - 1;
70 RCP<std::ostream> outStream;
71 Teuchos::oblackholestream bhs;
73 outStream = rcp(&std::cout,
false);
75 outStream = rcp(&bhs,
false);
81 RCP<V> x = ROL::ZOO::getInitialGuess_HS24<RealT>();
82 RCP<V> xs = ROL::ZOO::getSolution_HS24<RealT>();
83 RCP<V> inmul = ROL::ZOO::getInequalityMultiplier_HS24<RealT>();
85 RCP<BC> bnd = ROL::ZOO::getBoundConstraint_HS24<RealT>();
86 RCP<OBJ> obj = ROL::ZOO::getObjective_HS24<RealT>();
87 RCP<INEQ> incon = ROL::ZOO::getInequalityConstraint_HS24<RealT>();
89 RCP<Teuchos::ParameterList> parlist = rcp(
new Teuchos::ParameterList );
91 std::string stepname =
"Interior Point";
97 parlist->sublist(
"Step").sublist(
"Interior Point").set(
"Initial Barrier Penalty",mu);
98 parlist->sublist(
"Step").sublist(
"Interior Point").set(
"Minimium Barrier Penalty",1e-8);
99 parlist->sublist(
"Step").sublist(
"Interior Point").set(
"Barrier Penalty Reduction Factor",factor);
100 parlist->sublist(
"Step").sublist(
"Interior Point").set(
"Subproblem Iteration Limit",30);
102 parlist->sublist(
"Step").sublist(
"Composite Step").sublist(
"Optimality System Solver").set(
"Nominal Relative Tolerance",1.e-4);
103 parlist->sublist(
"Step").sublist(
"Composite Step").sublist(
"Optimality System Solver").set(
"Fix Tolerance",
true);
104 parlist->sublist(
"Step").sublist(
"Composite Step").sublist(
"Tangential Subproblem Solver").set(
"Iteration Limit",20);
105 parlist->sublist(
"Step").sublist(
"Composite Step").sublist(
"Tangential Subproblem Solver").set(
"Relative Tolerance",1e-2);
106 parlist->sublist(
"Step").sublist(
"Composite Step").set(
"Output Level",0);
108 parlist->sublist(
"Status Test").set(
"Gradient Tolerance",1.e-12);
109 parlist->sublist(
"Status Test").set(
"Constraint Tolerance",1.e-8);
110 parlist->sublist(
"Status Test").set(
"Step Tolerance",1.e-8);
111 parlist->sublist(
"Status Test").set(
"Iteration Limit",100);
116 RCP<V> d = x->clone();
123 RCP<ROL::Algorithm<RealT> > algo;
126 algo->run(problem,
true,*outStream);
130 if( x->norm()>= 1e-4 )
136 catch (std::logic_error err) {
137 *outStream << err.what() <<
"\n";
142 std::cout <<
"End Result: TEST FAILED\n";
144 std::cout <<
"End Result: TEST PASSED\n";
Provides the interface to evaluate objective functions.
void RandomizeVector(Vector< Real > &x, const Real &lower=0.0, const Real &upper=1.0)
Fill a ROL::Vector with uniformly-distributed random numbers in the interval [lower,upper].
int main(int argc, char *argv[])
Defines the linear algebra or vector space interface.
Provides an interface to run optimization algorithms.
Contains definitions for W. Hock and K. Schittkowski 24th test problem which contains bound and inequ...
Provides the interface to apply upper and lower bound constraints.
Provides a unique argument for inequality constraints, which otherwise behave exactly as equality con...