[petsc-users] VI: RS vs SS
Dener, Alp
adener at anl.gov
Tue Oct 29 09:30:22 CDT 2019
Hi Todd,
On October 29, 2019 at 7:15:50 AM, Munson, Todd (tmunson at mcs.anl.gov<mailto:tmunson at mcs.anl.gov>) wrote:
Hi,
Is the matrix for the linear PDE symmetric? If so, then the VI is equivalent to
finding the stationary points of a bound-constrained quadratic program and you
may want to use the TAO Newton Trust-Region or Line-Search methods for
bound-constrained optimization problems.
Alp: are there flags set when a problem is linear with a symmetric matrix? Maybe
we can do an internal reformulation in those cases to use the optimization tools.
The Mat object options can be set to encode symmetry information, but I don’t think there’s an existing way to encode whether a Jacobian or a Hessian is constant.
https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatSetOption.html
Is there an easy way to get the matrix and the constant vector for one of the
problems that fails or does not perform well? Typically, the TAO RSLS
methods will work well for the types of problems that you have and if
they are not, then I can go about finding out why and making some
improvements.
Monotone in this case is that your matrix is positive semidefinite; x^TMx >= 0 for
all x. For M symmetric, this is the same as M having all nonnegative eigenvalues.
Todd.
> On Oct 28, 2019, at 11:14 PM, Alexander Lindsay <alexlindsay239 at gmail.com> wrote:
>
> On Thu, Oct 24, 2019 at 4:52 AM Munson, Todd <tmunson at mcs.anl.gov> wrote:
>
> Hi,
>
> For these problems, how large are they? And are they linear or nonlinear?
> What I can do is use some fancier tools to help with what is going on with
> the solvers in certain cases.
>
> For the results cited above:
>
> 100 elements -> 101 dofs
> 1,000 elements -> 1,001 dofs
> 10,000 elements -> 10,001 dofs
>
> The PDE is linear with simple bounds constraints on the variable: 0 <= u <= 10
>
>
> For Barry's question, the matrix in the SS solver is a diagonal matrix plus
> a column scaling of the Jacobian.
>
> Note: semismooth, reduced space and interior point methods mainly work for
> problems that are strictly monotone.
>
> Dumb question, but monotone in what way?
>
> Thanks for the replies!
>
> Alex
>
> Finding out what is going on with
> your problems with some additional diagnostics might yield some
> insights.
>
> Todd.
>
> > On Oct 24, 2019, at 3:36 AM, Smith, Barry F. <bsmith at mcs.anl.gov> wrote:
> >
> >
> > See bottom
> >
> >
> >> On Oct 14, 2019, at 1:12 PM, Justin Chang via petsc-users <petsc-users at mcs.anl.gov> wrote:
> >>
> >> It might depend on your application, but for my stuff on maximum principles for advection-diffusion, I found RS to be much better than SS. Here’s the paper I wrote documenting the performance numbers I came across
> >>
> >> https://www.sciencedirect.com/science/article/pii/S0045782516316176
> >>
> >> Or the arXiV version:
> >>
> >> https://arxiv.org/pdf/1611.08758.pdf
> >>
> >>
> >> On Mon, Oct 14, 2019 at 1:07 PM Alexander Lindsay via petsc-users <petsc-users at mcs.anl.gov> wrote:
> >> I've been working on mechanical contact in MOOSE for a while, and it's led to me to think about general inequality constraint enforcement. I've been playing around with both `vinewtonssls` and `vinewtonrsls`. In Benson's and Munson's Flexible Complementarity Solvers paper, they were able to solve 73.7% of their problems with SS and 65.5% with RS which led them to conclude that the SS method is generally more robust. We have had at least one instance where a MOOSE user reported an order of magnitude reduction in non-linear iterations when switching from SS to RS. Moreover, when running the problem described in this issue, I get these results:
> >>
> >> num_elements = 100
> >> SS nl iterations = 53
> >> RS nl iterations = 22
> >>
> >> num_elements = 1000
> >> SS nl iterations = 123
> >> RS nl iterations = 140
> >>
> >> num_elements = 10000
> >> SS: fails to converge within 50 nl iterations during the second time step whether using a `basic` or `bt` line search
> >> RS: fails to converge within 50 nl iterations during the second time step whether using a `basic` or `bt` line search (although I believe `vinewtonrsls` performs a line-search that is guaranteed to keep the degrees of freedom within their bounds)
> >>
> >> So depending on the number of elements, it appears that either SS or RS may be more performant. I guess since I can get different relative performance with even the same PDE, it would be silly for me to ask for guidance on when to use which? In the conclusion of Benson's and Munson's paper, they mention using mesh sequencing for generating initial guesses on finer meshes. Does anyone know whether there have been any publications using PETSc/TAO and mesh sequencing for solving large VI problems?
> >>
> >> A related question: what needs to be done to allow SS to run with `-snes_mf_operator`? RS already appears to support the option.
> >
> > This may not make sense. Is the operator used in the SS solution process derivable from the function that is being optimized with the constraints or some strange scaled beast?
> >>
> >
>
—
Alp Dener
Postdoctoral Researcher
Argonne National Laboratory
https://www.anl.gov/profile/alp-dener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20191029/4ed8bd0a/attachment.html>
More information about the petsc-users
mailing list