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 MatPartitioningCreate_Dummy(MatPartitioning mat)
80: {
81: PetscFunctionBeginUser;
82: PetscFunctionReturn(PETSC_SUCCESS);
83: }
85: static PetscErrorCode MatCreate_Dummy(Mat mat)
86: {
87: PetscFunctionBeginUser;
88: PetscFunctionReturn(PETSC_SUCCESS);
89: }
91: static PetscErrorCode PFCreate_Dummy(PF pf, void *ctx)
92: {
93: PetscFunctionBeginUser;
94: PetscFunctionReturn(PETSC_SUCCESS);
95: }
97: static PetscErrorCode VecCreate_Dummy(Vec vec)
98: {
99: PetscFunctionBeginUser;
100: PetscFunctionReturn(PETSC_SUCCESS);
101: }
103: static PetscErrorCode VecScatterCreate_Dummy(VecScatter vec)
104: {
105: PetscFunctionBeginUser;
106: PetscFunctionReturn(PETSC_SUCCESS);
107: }
109: static PetscErrorCode PetscSFCreate_Dummy(PetscSF sf)
110: {
111: PetscFunctionBeginUser;
112: PetscFunctionReturn(PETSC_SUCCESS);
113: }
115: static PetscErrorCode ISLocalToGlobalMappingCreate_Dummy(ISLocalToGlobalMapping is)
116: {
117: PetscFunctionBeginUser;
118: PetscFunctionReturn(PETSC_SUCCESS);
119: }
121: static PetscErrorCode ISCreate_Dummy(IS is)
122: {
123: PetscFunctionBeginUser;
124: PetscFunctionReturn(PETSC_SUCCESS);
125: }
127: static PetscErrorCode AOCreate_Dummy(AO ao)
128: {
129: PetscFunctionBeginUser;
130: PetscFunctionReturn(PETSC_SUCCESS);
131: }
133: static PetscErrorCode PetscDrawCreate_Dummy(PetscDraw draw)
134: {
135: PetscFunctionBeginUser;
136: PetscFunctionReturn(PETSC_SUCCESS);
137: }
139: static PetscErrorCode PetscViewerCreate_Dummy(PetscViewer viewer)
140: {
141: PetscFunctionBeginUser;
142: PetscFunctionReturn(PETSC_SUCCESS);
143: }
145: static PetscErrorCode PetscRandomCreate_Dummy(PetscRandom arand)
146: {
147: PetscFunctionBeginUser;
148: PetscFunctionReturn(PETSC_SUCCESS);
149: }
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};
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: }
193: /*TEST
195: test:
197: TEST*/