On Jun 14, 2010, at 11:28 AM, Jed Brown wrote:

> On Mon, 14 Jun 2010 11:21:32 -0500, Barry Smith <bsmith at mcs.anl.gov> wrote:
>> 
>>   I added it quickly as a bit of a hack. Eventually it needs a lot of 
>> cleaning up.
>> 
>>   It is not actually readonly so shouldn't be listed as a const; it is not a 
>> good name. 
> 
> When would it be correct to modify the array without incrementing state?
> I must be missing something.

    Yes you are. If you look at the Vec routines line VecAXPY(), VecScale() etc 
they manage the update of state themselves (in order to preserve norms). Thus 
VecAXPY_Seq(), VecScale_Seq() etc should not be updating state. So I want a set 
of routines that access the arrays and allow changes but do not increase the 
state; but I don't want to use the pure vec->array to access the data. 

   I fear in the end we need three sets of VecGetArray() a read, a write and a 
private that allows writes but does not increase state. Don't have a good name 
for the private one. This is all made more complicated by the fact that 
sometimes two or three vector arguments to a routine could be the same.

   Barry

> 
>>   Can we worry about it later, not now?
> 
> Of course.
> 
> Jed


Reply via email to