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 MatPartitioningCreate_Dummy(MatPartitioning mat) 80 { 81 PetscFunctionBeginUser; 82 PetscFunctionReturn(PETSC_SUCCESS); 83 } 84 85 static PetscErrorCode MatCreate_Dummy(Mat mat) 86 { 87 PetscFunctionBeginUser; 88 PetscFunctionReturn(PETSC_SUCCESS); 89 } 90 91 static PetscErrorCode PFCreate_Dummy(PF pf, PetscCtx ctx) 92 { 93 PetscFunctionBeginUser; 94 PetscFunctionReturn(PETSC_SUCCESS); 95 } 96 97 static PetscErrorCode VecCreate_Dummy(Vec vec) 98 { 99 PetscFunctionBeginUser; 100 PetscFunctionReturn(PETSC_SUCCESS); 101 } 102 103 static PetscErrorCode VecScatterCreate_Dummy(VecScatter vec) 104 { 105 PetscFunctionBeginUser; 106 PetscFunctionReturn(PETSC_SUCCESS); 107 } 108 109 static PetscErrorCode PetscSFCreate_Dummy(PetscSF sf) 110 { 111 PetscFunctionBeginUser; 112 PetscFunctionReturn(PETSC_SUCCESS); 113 } 114 115 static PetscErrorCode ISLocalToGlobalMappingCreate_Dummy(ISLocalToGlobalMapping is) 116 { 117 PetscFunctionBeginUser; 118 PetscFunctionReturn(PETSC_SUCCESS); 119 } 120 121 static PetscErrorCode ISCreate_Dummy(IS is) 122 { 123 PetscFunctionBeginUser; 124 PetscFunctionReturn(PETSC_SUCCESS); 125 } 126 127 static PetscErrorCode AOCreate_Dummy(AO ao) 128 { 129 PetscFunctionBeginUser; 130 PetscFunctionReturn(PETSC_SUCCESS); 131 } 132 133 static PetscErrorCode PetscDrawCreate_Dummy(PetscDraw draw) 134 { 135 PetscFunctionBeginUser; 136 PetscFunctionReturn(PETSC_SUCCESS); 137 } 138 139 static PetscErrorCode PetscViewerCreate_Dummy(PetscViewer viewer) 140 { 141 PetscFunctionBeginUser; 142 PetscFunctionReturn(PETSC_SUCCESS); 143 } 144 145 static PetscErrorCode PetscRandomCreate_Dummy(PetscRandom arand) 146 { 147 PetscFunctionBeginUser; 148 PetscFunctionReturn(PETSC_SUCCESS); 149 } 150 151 int main(int argc, char **argv) 152 { 153 PetscReal A[1] = {0.0}, Gamma[1] = {1.0}, b[1] = {1.0}, c[1] = {1.0}, d[1] = {1.0}; 154 155 PetscFunctionBeginUser; 156 PetscCall(PetscInitialize(&argc, &argv, NULL, help)); 157 /* TaoLineSearchRegister() also has the same memory leak */ 158 /* TaoRegister() also has the same memory leak */ 159 PetscCall(TSGLLEAdaptRegister("dummy", TSGLLEAdaptCreate_Dummy)); 160 PetscCall(TSGLLERegister("dummy", TSGLLECreate_Dummy)); 161 PetscCall(TSRKRegister("dummy", 0, 0, A, 0, 0, 0, 0, 0)); 162 PetscCall(TSGLEERegister("dummy", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); 163 PetscCall(TSARKIMEXRegister("dummy", 0, 1, A, b, c, A, b, c, 0, 0, 0, 0, 0)); 164 PetscCall(TSRosWRegister("dummy", 0, 1, A, Gamma, b, 0, 0, 0)); 165 PetscCall(TSBasicSymplecticRegister("dummy", 0, 0, c, d)); 166 PetscCall(TSAdaptRegister("dummy", TSAdaptCreate_Dummy)); 167 PetscCall(TSRegister("dummy", TSCreate_Dummy)); 168 #if !defined(PETSC_USE_COMPLEX) 169 PetscCall(CharacteristicRegister("dummy", CharacteristicCreate_Dummy)); 170 #endif 171 PetscCall(SNESLineSearchRegister("dummy", SNESLineSearchCreate_Dummy)); 172 PetscCall(SNESRegister("dummy", SNESCreate_Dummy)); 173 PetscCall(KSPGuessRegister("dummy", KSPGuessCreate_Dummy)); 174 PetscCall(KSPRegister("dummy", KSPCreate_Dummy)); 175 PetscCall(PCRegister("dummy", PCCreate_Dummy)); 176 PetscCall(DMRegister("dummy", DMCreate_Dummy)); 177 PetscCall(MatPartitioningRegister("dummy", MatPartitioningCreate_Dummy)); 178 PetscCall(MatRegister("dummy", MatCreate_Dummy)); 179 PetscCall(PFRegister("dummy", PFCreate_Dummy)); 180 PetscCall(VecScatterRegister("dummy", VecScatterCreate_Dummy)); 181 PetscCall(VecRegister("dummy", VecCreate_Dummy)); 182 PetscCall(PetscSFRegister("dummy", PetscSFCreate_Dummy)); 183 PetscCall(ISLocalToGlobalMappingRegister("dummy", ISLocalToGlobalMappingCreate_Dummy)); 184 PetscCall(ISRegister("dummy", ISCreate_Dummy)); 185 PetscCall(AORegister("dummy", AOCreate_Dummy)); 186 PetscCall(PetscDrawRegister("dummy", PetscDrawCreate_Dummy)); 187 PetscCall(PetscViewerRegister("dummy", PetscViewerCreate_Dummy)); 188 PetscCall(PetscRandomRegister("dummy", PetscRandomCreate_Dummy)); 189 PetscCall(PetscFinalize()); 190 return 0; 191 } 192 193 /*TEST 194 195 test: 196 output_file: output/empty.out 197 198 TEST*/ 199