Open Jashcraf opened 2 years ago
np.linalg.svd()
on the PRT matrix produces a result I wasn't expecting for the full system - the eigenvalue corresponding to the k vector should be unit valued, but no 1's are returned. Gonna try computing for a single surface.
Test for the primary mirror - singular values for whatever the first ray in the sequence is (probably pupil corner) so this would be a higher diattenuation value.
Again we aren't seeing a value of 1 anywhere. From PL&OS:
So the k-vector must be not equal to 1 as we propagate through the system? That shouldn't be correct. I think it might be the projection of the k-vector on the z axis, so a transformation needs to be done into the s-p-k basis in order to compute the diattenuation correctly.
Proceeding ahead anyway we can test the Diattenuation calculation against the one from the fresnel coefficients to verify the results. This is again for the primary mirror of a Cassegrain-type telescope.
Hold right up I'm not sure that I believe either of these - the diattenuation should be rotationally symmetric for both of them.
Enforced the k-vectors normalization and got results of a more similar magnitude but apparently rotated?
something is up with the polarization ray trace oh no - this is for the parabola
This method uses the SVD to find the eigenvalues of the PRT matrix so you can do diattenuation calculations