Hi Pierre, We have not tested PDIPM without equality (or inequality) constraints. I’ll take a look at this over the weekend.
This is the first version of PDIPM and there are many bells and whistles that need to be added before making PDIPM fully functional for solving large problems. We’ve internally discussed the different pieces needed to make it robust, but we haven’t had time to work on it yet. Thanks, Shri From: Pierre Jolivet <[email protected]> Date: Wednesday, August 5, 2020 at 2:11 AM To: "Abhyankar, Shrirang G" <[email protected]> Cc: "Dener, Alp" <[email protected]>, PETSc Development <[email protected]> Subject: Re: [petsc-dev] TAOPDIPM Sorry for these questions, I’m trying to help the said user transitioning from IPOPT over to Tao, and since I’m no expert I run into a bunch of errors myself. For example, if I run PDIPM without equality constraint, I now get: [0]PETSC ERROR: VecSet() line 522 in src/vec/vec/interface/rvector.c Null Object: Parameter # 1 Indeed, I can see that lambdae is conditionally created line 815, but always used in VecSet() line 522. I think the method is general enough to handle cases without such constraints, and should not thus fail here, right? You should be able to reproduce this by commenting all DE/De/EqualityConstraints/JacobianEquality code from ex1.c. Thanks, Pierre On 5 Aug 2020, at 5:27 AM, Abhyankar, Shrirang G <[email protected]<mailto:[email protected]>> wrote: Pierre, Thanks for catching this issue. As Alp pointed out, the issue was because the tolerance was not set correctly. @Alp: Let me know if I can help you with the patch. Thanks, Shri From: petsc-dev <[email protected]<mailto:[email protected]>> on behalf of Pierre Jolivet <[email protected]<mailto:[email protected]>> Date: Tuesday, August 4, 2020 at 1:46 PM To: "Dener, Alp" <[email protected]<mailto:[email protected]>> Cc: PETSc Development <[email protected]<mailto:[email protected]>> Subject: Re: [petsc-dev] TAOPDIPM Thanks to you both, I’ll forward this to my user. Pierre On 4 Aug 2020, at 7:30 PM, Dener, Alp <[email protected]<mailto:[email protected]>> wrote: Hi Pierre, This is indeed an issue with TAO default tolerances. Specifically it has to do with constraint tolerances. The default value is an exact zero. The problem should still work with line 89 commented out. Our default gradient tolerance is 1e-8. In your case, commenting out line 90 is causing the solver to try to converge constraints to exact zero and it cannot. I will get a patch out for this within the week but in the meantime please ensure that the constraint tolerances are set for any constrained problem. Thank you! — Alp On Aug 4, 2020, at 12:24 PM, Munson, Todd via petsc-dev <[email protected]<mailto:[email protected]>> wrote: Hi Pierre, I would say the answer to that question is "no, its not expected". We will look into fixing it. It seems like the default tolerances are being set to zero and the result is an inability to satisfy the constraints or gradient of the Lagrangian to that small of a tolerance. Thanks for point this out to us! We will get it resolved. Thanks, Todd. On 8/4/20, 12:12 PM, "petsc-dev on behalf of Pierre Jolivet" <[email protected]<mailto:[email protected]> on behalf of [email protected]<mailto:[email protected]>> wrote: Hello, If I comment line 89 and 90 of src/tao/constrained/tutorials/ex1.c from master, the example deadlocks with a single process. Is this expected? Thanks, Pierre $ ./ex1 -tao_monitor ---- Constrained Problem ----- Solution should be f(1,1)=-2 0 TAO, Function value: 8., Residual: 8.48528 1 TAO, Function value: 1.28532, Residual: 10.7411 2 TAO, Function value: -2.56703, Residual: 1.87847 3 TAO, Function value: -2.03161, Residual: 0.12881 4 TAO, Function value: -1.99961, Residual: 0.0450855 5 TAO, Function value: -1.99993, Residual: 0.000916939 6 TAO, Function value: -1.99999, Residual: 6.69184e-05 7 TAO, Function value: -2., Residual: 7.15427e-06 8 TAO, Function value: -2., Residual: 7.15779e-07 9 TAO, Function value: -2., Residual: 7.15777e-08 10 TAO, Function value: -2., Residual: 7.15777e-09 11 TAO, Function value: -2., Residual: 7.15779e-10 12 TAO, Function value: -2., Residual: 7.15775e-11 13 TAO, Function value: -2., Residual: 7.1599e-12 14 TAO, Function value: -2., Residual: 7.1599e-13 15 TAO, Function value: -2., Residual: 7.22085e-14 16 TAO, Function value: -2., Residual: 6.44626e-15 17 TAO, Function value: -2., Residual: 1.00751e-15 18 TAO, Function value: -2., Residual: 1.70295e-17 19 TAO, Function value: -2., Residual: 1.70295e-18 20 TAO, Function value: -2., Residual: 1.70295e-19 21 TAO, Function value: -2., Residual: 1.70295e-20 22 TAO, Function value: -2., Residual: 1.70295e-21 23 TAO, Function value: -2., Residual: 1.70295e-22 24 TAO, Function value: -2., Residual: 1.70295e-23 25 TAO, Function value: -2., Residual: 1.70295e-24 26 TAO, Function value: -2., Residual: 1.70295e-25 27 TAO, Function value: -2., Residual: 1.70295e-26 28 TAO, Function value: -2., Residual: 1.70295e-27 29 TAO, Function value: -2., Residual: 1.70295e-28 30 TAO, Function value: -2., Residual: 1.70295e-29 31 TAO, Function value: -2., Residual: 1.70295e-30 32 TAO, Function value: -2., Residual: 1.70295e-31 33 TAO, Function value: -2., Residual: 1.70295e-32 34 TAO, Function value: -2., Residual: 1.70295e-33 35 TAO, Function value: -2., Residual: 1.70295e-34 36 TAO, Function value: -2., Residual: 1.70295e-35 37 TAO, Function value: -2., Residual: 1.70295e-36 38 TAO, Function value: -2., Residual: 1.70295e-37 39 TAO, Function value: -2., Residual: 1.70295e-38 40 TAO, Function value: -2., Residual: 1.70295e-39 41 TAO, Function value: -2., Residual: 1.70295e-40 42 TAO, Function value: -2., Residual: 1.70295e-41 43 TAO, Function value: -2., Residual: 1.70295e-42 44 TAO, Function value: -2., Residual: 1.70295e-43 45 TAO, Function value: -2., Residual: 1.70295e-44 46 TAO, Function value: -2., Residual: 1.70295e-45 47 TAO, Function value: -2., Residual: 1.70295e-46 48 TAO, Function value: -2., Residual: 1.70295e-47 49 TAO, Function value: -2., Residual: 1.70295e-48 50 TAO, Function value: -2., Residual: 1.70295e-49 51 TAO, Function value: -2., Residual: 1.70295e-50 52 TAO, Function value: -2., Residual: 1.70295e-51 ^C
