> On Mar 11, 2018, at 6:49 PM, Matthew Knepley <knep...@gmail.com> wrote:
> 
> On Mon, Mar 12, 2018 at 8:33 AM, Smith, Barry F. <bsm...@mcs.anl.gov> wrote:
> Please implement things properly with subclasses (subtypes) and get this crap 
> out of the public interface files
> 
> See below.

   I don't understand See Below. why are there not functions in the function 
table for these operations so the functions can be implemented back in the 
impls directory where they belong. Why do DMPlex calls appear directly in this 
function which should not know about particular implementations.

> 
>    Matt
>  
> dm/interfaces should be able to be compiled and linked even if dm/impls stuff 
> did not exist. This mixing of particular subclass implementations and public 
> interface functions is disgusting. Ideally we'd have nightly tests that flags 
> this broken stuff.
> 
> 
> 
>   Barry
> 
> #include <petscdmplex.h>
> 
>   {
>     PetscBool isplex;
> 
>     ierr = PetscObjectTypeCompare((PetscObject) cdm, DMPLEX, 
> &isplex);CHKERRQ(ierr);
>     if (isplex) {
>       ierr = DMPlexGetHeightStratum(cdm, 0, &cStart, &cEnd);CHKERRQ(ierr);
>     } else SETERRQ(PetscObjectComm((PetscObject) cdm), PETSC_ERR_ARG_WRONG, 
> "Coordinate localization requires a DMPLEX coordinate DM");
> 
>     PetscBool isplex;
> 
>     ierr = PetscObjectTypeCompare((PetscObject) cdm, DMPLEX, 
> &isplex);CHKERRQ(ierr);
>     if (isplex) {
>       ierr = DMPlexGetDepthStratum(cdm, 0, &vStart, &vEnd);CHKERRQ(ierr);
>       ierr = DMPlexGetMaxProjectionHeight(cdm,&maxHeight);CHKERRQ(ierr);
>       ierr = DMGetWorkArray(dm,2*(maxHeight + 
> 1),MPIU_INT,&pStart);CHKERRQ(ierr);
>       pEnd = &pStart[maxHeight + 1];
>       newStart = vStart;
>       newEnd   = vEnd;
>       for (h = 0; h <= maxHeight; h++) {
>         ierr = DMPlexGetHeightStratum(cdm, h, &pStart[h], 
> &pEnd[h]);CHKERRQ(ierr);
>         newStart = PetscMin(newStart,pStart[h]);
>         newEnd   = PetscMax(newEnd,pEnd[h]);
> 
> 
> 
> > On Mar 11, 2018, at 4:21 PM, Matthew Knepley <knep...@gmail.com> wrote:
> >
> > This stuff is in DM because two concepts need to be promoted to DM. They are
> > already both in DA and Plex:
> >
> > 1) GlobalToNatural, which is in dmi.c
> >
> > 2) Coordinates, in particular periodic coordinates, which is in dm.c
> >
> > Removing these means adding 1 or 2 functions to dmimpl
> >
> >    Matt
> >
> >
> > On Mon, Mar 12, 2018 at 3:06 AM, Smith, Barry F. <bsm...@mcs.anl.gov> wrote:
> >
> >
> >
> >
> > --
> > What most experimenters take for granted before they begin their 
> > experiments is infinitely more interesting than any results to which their 
> > experiments lead.
> > -- Norbert Wiener
> >
> > https://www.cse.buffalo.edu/~knepley/
> 
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments 
> is infinitely more interesting than any results to which their experiments 
> lead.
> -- Norbert Wiener
> 
> https://www.cse.buffalo.edu/~knepley/

Reply via email to