[petsc-dev] PetscObjectStateIncrease in MatMult*
Barry Smith
bsmith at mcs.anl.gov
Sat Oct 17 15:08:26 CDT 2015
https://bitbucket.org/petsc/petsc/pull-requests/378/update-the-output-vector-state-in-pc-and/diff
On Oct 17, 2015, at 11:12 AM, Václav Hapla <vaclav.hapla at vsb.cz> wrote:
>
> Yes, exactly, MATSHELL.
> But if I am right, MatShellSetOperation sets mat->ops->mult pointer directly to user-specified MatMult unless MatShellUseScaledMethods has been called.
> So user must keep in mind he should call PetscObjectStateIncrease in his MatMult.
> I feel like this is something one would intuitively await from the interface function...
> It would be less error-prone for future and user-implemented MatTypes.
> Vaclav
>
> Dne 17.10.2015 v 17:58 Barry Smith napsal(a):
>>> On Oct 17, 2015, at 5:10 AM, Václav Hapla <vaclav.hapla at vsb.cz> wrote:
>>>
>>> Hello,
>>> MatMult(), MatMultTranspose(), MatMultAdd(), MatMultTransposeAdd() and PCApply() belong to most common modifiers of Vec values.
>>> Maybe it would be nice if these routines called PetscObjectStateIncrease explicitly because of MATSHELL and such stuff.
>>> Thanks,
>>> Vaclav
>> I assume you are suggesting this because users of MATSHELL or PCSHELL may not realize they need to call PetscObjectStateIncrease() on the output vector if they do not use VecGe/RestoretArray() to access the vector entries? (VecRestoreArray() automatically increases the state)
>>
>> What if we add it to MatMult_Shell(), MatMultTranspose_Shell(), PCApply_Shell() and PCApplyTranspose_Shell()? It looks like those are the only ones where the state won't get increased automatically
>>
>> Thanks for the suggestion,
>>
>> Barry
>>
>>> --
>>>
>>> Vaclav Hapla
>>> Junior researcher
>>> IT4Innovations <http://www.it4i.eu/>
>>>
>>>
>
> --
>
> Vaclav Hapla
> Junior researcher
> IT4Innovations <http://www.it4i.eu/>
>
> *office*
> phone: (+420) 597 32 9662
> room 310
> IT4Innovations building
> Studentska 6231/1B
> 708 00 Ostrava - Poruba
> Czech Republic
>
> *contact address*
> Vaclav Hapla
> IT4Innovations
> VSB - Technical University of Ostrava
> 17. listopadu 15/2172
> 708 33 Ostrava - Poruba
> Czech Republic
>
>
More information about the petsc-dev
mailing list