[petsc-users] PCASM and dof > 1
Laurent Berenguer
laurent.berenguer at gmail.com
Mon Mar 12 11:50:49 CDT 2012
Hello,
I would like to solve nonlinear PDEs on a regular grid (DMDACreate2D, 2 dof
per node) using:
- MatFDColoring to compute the Jacobian matrix
- The ASM preconditioner
Here is an overview of the code:
ierr = DMGetMatrix(da,MATAIJ,&J);
ierr = TSGetSNES(ts,&snes);
ierr = DMGetColoring(da,IS_COLORING_GLOBAL,MATAIJ,&iscoloring);
ierr = MatFDColoringCreate(J,iscoloring,&matfdcoloring);
ierr = MatFDColoringSetFromOptions(matfdcoloring);
ierr = ISColoringDestroy(&iscoloring);
ierr = MatFDColoringSetFunction(matfdcoloring,(PetscErrorCode
(*)(void))SNESTSFormFunction,ts);
ierr =
SNESSetJacobian(snes,J,J,SNESDefaultComputeJacobianColor,matfdcoloring);
ierr = KSPCreate(PETSC_COMM_WORLD,&ksp);
ierr = KSPSetOperators(ksp,J,J,DIFFERENT_NONZERO_PATTERN);
ierr = KSPGetPC(ksp,&pc);
ierr = PCSetType(pc,PCASM);
ierr = PCASMSetOverlap(pc,1);
ierr = KSPSetUp(ksp);
ierr = SNESSetKSP(snes,ksp);
ierr = TSSetFromOptions(ts);
ierr = TSSolve(ts,u,&ftime);
And I have the following error for overlap>0.
[1]PETSC ERROR:
------------------------------------------------------------------------
[1]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation,
probably memory access out of range
[1]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
[1]PETSC ERROR: or see
http://www.mcs.anl.gov/petsc/petsc-as/documentation/faq.html#valgrind
[1]PETSC ERROR: or try http://valgrind.org on GNU/linux and Apple Mac OS X
to find memory corruption errors
[1]PETSC ERROR: likely location of problem given in stack below
[1]PETSC ERROR: --------------------- Stack Frames
------------------------------------
[1]PETSC ERROR: Note: The EXACT line numbers in the stack are not available,
[1]PETSC ERROR: INSTEAD the line number of the start of the function
[1]PETSC ERROR: is given.
[1]PETSC ERROR: [1] MatIncreaseOverlap_MPIAIJ_Receive line 427
src/mat/impls/aij/mpi/mpiov.c
[1]PETSC ERROR: [1] MatIncreaseOverlap_MPIAIJ_Once line 71
src/mat/impls/aij/mpi/mpiov.c
[1]PETSC ERROR: [1] MatIncreaseOverlap_MPIAIJ line 22
src/mat/impls/aij/mpi/mpiov.c
[1]PETSC ERROR: [1] MatIncreaseOverlap line 6543 src/mat/interface/matrix.c
[1]PETSC ERROR: [1] PCSetUp_ASM line 155 src/ksp/pc/impls/asm/asm.c
[1]PETSC ERROR: [1] PCSetUp line 797 src/ksp/pc/interface/precon.c
[1]PETSC ERROR: [1] KSPSetUp line 184 src/ksp/ksp/interface/itfunc.c
[1]PETSC ERROR: [1] KSPSolve line 331 src/ksp/ksp/interface/itfunc.c
[1]PETSC ERROR: [1] SNES_KSPSolve line 3394 src/snes/interface/snes.c
[1]PETSC ERROR: [1] SNESSolve_LS line 142 src/snes/impls/ls/ls.c
[1]PETSC ERROR: [1] SNESSolve line 2647 src/snes/interface/snes.c
[1]PETSC ERROR: [1] TSStep_Theta line 25 src/ts/impls/implicit/theta/theta.c
[1]PETSC ERROR: [1] TSStep line 1768 src/ts/interface/ts.c
[1]PETSC ERROR: [1] TSSolve line 1824 src/ts/interface/ts.c
[1]PETSC ERROR: --------------------- Error Message
------------------------------------
The same error happens when I run the example
/snes/examples/tutorials/ex32.c with the option -'pc_type asm'.
How to properly set up the preconditioner in that case (dof > 1) ?
Thanks,
Laurent Berenguer
PhD student,
Université Lyon 1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120312/c127e437/attachment.htm>
More information about the petsc-users
mailing list