<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hi,<br>
      <br>
      Projecting inside the evaluation routines should be possible and,
      I guess, sufficient.<br>
      Where exactly should I modify the variables? <br>
      <br>
      For example<br>
      <br>
      &nbsp;&nbsp;&nbsp; <i><small>bool WLCNLP::eval_f( Index n, const Number* x, bool
          new_x, Number&amp; obj_value )<br>
        </small></i><br>
      does not let me modify x. How would one usually do that?<br>
      <br>
      Currently I am processing x as follows, in order to get the
      objective value:<br>
      <i><small><br>
          &nbsp;&nbsp;&nbsp; const Eigen::Map&lt; const Eigen::Matrix&lt; Number,
          Eigen::Dynamic, 1 &gt; &gt; x_map( x, n );<br>
          &nbsp;&nbsp;&nbsp; obj_value = system.evaluateEnergy(x_map);</small></i><br>
      <br>
      (I apologize for my very limited programming skills.)<br>
      <br>
      Best,<br>
      Knut.<br>
      <br>
      Am 02.04.2013 17:53, schrieb Stefan Vigerske:<br>
    </div>
    <blockquote cite="mid:515AFEDF.6050205@math.hu-berlin.de"
      type="cite">Hi,
      <br>
      <br>
      I don't think that this is possible without implementation
      somewhere deep in Ipopt.
      <br>
      Could you let the variables free and just project their values
      into [0,L] inside your evaluation routines?
      <br>
      <br>
      Stefan
      <br>
      <br>
      On 04/02/2013 01:45 PM, Knut Heidemann wrote:
      <br>
      <blockquote type="cite">Hi everyone,
        <br>
        <br>
        I am searching for the feature in IPOPT, which allows me to
        modify the
        <br>
        optimization variables in between iterations.
        <br>
        In particular, I want to apply periodic boundary conditions on
        my
        <br>
        problem, meaning that every time a variable leaves the interval
        [0,L], I
        <br>
        want to do the following:
        <br>
        <br>
        If x &lt; 0 : x+=L
        <br>
        If x &gt; L : x-=L
        <br>
        <br>
        Is there a way of realizing this such that none of the values
        stays
        <br>
        outside the interval in between two steps of the "lowest"
        optimization
        <br>
        level (inside the Newton type iteration)?
        <br>
        <br>
        Best,
        <br>
        Knut.
        <br>
        _______________________________________________
        <br>
        Ipopt mailing list
        <br>
        <a class="moz-txt-link-abbreviated" href="mailto:Ipopt@list.coin-or.org">Ipopt@list.coin-or.org</a>
        <br>
        <a class="moz-txt-link-freetext" href="http://list.coin-or.org/mailman/listinfo/ipopt">http://list.coin-or.org/mailman/listinfo/ipopt</a>
        <br>
        <br>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>