PCNN preconditioner and setting the interface

Andreas Grassl Andreas.Grassl at student.uibk.ac.at
Tue Mar 24 11:34:23 CDT 2009


Barry Smith schrieb:
> 
> On Mar 24, 2009, at 8:45 AM, Andreas Grassl wrote:
> 
>> Hello,
>>
>> I'm working with a FE-Software where I get out the element stiffness
>> matrices and the element-node correspondency to setup the stiffness
>> matrix for solving with PETSc.
>>
>> I'm currently fighting with the interface definition. My
>> LocalToGlobalMapping for test-purposes was the "identity"-IS, but I
>> guess this is far from the optimum, because nowhere is defined a node
>> set of interface nodes.
>>
>> How do I declare the interface? Is it simply a reordering of the nodes,
>> the inner nodes are numbered first and the interface nodes last?
> 
>    Here's the deal. Over all the processors you have to have a single
> GLOBAL numbering of the
> nodes. The first process starts with 0 and each process starts off with
> one more than then previous process had.

I am confused now, because after you said to use MatSetValuesLocal() to
put the values in the matrix, i thought local means the unique
(sequential) numbering independent of the processors in use and global a
processor-specific (parallel) numbering.

So the single GLOBAL numbering is the numbering obtained from the
FE-Software represented by {0,...,23}

0  o  o  O  o  5
         |
6  o  o  O  o  o
         |
O--O--O--O--O--O
         |
o  o  o  O  o  23

And I set the 4 different local numberings {0,...,11}, {0,...,8},
{0,...7}, {0,...,5} with the call of ISLocalToGlobalMappingCreate?

How do I set the different indices?
{0,1,2,3,6,7,8,9,12,13,14,15} would be the index vector for the upper
left subdomain and {3,9,12,13,14,15} the index vector for the interface
of it.

The struct PC_IS defined in src/ksp/pc/impls/is/pcis.h contains IS
holding such an information (I suppose at least), but I have no idea how
to use them efficiently.

Do I have to manage a PC_IS object for every subdomain?

Thanks

ando


-- 
 /"\                               Grassl Andreas
 \ /    ASCII Ribbon Campaign      Uni Innsbruck Institut f. Mathematik
  X      against HTML email        Technikerstr. 13 Zi 709
 / \                               +43 (0)512 507 6091


More information about the petsc-users mailing list