On Sat, Jul 25, 2015 at 2:56 PM, Gideon Simpson <[email protected]> wrote:
> Are there any tools for constructing the Jacobian of a function when using > DMComposite and DMRedundant? > No good ones right now, since it would be a sparse Jacobian + a low rank update. We have talked about putting this in forever, but no one was screaming for it. Matt > -gideon > > On Jul 13, 2015, at 8:25 PM, Barry Smith <[email protected]> wrote: > > > You can use a DMCOMPOSITE with a DMDA and a DMREDUNDANT see > src/snes/examples/tutorials/ex21.c It is intended for this type of > situation. > > Barry > > > On Jul 13, 2015, at 4:05 PM, Gideon Simpson <[email protected]> > wrote: > > Thanks for the suggestions. Suppose though that I wanted to avoid using a > self-consistent approach and just attack the full nonlinear problem. Is > there a “smart” way to handle my data where the Vec q, which stores both > the function on the mesh, and the eigenvalue parameter. Suppose the > eigenvalue parameter was in the last entry of the q vector, and the N-1 > entries represnted the solution. Is there a way to mask this sub-vector so > it can be manipulated with a da? > > -gideon > > On Jul 7, 2015, at 10:38 AM, Matthew Knepley <[email protected]> wrote: > > On Tue, Jul 7, 2015 at 2:06 AM, Jose E. Roman <[email protected]> wrote: > > El 07/07/2015, a las 03:34, Matthew Knepley escribió: > > On Mon, Jul 6, 2015 at 7:43 PM, Gideon Simpson <[email protected]> > 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 > > > > > -- 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
