On 30 March 2012 19:34, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> On Mar 30, 2012, at 11:07 AM, Lisandro Dalcin wrote:
>
>> On 30 March 2012 19:00, Lisandro Dalcin <dalcinl at gmail.com> wrote:
>>> On 30 March 2012 18:20, Blaise Bourdin <bourdin at lsu.edu> wrote:
>>>>
>>>> On Mar 30, 2012, at 10:13 AM, Jed Brown wrote:
>>>>
>>>> The PetscLayout is shared. It should probably not be allowed to change 
>>>> block
>>>> size after duplicating.
>>>>
>>
>> Actually, reading my previous reply, I did not expressed it well. I DO
>> AGREE with you that blocksizes should not be allowed to change once
>> set for first time. However, I think PETSc do have some code around
>> (in PC?) relying on this and unashamedly changing the bs of an INPUT
>> vector! If that was fixed, then we can disable changing bs for Vec.
>> But as long as we need to support this misfeature, at least let's try
>> to do better around the lines of my patch (BTW, I'm not sure how to
>> handle the blocked local to global mapping.... perhaps we can
>> reconstruct another one?)
>
>
> ? Let's locate all the code that changes the block size (after it is set) and 
> eradicate it, then we won't need this bad patch.
>

I think I complained about this long, long ago:

$ grep VecSetBlockSize -nR src/ksp/pc/
src/ksp/pc/impls/fieldsplit/fieldsplit.c:637:  ierr =
VecSetBlockSize(x,jac->bs);CHKERRQ(ierr);
src/ksp/pc/impls/fieldsplit/fieldsplit.c:638:  ierr =
VecSetBlockSize(y,jac->bs);CHKERRQ(ierr);
src/ksp/pc/impls/fieldsplit/fieldsplit.c:710:  ierr =
VecSetBlockSize(x,jac->bs);CHKERRQ(ierr);
src/ksp/pc/impls/fieldsplit/fieldsplit.c:711:  ierr =
VecSetBlockSize(y,jac->bs);CHKERRQ(ierr);

>
> ?I think this can be done by having VecSetBlockSize() simple error out it if 
> the map->bs != -1 and new block size not equals current block size.
>

Are you sure? How are we going to support the usage below?:

VecCreateSeq(comm,n,&vec)
VecSetBlockSize(vec,bs)

We cannot certainly have a long-living vec with bs=-1, right?


-- 
Lisandro Dalcin
---------------
CIMEC (INTEC/CONICET-UNL)
Predio CONICET-Santa Fe
Colectora RN 168 Km 472, Paraje El Pozo
3000 Santa Fe, Argentina
Tel: +54-342-4511594 (ext 1011)
Tel/Fax: +54-342-4511169

Reply via email to