print("Mean Error: " + str(np.mean(err))) # Plot the analytical solution in polar coordinates X = xTest[0] * np.cos(xTest[1]) Y = xTest[0] * np.sin(xTest[1]) # Create plots if usePlotly: from tfc.utils.PlotlyMakePlot import MakePlot p = MakePlot(r'x', r'y', zlabs=r'u(x,y)') p.Surface(x=X.reshape((nTest, nTest)), y=Y.reshape((nTest, nTest)), z=real(*xTest).reshape((nTest, nTest)), showscale=False) p.view(azimuth=45, elevation=45) p.fig['layout']['scene']['aspectmode'] = 'cube' p.show() p1 = MakePlot('x', 'y', zlabs='error') p1.Surface(x=xTest[0].reshape((nTest, nTest)), y=xTest[1].reshape((nTest, nTest)), z=err.reshape((nTest, nTest)), showscale=False) p1.show() else: from matplotlib import cm from tfc.utils import MakePlot xlabs = [[r'$x$', r'$x$'], ['', r'$x$']]
err = np.abs(u(xi, *xTest) - real(*xTest)) print("Time: " + str(time)) print("Max Error: " + str(np.max(err))) print("Mean Error: " + str(np.mean(err))) # Plot the analytical solution if usePlotly: from matplotlib import cm from tfc.utils.PlotlyMakePlot import MakePlot p = MakePlot(r'x', r'y', zlabs=r'u(x,y)') p.Surface(x=xTest[0].reshape((nTest, nTest)), y=xTest[1].reshape((nTest, nTest)), z=real(*xTest).reshape((nTest, nTest)), showscale=False) p.view(azimuth=-135, elevation=20) p.fig['layout']['scene']['aspectmode'] = 'cube' p.show() else: from tfc.utils import MakePlot p = MakePlot(r'$x$', r'$y$', zlabs=r'$u(x,y)$') p.ax[0].plot_surface(xTest[0].reshape((nTest, nTest)), xTest[1].reshape((nTest, nTest)), real(*xTest).reshape((nTest, nTest)), cmap=cm.gist_rainbow) p.ax[0].tick_params(axis='z', which='major', pad=10) p.ax[0].xaxis.labelpad = 20 p.ax[0].yaxis.labelpad = 20