|
150 | 150 | #----------------------------------------------------------------------------- |
151 | 151 |
|
152 | 152 | # initialize the grid structure -- we will store the rp in the data object |
153 | | -my_grid, my_data = solver.initialize(rp) |
154 | | - |
155 | | - |
156 | | -# initialize the data |
157 | | -exec 'from ' + solverName + '.problems import *' |
| 153 | +sim = solver.Simulation(problemName, rp) |
158 | 154 |
|
159 | | -exec problemName + '.initData(my_data)' |
| 155 | +sim.initialize() |
160 | 156 |
|
161 | 157 |
|
162 | 158 | #----------------------------------------------------------------------------- |
163 | 159 | # pre-evolve |
164 | 160 | #----------------------------------------------------------------------------- |
165 | | -solver.preevolve(my_data) |
| 161 | +sim.preevolve() |
166 | 162 |
|
167 | 163 |
|
168 | 164 | #----------------------------------------------------------------------------- |
|
178 | 174 | pylab.ion() |
179 | 175 |
|
180 | 176 | n = 0 |
181 | | -my_data.t = 0.0 |
| 177 | +sim.cc_data.t = 0.0 |
182 | 178 |
|
183 | 179 | # output the 0th data |
184 | 180 | basename = rp.get_param("io.basename") |
185 | | -my_data.write(basename + "%4.4d" % (n)) |
| 181 | +sim.cc_data.write(basename + "%4.4d" % (n)) |
186 | 182 |
|
187 | 183 | dovis = rp.get_param("vis.dovis") |
188 | 184 | if dovis: |
189 | 185 | pylab.figure(num=1, figsize=(8,6), dpi=100, facecolor='w') |
190 | | - solver.dovis(my_data, 0) |
| 186 | + sim.dovis(0) |
191 | 187 |
|
192 | 188 |
|
193 | 189 | nout = 0 |
194 | 190 |
|
195 | | -while my_data.t < tmax and n < max_steps: |
| 191 | +while sim.cc_data.t < tmax and n < max_steps: |
196 | 192 |
|
197 | 193 | # fill boundary conditions |
198 | 194 | pfb = profile.timer("fill_bc") |
199 | 195 | pfb.begin() |
200 | | - my_data.fill_BC_all() |
| 196 | + sim.cc_data.fill_BC_all() |
201 | 197 | pfb.end() |
202 | 198 |
|
203 | 199 | # get the timestep |
204 | | - dt = solver.timestep(my_data) |
| 200 | + dt = sim.timestep() |
205 | 201 | if fix_dt > 0.0: |
206 | 202 | dt = fix_dt |
207 | 203 | else: |
|
212 | 208 | dt = min(max_dt_change*dt_old, dt) |
213 | 209 | dt_old = dt |
214 | 210 |
|
215 | | - if my_data.t + dt > tmax: |
216 | | - dt = tmax - my_data.t |
| 211 | + if sim.cc_data.t + dt > tmax: |
| 212 | + dt = tmax - sim.cc_data.t |
217 | 213 |
|
218 | 214 | # evolve for a single timestep |
219 | | - solver.evolve(my_data, dt) |
| 215 | + sim.evolve(dt) |
220 | 216 |
|
221 | 217 |
|
222 | 218 | # increment the time |
223 | | - my_data.t += dt |
| 219 | + sim.cc_data.t += dt |
224 | 220 | n += 1 |
225 | | - print "%5d %10.5f %10.5f" % (n, my_data.t, dt) |
| 221 | + print "%5d %10.5f %10.5f" % (n, sim.cc_data.t, dt) |
226 | 222 |
|
227 | 223 |
|
228 | 224 | # output |
229 | 225 | dt_out = rp.get_param("io.dt_out") |
230 | 226 | n_out = rp.get_param("io.n_out") |
231 | 227 |
|
232 | | - if my_data.t >= (nout + 1)*dt_out or n%n_out == 0: |
| 228 | + if sim.cc_data.t >= (nout + 1)*dt_out or n%n_out == 0: |
233 | 229 |
|
234 | 230 | pfc = profile.timer("output") |
235 | 231 | pfc.begin() |
236 | 232 |
|
237 | 233 | msg.warning("outputting...") |
238 | 234 | basename = rp.get_param("io.basename") |
239 | | - my_data.write(basename + "%4.4d" % (n)) |
| 235 | + sim.cc_data.write(basename + "%4.4d" % (n)) |
240 | 236 | nout += 1 |
241 | 237 |
|
242 | 238 | pfc.end() |
|
247 | 243 | pfd = profile.timer("vis") |
248 | 244 | pfd.begin() |
249 | 245 |
|
250 | | - solver.dovis(my_data, n) |
| 246 | + sim.dovis(n) |
251 | 247 | store = rp.get_param("vis.store_images") |
252 | 248 |
|
253 | 249 | if store == 1: |
|
268 | 264 | msg.warning("comparing to: %s " % (compare_file) ) |
269 | 265 | bench_grid, bench_data = patch.read(compare_file) |
270 | 266 |
|
271 | | - result = compare.compare(my_grid, my_data, bench_grid, bench_data) |
| 267 | + result = compare.compare(sim.cc_data.grid, sim.cc_data, bench_grid, bench_data) |
272 | 268 |
|
273 | 269 | if result == 0: |
274 | 270 | msg.success("results match benchmark\n") |
|
280 | 276 | if make_bench: |
281 | 277 | bench_file = solverName + "/tests/" + basename + "%4.4d" % (n) |
282 | 278 | msg.warning("storing new benchmark: %s\n " % (bench_file) ) |
283 | | - my_data.write(bench_file) |
| 279 | + sim.cc_data.write(bench_file) |
284 | 280 |
|
285 | 281 |
|
286 | 282 | #----------------------------------------------------------------------------- |
|
289 | 285 | rp.print_unused_params() |
290 | 286 | profile.timeReport() |
291 | 287 |
|
292 | | -exec problemName + '.finalize()' |
| 288 | +sim.finalize() |
| 289 | + |
0 commit comments