Пример #1
0
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));
}
Пример #3
0
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
}