I would like to make some changes and enhancements in PCASM:

1) Make it take full ownership (allocated array memory and IS
references) of the subdomain index sets.

2) Currently, if the matrix is symmetric, ASM switches to type
PC_ASM_BASIC in PCSetFromOptions_ASM().
I believe this should also be handled on PCSetup_ASM(). If not, we get
different behavior if PCSetFromOptions() is never called.
Moreover, I believe PCSetFromOptions_ASM() should call PCASMSetType()
if the '-pc_asm_type' option is passed.

3) If more than one block per processor is requested, then ASM
currently does a row-based partitioning. For unstructured problems and
LU-based local solves, this is going to be really bad, right?

I've already implemented an 'smart' subdomain partitioner based on
MatPartitioningXXX. I'm thinking about adding a new utility routine
(in the spirit of PCASMCreateSubdomains2d)

PCASMCreateSubdomains(Mat A, MatPartitioningType mptype, PetscInt
local_blocks, IS *is[])

which could be called in order to get a good subdomain partitioning,
and next pass it to PCASMSetLocalSubdomains().


Does all this make sense?



-- 
Lisandro Dalc?n
---------------
Centro Internacional de M?todos Computacionales en Ingenier?a (CIMEC)
Instituto de Desarrollo Tecnol?gico para la Industria Qu?mica (INTEC)
Consejo Nacional de Investigaciones Cient?ficas y T?cnicas (CONICET)
PTLC - G?emes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594


Reply via email to