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