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