The PETSc configuration you are using (PETSC_ARCH) does not have MUMPS. You 
have to add the appropiate options to PETSc's configure script.

> El 24 jul 2016, a las 21:31, Hassan Md Mahmudulla <[email protected]> 
> escribió:
> 
> Hi Jose, 
> Here is the part of the code:
> 
>   ierr = STSetType(st,STSINVERT);CHKERRQ(ierr);
> 
>   ierr = STGetKSP(st,&ksp);CHKERRQ(ierr);
>   ierr = KSPSetType(ksp,KSPPREONLY);CHKERRQ(ierr);
>   ierr = KSPGetPC(ksp,&pc);CHKERRQ(ierr);
>   ierr = PCSetType(pc,PCCHOLESKY);CHKERRQ(ierr);
> 
> #if defined(PETSC_HAVE_MUMPS)
> #if defined(PETSC_USE_COMPLEX)
>   SETERRQ(PETSC_COMM_WORLD,PETSC_ERR_SUP,"Spectrum slicing with MUMPS is not 
> available for complex scalars");
> #endif
>   ierr = PetscPrintf(PETSC_COMM_WORLD, "PETSC_HAVE_MUMPS\n");CHKERRQ(ierr);
>   ierr = EPSKrylovSchurSetDetectZeros(eps,PETSC_TRUE);CHKERRQ(ierr);  /* 
> enforce zero detection */
>   ierr = PCFactorSetMatSolverPackage(pc,MATSOLVERMUMPS);CHKERRQ(ierr);
>   /*
>      Add several MUMPS options (currently there is no better way of setting 
> this in program):
>      '-mat_mumps_icntl_13 1': turn off ScaLAPACK for matrix inertia
>      '-mat_mumps_icntl_24 1': detect null pivots in factorization (for the 
> case that a shift is equal to an eigenvalue)
>      '-mat_mumps_cntl_3 <tol>': a tolerance used for null pivot detection 
> (must be larger than machine epsilon)
> 
>      Note: depending on the interval, it may be necessary also to increase 
> the workspace:
>      '-mat_mumps_icntl_14 <percentage>': increase workspace with a percentage 
> (50, 100 or more)
>   */
>   ierr = PetscOptionsInsertString(NULL,"-mat_mumps_icntl_13 1 
> -mat_mumps_icntl_24 1 -mat_mumps_cntl_3 1e-12");CHKERRQ(ierr);
> #endif
> 
>   /*
>      Set solver parameters at runtime
>   */
>   ierr = EPSSetFromOptions(eps);CHKERRQ(ierr);
> 
> I am using MUMPS. Actually it's the example I said before. I didn't modify it 
> that much.
> 
> 
> M Hassan

Reply via email to