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 7f918ec44SMatthew G. Knepley DMGetCeed - Get the LibCEED context associated with this DM 8f918ec44SMatthew G. Knepley 9f918ec44SMatthew G. Knepley Not collective 10f918ec44SMatthew G. Knepley 11f918ec44SMatthew G. Knepley Input Parameter: 12f918ec44SMatthew G. Knepley . 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 19db781477SPatrick Sanan .seealso: `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 309566063dSJacob Faibussowitsch PetscCall(PetscStrcpy(ceedresource, "/cpu/self")); 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; 36*3ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 37f918ec44SMatthew G. Knepley } 38f918ec44SMatthew G. Knepley 39f918ec44SMatthew G. Knepley #endif 40