xref: /petsc/src/ts/tests/ex11.c (revision fbf9dbe564678ed6eff1806adbc4c4f01b9743f4)
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 MatOrderingCreate_Dummy(Mat mat, MatOrderingType mtype, IS *isr, IS *isc)
80 {
81   PetscFunctionBeginUser;
82   PetscFunctionReturn(PETSC_SUCCESS);
83 }
84 
85 static PetscErrorCode MatPartitioningCreate_Dummy(MatPartitioning mat)
86 {
87   PetscFunctionBeginUser;
88   PetscFunctionReturn(PETSC_SUCCESS);
89 }
90 
91 static PetscErrorCode MatCreate_Dummy(Mat mat)
92 {
93   PetscFunctionBeginUser;
94   PetscFunctionReturn(PETSC_SUCCESS);
95 }
96 
97 static PetscErrorCode PFCreate_Dummy(PF pf, void *ctx)
98 {
99   PetscFunctionBeginUser;
100   PetscFunctionReturn(PETSC_SUCCESS);
101 }
102 
103 static PetscErrorCode VecCreate_Dummy(Vec vec)
104 {
105   PetscFunctionBeginUser;
106   PetscFunctionReturn(PETSC_SUCCESS);
107 }
108 
109 static PetscErrorCode VecScatterCreate_Dummy(VecScatter vec)
110 {
111   PetscFunctionBeginUser;
112   PetscFunctionReturn(PETSC_SUCCESS);
113 }
114 
115 static PetscErrorCode PetscSFCreate_Dummy(PetscSF sf)
116 {
117   PetscFunctionBeginUser;
118   PetscFunctionReturn(PETSC_SUCCESS);
119 }
120 
121 static PetscErrorCode ISLocalToGlobalMappingCreate_Dummy(ISLocalToGlobalMapping is)
122 {
123   PetscFunctionBeginUser;
124   PetscFunctionReturn(PETSC_SUCCESS);
125 }
126 
127 static PetscErrorCode ISCreate_Dummy(IS is)
128 {
129   PetscFunctionBeginUser;
130   PetscFunctionReturn(PETSC_SUCCESS);
131 }
132 
133 static PetscErrorCode AOCreate_Dummy(AO ao)
134 {
135   PetscFunctionBeginUser;
136   PetscFunctionReturn(PETSC_SUCCESS);
137 }
138 
139 static PetscErrorCode PetscDrawCreate_Dummy(PetscDraw draw)
140 {
141   PetscFunctionBeginUser;
142   PetscFunctionReturn(PETSC_SUCCESS);
143 }
144 
145 static PetscErrorCode PetscViewerCreate_Dummy(PetscViewer viewer)
146 {
147   PetscFunctionBeginUser;
148   PetscFunctionReturn(PETSC_SUCCESS);
149 }
150 
151 static PetscErrorCode PetscRandomCreate_Dummy(PetscRandom arand)
152 {
153   PetscFunctionBeginUser;
154   PetscFunctionReturn(PETSC_SUCCESS);
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   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 }
199 
200 /*TEST
201 
202    test:
203 
204 TEST*/
205