Actual source code: petscconvestimpl.h

  1: #pragma once

  3: #include <petscconvest.h>
  4: #include <petsc/private/petscimpl.h>

  6: typedef struct _PetscConvEstOps *PetscConvEstOps;
  7: struct _PetscConvEstOps {
  8:   PetscErrorCode (*setfromoptions)(PetscConvEst);
  9:   PetscErrorCode (*setup)(PetscConvEst);
 10:   PetscErrorCode (*view)(PetscConvEst, PetscViewer);
 11:   PetscErrorCode (*destroy)(PetscConvEst);
 12:   PetscErrorCode (*setsolver)(PetscConvEst, PetscObject);
 13:   PetscErrorCode (*initguess)(PetscConvEst, PetscInt, DM, Vec);
 14:   PetscErrorCode (*computeerror)(PetscConvEst, PetscInt, DM, Vec, PetscReal[]);
 15:   PetscErrorCode (*getconvrate)(PetscConvEst, PetscReal[]);
 16: };

 18: struct _p_PetscConvEst {
 19:   PETSCHEADER(struct _PetscConvEstOps);
 20:   /* Inputs */
 21:   DM          idm;      /* Initial grid */
 22:   PetscObject solver;   /* Solver */
 23:   PetscReal   r;        /* The refinement factor (spatial check requires r = 2) */
 24:   PetscInt    Nr;       /* The number of refinements */
 25:   PetscInt    Nf;       /* The number of fields in the DM */
 26:   PetscBool   noRefine; /* Debugging flag to disable refinement */
 27:   PetscErrorCode (**initGuess)(PetscInt, PetscReal, const PetscReal[], PetscInt, PetscScalar[], void *);
 28:   PetscErrorCode (**exactSol)(PetscInt, PetscReal, const PetscReal[], PetscInt, PetscScalar[], void *);
 29:   void **ctxs;
 30:   /* Outputs */
 31:   PetscLogEvent event;
 32:   PetscBool     monitor;
 33:   PetscInt     *dofs;
 34:   PetscReal    *errors;
 35: };