123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import scattnlay
- from scattnlay import fieldnlay
- from scattnlay import scattnlay
- import numpy as np
- from matplotlib import pyplot as plt
- npts = 151
- factor = 3.
- index_H2O = 1.33+0.j
- WL = 0.532
- total_r = 3
- nm = 1.0
- x = 2.0 * np.pi * np.array([total_r / 4.0 * 3.0, total_r], dtype=np.float64) / WL
- m = np.array((index_H2O, index_H2O), dtype=np.complex128) / nm
- print("x =", x)
- print("m =", m)
- terms, Qext, Qsca, Qabs, Qbk, Qpr, g, Albedo, S1, S2 = scattnlay(
- np.array([x]), np.array([m]))
- print("Qsca = " + str(Qsca))
- terms, Qext, Qsca, Qabs, Qbk, Qpr, g, Albedo, S1, S2 = scattnlay(
- np.array([x]), np.array([m]), mp=True)
- print("mp Qsca = " + str(Qsca))
- scan = np.linspace(-factor*x[-1], factor*x[-1], npts)
- zero = np.zeros(npts*npts, dtype = np.float64)
- coordX, coordZ = np.meshgrid(scan, scan)
- coordX.resize(npts * npts)
- coordZ.resize(npts * npts)
- coordY = zero
- terms, E, H = fieldnlay(
- np.array([x]), np.array([m]),
- coordX, coordY, coordZ,
- mp=True
- )
- Ec = E[0, :, :]
- Er = np.absolute(Ec)
- Eabs2 = (Er[:, 0]**2 + Er[:, 1]**2 + Er[:, 2]**2)
- Eabs_data = np.resize(Eabs2, (npts, npts))
- label = r'$|E|^2$'
- plt.imshow(Eabs_data,
- cmap='jet',
- vmin=0., vmax=14
- )
- print(np.min(Eabs_data), np.max(Eabs_data))
- plt.savefig("R"+str(total_r)+"mkm_mp.jpg")
|