I’m getting the following errors:

[1]PETSC ERROR: Argument out of range
[1]PETSC ERROR: Inserting a new nonzero (40003, 0) into matrix

Could this have to do with me using the DMComposite with one da holding the 
scalar parameters and the other holding the field variables?

-gideon

> On Aug 27, 2015, at 10:15 PM, Matthew Knepley <[email protected]> wrote:
> 
> On Thu, Aug 27, 2015 at 9:11 PM, Gideon Simpson <[email protected] 
> <mailto:[email protected]>> wrote:
> HI Barry,
> 
> Nope, I’m not doing any grid sequencing. Clearly that makes a lot of sense, 
> to solve on a spatially coarse mesh for the field variables, interpolate onto 
> the finer mesh, and then solve again.  I’m not entirely clear on the 
> practical implementation
> 
> SNES should do this automatically using -snes_grid_sequence <k>.  If this 
> does not work, complain. Loudly.
> 
>    Matt
> 
> -gideon
> 
>> On Aug 27, 2015, at 10:02 PM, Barry Smith <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> 
>>   Gideon,
>> 
>>    Are you using grid sequencing? Simply solve on a coarse grid, interpolate 
>> u1 and u2 to a once refined version of the grid and use that plus the mu lam 
>> as initial guess for the next level. Repeat to as fine a grid as you want. 
>> You can use DMRefine() and DMGetInterpolation() to get the interpolation 
>> needed to interpolate from the coarse to finer mesh.
>> 
>>    Then and only then you can use multigrid (with or without fieldsplit) to 
>> solve the linear problems for finer meshes. Once you have the grid 
>> sequencing working we can help you with this.
>> 
>>   Barry
>> 
>>> On Aug 27, 2015, at 7:00 PM, Gideon Simpson <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>> I’m working on a problem which, morally, can be posed as a system of 
>>> coupled semi linear elliptic PDEs together with unknown nonlinear 
>>> eigenvalue parameters, loosely, of the form
>>> 
>>> -\Delta u_1 + f(u_1, u_2) = lam * u1 - mu * du2/dx 
>>> -\Delta u_2 + g(u_1, u_2) = lam * u2 + mu * du1/dx 
>>> 
>>> Currently, I have it set up with a DMComposite with two sub da’s, one for 
>>> the parameters (lam, mu), and one for the vector field (u_1, u_2) on the 
>>> mesh.  I have had success in solving this as a fully coupled system with 
>>> SNES + sparse direct solvers (MUMPS, SuperLU).
>>> 
>>> Lately, I am finding that, when the mesh resolution gets fine enough (i.e.  
>>> 10^6-10^8 lattice points), my SNES gets stuck with the function norm = 
>>> O(10^{-4}),  eventually returning reason -6 (failed line search).
>>> 
>>> Perhaps there is another way around the above problem, but one thing I was 
>>> thinking of trying would be to get away from direct solvers, and I was 
>>> hoping to use field split for this.  However, it’s a bit beyond what I’ve 
>>> seen examples for because it has 2 types of variables: scalar parameters 
>>> which appear globally in the system and vector valued field variables.  Any 
>>> suggestions on how to get started?
>>> 
>>> -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

Reply via email to