> On Jan 2, 2017, at 7:29 PM, Jed Brown <[email protected]> wrote:
> 
> Barry Smith <[email protected]> writes:
> 
>>    How about MatSetCoordindates(Mat, Vec). 
> 
> This would assume an interpolatory basis for which each Mat (row?)bs
> corresponds to one Vec bs.  Should we consider mixed spaces?

  Of course.  
> 
>>    Then MatNullSpaceCreateRigidBody(Mat, MatNullSpace *);
> 
> Perhaps something like this as a convenience, but I think it can be
> useful to call the current function without first creating a Mat to
> attach the coordinate Vec to.
> 
>>    Then presumable GAMG can pass the appropriated coordinates down to the 
>> smaller matrices it creates internally and create the rigid body null spaces 
>> it wants as it moves to the smaller matrices?
>> 
>>   Barry
>> 
>> 
>> You could have a MatGetCoordindates(Mat, Vec) and not change the calling 
>> sequence of MatNullSpaceCreateRigidBody() but I like the first alternative I 
>> suggested.
>> 
>> 
>>> On Jan 2, 2017, at 5:23 PM, Jed Brown <[email protected]> wrote:
>>> 
>>> Mark Adams <[email protected]> writes:
>>> 
>>>> On Mon, Jan 2, 2017 at 11:47 AM, Jed Brown <[email protected]> wrote:
>>>> 
>>>>> Jeremy Theler <[email protected]> writes:
>>>>> 
>>>>>> Hi all
>>>>>> 
>>>>>> I want to check that the near nullspace I provide to GAMG gives "almost
>>>>>> null vectors" when multiplying each vector in the near nullspace against
>>>>>> the matrix problem.
>>>>>> 
>>>>>> This way I can check that the unknown ordering I am using is consistent,
>>>>>> for example using by MatNullSpaceCreateRigidBody() or by computing the
>>>>>> nullspace by myself.
>>>>> 
>>>>> Please use that and MatSetNearNullSpace().  It composes properly and you
>>>>> can check everything.
>>>>> 
>>>>> PCSetCoordinates() happens to do double-duty for aggregation-based
>>>>> methods, but outside of semi-geometric methods, it is just ugly code
>>>>> duplication and makes assumptions that may be inappropriate (like
>>>>> elasticity with an interpolatory basis).
>>>> 
>>>> 
>>>> Yes, PCSetCoordinates is an old interface that is essentially deprecated.
>>>> Maybe we should officially deprecated this.
>>> 
>>> I think we should officially deprecate it, but perhaps make something
>>> more general available as a Mat function (since some algorithms may use
>>> coordinates directly).  (Needing to dig up a PC to provide problem (as
>>> opposed to configuration) information is bad style.)

Reply via email to