1*f918ec44SMatthew G. Knepley #include <petsc/private/dmimpl.h> /*I "petscdm.h" I*/ 2*f918ec44SMatthew G. Knepley 3*f918ec44SMatthew G. Knepley #ifdef PETSC_HAVE_LIBCEED 4*f918ec44SMatthew G. Knepley #include <petscdmceed.h> 5*f918ec44SMatthew G. Knepley 6*f918ec44SMatthew G. Knepley /*@C 7*f918ec44SMatthew G. Knepley DMGetCeed - Get the LibCEED context associated with this DM 8*f918ec44SMatthew G. Knepley 9*f918ec44SMatthew G. Knepley Not collective 10*f918ec44SMatthew G. Knepley 11*f918ec44SMatthew G. Knepley Input Parameter: 12*f918ec44SMatthew G. Knepley . DM - The DM 13*f918ec44SMatthew G. Knepley 14*f918ec44SMatthew G. Knepley Output Parameter: 15*f918ec44SMatthew G. Knepley . ceed - The LibCEED context 16*f918ec44SMatthew G. Knepley 17*f918ec44SMatthew G. Knepley Level: intermediate 18*f918ec44SMatthew G. Knepley 19*f918ec44SMatthew G. Knepley .seealso: DMCreate() 20*f918ec44SMatthew G. Knepley @*/ 21*f918ec44SMatthew G. Knepley PetscErrorCode DMGetCeed(DM dm, Ceed *ceed) 22*f918ec44SMatthew G. Knepley { 23*f918ec44SMatthew G. Knepley PetscErrorCode ierr; 24*f918ec44SMatthew G. Knepley 25*f918ec44SMatthew G. Knepley PetscFunctionBegin; 26*f918ec44SMatthew G. Knepley PetscValidHeaderSpecific(dm, DM_CLASSID, 1); 27*f918ec44SMatthew G. Knepley PetscValidPointer(ceed, 2); 28*f918ec44SMatthew G. Knepley if (!dm->ceed) { 29*f918ec44SMatthew G. Knepley char ceedresource[PETSC_MAX_PATH_LEN]; /* libCEED resource specifier */ 30*f918ec44SMatthew G. Knepley const char *prefix; 31*f918ec44SMatthew G. Knepley 32*f918ec44SMatthew G. Knepley ierr = PetscStrcpy(ceedresource, "/cpu/self");CHKERRQ(ierr); 33*f918ec44SMatthew G. Knepley ierr = PetscObjectGetOptionsPrefix((PetscObject) dm, &prefix);CHKERRQ(ierr); 34*f918ec44SMatthew G. Knepley ierr = PetscOptionsGetString(NULL, prefix, "-dm_ceed", ceedresource, sizeof(ceedresource), NULL);CHKERRQ(ierr); 35*f918ec44SMatthew G. Knepley ierr = CeedInit(ceedresource, &dm->ceed);CHKERRQ(ierr); 36*f918ec44SMatthew G. Knepley } 37*f918ec44SMatthew G. Knepley *ceed = dm->ceed; 38*f918ec44SMatthew G. Knepley PetscFunctionReturn(0); 39*f918ec44SMatthew G. Knepley } 40*f918ec44SMatthew G. Knepley 41*f918ec44SMatthew G. Knepley #endif 42