Thank you all for the insights. I tried to add MatSetOption(mat, MAT_NEW_NONZERO_ALLOCATION_ERR,PETSC_FALSE). It does solve the malloc error. However there appears to be another error:
In addition, 66324 appears to be the number of index that is assigned to each processor. Any more insights? Thanks a lot! PETSC ERROR: Argument out of range! PETSC ERROR: *Column too large: col 935748 max 66324!* PETSC ERROR: ------------------------------------------------------------------------ PETSC ERROR: Petsc Release Version 3.4.4, Mar, 13, 2014 PETSC ERROR: See docs/changes/index.html for recent updates. PETSC ERROR: See docs/faq.html for hints about trouble shooting. PETSC ERROR: See docs/index.html for manual pages. PETSC ERROR: ------------------------------------------------------------------------ PETSC ERROR: eigen_solver20 on a arch-linux2-c-debug named qnode4091 by jzh953 Sun Jul 27 15:17:28 2014 PETSC ERROR: Libraries linked from /software/petsc/3.4.4/lib PETSC ERROR: Configure run at Tue Jul 8 14:20:27 2014 ]PETSC ERROR: Configure options --prefix=/software/petsc/3.4.4 --with-blas-lib=/software/lapack/3.5.0/lib/libblas.so --with-lapack-lib=/software/lapack/3.5.0/liblapack.so --with-hdf5-dir=/software/hdf5/1.8.12 with-boost=1 --with-boost-dir=/software/hdf5/1.8.12 --with-fftw=1 --with-fftw-dir=/software/FFTW/3.3.3-gcc-threads --with-valgrind-dir=/software/valgrind/3.8.1 --with-netcdf=1 --with-netcdf-dir=/software/netCDF/4.2 --with-hdf5=1 --with-debugging=1 --with-mpi-dir=/software/mpi/openmpi-1.6.3-gcc-4.6.3-trq4 --download-scalapack --download-mumps --download-hypre --download-parmetis --download-metis PETSC ERROR: ------------------------------------------------------------------------ PETSC ERROR: MatSetValues_SeqSBAIJ() line 986 in /hpc/software/sources/builds/petsc-3.4.4/src/mat/impls/sbaij/seq/sbaij.c PETSC ERROR: MatDisAssemble_MPISBAIJ() line 356 in /hpc/software/sources/builds/petsc-3.4.4/src/mat/impls/sbaij/mpi/mmsbaij.c PETSC ERROR: MatSetValues_MPISBAIJ() line 213 in /hpc/software/sources/builds/petsc-3.4.4/src/mat/impls/sbaij/mpi/mpisbaij.c PETSC ERROR: MatSetValues() line 1106 in /hpc/software/sources/builds/petsc-3.4.4/src/mat/interface/matrix.c PETSC ERROR: MatAXPY_Basic() line 78 in /hpc/software/sources/builds/petsc-3.4.4/src/mat/utils/axpy.c PETSC ERROR: MatAXPY_MPISBAIJ() line 1398 in /hpc/software/sources/builds/petsc-3.4.4/src/mat/impls/sbaij/mpi/mpisbaij.c PETSC ERROR: MatAXPY() line 39 in /hpc/software/sources/builds/petsc-3.4.4/src/mat/utils/axpy.c PETSC ERROR: STMatGAXPY_Private() line 375 in src/st/interface/stsolve.c PETSC ERROR: STSetUp_Sinvert() line 138 in src/st/impls/sinvert/sinvert.c PETSC ERROR: STSetUp() line 294 in src/st/interface/stsolve.c PETSC ERROR: EPSSetUp() line 215 in src/eps/interface/setup.c PETSC ERROR: EPSSolve() line 90 in src/eps/interface/solve.c PETSC ERROR: -------------------------------------------------------------------------- On Sat, Jul 26, 2014 at 12:35 PM, Jose E. Roman <[email protected]> wrote: > The problem is that your stiffness and mass matrices have different > nonzero pattern. > > The -eps_target configuration computes a MatAXPY on the first matrix > (stiffness), so MatSetOption(mat, > MAT_NEW_NONZERO_ALLOCATION_ERR,PETSC_FALSE) could be called on this matrix, > as Barry suggests. > > Another workaround would be to force both of them having the same nonzero > pattern, maybe using MatSetOption(mat,MAT_IGNORE_ZERO_ENTRIES,PETSC_FALSE). > > Also, this problem would not appear with target=0.0. > > See details on section 3.4.2 of SLEPc's users guide. > > Jose > > > > El 26/07/2014, a las 19:04, Barry Smith escribió: > > > > > We need the entire error message. A matrix is being formed that wasn’t > fully preallocated for so you need to determine which matrix and make sure > either 1) it gets fully preallocated or 2) MatSetOption(mat, > MAT_NEW_NONZERO_ALLOCATION_ERR,PETSC_FALSE) is called on the matrix > > > > Barry > > > > On Jul 26, 2014, at 10:34 AM, jifeng zhao < > [email protected]> wrote: > > > >> Hello all, > >> > >> I am trying to use ex7 to solve series of generalized problem. The > running commands are: > >> > >> ./ex7 -f1 petsc_stiff19.dat -f2 petsc_mass19.dat -mat_type sbaij > -eps_gen_hermitian -eps_type krylovschur -eps_smallest_magnitude. > -eps_monitor_conv -st_k sp_type bcgs -st_pc_type bjacobi -st_sub_pc_type > icc -st_ksp_rtol 1.e-4 -eps_tol 1.e-4 -eps_nev 40 -st_type sinvert > >> > >> It works fine, but when my problem contains zero eigenvalue, it fails > to converge. > >> > >> Supposedly, I should use eps_target -0.1 instead of > eps_smallest_magnitude. However if eps_target is used, I run into a memory > issue: > >> > >> PETSC ERROR: --------------------- Error Message > ------------------------------------ > >> PETSC ERROR: Argument out of range! > >> PETSC ERROR: New nonzero at (0,6) caused a malloc! > >> PETSC ERROR: > ------------------------------------------------------------------------ > >> > >> Does anybody know how to solve this? Thanks! > >> > >> Jifeng Zhao > >> PhD candidate at Northwestern University, US > >> Theoretical and Applied Mechanics Program > > > > -- Jifeng Zhao PhD candidate at Northwestern University, US Theoretical and Applied Mechanics Program
