[petsc-dev] MatSetDA -> MatSetDM

Barry Smith bsmith at mcs.anl.gov
Wed Mar 16 21:27:09 CDT 2011


On Mar 16, 2011, at 9:13 PM, Lisandro Dalcin wrote:

> On 16 March 2011 22:47, Barry Smith <bsmith at mcs.anl.gov> wrote:
>> 
>> On Mar 16, 2011, at 6:21 AM, Lisandro Dalcin wrote:
>> 
>>> From petscdmda.h:
>>> 
>>> extern PetscErrorCode MatSetDA(Mat,DM);
>>> 
>>> Could you rename it? (sorry, I'm really busy with other stuff)
>> 
>> Fixed.
>> 
> 
> Many thanks,
> 
>>> 
>>> BTW, we should have DMSetMatType() ...
>> 
>> Actually my plan is to remove DMSetVecType() and change DMGetGlobalVector(), DMGGetLocalVector() and DMGetMatrix() to take an already created Vec or Mat and if the type is set  inside that object then to use that type otherwise to use a default type. This will match the new style of VecLoad() and MatLoad().
>> 
>> The rational for this change is I want to remove all the MatCreate()s and VecCreates() and setting of types inside other parts of PETSc. This allows new Vec and Mat types to be introduced without also adding into DMGetMatrxi() etc new code whenever a new type is introduced.
>> 
> 
> I like it, but... Could we have  DMGetComm(dm,&comm) ?... the casting
> required for PetscObjectGetComm((PetscObject)dm,&comm) is a bit
> ugly...

   No. Then we need VecGetComm(), KSPGetComm(), MonkeyGetComm() and it never ends

   Perhaps

   PetscErrorCode PetscObjectGetComm_(PetscObject,MPI_Comm*);
   #define PetscObjectGetComm(A,B) PetscObjectGetComm_((PetscObject)A,B)

   to hide the uglyness?

   In fact, XXXXSetOptionsPrefix() could be all wrapped up in PetscObjectSetOptionsPrefix(). Heck even XXXSetFromOptions() and XXXSetUp() could be wrapped in PetscObjectSetFromOptions(), PetscObjectSetUp() but that may be going too far :-)


   Barry



> 
> 
> -- 
> 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




More information about the petsc-dev mailing list