[petsc-users] pcfieldsplitting not working for VI

Lawrence Mitchell lawrence.mitchell at imperial.ac.uk
Tue Nov 29 02:29:58 CST 2016


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 <jychang48 at gmail.com> 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 <jychang48 at gmail.com> 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 <lawrence.mitchell at imperial.ac.uk> wrote:
>>> 
>>> 
>>> > On 29 Nov 2016, at 02:02, Justin Chang <jychang48 at gmail.com> 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
>> 
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20161129/23f9a2e5/attachment-0001.html>


More information about the petsc-users mailing list