Actual source code: rgimpl.h
slepc-3.18.0 2022-10-01
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: /* SUBMANSEC = RG */
19: SLEPC_EXTERN PetscBool RGRegisterAllCalled;
20: SLEPC_EXTERN PetscErrorCode RGRegisterAll(void);
22: typedef struct _RGOps *RGOps;
24: struct _RGOps {
25: PetscErrorCode (*istrivial)(RG,PetscBool*);
26: PetscErrorCode (*computecontour)(RG,PetscInt,PetscScalar*,PetscScalar*);
27: PetscErrorCode (*computebbox)(RG,PetscReal*,PetscReal*,PetscReal*,PetscReal*);
28: PetscErrorCode (*computequadrature)(RG,RGQuadRule,PetscInt,PetscScalar*,PetscScalar*,PetscScalar*);
29: PetscErrorCode (*checkinside)(RG,PetscReal,PetscReal,PetscInt*);
30: PetscErrorCode (*isaxisymmetric)(RG,PetscBool,PetscBool*);
31: PetscErrorCode (*setfromoptions)(RG,PetscOptionItems*);
32: PetscErrorCode (*view)(RG,PetscViewer);
33: PetscErrorCode (*destroy)(RG);
34: };
36: struct _p_RG {
37: PETSCHEADER(struct _RGOps);
38: PetscBool complement; /* region is the complement of the specified one */
39: PetscReal sfactor; /* scaling factor */
40: PetscReal osfactor; /* old scaling factor, before RGPushScale */
41: void *data;
42: };
44: /* show an inf instead of PETSC_MAX_REAL */
45: #define RGShowReal(r) (double)((PetscAbsReal(r)>=PETSC_MAX_REAL)?10*(r):(r))
47: #endif