Line | Branch | Exec | Source |
---|---|---|---|
1 | /* | ||
2 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
3 | SLEPc - Scalable Library for Eigenvalue Problem Computations | ||
4 | Copyright (c) 2002-, Universitat Politecnica de Valencia, Spain | ||
5 | |||
6 | This file is part of SLEPc. | ||
7 | SLEPc is distributed under a 2-clause BSD license (see LICENSE). | ||
8 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
9 | */ | ||
10 | |||
11 | #pragma once | ||
12 | |||
13 | #include <slepc/private/slepcimpl.h> | ||
14 | #include <petscksp.h> | ||
15 | |||
16 | /* | ||
17 | CISS_BlockHankel - Builds a block Hankel matrix from the contents of Mu. | ||
18 | */ | ||
19 | 380 | static inline PetscErrorCode CISS_BlockHankel(PetscScalar *Mu,PetscInt s,PetscInt L,PetscInt M,PetscScalar *H) | |
20 | { | ||
21 | 380 | PetscInt i,j,k; | |
22 | |||
23 |
1/2✓ Branch 0 taken 4 times.
✗ Branch 1 not taken.
|
380 | PetscFunctionBegin; |
24 |
2/2✓ Branch 0 taken 20 times.
✓ Branch 1 taken 20 times.
|
24828 | for (k=0;k<L*M;k++) |
25 |
2/2✓ Branch 0 taken 20 times.
✓ Branch 1 taken 20 times.
|
197952 | for (j=0;j<M;j++) |
26 |
2/2✓ Branch 0 taken 20 times.
✓ Branch 1 taken 20 times.
|
2324416 | for (i=0;i<L;i++) |
27 | 2150912 | H[j*L+i+k*L*M] = Mu[i+k*L+(j+s)*L*L]; | |
28 |
6/12✓ Branch 0 taken 4 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 4 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 4 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 4 times.
|
380 | PetscFunctionReturn(PETSC_SUCCESS); |
29 | } | ||
30 | |||
31 | SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcCISS_isGhost(Mat,PetscInt,PetscReal*,PetscReal,PetscBool*); | ||
32 | SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcCISS_BH_SVD(PetscScalar*,PetscInt,PetscReal,PetscReal*,PetscInt*); | ||
33 | |||
34 | /* Data structures and functions for contour integral methods (used in several classes) */ | ||
35 | struct _n_SlepcContourData { | ||
36 | PetscObject parent; /* parent object */ | ||
37 | PetscSubcomm subcomm; /* subcommunicator for top level parallelization */ | ||
38 | PetscInt npoints; /* number of integration points assigned to the local subcomm */ | ||
39 | KSP *ksp; /* ksp array for storing factorizations at integration points */ | ||
40 | Mat *pA; /* redundant copies of the matrices in the local subcomm */ | ||
41 | Mat *pP; /* redundant copies of the matrices (preconditioner) */ | ||
42 | PetscInt nmat; /* number of matrices in pA */ | ||
43 | Vec xsub; /* aux vector with parallel layout as redundant Mat */ | ||
44 | Vec xdup; /* aux vector with parallel layout as original Mat (with contiguous order) */ | ||
45 | VecScatter scatterin; /* to scatter from regular vector to xdup */ | ||
46 | }; | ||
47 | typedef struct _n_SlepcContourData* SlepcContourData; | ||
48 | |||
49 | SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcContourDataCreate(PetscInt,PetscInt,PetscObject,SlepcContourData*); | ||
50 | SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcContourDataReset(SlepcContourData); | ||
51 | SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcContourDataDestroy(SlepcContourData*); | ||
52 | |||
53 | SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcContourRedundantMat(SlepcContourData,PetscInt,Mat*,Mat*); | ||
54 | SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcContourScatterCreate(SlepcContourData,Vec); | ||
55 |