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 PetscErrorCode ierr; 160 PetscReal A[1],Gamma[1] = {1.0},b[1],c[1],d[1]; 161 162 ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr; 163 /* TaoLineSearchRegister() also has the same memory leak */ 164 /* TaoRegister() also has the same memory leak */ 165 ierr = TSGLLEAdaptRegister("dummy",TSGLLEAdaptCreate_Dummy);CHKERRQ(ierr); 166 ierr = TSGLLERegister("dummy",TSGLLECreate_Dummy);CHKERRQ(ierr); 167 ierr = TSRKRegister("dummy",0,0,A,0,0,0,0,0);CHKERRQ(ierr); 168 ierr = TSGLEERegister("dummy",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);CHKERRQ(ierr); 169 ierr = TSARKIMEXRegister("dummy",0,0,0,0,0,0,0,0,0,0,0,0,0);CHKERRQ(ierr); 170 ierr = TSRosWRegister("dummy",0,1,A,Gamma,b,0,0,0);CHKERRQ(ierr); 171 ierr = TSBasicSymplecticRegister("dummy",0,0,c,d);CHKERRQ(ierr); 172 ierr = TSAdaptRegister("dummy",TSAdaptCreate_Dummy);CHKERRQ(ierr); 173 ierr = TSRegister("dummy",TSCreate_Dummy);CHKERRQ(ierr); 174 #if !defined(PETSC_USE_COMPLEX) 175 ierr = CharacteristicRegister("dummy",CharacteristicCreate_Dummy);CHKERRQ(ierr); 176 #endif 177 ierr = SNESLineSearchRegister("dummy",SNESLineSearchCreate_Dummy);CHKERRQ(ierr); 178 ierr = SNESRegister("dummy",SNESCreate_Dummy);CHKERRQ(ierr); 179 ierr = KSPGuessRegister("dummy",KSPGuessCreate_Dummy);CHKERRQ(ierr); 180 ierr = KSPRegister("dummy",KSPCreate_Dummy);CHKERRQ(ierr); 181 ierr = PCRegister("dummy",PCCreate_Dummy);CHKERRQ(ierr); 182 ierr = DMRegister("dummy",DMCreate_Dummy);CHKERRQ(ierr); 183 ierr = MatOrderingRegister("dummy",MatOrderingCreate_Dummy);CHKERRQ(ierr); 184 ierr = MatPartitioningRegister("dummy",MatPartitioningCreate_Dummy);CHKERRQ(ierr); 185 ierr = MatRegister("dummy",MatCreate_Dummy);CHKERRQ(ierr); 186 ierr = PFRegister("dummy",PFCreate_Dummy);CHKERRQ(ierr); 187 ierr = VecScatterRegister("dummy",VecScatterCreate_Dummy);CHKERRQ(ierr); 188 ierr = VecRegister("dummy",VecCreate_Dummy);CHKERRQ(ierr); 189 ierr = PetscSFRegister("dummy",PetscSFCreate_Dummy);CHKERRQ(ierr); 190 ierr = ISLocalToGlobalMappingRegister("dummy",ISLocalToGlobalMappingCreate_Dummy);CHKERRQ(ierr); 191 ierr = ISRegister("dummy",ISCreate_Dummy);CHKERRQ(ierr); 192 ierr = AORegister("dummy",AOCreate_Dummy);CHKERRQ(ierr); 193 ierr = PetscDrawRegister("dummy",PetscDrawCreate_Dummy);CHKERRQ(ierr); 194 ierr = PetscViewerRegister("dummy",PetscViewerCreate_Dummy);CHKERRQ(ierr); 195 ierr = PetscRandomRegister("dummy",PetscRandomCreate_Dummy);CHKERRQ(ierr); 196 ierr = PetscFinalize(); 197 return ierr; 198 } 199 200 /*TEST 201 202 test: 203 204 TEST*/ 205