[petsc-users] nonlinear eigenvalue problem with structured mesh
Jose E. Roman
jroman at dsic.upv.es
Tue Jul 7 02:06:27 CDT 2015
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.
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
More information about the petsc-users
mailing list