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
