[petsc-users] Problems about PCtype bjacobi
Yingjie Wu
yjwu16 at gmail.com
Wed Nov 7 09:15:28 CST 2018
Dear Petsc developer:
Hi,
Recently, I'm solving the problems of nonlinear systems of PDEs, I
encountered some problems about precondition and wanted to seek help.
1.I set the precondition matrix in SNES as MPIAIJ in the program, and then
use Matrix Free method to solve my problem. The log information of the
program is as follows:
SNES Object: 1 MPI processes
type: newtonls
maximum iterations=50, maximum function evaluations=100000000
tolerances: relative=1e-08, absolute=1e-50, solution=1e-08
total number of linear solver iterations=177
total number of function evaluations=371
norm schedule ALWAYS
SNESLineSearch Object: 1 MPI processes
type: bt
interpolation: cubic
alpha=1.000000e-04
maxstep=1.000000e+08, minlambda=1.000000e-12
tolerances: relative=1.000000e-08, absolute=1.000000e-15,
lambda=1.000000e-08
maximum iterations=40
KSP Object: 1 MPI processes
type: gmres
restart=30, using Classical (unmodified) Gram-Schmidt
Orthogonalization with no iterative refinement
happy breakdown tolerance 1e-30
maximum iterations=10000, initial guess is zero
tolerances: relative=0.01, absolute=1e-50, divergence=10000.
left preconditioning
using PRECONDITIONED norm type for convergence test
PC Object: 1 MPI processes
type: bjacobi
number of blocks = 1
Local solve is same for all blocks, in the following KSP and PC
objects:
KSP Object: (sub_) 1 MPI processes
type: preonly
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-05, absolute=1e-50, divergence=10000.
left preconditioning
using NONE norm type for convergence test
PC Object: (sub_) 1 MPI processes
type: bjacobi
number of blocks = 1
Local solve is same for all blocks, in the following KSP and PC
objects:
KSP Object: (sub_sub_) 1 MPI processes
type: preonly
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-05, absolute=1e-50, divergence=10000.
left preconditioning
using NONE norm type for convergence test
PC Object: (sub_sub_) 1 MPI processes
type: ilu
out-of-place factorization
0 levels of fill
tolerance for zero pivot 2.22045e-14
matrix ordering: natural
factor fill ratio given 1., needed 1.
Factored matrix follows:
Mat Object: 1 MPI processes
type: seqaij
rows=961, cols=961
package used to perform factorization: petsc
total: nonzeros=4129, allocated nonzeros=4129
total number of mallocs used during MatSetValues calls
=0
not using I-node routines
linear system matrix = precond matrix:
Mat Object: 1 MPI processes
type: seqaij
rows=961, cols=961
total: nonzeros=4129, allocated nonzeros=4805
total number of mallocs used during MatSetValues calls =0
not using I-node routines
linear system matrix = precond matrix:
Mat Object: 1 MPI processes
type: mpiaij
rows=961, cols=961
total: nonzeros=4129, allocated nonzeros=9610
total number of mallocs used during MatSetValues calls =0
not using I-node (on process 0) routines
linear system matrix followed by preconditioner matrix:
Mat Object: 1 MPI processes
type: mffd
rows=961, cols=961
Matrix-free approximation:
err=1.49012e-08 (relative error in function evaluation)
Using wp compute h routine
Does not compute normU
Mat Object: 1 MPI processes
type: mpiaij
rows=961, cols=961
total: nonzeros=4129, allocated nonzeros=9610
total number of mallocs used during MatSetValues calls =0
not using I-node (on process 0) routines
Although parallel matrix is used, it runs on a single processor. Because of
the use of parallel matrices, the overall precondition scheme should be
bjacobi, and then build a KSP for each block (there is only one block in my
program). Therefore, there will be a sub KSP object in the PC information.
But in the above information, a subsubksp is also embedded in the sub KSP
object. I don't understand the reason for this KSP. Please help me answer.
2. Bjacobi is a precondition method in theory. Why is there a subsystem of
linear equations solver object ksp? In my understanding, precondition is a
matrix decomposition method, and there is no linear equations,. Therefore,
there should be no subKSP here.
3.when I assemble precondition matrix, I used MatSetVales.
idleft = row - 1 ;
idright = row + 1 ;
idup = row + 20;
iddown = row - 20;
/*phi1 field*/
v[1] = - 1.0 / ( dx * dx / (2* 1.267) + dx * dx / (2* 1.267 ) ) ;
col[1] = idleft;
v[2] = - 1.0 / ( dx * dx / (2* 1.267) + dx * dx / (2* 1.267 ) ) ;
col[2] = idright;
v[3] = - 1.0/ ( dy * dy / (2* 1.267) + dy * dy / (2* 1.267 ) ) ;
col[3] = iddown;
v[4] = - 1.0 / ( dy * dy / (2* 1.267) + dy * dy / (2* 1.267 ) ) ;
col[4] = idup;
v[0] = v[1] + v[2] + v[3] + v[4] + v[0] ; col[0] = row;
ierr = MatSetValues(B,1,&row,5,col,v,INSERT_VALUES);CHKERRQ(ierr);
The wrong information is:
[0]PETSC ERROR: --------------------- Error Message
--------------------------------------------------------------
[0]PETSC ERROR: Argument out of range
[0]PETSC ERROR: Column too large: col 1077215232 max 960
[0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for
trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.10.1, Sep, 26, 2018
[0]PETSC ERROR: ./ex217 on a arch-linux2-c-debug named yjwu-XPS-8910 by
yjwu Wed Nov 7 09:52:22 2018
[0]PETSC ERROR: Configure options --with-cc=gcc --with-cxx=g++
--with-fc=gfortran --download-mpich --download-fblaslapack
[0]PETSC ERROR: #1 MatSetValues_SeqAIJ() line 442 in
/home/yjwu/petsc-3.10.1/src/mat/impls/aij/seq/aij.c
[0]PETSC ERROR: #2 MatSetValues() line 1349 in
/home/yjwu/petsc-3.10.1/src/mat/interface/matrix.c
[0]PETSC ERROR: #3 FormJacobian() line 272 in
/home/yjwu/petsc-3.10.1/src/snes/examples/tutorials/ex217.c
[0]PETSC ERROR: #4 SNESComputeJacobian() line 2555 in
/home/yjwu/petsc-3.10.1/src/snes/interface/snes.c
[0]PETSC ERROR: #5 SNESSolve_NEWTONLS() line 222 in
/home/yjwu/petsc-3.10.1/src/snes/impls/ls/ls.c
[0]PETSC ERROR: #6 SNESSolve() line 4396 in
/home/yjwu/petsc-3.10.1/src/snes/interface/snes.c
[0]PETSC ERROR: #7 main() line 108 in
/home/yjwu/petsc-3.10.1/src/snes/examples/tutorials/ex217.c
This seems to be a very obvious question, but I don't know how to solve it.
Thanks for your continuous help,
Yingjie
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20181107/06677c25/attachment.html>
More information about the petsc-users
mailing list