| 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 | Routines to set ST methods and options | ||
| 12 | */ | ||
| 13 | |||
| 14 | #include <slepc/private/stimpl.h> /*I "slepcst.h" I*/ | ||
| 15 | |||
| 16 | PetscBool STRegisterAllCalled = PETSC_FALSE; | ||
| 17 | PetscFunctionList STList = NULL; | ||
| 18 | |||
| 19 | /*@ | ||
| 20 | STSetType - Selects the type of spectral transformation. | ||
| 21 | |||
| 22 | Logically Collective | ||
| 23 | |||
| 24 | Input Parameters: | ||
| 25 | + st - the spectral transformation context. | ||
| 26 | - type - a known type | ||
| 27 | |||
| 28 | Options Database Key: | ||
| 29 | . -st_type type - sets the `ST` type | ||
| 30 | |||
| 31 | Notes: | ||
| 32 | Normally, it is best to call the `EPSSetFromOptions()` function and | ||
| 33 | then set the `ST` type from the options database rather than by using | ||
| 34 | this routine. Using the options database provides the user with | ||
| 35 | maximum flexibility in evaluating the different transformations. | ||
| 36 | |||
| 37 | Level: beginner | ||
| 38 | |||
| 39 | .seealso: [](ch:st), `STGetType()`, `EPSSetType()`, `EPSSetFromOptions()` | ||
| 40 | @*/ | ||
| 41 | 12799 | PetscErrorCode STSetType(ST st,STType type) | |
| 42 | { | ||
| 43 | 12799 | PetscErrorCode (*r)(ST); | |
| 44 | 12799 | PetscBool match; | |
| 45 | |||
| 46 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
12799 | PetscFunctionBegin; |
| 47 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
12799 | PetscValidHeaderSpecific(st,ST_CLASSID,1); |
| 48 |
2/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
12799 | PetscAssertPointer(type,2); |
| 49 | |||
| 50 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
12799 | PetscCall(PetscObjectTypeCompare((PetscObject)st,type,&match)); |
| 51 |
8/14✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
|
12799 | if (match) PetscFunctionReturn(PETSC_SUCCESS); |
| 52 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
11902 | STCheckNotSeized(st,1); |
| 53 | |||
| 54 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
11902 | PetscCall(PetscFunctionListFind(STList,type,&r)); |
| 55 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
11902 | PetscCheck(r,PetscObjectComm((PetscObject)st),PETSC_ERR_ARG_UNKNOWN_TYPE,"Unable to find requested ST type %s",type); |
| 56 | |||
| 57 |
6/8✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
11902 | PetscTryTypeMethod(st,destroy); |
| 58 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 5 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
11902 | PetscCall(PetscMemzero(st->ops,sizeof(struct _STOps))); |
| 59 | |||
| 60 | 11902 | st->state = ST_STATE_INITIAL; | |
| 61 | 11902 | st->opready = PETSC_FALSE; | |
| 62 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
11902 | PetscCall(PetscObjectChangeTypeName((PetscObject)st,type)); |
| 63 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
11902 | PetscCall((*r)(st)); |
| 64 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
2304 | PetscFunctionReturn(PETSC_SUCCESS); |
| 65 | } | ||
| 66 | |||
| 67 | /*@ | ||
| 68 | STGetType - Gets the `ST` type name (as a string) from the `ST` context. | ||
| 69 | |||
| 70 | Not Collective | ||
| 71 | |||
| 72 | Input Parameter: | ||
| 73 | . st - the spectral transformation context | ||
| 74 | |||
| 75 | Output Parameter: | ||
| 76 | . type - name of the spectral transformation | ||
| 77 | |||
| 78 | Note: | ||
| 79 | `type` should not be retained for later use as it will be an invalid pointer | ||
| 80 | if the `STType` of `st` is changed. | ||
| 81 | |||
| 82 | Level: intermediate | ||
| 83 | |||
| 84 | .seealso: [](ch:st), `STSetType()`, `PetscObjectTypeCompare()`, `PetscObjectTypeCompareAny()` | ||
| 85 | @*/ | ||
| 86 | 900 | PetscErrorCode STGetType(ST st,STType *type) | |
| 87 | { | ||
| 88 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
900 | PetscFunctionBegin; |
| 89 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
900 | PetscValidHeaderSpecific(st,ST_CLASSID,1); |
| 90 |
2/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
900 | PetscAssertPointer(type,2); |
| 91 | 900 | *type = ((PetscObject)st)->type_name; | |
| 92 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
900 | PetscFunctionReturn(PETSC_SUCCESS); |
| 93 | } | ||
| 94 | |||
| 95 | /*@ | ||
| 96 | STSetFromOptions - Sets `ST` options from the options database. | ||
| 97 | |||
| 98 | Collective | ||
| 99 | |||
| 100 | Input Parameter: | ||
| 101 | . st - the spectral transformation context | ||
| 102 | |||
| 103 | Note: | ||
| 104 | To see all options, run your program with the `-help` option. | ||
| 105 | |||
| 106 | Level: beginner | ||
| 107 | |||
| 108 | .seealso: [](ch:st), `STSetOptionsPrefix()` | ||
| 109 | @*/ | ||
| 110 | 9303 | PetscErrorCode STSetFromOptions(ST st) | |
| 111 | { | ||
| 112 | 9303 | PetscScalar s; | |
| 113 | 9303 | char type[256]; | |
| 114 | 9303 | PetscBool flg,bval; | |
| 115 | 9303 | STMatMode mode; | |
| 116 | 9303 | MatStructure mstr; | |
| 117 | |||
| 118 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
9303 | PetscFunctionBegin; |
| 119 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
9303 | PetscValidHeaderSpecific(st,ST_CLASSID,1); |
| 120 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
9303 | PetscCall(STRegisterAll()); |
| 121 |
8/10✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 8 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✓ Branch 8 taken 2 times.
✓ Branch 9 taken 2 times.
|
27909 | PetscObjectOptionsBegin((PetscObject)st); |
| 122 |
7/8✓ Branch 0 taken 10 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
18377 | PetscCall(PetscOptionsFList("-st_type","Spectral transformation","STSetType",STList,(char*)(((PetscObject)st)->type_name?((PetscObject)st)->type_name:STSHIFT),type,sizeof(type),&flg)); |
| 123 |
6/8✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
9303 | if (flg) PetscCall(STSetType(st,type)); |
| 124 |
6/8✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
7470 | else if (!((PetscObject)st)->type_name) PetscCall(STSetType(st,STSHIFT)); |
| 125 | |||
| 126 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
9303 | PetscCall(PetscOptionsScalar("-st_shift","Value of the shift","STSetShift",st->sigma,&s,&flg)); |
| 127 |
6/8✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
9303 | if (flg) PetscCall(STSetShift(st,s)); |
| 128 | |||
| 129 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
9303 | PetscCall(PetscOptionsEnum("-st_matmode","Matrix mode for transformed matrices","STSetMatMode",STMatModes,(PetscEnum)st->matmode,(PetscEnum*)&mode,&flg)); |
| 130 |
6/8✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
9303 | if (flg) PetscCall(STSetMatMode(st,mode)); |
| 131 | |||
| 132 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
9303 | PetscCall(PetscOptionsEnum("-st_matstructure","Relation of the sparsity pattern of the matrices","STSetMatStructure",MatStructures,(PetscEnum)st->str,(PetscEnum*)&mstr,&flg)); |
| 133 |
6/8✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
9303 | if (flg) PetscCall(STSetMatStructure(st,mstr)); |
| 134 | |||
| 135 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
9303 | PetscCall(PetscOptionsBool("-st_transform","Whether transformed matrices are computed or not","STSetTransform",st->transform,&bval,&flg)); |
| 136 |
6/8✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
9303 | if (flg) PetscCall(STSetTransform(st,bval)); |
| 137 | |||
| 138 |
6/8✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
9303 | PetscTryTypeMethod(st,setfromoptions,PetscOptionsObject); |
| 139 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
9303 | PetscCall(PetscObjectProcessOptionsHandlers((PetscObject)st,PetscOptionsObject)); |
| 140 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
9303 | PetscOptionsEnd(); |
| 141 | |||
| 142 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
9303 | if (st->usesksp) { |
| 143 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
8977 | PetscCall(STSetDefaultKSP(st)); |
| 144 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
8977 | PetscCall(KSPSetFromOptions(st->ksp)); |
| 145 | } | ||
| 146 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
1799 | PetscFunctionReturn(PETSC_SUCCESS); |
| 147 | } | ||
| 148 | |||
| 149 | /*@ | ||
| 150 | STSetMatStructure - Sets an internal `MatStructure` attribute to | ||
| 151 | indicate which is the relation of the sparsity pattern of all `ST` matrices. | ||
| 152 | |||
| 153 | Logically Collective | ||
| 154 | |||
| 155 | Input Parameters: | ||
| 156 | + st - the spectral transformation context | ||
| 157 | - str - either `SAME_NONZERO_PATTERN`, `DIFFERENT_NONZERO_PATTERN`, | ||
| 158 | `SUBSET_NONZERO_PATTERN`, or `UNKNOWN_NONZERO_PATTERN` | ||
| 159 | |||
| 160 | Options Database Key: | ||
| 161 | . -st_matstructure (same|different|subset|unknown) - set the structure flag | ||
| 162 | |||
| 163 | Notes: | ||
| 164 | If the sparsity pattern of the second matrix is equal or a subset of the | ||
| 165 | pattern of the first matrix then it is recommended to set this attribute | ||
| 166 | for efficiency reasons (in particular, for internal `MatAXPY()` operations). | ||
| 167 | If not set, the default is `UNKNOWN_NONZERO_PATTERN`, in which case the patterns | ||
| 168 | will be compared to determine if they are equal. | ||
| 169 | |||
| 170 | This function has no effect in the case of standard eigenproblems. | ||
| 171 | |||
| 172 | In case of polynomial eigenproblems, the flag applies to all matrices | ||
| 173 | relative to the first one. | ||
| 174 | |||
| 175 | Level: advanced | ||
| 176 | |||
| 177 | .seealso: [](ch:st), `STGetMatStructure()`, `STSetMatrices()`, `MatAXPY()` | ||
| 178 | @*/ | ||
| 179 | 24 | PetscErrorCode STSetMatStructure(ST st,MatStructure str) | |
| 180 | { | ||
| 181 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
24 | PetscFunctionBegin; |
| 182 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
24 | PetscValidHeaderSpecific(st,ST_CLASSID,1); |
| 183 |
27/62✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 2 times.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✓ Branch 41 taken 2 times.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 2 times.
✓ Branch 46 taken 2 times.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✓ Branch 50 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✓ Branch 59 taken 2 times.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
|
24 | PetscValidLogicalCollectiveEnum(st,str,2); |
| 184 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
24 | switch (str) { |
| 185 | 24 | case SAME_NONZERO_PATTERN: | |
| 186 | case DIFFERENT_NONZERO_PATTERN: | ||
| 187 | case SUBSET_NONZERO_PATTERN: | ||
| 188 | case UNKNOWN_NONZERO_PATTERN: | ||
| 189 | 24 | st->str = str; | |
| 190 | 24 | break; | |
| 191 | ✗ | default: | |
| 192 | − | SETERRQ(PetscObjectComm((PetscObject)st),PETSC_ERR_ARG_OUTOFRANGE,"Invalid matrix structure flag"); | |
| 193 | } | ||
| 194 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
24 | PetscFunctionReturn(PETSC_SUCCESS); |
| 195 | } | ||
| 196 | |||
| 197 | /*@ | ||
| 198 | STGetMatStructure - Gets the internal `MatStructure` attribute to | ||
| 199 | indicate which is the relation of the sparsity pattern of the matrices. | ||
| 200 | |||
| 201 | Not Collective | ||
| 202 | |||
| 203 | Input Parameter: | ||
| 204 | . st - the spectral transformation context | ||
| 205 | |||
| 206 | Output Parameter: | ||
| 207 | . str - either `SAME_NONZERO_PATTERN`, `DIFFERENT_NONZERO_PATTERN`, | ||
| 208 | `SUBSET_NONZERO_PATTERN`, or `UNKNOWN_NONZERO_PATTERN` | ||
| 209 | |||
| 210 | Level: advanced | ||
| 211 | |||
| 212 | .seealso: [](ch:st), `STSetMatStructure()`, `STSetMatrices()`, `MatAXPY()` | ||
| 213 | @*/ | ||
| 214 | 7594 | PetscErrorCode STGetMatStructure(ST st,MatStructure *str) | |
| 215 | { | ||
| 216 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
7594 | PetscFunctionBegin; |
| 217 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
7594 | PetscValidHeaderSpecific(st,ST_CLASSID,1); |
| 218 |
2/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
7594 | PetscAssertPointer(str,2); |
| 219 | 7594 | *str = st->str; | |
| 220 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
7594 | PetscFunctionReturn(PETSC_SUCCESS); |
| 221 | } | ||
| 222 | |||
| 223 | /*@ | ||
| 224 | STSetMatMode - Sets a flag to indicate how the transformed matrices are | ||
| 225 | being stored in the spectral transformations. | ||
| 226 | |||
| 227 | Logically Collective | ||
| 228 | |||
| 229 | Input Parameters: | ||
| 230 | + st - the spectral transformation context | ||
| 231 | - mode - the mode | ||
| 232 | |||
| 233 | Options Database Key: | ||
| 234 | . -st_matmode (copy|inplace|shell) - set the mode | ||
| 235 | |||
| 236 | Notes: | ||
| 237 | By default (`ST_MATMODE_COPY`), a copy of matrix $A$ is made and then | ||
| 238 | this copy is modified explicitly, e.g., $A \leftarrow A - \sigma B$. | ||
| 239 | |||
| 240 | With `ST_MATMODE_INPLACE`, the original matrix $A$ is modified at `STSetUp()` | ||
| 241 | and changes are reverted at the end of the computations. With respect to | ||
| 242 | the previous one, this mode avoids a copy of matrix $A$. However, a | ||
| 243 | drawback is that the recovered matrix might be slightly different | ||
| 244 | from the original one (due to roundoff). | ||
| 245 | |||
| 246 | With `ST_MATMODE_SHELL`, the solver works with an implicit shell | ||
| 247 | matrix that represents the shifted matrix. This mode is the most efficient | ||
| 248 | in creating the transformed matrix but it places serious limitations to the | ||
| 249 | linear solves performed in each iteration of the eigensolver (typically, | ||
| 250 | only iterative solvers with Jacobi preconditioning can be used). | ||
| 251 | |||
| 252 | In the two first modes the efficiency of the computation can be controlled | ||
| 253 | with `STSetMatStructure()`. | ||
| 254 | |||
| 255 | Level: intermediate | ||
| 256 | |||
| 257 | .seealso: [](ch:st), `STSetMatrices()`, `STSetMatStructure()`, `STGetMatMode()`, `STMatMode` | ||
| 258 | @*/ | ||
| 259 | 740 | PetscErrorCode STSetMatMode(ST st,STMatMode mode) | |
| 260 | { | ||
| 261 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
740 | PetscFunctionBegin; |
| 262 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
740 | PetscValidHeaderSpecific(st,ST_CLASSID,1); |
| 263 |
27/62✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 2 times.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✓ Branch 41 taken 2 times.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 2 times.
✓ Branch 46 taken 2 times.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✓ Branch 50 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✓ Branch 59 taken 2 times.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
|
740 | PetscValidLogicalCollectiveEnum(st,mode,2); |
| 264 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
740 | if (st->matmode != mode) { |
| 265 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
670 | STCheckNotSeized(st,1); |
| 266 | 670 | st->matmode = mode; | |
| 267 | 670 | st->state = ST_STATE_INITIAL; | |
| 268 | 670 | st->opready = PETSC_FALSE; | |
| 269 | } | ||
| 270 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
740 | PetscFunctionReturn(PETSC_SUCCESS); |
| 271 | } | ||
| 272 | |||
| 273 | /*@ | ||
| 274 | STGetMatMode - Gets a flag that indicates how the transformed matrices | ||
| 275 | are stored in spectral transformations. | ||
| 276 | |||
| 277 | Not Collective | ||
| 278 | |||
| 279 | Input Parameter: | ||
| 280 | . st - the spectral transformation context | ||
| 281 | |||
| 282 | Output Parameter: | ||
| 283 | . mode - the mode flag | ||
| 284 | |||
| 285 | Level: intermediate | ||
| 286 | |||
| 287 | .seealso: [](ch:st), `STSetMatMode()`, `STMatMode` | ||
| 288 | @*/ | ||
| 289 | 10201 | PetscErrorCode STGetMatMode(ST st,STMatMode *mode) | |
| 290 | { | ||
| 291 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
10201 | PetscFunctionBegin; |
| 292 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
10201 | PetscValidHeaderSpecific(st,ST_CLASSID,1); |
| 293 |
2/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
10201 | PetscAssertPointer(mode,2); |
| 294 | 10201 | *mode = st->matmode; | |
| 295 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
10201 | PetscFunctionReturn(PETSC_SUCCESS); |
| 296 | } | ||
| 297 | |||
| 298 | /*@ | ||
| 299 | STSetTransform - Sets a flag to indicate whether the transformed matrices are | ||
| 300 | computed or not. | ||
| 301 | |||
| 302 | Logically Collective | ||
| 303 | |||
| 304 | Input Parameters: | ||
| 305 | + st - the spectral transformation context | ||
| 306 | - flg - the boolean flag | ||
| 307 | |||
| 308 | Options Database Key: | ||
| 309 | . -st_transform (true|false) - toggle the computation of matrices | ||
| 310 | |||
| 311 | Notes: | ||
| 312 | This flag is intended for the case of polynomial eigenproblems solved | ||
| 313 | via linearization. If this flag is off (default) the spectral transformation | ||
| 314 | is applied to the linearization (handled by the eigensolver), otherwise | ||
| 315 | it is applied to the original problem. | ||
| 316 | |||
| 317 | Level: developer | ||
| 318 | |||
| 319 | .seealso: [](ch:st), `STMatSolve()`, `STMatMult()`, `STSetMatStructure()`, `STGetTransform()` | ||
| 320 | @*/ | ||
| 321 | 11607 | PetscErrorCode STSetTransform(ST st,PetscBool flg) | |
| 322 | { | ||
| 323 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
11607 | PetscFunctionBegin; |
| 324 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
11607 | PetscValidHeaderSpecific(st,ST_CLASSID,1); |
| 325 |
27/62✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 2 times.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✓ Branch 41 taken 2 times.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 2 times.
✓ Branch 46 taken 2 times.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✓ Branch 50 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✓ Branch 59 taken 2 times.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
|
11607 | PetscValidLogicalCollectiveBool(st,flg,2); |
| 326 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
11607 | if (st->transform != flg) { |
| 327 | 8159 | st->transform = flg; | |
| 328 | 8159 | st->state = ST_STATE_INITIAL; | |
| 329 | 8159 | st->opready = PETSC_FALSE; | |
| 330 | } | ||
| 331 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
11607 | PetscFunctionReturn(PETSC_SUCCESS); |
| 332 | } | ||
| 333 | |||
| 334 | /*@ | ||
| 335 | STGetTransform - Gets a flag that indicates whether the transformed | ||
| 336 | matrices are computed or not. | ||
| 337 | |||
| 338 | Not Collective | ||
| 339 | |||
| 340 | Input Parameter: | ||
| 341 | . st - the spectral transformation context | ||
| 342 | |||
| 343 | Output Parameter: | ||
| 344 | . flg - the flag | ||
| 345 | |||
| 346 | Level: developer | ||
| 347 | |||
| 348 | .seealso: [](ch:st), `STSetTransform()` | ||
| 349 | @*/ | ||
| 350 | 126724 | PetscErrorCode STGetTransform(ST st,PetscBool *flg) | |
| 351 | { | ||
| 352 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
126724 | PetscFunctionBegin; |
| 353 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
126724 | PetscValidHeaderSpecific(st,ST_CLASSID,1); |
| 354 |
2/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
126724 | PetscAssertPointer(flg,2); |
| 355 | 126724 | *flg = st->transform; | |
| 356 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
126724 | PetscFunctionReturn(PETSC_SUCCESS); |
| 357 | } | ||
| 358 | |||
| 359 | /*@ | ||
| 360 | STSetStructured - Sets a flag to indicate that the application of the | ||
| 361 | operator must be done taking into account its structure. | ||
| 362 | |||
| 363 | Logically Collective | ||
| 364 | |||
| 365 | Input Parameters: | ||
| 366 | + st - the spectral transformation context | ||
| 367 | - flg - the boolean flag | ||
| 368 | |||
| 369 | Note: | ||
| 370 | This flag is intended for the case of structured eigenproblems. It is set | ||
| 371 | internally by the solver, the user should not modify its value. | ||
| 372 | |||
| 373 | Level: developer | ||
| 374 | |||
| 375 | .seealso: [](ch:st), `STApply()`, `STGetStructured()` | ||
| 376 | @*/ | ||
| 377 | 11166 | PetscErrorCode STSetStructured(ST st,PetscBool flg) | |
| 378 | { | ||
| 379 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
11166 | PetscFunctionBegin; |
| 380 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
11166 | PetscValidHeaderSpecific(st,ST_CLASSID,1); |
| 381 |
27/62✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 2 times.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✓ Branch 41 taken 2 times.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 2 times.
✓ Branch 46 taken 2 times.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✓ Branch 50 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✓ Branch 59 taken 2 times.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
|
11166 | PetscValidLogicalCollectiveBool(st,flg,2); |
| 382 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
11166 | if (st->structured != flg) { |
| 383 | 505 | st->structured = flg; | |
| 384 | 505 | st->state = ST_STATE_INITIAL; | |
| 385 | 505 | st->opready = PETSC_FALSE; | |
| 386 | } | ||
| 387 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
11166 | PetscFunctionReturn(PETSC_SUCCESS); |
| 388 | } | ||
| 389 | |||
| 390 | /*@ | ||
| 391 | STGetStructured - Gets a flag that indicates if the application of the | ||
| 392 | operator is done using its structure. | ||
| 393 | |||
| 394 | Not Collective | ||
| 395 | |||
| 396 | Input Parameter: | ||
| 397 | . st - the spectral transformation context | ||
| 398 | |||
| 399 | Output Parameter: | ||
| 400 | . flg - the flag | ||
| 401 | |||
| 402 | Level: developer | ||
| 403 | |||
| 404 | .seealso: [](ch:st), `STSetStructured()` | ||
| 405 | @*/ | ||
| 406 | ✗ | PetscErrorCode STGetStructured(ST st,PetscBool *flg) | |
| 407 | { | ||
| 408 | ✗ | PetscFunctionBegin; | |
| 409 | ✗ | PetscValidHeaderSpecific(st,ST_CLASSID,1); | |
| 410 | ✗ | PetscAssertPointer(flg,2); | |
| 411 | ✗ | *flg = st->structured; | |
| 412 | ✗ | PetscFunctionReturn(PETSC_SUCCESS); | |
| 413 | } | ||
| 414 |