[petsc-dev] VecSetFromOptions() being called from all over the place

Barry Smith bsmith at mcs.anl.gov
Sun Sep 1 13:48:20 CDT 2013


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







More information about the petsc-dev mailing list