Are there any tools for constructing the Jacobian of a function when using 
DMComposite and DMRedundant?

-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
>> 
> 

Reply via email to