[petsc-users] nonlinear eigenvalue problem with structured mesh

Matthew Knepley knepley at gmail.com
Tue Jul 7 09:38:00 CDT 2015


On Tue, Jul 7, 2015 at 2:06 AM, Jose E. Roman <jroman at dsic.upv.es> wrote:

>
> El 07/07/2015, a las 03:34, Matthew Knepley escribió:
>
> > On Mon, Jul 6, 2015 at 7:43 PM, Gideon Simpson <gideon.simpson at gmail.com>
> wrote:
> > I have a nonlinear eigenvalue problem for a system of equations, of the
> form,
> >
> > -Delta u + f(u) = E * u,
> >
> > where E is my nonlinear eigenvalue parameter, and u and f are vector
> valued.
> >
> > I thus have the following two things to contend with:
> >
> > 1.  E is a scalar which needs to be distributed across all the processes
> when the right hand side is formed
> >
> > 2.  I would like to be able to use a da to manage the spatial and
> multicomponent nature of u
> >
> > Obviously the Vec that my nonlinear solver is going to search for has to
> store both bits of data.  Is there a clever petsc way to handle this, or
> will I need to do all the indexing and broadcasting by hand?
> >
> >> My first suggestion would be to investigate SLEPc, which does have some
> support for nonlinear
> >> eigenvalue problems. Failing that, E normally comes out of the
> algorithm as the result of some
> >> vector algebra which automatically distributes the constant (like
> VecDot).
>
> Nonlinear eigenvalue problems can be generally classified in two groups:
> those that depend nonlinearly on the eigenvalue parameter T(lambda)*x=0,
> and those that are nonlinear with respect to the eigenvector
> H(X)*X=X*Lambda. It seems that Gideon's problem belongs to the seocond type.
>
> Currently, SLEPc provides solvers for the first type only. We do not
> foresee to have solvers for the latter type anytime soon.
>
> I guess what Gideon needs to do is compute E from an initial guess of u,
> then use SNES to update u, and iterate until a self-consistent state is
> reached.
>

Thanks for the clarification, Jose. I think what you could do is to use
SLEPc as the subsolver for each
eigenproblem with frozen coefficients (so this would be a type of 'Picard'
method according to Jed or
an Inexact Newton Method according to me) and then update using SNES,
exactly as Jose says above.
Even if you do not know the actual Jacobian, you can do the obvious thing
in your FormJacobian, which
is to just reassemble the matrix with the latest 'u' and you will get
linear convergence if its contractive. This
also allows you to try out the nice line searches.

  Thanks,

     Matt


> Jose
>
>
> >>
> >>   Thanks,
> >>
> >>      Matt
> >>
> > -gideon
> >
> >
> >
> >
> > --
> > What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> > -- Norbert Wiener
>
>


-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150707/36071db2/attachment.html>


More information about the petsc-users mailing list