IpoptEngine::IpoptEngine() : bndChanged_(false), consChanged_(false), env_(EnvPtr()), etol_(1e-7), myapp_(0), mynlp_(0), prepareWs_(false), sol_(IpoptSolPtr()), // NULL stats_(0), strBr_(false), timer_(0), useWs_(false), ws_(IpoptWarmStartPtr()) // NULL { #if defined(USE_IPOPT) problem_ = ProblemPtr(); // NULL logger_ = (LoggerPtr) new Logger(LogInfo); myapp_ = new Ipopt::IpoptApplication(); myapp_->Options()->SetIntegerValue("print_level", 0); //myapp_->Options()->SetNumericValue("tol", 1e-7); //myapp_->Options()->SetIntegerValue("max_iter", 30); //myapp_->Options()->SetStringValue("mu_strategy", "adaptive"); //myapp_->Options()->SetStringValue("output_file", "ipopt.out"); //myapp_->Options()->SetStringValue("hessian_approximation", "limited-memory"); //myapp_->Initialize(""); status_ = EngineError; #else assert(!"ipopt engine can only be called when compiled with ipopt!") #endif }
ProblemPtr DirichletProblem::getCoarsGridProblem( Index nxNew, Index nyNew, Precision hxNew, Precision hyNew) const { return ProblemPtr( new DirichletProblem(stencil_,getOrigin(),nxNew,nyNew,hxNew,hyNew)); }
IpoptEngine::IpoptEngine(EnvPtr env) : bndChanged_(false), consChanged_(false), env_(env), etol_(1e-7), myapp_(0), mynlp_(0), sol_(IpoptSolPtr()), // NULL strBr_(false), timer_(0), ws_(IpoptWarmStartPtr()) // NULL { #if defined(USE_IPOPT) problem_ = ProblemPtr(); // NULL logger_ = (LoggerPtr) new Logger((LogLevel) env->getOptions()-> findInt("engine_log_level")->getValue()); myapp_ = new Ipopt::IpoptApplication(); setOptionsForRepeatedSolve(); status_ = EngineError; if (env->getOptions()->findBool("use_warmstart")->getValue()==true) { prepareWs_ = true; useWs_ = true; } else { prepareWs_ = false; useWs_ = false; } timer_ = env->getNewTimer(); stats_ = new IpoptStats(); stats_->calls = 0; stats_->strCalls = 0; stats_->time = 0; stats_->ptime = 0; stats_->strTime = 0; stats_->iters = 0; stats_->strIters = 0; #else assert(!"ipopt engine can only be called when compiled with ipopt!") #endif }