class Play(Experiment): def _initialize(self): self.cont = Controller(self.params) # self.cont.deriv.reconstructor = WENO(self.cont.mesh) et = ErrorTracker(self.cont.mesh, self.cont.analytical, self.params) soln_plot = UpdatePlotter(self.params.plotter) soln_plot.add_line(self.cont.mesh.x, self.cont.init[2:-2], "+") soln_plot.add_line(self.cont.mesh.x, self.cont.init[2:-2], "-") self.cont.observers.append(soln_plot) self.cont.observers.append(et) def _compute(self): self.cont._compute() def _visualize(self): pyp.show() self.cont._visualize()
def _initialize(self): self.cont = Controller(self.params) # self.cont.deriv.reconstructor = WENO(self.cont.mesh) et = ErrorTracker(self.cont.mesh, self.cont.analytical, self.params) soln_plot = UpdatePlotter(self.params.plotter) soln_plot.add_line(self.cont.mesh.x, self.cont.init[2:-2], "+") soln_plot.add_line(self.cont.mesh.x, self.cont.init[2:-2], "-") self.cont.observers.append(soln_plot) self.cont.observers.append(et)
def run(self): errors = [] for i in range(len(self.dx)): print self.dx[i] delta_x = np.ones(self.domain_length / self.dx[i]) * self.dx[i] self.params.delta_x = delta_x cont = Controller(self.params) et = ErrorTracker(cont.mesh, cont.analytical, self.params) #soln_plot = UpdatePlotter(self.params.plotter) #soln_plot.add_line(cont.mesh.x, cont.init, '+') #soln_plot.add_line(cont.mesh.x, cont.init, '-') #cont.observers.append(soln_plot) cont.observers.append(et) cont.compute() errors.append(et.get_final_error()) pyp.close('all') pyp.figure() pyp.plot(np.log(self.dx), np.log(errors)) pyp.plot([-2.0, -3.0], [-2, -7]) pyp.xlabel(r'$\log(\Delta x)$') pyp.ylabel(r'log(error)') pyp.title('Convergence plot for ADER-WENO method') pyp.show()