Many thanks Timo.


I tried PreconditionBlockJacobi and it worked. However, I am running a 
validation loop of progressively smaller meshes, and stops again with a 
error when I make the call to initialize for the second time which is 
expected since ''initialize()'' can only be called once. Of course, there a 
simple solution for this problem: declaring the preconditioner inside the 
loop rather than outside and pass it as an argument to the routine that 
solves the linear system. 


Yet, is there a better solution? Say for instance, as with trilinos 
preconditioners that have a ''clear()'' function member to releases the 
preconditioner from the matrix, releases memory and so on, so that you can 
reinitialize it with a new matrix (this is particularly useful in 
adaptivity loops, like in step-32). 


That's all for now.


Many Thanks.


Ignacio.




On Friday, August 12, 2016 at 9:31:36 PM UTC-5, Timo Heister wrote:
>
> Hey Ignacio, 
>
> good to hear from you! 
>
> Sadly this is not documented well, but the ICC preconditioner is only 
> implemented for BAIJ matrices and not MPIAIJ (which we use even if you 
> run on one processor), see 
> https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/PC/PCICC.html 
>
> You should be able to make it work by using a 
> PETScWrappers::SparseMatrix instead of an 
> PETScWrappers::MPI::SparseMatrix. Or, probably a better idea, just use 
> a preconditioner that works with parallel matrices like 
> PreconditionBlockJacobi. 
>
> Best, 
> Timo 
>
>
> On Fri, Aug 12, 2016 at 9:46 PM, Ignacio Tomas <nach...@gmail.com 
> <javascript:>> wrote: 
> > Hi, everybody. I am just trying to initialize either ICC, Jacobi or 
> > ParaSalis preconditioner from PETSc, using a PETSc matrix in parallel. 
> So 
> > far I am running just one mpi process. After the call to ''.initialize'' 
> I 
> > get: 
> > 
> > 
> > 
> > 
> > [0]PETSC ERROR: No support for this operation for this object type 
> > [0]PETSC ERROR: Matrix format mpiaij does not have a built-in PETSc ICC 
> > [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html 
> for 
> > trouble shooting. 
> > [0]PETSC ERROR: Petsc Release Version 3.5.3, Jan, 31, 2015 
> > [0]PETSC ERROR: ./main on a arch-linux2-c-opt named nachote by nachotex 
> Fri 
> > Aug 12 20:28:49 2016 
> > [0]PETSC ERROR: Configure options --download-fblaslapack=1 
> > --with-shared-libraries=1 --download-hypre=1 --download-mumps=1 
> > --download-spooles=1 --download-scalapack=1 --download-metis=1 
> > --download-parmetis=1 --download-blacs=1 --with-debugging=0 --with-x=0 
> > [0]PETSC ERROR: #1 MatGetFactor() line 3960 in 
> > 
> /home/nachotex/Documents/deal/PETSC/petsc-3.5.3/src/mat/interface/matrix.c 
> > [0]PETSC ERROR: #2 PCSetup_ICC() line 18 in 
> > 
> /home/nachotex/Documents/deal/PETSC/petsc-3.5.3/src/ksp/pc/impls/factor/icc/icc.c
>  
>
> > [0]PETSC ERROR: #3 PCSetUp() line 902 in 
> > 
> /home/nachotex/Documents/deal/PETSC/petsc-3.5.3/src/ksp/pc/interface/precon.c 
>
> > terminate called after throwing an instance of 
> > 'dealii::LACExceptions::ExcPETScError' 
> >   what(): 
> > -------------------------------------------------------- 
> > An error occurred in line <384> of file 
> > 
> </home/nachotex/Documents/deal/deal/dealii-8.4.1/source/lac/petsc_precondition.cc>
>  
>
> > in function 
> >     void dealii::PETScWrappers::PreconditionICC::initialize(const 
> > dealii::PETScWrappers::MatrixBase&, const 
> > dealii::PETScWrappers::PreconditionICC::AdditionalData&) 
> > The violated condition was: 
> >     ierr == 0 
> > The name and call sequence of the exception was: 
> >     ExcPETScError(ierr) 
> > Additional Information: 
> > An error with error number 56 occurred while calling a PETSc function 
> > 
> > 
> > 
> > 
> > Any clue? Did I forget to install something? 
> > 
> > -- 
> > The deal.II project is located at http://www.dealii.org/ 
> > For mailing list/forum options, see 
> > https://groups.google.com/d/forum/dealii?hl=en 
> > --- 
> > You received this message because you are subscribed to the Google 
> Groups 
> > "deal.II User Group" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an 
> > email to dealii+un...@googlegroups.com <javascript:>. 
> > For more options, visit https://groups.google.com/d/optout. 
>
>
>
> -- 
> Timo Heister 
> http://www.math.clemson.edu/~heister/ 
>

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to