[petsc-dev] coding style
tmunson at mcs.anl.gov
Thu Aug 18 17:17:16 CDT 2016
For now, I am not proposing interface changes, but rather answering the
question of what types of problems do we need to support. We can
discuss actual interfaces later.
Note: you really only need one multiplier for the each of the
constraints (maybe interior-point methods are different).
The sign changes depending on the bound that is active.
>> I am not a huge fan of separating into equality constraints and range constraints,
>> but we can keep it. Having only equality constraints does make the problem much
>> easier to solve; no need to identify an active set.
>> The variable separation is needed for PDE constrained optimization. We may want
>> to separate constraints into state constraints, design constraints, and
>> joint state/design constraints. For now, I would only consider design
> This separation applies to any basic/nonbasic partition of decision variables, correct? It is needed for reduced-space methods; it is not needed for full-space methods. You could shim the full-space method with a reduced-space interface as well; I believe ROL already has this sort of interface. I think there is a lot of interest in reduced-space methods if they are robust and admit a wider range of formulations. LCL right now is too limited for the types of problems we want to solve (PDE-constrained plus additional design constraints that are not box constraints), and so we have to add ad hoc penalization methods to enforce these additional design constraints. This case was the motivation for adding SQPTR as a full-space method, and more methods need to be added. I’m also concerned based on the feedback I got at the IMA workshop on Frontiers in PDE-Constrained Optimization that LCL might not be performant enough of an algorithm to publish case studies for our applications. I can give more detailed feedback off-list on this point.
Its just a partitioning of the variables; solves can be reduced space or
I would argue that even for full space methods you will want to separate
the variables by blocks. If for nothing else than being able to
construct preconditioners when necessary.
If you buy into optimize then discretize, then my understanding is that
you need to use a different norm for measuring the norm of the gradient
of the Lagrangian with respect to the state variables.
More information about the petsc-dev