[Dune-devel] SOCIS 2014: questions

Markus Blatt markus at dr-blatt.de
Tue Jul 22 11:55:01 CEST 2014


Hi,

On Mon, Jul 21, 2014 at 06:26:42PM +0000, Agnese, Marco wrote:
> Hi Markus,
> I answer here because I didn't receive any email from the malinglist and I don't know how to answer without opening a new thread.
> 

This should be as easy as hitting reply to all (I do not know how to
do this with your mailer)  or manually setting CC to
dune-devel at dune-project.org (like I did here). I will try to always
reply to you and keep dune-devel in  the cc.

> First of all I would ask you a question about the owneroverlapcopycopy. I write a very simple code to understand how it works
> 
> https://github.com/magnese/dune-istl/blob/threads/dune/istl/test/simpleoverlaptest.cc
> 
> but it doesn't work as I expected therefore I have misunderstood something. If you can enlighten me it would be great:)
> 
> So In this code I create a sparse matrix and a sparse vector
> 
> rank 0:
> A ={1 0 0;0 2 0; 0 0 3}
> x={1;2;3}
> rank 1:
> A ={4 0 7;0 5 0; 0 0 6}
     ^^^
     Either this has to 3 here or the third row in the matrix has to
     be 0 0 0 4 0 7
> x={4;5;6}
> 
> At some point I set the indexset in order to describe the following global structures
> 
> A ={1 0 0 0 0;0 2 0 0 0; 0 0 3 0 7;0 0 0 5 0; 0 0 0 0 0 6}
> x={1;2;3;5;6}
> 
> therefore I set on rank 0 for all the entries the flag owner, 

This is simply not possible in this concept as eache owner row has to
know all nonzero entries of the global matrix. Therefore either the
last index is overlap and owner on the other process or you have to
add another additional index (the last global index of the problem) as
overlap/copy.


> while for rank 1 I set copy for A[0][0] and overlap for A[0][2].

I do not understand what you mean here.

Let us stick to your example and two processes (BTW: similar examples
should also be in the papers and in the files below
dune-common/doc/comm. It migh also be helpfull to take a look at
dune-istl/dune/istl/paamg/test/anisotropic.hh (Shame on me for not
documenting this one.).

First we create a partition of the global index set:
I_0={0, 1, 2} I_1={4, 5} (BTW these will all have the attribute owner}

Augment the index sets:
0: only row 2 has a nonzero A_{2,5} that represents a connection to a degree of freedom  that is not in I_0
   => I_0 := I_0 \cup {5} (Note: 5 will have attribute copy)

Now you can set up the parallel index and local matrices by assigning
each global index a local one.

J_0={(0,0,o), (1,1,o), (2,2,o), (5,3,c)}
A_0=[1 0 0 0
     0 2 0 0
     0 0 3 7
     0 0 0 1]

I will skip the second process.


HTH

Markus
-- 
Dr. Markus Blatt - HPC-Simulation-Software & Services http://www.dr-blatt.de
Hans-Bunte-Str. 8-10, 69123 Heidelberg, Germany,  USt-Id: DE279960836
Tel.: +49 (0) 160 97590858
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <https://lists.dune-project.org/pipermail/dune-devel/attachments/20140722/54eea69e/attachment.sig>


More information about the Dune-devel mailing list