Hi All, The EPSViewer in SLEPc looks weird. I do not understand the viewer logic. For example there is a piece of code in SLEPc (at line 225 of epsview.c):
* if (!ispower) { if (!eps->ds) { ierr = EPSGetDS(eps,&eps->ds);CHKERRQ(ierr); } ierr = DSView(eps->ds,viewer);CHKERRQ(ierr); }* If eps->ds is NULL, why we are going to create a new one? I just want to view this object. If it is NULL, you should just show me that this object is empty. You could print out: ds: null. If a user wants to develop a new EPS solver, and then register the new EPS to SLEPc. But the user does not want to use DS, and DSView will show some error messages: *[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------[0]PETSC ERROR: Object is in wrong state[0]PETSC ERROR: Requested matrix was not created in this DS[0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html <http://www.mcs.anl.gov/petsc/documentation/faq.html> for trouble shooting.[0]PETSC ERROR: Petsc Release Version 3.7.5, unknown [0]PETSC ERROR: ../../../moose_test-opt on a arch-darwin-c-debug named FN604208 by kongf Thu Apr 6 14:22:14 2017[0]PETSC ERROR: #1 DSViewMat() line 149 in /slepc/src/sys/classes/ds/interface/dspriv.c[0]PETSC ERROR: #2 DSView_NHEP() line 47 in/slepc/src/sys/classes/ds/impls/nhep/dsnhep.c[0]PETSC ERROR: #3 DSView() line 772 in/slepc/src/sys/classes/ds/interface/dsbasic.c[0]PETSC ERROR: #4 EPSView() line 227 in /slepc/src/eps/interface/epsview.c[0]PETSC ERROR: #5 PetscObjectView() line 106 in/petsc/src/sys/objects/destroy.c[0]PETSC ERROR: #6 PetscObjectViewFromOptions() line 2808 in /petsc/src/sys/objects/options.c[0]PETSC ERROR: #7 EPSSolve() line 159 in /slepc/src/eps/interface/epssolve.c* Fande,