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