// ///////////////////////////////////////////////////////////////////
//
//    Preset method with some lean customization of sequential DPRIMME 
//
// ///////////////////////////////////////////////////////////////////
// The following must be assigned in the program after the matrix is read
// primme.n 
// primme.matrixMatvec
// primme.applyPreconditioner  (No need to set if primme.precondition = 0)
// ///////////////////////////////////////////////////////////////////
// WORK ARRAYS
// primme.intWorkSize/realWorkSize   (better left for dprimme to 
// primme.intWork/realWork             allocate these internally)
// ///////////////////////////////////////////////////////////////////
// With sequential runs, no need to set the folloing provided that 
// primme_initialize() is called first
// primme.nLocal               
// primme.numProcs            
// primme.procID 	
// primme.globalSumDouble      
// ///////////////////////////////////////////////////////////////////

// Preset method
method 		  	  = JDQMR

// Solver parameters
primme.printLevel         = 5
primme.numEvals           = 2
primme.maxBasisSize       = 14
primme.minRestartSize     = 6
primme.maxBlockSize       = 1
primme.maxMatvecs         = 300000
primme.target             = primme_closest_geq
primme.numTargetShifts    = 2
primme.targetShifts       = 6000.0 40000.0

// Correction parameters
primme.correction.precondition  = 1
