1f918ec44SMatthew G. Knepley #include <petsc/private/dmimpl.h> /*I "petscdm.h" I*/ 2f918ec44SMatthew G. Knepley 3f918ec44SMatthew G. Knepley #ifdef PETSC_HAVE_LIBCEED 4f918ec44SMatthew G. Knepley #include <petscdmceed.h> 5f918ec44SMatthew G. Knepley 6f918ec44SMatthew G. Knepley /*@C 7*20f4b53cSBarry Smith DMGetCeed - Get the LibCEED context associated with this `DM` 8f918ec44SMatthew G. Knepley 9*20f4b53cSBarry Smith Not Collective 10f918ec44SMatthew G. Knepley 11f918ec44SMatthew G. Knepley Input Parameter: 12*20f4b53cSBarry Smith . DM - The `DM` 13f918ec44SMatthew G. Knepley 14f918ec44SMatthew G. Knepley Output Parameter: 15f918ec44SMatthew G. Knepley . ceed - The LibCEED context 16f918ec44SMatthew G. Knepley 17f918ec44SMatthew G. Knepley Level: intermediate 18f918ec44SMatthew G. Knepley 19*20f4b53cSBarry Smith .seealso: `DM`, `DMCreate()` 20f918ec44SMatthew G. Knepley @*/ 21d71ae5a4SJacob Faibussowitsch PetscErrorCode DMGetCeed(DM dm, Ceed *ceed) 22d71ae5a4SJacob Faibussowitsch { 23f918ec44SMatthew G. Knepley PetscFunctionBegin; 24f918ec44SMatthew G. Knepley PetscValidHeaderSpecific(dm, DM_CLASSID, 1); 25f918ec44SMatthew G. Knepley PetscValidPointer(ceed, 2); 26f918ec44SMatthew G. Knepley if (!dm->ceed) { 27f918ec44SMatthew G. Knepley char ceedresource[PETSC_MAX_PATH_LEN]; /* libCEED resource specifier */ 28f918ec44SMatthew G. Knepley const char *prefix; 29f918ec44SMatthew G. Knepley 30c6a7a370SJeremy L Thompson PetscCall(PetscStrncpy(ceedresource, "/cpu/self", sizeof(ceedresource))); 319566063dSJacob Faibussowitsch PetscCall(PetscObjectGetOptionsPrefix((PetscObject)dm, &prefix)); 329566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetString(NULL, prefix, "-dm_ceed", ceedresource, sizeof(ceedresource), NULL)); 339566063dSJacob Faibussowitsch PetscCallCEED(CeedInit(ceedresource, &dm->ceed)); 34f918ec44SMatthew G. Knepley } 35f918ec44SMatthew G. Knepley *ceed = dm->ceed; 363ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 37f918ec44SMatthew G. Knepley } 38f918ec44SMatthew G. Knepley 39f918ec44SMatthew G. Knepley #endif 40