PetscErrorCode DMCreateGlobalVector_Section_Private(DM dm,Vec *vec)
PetscErrorCode  DMCreateGlobalVector_DA(DM da,Vec *g)
PetscErrorCode DMPlexDistributeField(DM dm, PetscSF pointSF, PetscSection 
originalSection, Vec originalVec, PetscSection newSection, Vec newVec)
PetscErrorCode CellRefinerSetCoordinates(CellRefiner refiner, DM dm, PetscInt 
depthSize[], DM rdm)
PetscErrorCode DMPlexCreateCGNS(MPI_Comm comm, PetscInt cgid, PetscBool 
interpolate, DM *dm)
etc etc etc


  It is my understanding that XXXSetFromOptions() is something called by the 
user or by another YYYSetFromOptions() it is not to be called directly by code 
that creates XXX internally somewhere. Now is VecSetFromOptions() being called 
in all these places to have a reasonable default type be set? That is so 
VecSetTypeFromOptions_Private(Vec vec) gets called? Even that is suspect 
because it is accessing the options database. Is it being called so that cuda 
or cusp vector types can be set chosen at runtime? If so then shouldn't 
DMSetVecType() be the function that determines the type for DM in one fell 
swoop instead of separate calls to VecSetFromOptions() for each create? Note in 
theory that DMSetFromOptions() has the option -dm_vec_type allowing runtime 
selection of all the DM vectors also rather than the separate calls to 
VecSetFromOptions() for each create?

  Can all these VecSetFromOptions() be removed?

   Barry




Reply via email to