Buckets:
| def dispersion_relation_2D(p, theta, C): | |
| arg = C*sqrt(sin(p*cos(theta))**2 + | |
| sin(p*sin(theta))**2) | |
| c_frac = 2./(C*p)*arcsin(arg) | |
| return c_frac | |
| import numpy as np | |
| from numpy import \ | |
| cos, sin, arcsin, sqrt, pi # for nicer math formulas | |
| r = p = np.linspace(0.001, pi/2, 101) | |
| theta = np.linspace(0, 2*pi, 51) | |
| r, theta = np.meshgrid(r, theta) | |
| # Make 2x2 filled contour plots for 4 values of C | |
| import matplotlib.pyplot as plt | |
| C_max = 1/sqrt(2) | |
| C = [[C_max, 0.9*C_max], [0.5*C_max, 0.2*C_max]] | |
| fix, axes = plt.subplots(2, 2, subplot_kw=dict(polar=True)) | |
| for row in range(2): | |
| for column in range(2): | |
| error = 1 - dispersion_relation_2D( | |
| p, theta, C[row][column]) | |
| print error.min(), error.max() | |
| # use vmin=error.min(), vmax=error.max() | |
| cax = axes[row][column].contourf( | |
| theta, r, error, 50, vmin=-1, vmax=-0.28) | |
| axes[row][column].set_xticks([]) | |
| axes[row][column].set_yticks([]) | |
| # Add colorbar to the last plot | |
| cbar = plt.colorbar(cax) | |
| cbar.ax.set_ylabel('error in wave velocity') | |
| plt.savefig('disprel2D.png'); plt.savefig('disprel2D.pdf') | |
| plt.show() | |
| # See | |
| # http://blog.rtwilson.com/producing-polar-contour-plots-with-matplotlib/ | |
| # for polar plotting in matplotlib | |
Xet Storage Details
- Size:
- 1.27 kB
- Xet hash:
- 3b62584a9890459add899b579d0f9d65bd60a24ec02d3b97d145a68a3eba92e4
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.