[dune-pdelab] Matrix-Vector / Scalar Products in Parallel

Bernd Flemisch bernd at iws.uni-stuttgart.de
Mon Aug 1 21:18:38 CEST 2011


Hey Volker,

if you only want matrix-vector and scalar products, you do 
not need an explicit solver backends. In 
novlpistlsolverbackend.hh, you find the classes 
NonoverlappingOperator and NonoverlappingScalarProduct. 
Construction should work like
Dune::PDELab::NonoverlappingOperator<GFS, M, X, X> 
novlpOperator(gfs, A);
Dune::PDELab::ParallelISTLHelper<GFS> helper(gfs);
Dune::PDELab::NonoverlappingScalarProduct<GFS, X> 
novlpSP(gfs, helper);

Using the methods apply and dot of these two classes, you 
should be able to perform the required matrix-vector and 
scalar product:
novlpOperator.apply(x, y);
product = novlpSP.dot(x, y);

Kind regards
Bernd

On Mon, 01 Aug 2011 17:50:24 +0200
  schauer <schauer at mechbau.uni-stuttgart.de> wrote:
> 
> Dear Dune,
> 
> I use Dune together with Arpack to solve an eigenvalue 
>problem. I
> produce the BCRS-Matrix (of which I want to know the
> eigenvectors-/values) with Dune-PDElab and calculate 
>Matrix-Vector
> products for the Eigenvalue solver. Serial everything 
>works fine but now
> I want to parallelize the code.
> When I now parallelize (e.g.without overlap) I build up 
>parts of the
> Matrix on every processor and the vector is also 
>distributed where
> indices on the boundary of the process are present on 
>more than 1
> process. Therefore now the Matrix/Vector-products need 
>communication of
> the distributed parts of the vector. 
> 
> The IstlSolvers, addressed via the SolverBackends, now 
>also should
> calculate Matrix-Vector products and to communicate the 
>right parts. 
> Is there now a simple way to directly use the 
>Matrix/Vector- and
> Scalarproducts implemented in these solvers ?
> 
> 
> And if not I have to find the corresponding parts of the 
>vectors in the
> different processes - I suppose that means first finding 
>corresponding
> entities on the processes and then also finding the 
>index of the vector,
> that corresponds to this entity. How can I do this 
>efficiently ?
> 
> Thanks for your answers
> 
> Volker
> 
> 
> -- 
> 
> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
> 
> Volker Schauer (Dipl.Phys)
> 
> Institute of Applied Mechanics (Civil Engineering), 
>Chair 1
> University of Stuttgart
> Pfaffenwaldring 7
> D-70569 Stuttgart
> GERMANY
> 
> Phone ++49 (0)711-68560044
> email: schauer at mechbau.uni-stuttgart.de
> 
> 
> _______________________________________________
> dune-pdelab mailing list
> dune-pdelab at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-pdelab

___________________________________________________________

Bernd Flemisch                     phone: +49 711 685 
69162
IWS, Universitaet Stuttgart          fax: +49 711 685 
67020
Pfaffenwaldring 61        email: 
bernd at iws.uni-stuttgart.de
D-70569 Stuttgart        url: 
www.hydrosys.uni-stuttgart.de
___________________________________________________________




More information about the dune-pdelab mailing list