[dune-pdelab] Parallel (block?) preconditioners

Eike Mueller E.Mueller at bath.ac.uk
Wed Nov 2 13:52:06 CET 2011


Dear dune-pdelab list,

I have modified the overlapping ISTL backend for CG with a SSOR 
preconditioner to use an ILU0 preconditioner instead, i.e. I wrote a new

class ISTLBackend_OVLP_CG_ILU0 :
   public Dune::PDELab::OVLPScalarProductImplementation<GFS>,
   public Dune::PDELab::LinearResultStorage

[...]

The 'apply' method, where the preconditioner is initialised, looks like 
this:

      void apply(M& A, V& z, W& r, typename V::ElementType reduction)
      {
        typedef Dune::PDELab::OverlappingOperator<C,M,V,W> POP;
        POP pop(c,A);
        typedef Dune::PDELab::OVLPScalarProduct<GFS,V> PSP;
        PSP psp(*this);
        typedef Dune::SeqILU0<M,V,W,1> SeqPrec;
        SeqPrec seqprec(A,steps);
        typedef 
Dune::PDELab::OverlappingWrappedPreconditioner<C,GFS,SeqPrec> WPREC;
        WPREC wprec(gfs,seqprec,c,this->parallelHelper());
        int verb=0;
        if (gfs.gridview().comm().rank()==0) verb=verbose;
          Dune::CGSolver<V> solver(pop,psp,wprec,reduction,maxiter,verb);
          Dune::InverseOperatorResult stat;
          solver.apply(z,r,stat);
          res.converged  = stat.converged;
          res.iterations = stat.iterations;
          res.elapsed    = stat.elapsed;
          res.reduction  = stat.reduction;
          res.conv_rate  = stat.conv_rate;
        }

Now, will this create a block preconditioner (i.e. when decomposing the 
matrix A into L and U, will it treat entries A_{ij} for which i and j 
are owned by different processors as zero) or will this construct the 
'full' incomplete LU decomposition? In other words, will the fill 
structure of the matrix in a one process run be identical to the 
preconditioner in a 4 process run (up to rounding errors etc)?
I guess the same question can be asked for the SSOR preconditioner 
(ISTLBackend_OVLP_CG_SSOR), i.e. if I do 5 SSOR smoothing steps, will 
each processor relax its local domain 5 times?

Thank you very much,

Eike




More information about the dune-pdelab mailing list