[petsc-users] Jacobian finite difference approximation using coloring

Konstantinos Kontzialis ckontzialis at lycos.com
Wed Nov 2 12:37:46 CDT 2011


Dear all,

I am trying to compute the boundary layer over a flat plate using the 
discontinous galerkin method.

I use the following sequence for computing the jacobian of a system 
using matrix coloring:

     ISColoring iscoloring;
         MatFDColoring fdcoloring;

         ierr = jacobian_diff_numerical(sys, &sys.P);       /* Here I 
initialize the nonzerostructure of the matrix*/
         CHKERRQ(ierr);

         ierr = MatGetColoring(sys.P, MATCOLORING_ID, &iscoloring);
         CHKERRQ(ierr);

         ierr = MatFDColoringCreate(sys.P, iscoloring, &fdcoloring);
         CHKERRQ(ierr);

         ierr = MatFDColoringSetFunction(fdcoloring, base_residual_implicit,
&sys);
         CHKERRQ(ierr);

         ierr = SNESSetJacobian(sys.snes, sys.J, sys.P, 
SNESDefaultComputeJacobianColor, &fdcoloring);
         CHKERRQ(ierr);

I run my code as follows:

mpiexec -n 8 ./hoac blasius -llf_flux -n_out 1 -end_time 10000.0 
-implicit -implicit_type 3 -pc_type asm -snes_mf_operator -snes_max_fail 
500 -snes_monitor -snes_stol 1.0e-50 -ksp_right_pc -sub_pc_type ilu 
-snes_converged_reason -ksp_gmres_restart 30 -snes_max_linear_solve_fail 
10 -snes_max_it 1000 -sub_pc_factor_mat_ordering_type rcm -dt 5.e-4 
-snes_rtol 1.0e-8 -gl -snes_converged_reason -ksp_converged_reason 
-ksp_monitor_true_residual -ksp_rtol 1.0e-12 -snes_atol 1.0e-6 
-snes_ls_maxstep 5


and I get this:

Timestep   0: dt = 0.0005, T = 0, Res[rho] = 5.5383e-17, Res[rhou] = 
0.0177116, Res[rhov] = 8.06867e-06, Res[E] = 9.04882e-06, CFL = 99.9994

/*********************Stage 1 of SSPIRK (3,4)******************/

   0 SNES Function norm 3.861205145119e-01
[6]PETSC ERROR: --------------------- Error Message 
------------------------------------
[0]PETSC ERROR: --------------------- Error Message 
------------------------------------
[0]PETSC ERROR: Invalid argument!
[0]PETSC ERROR: Wrong type of object: Parameter # 1!
[0]PETSC ERROR: 
------------------------------------------------------------------------
[0]PETSC ERROR: Petsc Release Version 3.1.0, Patch 8, Thu Mar 17 
13:37:48 CDT 2011
[0]PETSC ERROR: See docs/changes/index.html for recent updates.
[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
[0]PETSC ERROR: See docs/index.html for manual pages.
[0]PETSC ERROR: 
------------------------------------------------------------------------
[0]PETSC ERROR: ./hoac on a linux-gnu named PlusSodaL by kontzialis Wed 
Nov  2 19:32:57 2011
[0]PETSC ERROR: Libraries linked from 
/home/kontzialis/petsc-3.1-p8/linux-gnu-c-debug/lib
[0]PETSC ERROR: Configure run at Tue Sep 27 13:09:04 2011
[0]PETSC ERROR: Configure options --with-debugging=1 --with-shared=1 
--with-shared-libraries --with-large-file-io=1 --with-precision=double 
--with-blacs=1 --download-blacs=yes --download-f-blas-lapack=yes 
--with-plapack=1 --download-plapack=yes --with-scalapack=1 
--download-scalapack=yes --with-superlu=1 --download-superlu=yes 
--with-superlu_dist=1 --download-superlu_dist=yes --with-ml=1 
--download-ml=yes --with-umfpack=1 --download-umfpack=yes 
--with-sundials=1 --download-sundials=1 --with-parmetis=1 
--download-parmetis=1 --with-hypre=1 --download-hypre=1 
--with-mpi-dir=/usr/lib/mpich2/bin
[0]PETSC ERROR: 
------------------------------------------------------------------------
[0]PETSC ERROR: MatFDColoringGetFunction() line 205 in 
src/mat/matfd/fdmatrix.c
[0]PETSC ERROR: SNESDefaultComputeJacobianColor() line 44 in 
src/snes/interface/snesj2.c
[0]PETSC ERROR: SNESComputeJacobian() line 1198 in src/snes/interface/snes.c
[0]PETSC ERROR: SNESSolve_LS() line 189 in src/snes/impls/ls/ls.c
[0]PETSC ERROR: SNESSolve() line 2255 in src/snes/interface/snes.c
[0]PETSC ERROR: User provided function() line 65 in 
"unknowndirectory/"../src/implicit_solve.c
[0]PETSC ERROR: User provided function() line 215 in 
"unknowndirectory/"../src/implicit_time.c
[0]PETSC ERROR: User provided function() line 1260 in 
"unknowndirectory/"../src/hoac.c


What am I doing wrong here?

Thank you,

Kostas


More information about the petsc-users mailing list