I suspect this is not a petsc issue per se. Shall we migrate this to the 
firedrake list?

Lawrence 

> On 29 Nov 2016, at 07:40, Justin Chang <[email protected]> wrote:
> 
> FWIW I ended up doing this:
> 
> rs_solver.setDM(W._dm())
> 
> and was left with this error:
> 
> Traceback (most recent call last):
>   File "sphere.py", line 180, in <module>
>     virs()
>   File "sphere.py", line 163, in virs
>     rs_solver.solve(None,sol_vec)
>   File "PETSc/SNES.pyx", line 537, in petsc4py.PETSc.SNES.solve 
> (src/petsc4py.PETSc.c:170012)
> petsc4py.PETSc.Error: error code 75
> [0] SNESSolve() line 4060 in 
> /private/var/folders/92/1kh0g4kn2z50fnwsmf8s269w0000gn/T/pip-gYEj0p-build/src/snes/interface/snes.c
> [0] SNESSolve_VINEWTONRSLS() line 424 in 
> /private/var/folders/92/1kh0g4kn2z50fnwsmf8s269w0000gn/T/pip-gYEj0p-build/src/snes/impls/vi/rs/virs.c
> [0] MatGetSubMatrix() line 7929 in 
> /private/var/folders/92/1kh0g4kn2z50fnwsmf8s269w0000gn/T/pip-gYEj0p-build/src/mat/interface/matrix.c
> [0] MatGetSubMatrix_Nest() line 451 in 
> /private/var/folders/92/1kh0g4kn2z50fnwsmf8s269w0000gn/T/pip-gYEj0p-build/src/mat/impls/nest/matnest.c
> [0] MatNestFindSubMat() line 424 in 
> /private/var/folders/92/1kh0g4kn2z50fnwsmf8s269w0000gn/T/pip-gYEj0p-build/src/mat/impls/nest/matnest.c
> [0] MatNestFindIS() line 363 in 
> /private/var/folders/92/1kh0g4kn2z50fnwsmf8s269w0000gn/T/pip-gYEj0p-build/src/mat/impls/nest/matnest.c
> [0] Arguments are incompatible
> [0] Could not find index set
> 
> I must be doing something wrong here.
> 
> Justin
> 
>> On Tue, Nov 29, 2016 at 1:24 AM, Justin Chang <[email protected]> wrote:
>> Lawrence,
>> 
>> I added the following line:
>> 
>> rs_solver.setDM(a._dm)
>> 
>> And it gives this error:
>> 
>> Traceback (most recent call last):
>>   File "sphere.py", line 128, in <module>
>>     rs_solver.setDM(a._dm)
>> AttributeError: 'Form' object has no attribute '_dm'
>> 
>> Thanks,
>> Justin
>> 
>>> On Tue, Nov 29, 2016 at 1:12 AM, Lawrence Mitchell 
>>> <[email protected]> wrote:
>>> 
>>> 
>>> > On 29 Nov 2016, at 02:02, Justin Chang <[email protected]> wrote:
>>> >
>>> > Why is this happening? It seems to me VINEWTONRSLS is not understanding 
>>> > that I have a two-field formulation.
>>> 
>>> For the built in solvers, we set up a dmshell on the snes that knows how to 
>>> do field splitting.  Because you set your snes up by hand, it isn't 
>>> available. You'll need to call snes.setDM. The mixed finctionspace provides 
>>> the correct dm via a ._dm property I think.
>>> 
>>> Lawrence
>> 
> 

Reply via email to