def plot_arguments(self): args = DiffusionSolver.plot_arguments(self) args['mode'] = 'auto' args['interactive'] = True args['range_min'] = 0. args['range_max'] = 1. return args
def plot_arguments(self): args = DiffusionSolver.plot_arguments(self) args['mode'] = 'auto' args['range_min'] = -1. args['range_max'] = 1. return args
- 28*pow(t,3)*pow(x[0],6)/9.0 + 7*pow(t,3)*pow(x[0],5)/2.0 - 5*pow(t,3)*pow(x[0],4)/4.0 + 2*t*x[0]-t ''' return Expression(code, rho=self.rho, t=0.0) T = 0.1 results = [] for h in [0.5, 0.1, 0.05, 0.011, 0.005, 0.001]: dt = np.sqrt(h) r = int(1. / dt) problem = TestProblem(rho=1.5) solver = DiffusionSolver(problem, [r], dt=dt, deg=1) solver.solve(T, plot_realtime=False) u = solver.get_solution() exact = Expression('t*x[0]*x[0]*(0.5 - x[0]/3.)', t=T) u_e = project(exact, solver.V) e = u_e.vector().array() - u.vector().array() #E = np.sqrt(np.sum(e**2)/u.vector().array().size) E = max(e**2) results.append("h: %3.1e \t\t E: %6.3e \t\t E/h: %6.3e" % (h, E, E / h)) print "Error for different h" print "\n".join(results)
- 28*pow(t,3)*pow(x[0],6)/9.0 + 7*pow(t,3)*pow(x[0],5)/2.0 - 5*pow(t,3)*pow(x[0],4)/4.0 + 2*t*x[0]-t ''' return Expression(code, rho=self.rho, t=0.0) T = 0.1 results = [] for h in [0.5, 0.1, 0.05, 0.011, 0.005, 0.001]: dt = np.sqrt(h) r = int(1./dt) problem = TestProblem(rho=1.5) solver = DiffusionSolver(problem, [r], dt=dt, deg=1) solver.solve(T, plot_realtime=False) u = solver.get_solution() exact = Expression('t*x[0]*x[0]*(0.5 - x[0]/3.)', t=T) u_e = project(exact, solver.V) e = u_e.vector().array() - u.vector().array() #E = np.sqrt(np.sum(e**2)/u.vector().array().size) E = max(e**2) results.append("h: %3.1e \t\t E: %6.3e \t\t E/h: %6.3e" % (h, E, E/h)) print "Error for different h" print "\n".join(results)