Date: 2022-08-02T03:14:23+00:00

Actual source code: dmceed.c

      1: #include <petsc/private/dmimpl.h>

      3: #ifdef PETSC_HAVE_LIBCEED
      4: #include <petscdmceed.h>

      6: /*@C
      7:   DMGetCeed - Get the LibCEED context associated with this DM

      9:   Not collective

     11:   Input Parameter:
     12: . DM   - The DM

     14:   Output Parameter:
     15: . ceed - The LibCEED context

     17:   Level: intermediate

     19: .seealso: DMCreate()
     20: @*/
     21: PetscErrorCode DMGetCeed(DM dm, Ceed *ceed)
     22: {
     25:   if (!dm->ceed) {
     26:     char        ceedresource[PETSC_MAX_PATH_LEN]; /* libCEED resource specifier */
     27:     const char *prefix;

     29:     PetscStrcpy(ceedresource, "/cpu/self");
     30:     PetscObjectGetOptionsPrefix((PetscObject) dm, &prefix);
     31:     PetscOptionsGetString(NULL, prefix, "-dm_ceed", ceedresource, sizeof(ceedresource), NULL);
     32:     CeedInit(ceedresource, &dm->ceed);
     33:   }
     34:   *ceed = dm->ceed;
     35:   return 0;
     36: }

     38: #endif