Actual source code: rgimpl.h
slepc-3.17.0 2022-03-31
1: /*
2: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3: SLEPc - Scalable Library for Eigenvalue Problem Computations
4: Copyright (c) 2002-, Universitat Politecnica de Valencia, Spain
6: This file is part of SLEPc.
7: SLEPc is distributed under a 2-clause BSD license (see LICENSE).
8: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
9: */
11: #if !defined(SLEPCRGIMPL_H)
12: #define SLEPCRGIMPL_H
14: #include <slepcrg.h>
15: #include <slepc/private/slepcimpl.h>
17: SLEPC_EXTERN PetscBool RGRegisterAllCalled;
18: SLEPC_EXTERN PetscErrorCode RGRegisterAll(void);
20: typedef struct _RGOps *RGOps;
22: struct _RGOps {
23: PetscErrorCode (*istrivial)(RG,PetscBool*);
24: PetscErrorCode (*computecontour)(RG,PetscInt,PetscScalar*,PetscScalar*);
25: PetscErrorCode (*computebbox)(RG,PetscReal*,PetscReal*,PetscReal*,PetscReal*);
26: PetscErrorCode (*computequadrature)(RG,RGQuadRule,PetscInt,PetscScalar*,PetscScalar*,PetscScalar*);
27: PetscErrorCode (*checkinside)(RG,PetscReal,PetscReal,PetscInt*);
28: PetscErrorCode (*isaxisymmetric)(RG,PetscBool,PetscBool*);
29: PetscErrorCode (*setfromoptions)(PetscOptionItems*,RG);
30: PetscErrorCode (*view)(RG,PetscViewer);
31: PetscErrorCode (*destroy)(RG);
32: };
34: struct _p_RG {
35: PETSCHEADER(struct _RGOps);
36: PetscBool complement; /* region is the complement of the specified one */
37: PetscReal sfactor; /* scaling factor */
38: PetscReal osfactor; /* old scaling factor, before RGPushScale */
39: void *data;
40: };
42: /* show an inf instead of PETSC_MAX_REAL */
43: #define RGShowReal(r) (double)((PetscAbsReal(r)>=PETSC_MAX_REAL)?10*(r):(r))
45: #endif