On Wed, 15 Sep 2010 08:42:16 +0200 (CEST), Tim Kroeger 
<[email protected]> wrote:
> (One conjecture why SAME_NONZERO_PATTERN has been used here before is 
> that somebody thought it means that the system matrix and the 
> preconditioner matrix have the same nonzero pattern, but as far as I 
> understand now, this is just not true.)

It means that the nonzero pattern of the preconditioning matrix has not
changed since the last solve.  The purpose of this is to avoid needing
to recompute a symbolic factorization or some setup steps for AMG.
Usually the symbolic factorization is much cheaper than numeric
factorization so it makes little difference, but this eventually ceases
to be true as the number of processes increase.

> Another idea is to use VecCreateMPI(), giving only the global length 
> and using PETSC_DECIDE for the local length.  This way, approximately 
> equal amounts of dofs are assigned to each processor, but will they 
> correspond to patches of the computational domain, or will they be 
> scattered all around?  Well, since we are using a vector, this is of 
> course in the responsiblity of the user.

This chooses the sizes of each part, but you will still have to move
indices around.  For a high-quality partition, you could extract the
submatrix with the naive (current) partition, then run a partitioner on
the submatrix, and finally extract indices using the resulting "good"
partition.  Of course this may not be worthwhile if you will only solve
with it once.

Jed

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to