Actual source code: ex11.c

  1: static char help[] = "Demonstrates previous memory leak for XXXRegister()\n\n";

  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>

 11: static PetscErrorCode TSGLLEAdaptCreate_Dummy(TSGLLEAdapt ts)
 12: {
 13:   PetscFunctionBeginUser;
 14:   PetscFunctionReturn(PETSC_SUCCESS);
 15: }

 17: static PetscErrorCode TSGLLECreate_Dummy(TS ts)
 18: {
 19:   PetscFunctionBeginUser;
 20:   PetscFunctionReturn(PETSC_SUCCESS);
 21: }

 23: static PetscErrorCode TSAdaptCreate_Dummy(TSAdapt ts)
 24: {
 25:   PetscFunctionBeginUser;
 26:   PetscFunctionReturn(PETSC_SUCCESS);
 27: }

 29: static PetscErrorCode TSCreate_Dummy(TS ts)
 30: {
 31:   PetscFunctionBeginUser;
 32:   PetscFunctionReturn(PETSC_SUCCESS);
 33: }

 35: #if !defined(PETSC_USE_COMPLEX)
 36: static PetscErrorCode CharacteristicCreate_Dummy(Characteristic chr)
 37: {
 38:   PetscFunctionBeginUser;
 39:   PetscFunctionReturn(PETSC_SUCCESS);
 40: }
 41: #endif

 43: static PetscErrorCode SNESLineSearchCreate_Dummy(SNESLineSearch sneslinesearch)
 44: {
 45:   PetscFunctionBeginUser;
 46:   PetscFunctionReturn(PETSC_SUCCESS);
 47: }

 49: static PetscErrorCode SNESCreate_Dummy(SNES snes)
 50: {
 51:   PetscFunctionBeginUser;
 52:   PetscFunctionReturn(PETSC_SUCCESS);
 53: }

 55: static PetscErrorCode KSPCreate_Dummy(KSP ksp)
 56: {
 57:   PetscFunctionBeginUser;
 58:   PetscFunctionReturn(PETSC_SUCCESS);
 59: }

 61: static PetscErrorCode KSPGuessCreate_Dummy(KSPGuess ksp)
 62: {
 63:   PetscFunctionBeginUser;
 64:   PetscFunctionReturn(PETSC_SUCCESS);
 65: }

 67: static PetscErrorCode PCCreate_Dummy(PC pc)
 68: {
 69:   PetscFunctionBeginUser;
 70:   PetscFunctionReturn(PETSC_SUCCESS);
 71: }

 73: static PetscErrorCode DMCreate_Dummy(DM dm)
 74: {
 75:   PetscFunctionBeginUser;
 76:   PetscFunctionReturn(PETSC_SUCCESS);
 77: }

 79: static PetscErrorCode MatOrderingCreate_Dummy(Mat mat, MatOrderingType mtype, IS *isr, IS *isc)
 80: {
 81:   PetscFunctionBeginUser;
 82:   PetscFunctionReturn(PETSC_SUCCESS);
 83: }

 85: static PetscErrorCode MatPartitioningCreate_Dummy(MatPartitioning mat)
 86: {
 87:   PetscFunctionBeginUser;
 88:   PetscFunctionReturn(PETSC_SUCCESS);
 89: }

 91: static PetscErrorCode MatCreate_Dummy(Mat mat)
 92: {
 93:   PetscFunctionBeginUser;
 94:   PetscFunctionReturn(PETSC_SUCCESS);
 95: }

 97: static PetscErrorCode PFCreate_Dummy(PF pf, void *ctx)
 98: {
 99:   PetscFunctionBeginUser;
100:   PetscFunctionReturn(PETSC_SUCCESS);
101: }

103: static PetscErrorCode VecCreate_Dummy(Vec vec)
104: {
105:   PetscFunctionBeginUser;
106:   PetscFunctionReturn(PETSC_SUCCESS);
107: }

109: static PetscErrorCode VecScatterCreate_Dummy(VecScatter vec)
110: {
111:   PetscFunctionBeginUser;
112:   PetscFunctionReturn(PETSC_SUCCESS);
113: }

115: static PetscErrorCode PetscSFCreate_Dummy(PetscSF sf)
116: {
117:   PetscFunctionBeginUser;
118:   PetscFunctionReturn(PETSC_SUCCESS);
119: }

121: static PetscErrorCode ISLocalToGlobalMappingCreate_Dummy(ISLocalToGlobalMapping is)
122: {
123:   PetscFunctionBeginUser;
124:   PetscFunctionReturn(PETSC_SUCCESS);
125: }

127: static PetscErrorCode ISCreate_Dummy(IS is)
128: {
129:   PetscFunctionBeginUser;
130:   PetscFunctionReturn(PETSC_SUCCESS);
131: }

133: static PetscErrorCode AOCreate_Dummy(AO ao)
134: {
135:   PetscFunctionBeginUser;
136:   PetscFunctionReturn(PETSC_SUCCESS);
137: }

139: static PetscErrorCode PetscDrawCreate_Dummy(PetscDraw draw)
140: {
141:   PetscFunctionBeginUser;
142:   PetscFunctionReturn(PETSC_SUCCESS);
143: }

145: static PetscErrorCode PetscViewerCreate_Dummy(PetscViewer viewer)
146: {
147:   PetscFunctionBeginUser;
148:   PetscFunctionReturn(PETSC_SUCCESS);
149: }

151: static PetscErrorCode PetscRandomCreate_Dummy(PetscRandom arand)
152: {
153:   PetscFunctionBeginUser;
154:   PetscFunctionReturn(PETSC_SUCCESS);
155: }

157: int main(int argc, char **argv)
158: {
159:   PetscReal A[1], Gamma[1] = {1.0}, b[1], c[1], d[1];

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: }

200: /*TEST

202:    test:

204: TEST*/