1 static char help[] = "Demonstrates previous memory leak for XXXRegister()\n\n"; 2 3 #include <petscts.h> 4 #include <petsccharacteristic.h> 5 #include <petscdraw.h> 6 #include <petscdm.h> 7 #include <petscpf.h> 8 #include <petscsf.h> 9 #include <petscao.h> 10 11 static PetscErrorCode TSGLLEAdaptCreate_Dummy(TSGLLEAdapt ts) 12 { 13 PetscFunctionBeginUser; 14 PetscFunctionReturn(PETSC_SUCCESS); 15 } 16 17 static PetscErrorCode TSGLLECreate_Dummy(TS ts) 18 { 19 PetscFunctionBeginUser; 20 PetscFunctionReturn(PETSC_SUCCESS); 21 } 22 23 static PetscErrorCode TSAdaptCreate_Dummy(TSAdapt ts) 24 { 25 PetscFunctionBeginUser; 26 PetscFunctionReturn(PETSC_SUCCESS); 27 } 28 29 static PetscErrorCode TSCreate_Dummy(TS ts) 30 { 31 PetscFunctionBeginUser; 32 PetscFunctionReturn(PETSC_SUCCESS); 33 } 34 35 #if !defined(PETSC_USE_COMPLEX) 36 static PetscErrorCode CharacteristicCreate_Dummy(Characteristic chr) 37 { 38 PetscFunctionBeginUser; 39 PetscFunctionReturn(PETSC_SUCCESS); 40 } 41 #endif 42 43 static PetscErrorCode SNESLineSearchCreate_Dummy(SNESLineSearch sneslinesearch) 44 { 45 PetscFunctionBeginUser; 46 PetscFunctionReturn(PETSC_SUCCESS); 47 } 48 49 static PetscErrorCode SNESCreate_Dummy(SNES snes) 50 { 51 PetscFunctionBeginUser; 52 PetscFunctionReturn(PETSC_SUCCESS); 53 } 54 55 static PetscErrorCode KSPCreate_Dummy(KSP ksp) 56 { 57 PetscFunctionBeginUser; 58 PetscFunctionReturn(PETSC_SUCCESS); 59 } 60 61 static PetscErrorCode KSPGuessCreate_Dummy(KSPGuess ksp) 62 { 63 PetscFunctionBeginUser; 64 PetscFunctionReturn(PETSC_SUCCESS); 65 } 66 67 static PetscErrorCode PCCreate_Dummy(PC pc) 68 { 69 PetscFunctionBeginUser; 70 PetscFunctionReturn(PETSC_SUCCESS); 71 } 72 73 static PetscErrorCode DMCreate_Dummy(DM dm) 74 { 75 PetscFunctionBeginUser; 76 PetscFunctionReturn(PETSC_SUCCESS); 77 } 78 79 static PetscErrorCode MatOrderingCreate_Dummy(Mat mat, MatOrderingType mtype, IS *isr, IS *isc) 80 { 81 PetscFunctionBeginUser; 82 PetscFunctionReturn(PETSC_SUCCESS); 83 } 84 85 static PetscErrorCode MatPartitioningCreate_Dummy(MatPartitioning mat) 86 { 87 PetscFunctionBeginUser; 88 PetscFunctionReturn(PETSC_SUCCESS); 89 } 90 91 static PetscErrorCode MatCreate_Dummy(Mat mat) 92 { 93 PetscFunctionBeginUser; 94 PetscFunctionReturn(PETSC_SUCCESS); 95 } 96 97 static PetscErrorCode PFCreate_Dummy(PF pf, void *ctx) 98 { 99 PetscFunctionBeginUser; 100 PetscFunctionReturn(PETSC_SUCCESS); 101 } 102 103 static PetscErrorCode VecCreate_Dummy(Vec vec) 104 { 105 PetscFunctionBeginUser; 106 PetscFunctionReturn(PETSC_SUCCESS); 107 } 108 109 static PetscErrorCode VecScatterCreate_Dummy(VecScatter vec) 110 { 111 PetscFunctionBeginUser; 112 PetscFunctionReturn(PETSC_SUCCESS); 113 } 114 115 static PetscErrorCode PetscSFCreate_Dummy(PetscSF sf) 116 { 117 PetscFunctionBeginUser; 118 PetscFunctionReturn(PETSC_SUCCESS); 119 } 120 121 static PetscErrorCode ISLocalToGlobalMappingCreate_Dummy(ISLocalToGlobalMapping is) 122 { 123 PetscFunctionBeginUser; 124 PetscFunctionReturn(PETSC_SUCCESS); 125 } 126 127 static PetscErrorCode ISCreate_Dummy(IS is) 128 { 129 PetscFunctionBeginUser; 130 PetscFunctionReturn(PETSC_SUCCESS); 131 } 132 133 static PetscErrorCode AOCreate_Dummy(AO ao) 134 { 135 PetscFunctionBeginUser; 136 PetscFunctionReturn(PETSC_SUCCESS); 137 } 138 139 static PetscErrorCode PetscDrawCreate_Dummy(PetscDraw draw) 140 { 141 PetscFunctionBeginUser; 142 PetscFunctionReturn(PETSC_SUCCESS); 143 } 144 145 static PetscErrorCode PetscViewerCreate_Dummy(PetscViewer viewer) 146 { 147 PetscFunctionBeginUser; 148 PetscFunctionReturn(PETSC_SUCCESS); 149 } 150 151 static PetscErrorCode PetscRandomCreate_Dummy(PetscRandom arand) 152 { 153 PetscFunctionBeginUser; 154 PetscFunctionReturn(PETSC_SUCCESS); 155 } 156 157 int main(int argc, char **argv) 158 { 159 PetscReal A[1], Gamma[1] = {1.0}, b[1], c[1], d[1]; 160 161 PetscFunctionBeginUser; 162 PetscCall(PetscInitialize(&argc, &argv, (char *)0, help)); 163 /* TaoLineSearchRegister() also has the same memory leak */ 164 /* TaoRegister() also has the same memory leak */ 165 PetscCall(TSGLLEAdaptRegister("dummy", TSGLLEAdaptCreate_Dummy)); 166 PetscCall(TSGLLERegister("dummy", TSGLLECreate_Dummy)); 167 PetscCall(TSRKRegister("dummy", 0, 0, A, 0, 0, 0, 0, 0)); 168 PetscCall(TSGLEERegister("dummy", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); 169 PetscCall(TSARKIMEXRegister("dummy", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); 170 PetscCall(TSRosWRegister("dummy", 0, 1, A, Gamma, b, 0, 0, 0)); 171 PetscCall(TSBasicSymplecticRegister("dummy", 0, 0, c, d)); 172 PetscCall(TSAdaptRegister("dummy", TSAdaptCreate_Dummy)); 173 PetscCall(TSRegister("dummy", TSCreate_Dummy)); 174 #if !defined(PETSC_USE_COMPLEX) 175 PetscCall(CharacteristicRegister("dummy", CharacteristicCreate_Dummy)); 176 #endif 177 PetscCall(SNESLineSearchRegister("dummy", SNESLineSearchCreate_Dummy)); 178 PetscCall(SNESRegister("dummy", SNESCreate_Dummy)); 179 PetscCall(KSPGuessRegister("dummy", KSPGuessCreate_Dummy)); 180 PetscCall(KSPRegister("dummy", KSPCreate_Dummy)); 181 PetscCall(PCRegister("dummy", PCCreate_Dummy)); 182 PetscCall(DMRegister("dummy", DMCreate_Dummy)); 183 PetscCall(MatOrderingRegister("dummy", MatOrderingCreate_Dummy)); 184 PetscCall(MatPartitioningRegister("dummy", MatPartitioningCreate_Dummy)); 185 PetscCall(MatRegister("dummy", MatCreate_Dummy)); 186 PetscCall(PFRegister("dummy", PFCreate_Dummy)); 187 PetscCall(VecScatterRegister("dummy", VecScatterCreate_Dummy)); 188 PetscCall(VecRegister("dummy", VecCreate_Dummy)); 189 PetscCall(PetscSFRegister("dummy", PetscSFCreate_Dummy)); 190 PetscCall(ISLocalToGlobalMappingRegister("dummy", ISLocalToGlobalMappingCreate_Dummy)); 191 PetscCall(ISRegister("dummy", ISCreate_Dummy)); 192 PetscCall(AORegister("dummy", AOCreate_Dummy)); 193 PetscCall(PetscDrawRegister("dummy", PetscDrawCreate_Dummy)); 194 PetscCall(PetscViewerRegister("dummy", PetscViewerCreate_Dummy)); 195 PetscCall(PetscRandomRegister("dummy", PetscRandomCreate_Dummy)); 196 PetscCall(PetscFinalize()); 197 return 0; 198 } 199 200 /*TEST 201 202 test: 203 204 TEST*/ 205