| 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 | #include <slepc/private/slepcimpl.h> /*I "slepcsys.h" I*/ | ||
| 12 | |||
| 13 | /* | ||
| 14 | Internal functions used to register monitors. | ||
| 15 | */ | ||
| 16 | 74603 | PetscErrorCode SlepcMonitorMakeKey_Internal(const char name[],PetscViewerType vtype,PetscViewerFormat format,char key[]) | |
| 17 | { | ||
| 18 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
74603 | PetscFunctionBegin; |
| 19 |
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.
|
74603 | PetscCall(PetscStrncpy(key,name,PETSC_MAX_PATH_LEN)); |
| 20 |
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.
|
74603 | PetscCall(PetscStrlcat(key,":",PETSC_MAX_PATH_LEN)); |
| 21 |
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.
|
74603 | PetscCall(PetscStrlcat(key,vtype,PETSC_MAX_PATH_LEN)); |
| 22 |
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.
|
74603 | PetscCall(PetscStrlcat(key,":",PETSC_MAX_PATH_LEN)); |
| 23 |
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.
|
74603 | PetscCall(PetscStrlcat(key,PetscViewerFormats[format],PETSC_MAX_PATH_LEN)); |
| 24 |
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.
|
14462 | PetscFunctionReturn(PETSC_SUCCESS); |
| 25 | } | ||
| 26 | |||
| 27 | 145 | PetscErrorCode PetscViewerAndFormatCreate_Internal(PetscViewer viewer,PetscViewerFormat format,void *ctx,PetscViewerAndFormat **vf) | |
| 28 | { | ||
| 29 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
145 | PetscFunctionBegin; |
| 30 |
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.
|
145 | PetscCall(PetscViewerAndFormatCreate(viewer,format,vf)); |
| 31 | 145 | (*vf)->data = ctx; | |
| 32 |
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.
|
145 | PetscFunctionReturn(PETSC_SUCCESS); |
| 33 | } | ||
| 34 | |||
| 35 | /* | ||
| 36 | Given n vectors in V, this function gets references of them into W. | ||
| 37 | If m<0 then some previous non-processed vectors remain in W and must be freed. | ||
| 38 | */ | ||
| 39 | 3663 | PetscErrorCode SlepcBasisReference_Private(PetscInt n,Vec *V,PetscInt *m,Vec **W) | |
| 40 | { | ||
| 41 | 3663 | PetscInt i; | |
| 42 | |||
| 43 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
3663 | PetscFunctionBegin; |
| 44 |
7/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
|
7652 | for (i=0;i<n;i++) PetscCall(PetscObjectReference((PetscObject)V[i])); |
| 45 |
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.
|
3663 | PetscCall(SlepcBasisDestroy_Private(m,W)); |
| 46 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 8 times.
|
3663 | if (n>0) { |
| 47 |
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.
|
3633 | PetscCall(PetscMalloc1(n,W)); |
| 48 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
7622 | for (i=0;i<n;i++) (*W)[i] = V[i]; |
| 49 | 3633 | *m = -n; | |
| 50 | } | ||
| 51 |
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.
|
675 | PetscFunctionReturn(PETSC_SUCCESS); |
| 52 | } | ||
| 53 | |||
| 54 | /* | ||
| 55 | Destroys a set of vectors. | ||
| 56 | A negative value of m indicates that W contains vectors to be destroyed. | ||
| 57 | */ | ||
| 58 | 36295 | PetscErrorCode SlepcBasisDestroy_Private(PetscInt *m,Vec **W) | |
| 59 | { | ||
| 60 | 36295 | PetscInt i; | |
| 61 | |||
| 62 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
36295 | PetscFunctionBegin; |
| 63 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
36295 | if (*m<0) { |
| 64 |
7/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
|
7622 | for (i=0;i<-(*m);i++) PetscCall(VecDestroy(&(*W)[i])); |
| 65 |
5/8✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ 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.
|
3633 | PetscCall(PetscFree(*W)); |
| 66 | } | ||
| 67 | 36295 | *m = 0; | |
| 68 |
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.
|
36295 | PetscFunctionReturn(PETSC_SUCCESS); |
| 69 | } | ||
| 70 | |||
| 71 | /*@C | ||
| 72 | SlepcSNPrintfScalar - Prints a `PetscScalar` variable to a string of | ||
| 73 | given length. | ||
| 74 | |||
| 75 | Not Collective | ||
| 76 | |||
| 77 | Input Parameters: | ||
| 78 | + str - the string to print to | ||
| 79 | . len - the length of str | ||
| 80 | . val - scalar value to be printed | ||
| 81 | - exp - to be used within an expression, print leading sign and parentheses | ||
| 82 | in case of nonzero imaginary part | ||
| 83 | |||
| 84 | Level: developer | ||
| 85 | |||
| 86 | .seealso: `PetscSNPrintf()` | ||
| 87 | @*/ | ||
| 88 | 3184 | PetscErrorCode SlepcSNPrintfScalar(char str[],size_t len,PetscScalar val,PetscBool exp) | |
| 89 | { | ||
| 90 | #if defined(PETSC_USE_COMPLEX) | ||
| 91 | 1687 | PetscReal re,im; | |
| 92 | #endif | ||
| 93 | |||
| 94 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
3184 | PetscFunctionBegin; |
| 95 | #if !defined(PETSC_USE_COMPLEX) | ||
| 96 |
6/8✓ Branch 0 taken 5 times.
✓ Branch 1 taken 5 times.
✓ Branch 2 taken 1 times.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1497 | if (exp) PetscCall(PetscSNPrintf(str,len,"%+g",(double)val)); |
| 97 |
4/6✓ Branch 0 taken 1 times.
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
777 | else PetscCall(PetscSNPrintf(str,len,"%g",(double)val)); |
| 98 | #else | ||
| 99 | 1687 | re = PetscRealPart(val); | |
| 100 | 1687 | im = PetscImaginaryPart(val); | |
| 101 |
2/2✓ Branch 0 taken 5 times.
✓ Branch 1 taken 5 times.
|
1687 | if (im!=0.0) { |
| 102 |
1/8✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
84 | if (exp) PetscCall(PetscSNPrintf(str,len,"+(%g%+gi)",(double)re,(double)im)); |
| 103 |
4/6✓ Branch 0 taken 1 times.
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
84 | else PetscCall(PetscSNPrintf(str,len,"%g%+gi",(double)re,(double)im)); |
| 104 | } else { | ||
| 105 |
6/8✓ Branch 0 taken 5 times.
✓ Branch 1 taken 5 times.
✓ Branch 2 taken 1 times.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1603 | if (exp) PetscCall(PetscSNPrintf(str,len,"%+g",(double)re)); |
| 106 |
4/6✓ Branch 0 taken 1 times.
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
812 | else PetscCall(PetscSNPrintf(str,len,"%g",(double)re)); |
| 107 | } | ||
| 108 | #endif | ||
| 109 |
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.
|
562 | PetscFunctionReturn(PETSC_SUCCESS); |
| 110 | } | ||
| 111 | |||
| 112 | /*@ | ||
| 113 | SlepcHasExternalPackage - Determine whether SLEPc has been configured with the | ||
| 114 | given package. | ||
| 115 | |||
| 116 | Not Collective | ||
| 117 | |||
| 118 | Input Parameter: | ||
| 119 | . pkg - external package name | ||
| 120 | |||
| 121 | Output Parameter: | ||
| 122 | . has - `PETSC_TRUE` if SLEPc is configured with the given package, else `PETSC_FALSE` | ||
| 123 | |||
| 124 | Level: intermediate | ||
| 125 | |||
| 126 | Notes: | ||
| 127 | This is basically an alternative for `SLEPC_HAVE_XXX` whenever a preprocessor macro | ||
| 128 | is not available/desirable, e.g., in Python. | ||
| 129 | |||
| 130 | The external package name pkg is, e.g., `arpack` or `primme`. | ||
| 131 | It should correspond to the name listed in `./configure --help`. | ||
| 132 | |||
| 133 | The lookup is case insensitive, i.e. looking for `ARPACK` or `arpack` is the same. | ||
| 134 | |||
| 135 | .seealso: [](sec:writing-prog), `EPSType`, `SVDType` | ||
| 136 | @*/ | ||
| 137 | 20 | PetscErrorCode SlepcHasExternalPackage(const char pkg[], PetscBool *has) | |
| 138 | { | ||
| 139 | 20 | char pkgstr[128],*loc; | |
| 140 | 20 | size_t cnt; | |
| 141 | |||
| 142 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
20 | PetscFunctionBegin; |
| 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.
|
20 | PetscCall(PetscSNPrintfCount(pkgstr,sizeof(pkgstr),":%s:",&cnt,pkg)); |
| 144 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
20 | PetscCheck(cnt<sizeof(pkgstr),PETSC_COMM_SELF,PETSC_ERR_SUP,"Package name is too long: \"%s\"",pkg); |
| 145 |
3/6✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
20 | PetscCall(PetscStrtolower(pkgstr)); |
| 146 | #if defined(SLEPC_HAVE_PACKAGES) | ||
| 147 |
3/6✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
20 | PetscCall(PetscStrstr(SLEPC_HAVE_PACKAGES,pkgstr,&loc)); |
| 148 | #else | ||
| 149 | #error "SLEPC_HAVE_PACKAGES macro undefined. Please reconfigure" | ||
| 150 | #endif | ||
| 151 | 20 | *has = loc? PETSC_TRUE: PETSC_FALSE; | |
| 152 |
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.
|
20 | PetscFunctionReturn(PETSC_SUCCESS); |
| 153 | } | ||
| 154 | |||
| 155 | /* | ||
| 156 | SlepcDebugViewMatrix - prints an array as a matrix, to be used from within a debugger. | ||
| 157 | Output can be pasted to Matlab. | ||
| 158 | |||
| 159 | nrows, ncols: size of printed matrix | ||
| 160 | Xr, Xi: array to be printed (Xi not referenced in complex scalars) | ||
| 161 | ldx: leading dimension | ||
| 162 | s: name of Matlab variable | ||
| 163 | filename: optionally write output to a file | ||
| 164 | */ | ||
| 165 | #if defined(PETSC_USE_DEBUG) | ||
| 166 | 2 | PetscErrorCode SlepcDebugViewMatrix(PetscInt nrows,PetscInt ncols,PetscScalar *Xr,PetscScalar *Xi,PetscInt ldx,const char *s,const char *filename) | |
| 167 | { | ||
| 168 | 2 | PetscInt i,j; | |
| 169 | 2 | PetscViewer viewer; | |
| 170 | |||
| 171 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
2 | PetscFunctionBegin; |
| 172 |
1/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
2 | if (filename) PetscCall(PetscViewerASCIIOpen(PETSC_COMM_WORLD,filename,&viewer)); |
| 173 |
3/6✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
2 | else PetscCall(PetscViewerASCIIGetStdout(PETSC_COMM_WORLD,&viewer)); |
| 174 |
3/6✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
2 | PetscCall(PetscViewerASCIIPrintf(viewer,"%s = [\n",s)); |
| 175 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
|
6 | for (i=0;i<nrows;i++) { |
| 176 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
|
16 | for (j=0;j<ncols;j++) { |
| 177 | #if defined(PETSC_USE_COMPLEX) | ||
| 178 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
6 | PetscCall(PetscViewerASCIIPrintf(viewer,"%.18g+%.18gi ",(double)PetscRealPart(Xr[i+j*ldx]),(double)PetscImaginaryPart(Xr[i+j*ldx]))); |
| 179 | #else | ||
| 180 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
6 | if (Xi) PetscCall(PetscViewerASCIIPrintf(viewer,"%.18g+%.18gi ",(double)Xr[i+j*ldx],(double)Xi[i+j*ldx])); |
| 181 |
0/6✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
6 | else PetscCall(PetscViewerASCIIPrintf(viewer,"%.18g ",(double)Xr[i+j*ldx])); |
| 182 | #endif | ||
| 183 | } | ||
| 184 |
3/6✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
4 | PetscCall(PetscViewerASCIIPrintf(viewer,"\n")); |
| 185 | } | ||
| 186 |
3/6✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
2 | PetscCall(PetscViewerASCIIPrintf(viewer,"];\n")); |
| 187 |
1/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
2 | if (filename) PetscCall(PetscViewerDestroy(&viewer)); |
| 188 |
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.
|
2 | PetscFunctionReturn(PETSC_SUCCESS); |
| 189 | } | ||
| 190 | #endif | ||
| 191 | |||
| 192 | /* | ||
| 193 | SlepcDebugSetMatlabStdout - sets Matlab format in stdout, to be used from within a debugger. | ||
| 194 | */ | ||
| 195 | #if defined(PETSC_USE_DEBUG) && !defined(PETSC_CLANG_STATIC_ANALYZER) | ||
| 196 | ✗ | PETSC_UNUSED PetscErrorCode SlepcDebugSetMatlabStdout(void) | |
| 197 | { | ||
| 198 | ✗ | PetscViewer viewer; | |
| 199 | |||
| 200 | ✗ | PetscFunctionBegin; | |
| 201 | ✗ | PetscCall(PetscViewerASCIIGetStdout(PETSC_COMM_WORLD,&viewer)); | |
| 202 | ✗ | PetscCall(PetscViewerPushFormat(viewer,PETSC_VIEWER_ASCII_MATLAB)); | |
| 203 | ✗ | PetscFunctionReturn(PETSC_SUCCESS); | |
| 204 | } | ||
| 205 | #endif | ||
| 206 |