Setting Wave=0 in the EFFL Operand

  • 27 February 2020
  • 8 replies
  • 224 views

On page 1411 of the Manual for version 19.8, I can see the following description of the EFFL operand:



Effective focal length in lens units. The wavelength used is defined by Wave. This

is paraxial, and may not be accurate for non-paraxial systems.




I cannot find a description anywhere in the Manual for what happens when you set Wave equal to 0. For some other operands, setting Wave = 0 means "find the weighted polychromatic average of this operand,"



Does that same logic apply to EFFL?



Daniel

8 replies

Userlevel 3
Badge +2
Hi Daniel. Setting Wave = 0 is not a valid setting for the EFFL operand. If you try to do this you should find that Wave reverts the number of the primary wavelength you have set for your system.
Chris:



Thanks for the quick response.



What I've noticed is that when you first pull up EFFL as a dependent variable operand for Universal 2D plots, the 'Wave' value in the resulting dialog box reverts to zero.



If "Wave = 0" causes the UP2 to plot at the primary wavelength ... well, that's usually what an end user would want to start out with, isn't it? If that's the case, then I would characterize "Wave = 0 means use the designated primary wavelength" as a reasonable default setting for the EFFL operator.



It just needs to be documented as such.



Daniel
Userlevel 3
Badge +2
Hello Daniel. Apologies I did not realise you were using EFFL in a Universal plot. I've done a little testing and if the value 'Wave' is set to anything other than the number of one of the wavelengths set in the Wavelength Data then the Universal plot will use the value of EFFL at the primary wavelength. 



We do currently warn in the Help entry for Universal Plot 2D that:

"Because of the number of different plots this feature can generate, there are no intelligent defaults for either the independent or dependent settings. These values need to be carefully provided in the settings dialog box."

but I'll look at how we can reword this to make it clearer.

Chris:


" I've done a little testing and if the value 'Wave' is set to anything other than the number of one of the wavelengths set in the Wavelength Data then the Universal plot will use the value of EFFL at the primary wavelength"


Okay, so now I am officially confused.


If I am varying the wavelength as one of my UP2 independent variables, why should it matter which Wavelength Data index I vary ... or that the wavelength I vary be in the Wavelength Data array at all?


To give you a concrete example, I have a Wavelength Data array that represents the monochrome QE weights of a particular detector array I am using as part of this camera design. That array contains 24 wavelengths and 24 corresponding weights, with the primary being Wavelength #6 (550 nm).


Why should it matter at all, for the purposes of generating the EFFL UP2 plot, whether I vary the wavelength of Wavelength #6 or Wavelength #12 or Wavelength #24? Isn't the EFFL operand just calculating at that one (varying) wavelength, or do the other 23 wavelengths (and their weights) also enter into the EFFL calculation mix?


I mean, if I were interested in the wavelength-weighted mean EFFL that would be one thing. But that's not my use case here; I am looking for how the EFFL varies as a function of a single input wavelength. Frankly, I don't see why the weighted Wavelength array should enter into this calculation at all.


Daniel


Userlevel 3
Badge +2
Hello Daniel.

I didn't know that, as well as using EFFL as your independent variable, you are also using a system wavelength as on of the independent variables (as in the image below). I understand your confusion.







My previous answer was only referring to the behaviour of the Wave input when using EFFL as an independent variable. EFFL will always calculate at single wavelength.

If 'Wave' is set to the number of one of the wavelengths in the Wavelength Data (recommended) then it will calculate at that single wavelength. In the previous image Wave = 2, so EFFL will be calculated for wavelength 2 in the Wavelength Data.

If wavelength 2 is also used as an independent variable (as in the above image) the EFFL will be calculated at each of the sample points (10) across the range defined for wavelength 2 (in this case 0.4 to 0.6 microns). 

Any other wavelengths defined in the Wavelength Data, and their weights, will have no impact on this calculation.



However, if, in the example above, you were to set Wave for the EFFL independent variable to 0, 27, or any value that does not correspond to a wavelength defined in Wavelength Data (in this case 1, 2, 3) then the EFFL would be calculated at the primary wavelength. I would not recommend this approach as it is prone to error, particularly if the wavelength you are varying as an independent variable is not the primary.
Chris:



I think there is a typo in this sentence:



"I didn't know that, as well as using EFFL as your independent variable, you are also using a system wavelength as on of the independent variables"



For the UP2 generation, the independent variables are wavelength and temperature; EFFL is the dependent variable. Based on the rest of your reply, it appears that you understand this.



So, there is a reason I want to have a weighted wavelength array tied to this optical design ... I want Zemax to use that in its image simulations, to match the monochromatic QE of a third-party's specific detector design. I cannot share that QE curve with you, unfortunately, because it was supplied to me under a NDA.



Fortunately, the values of that QE curve are orthogonal to this discussion. What really matters is that the "using the wavelength as an independent variable for UP2 generation" seems to be tied up in that weighted wavelength array, and ... to me, those should be two separate concepts. In other words, I don't see why the UP2 generation should be varying a wavelength in the defined wavelength array at all.



For what reason did your software developers tie these two together? I mean, that doesn't seem to be the case in the "Temperature" direction. I can instruct the UP2 generator to vary temperature (under the "System" pull-down), and that has nothing to do with the Multiple Configurations I generated via the "Make Thermal" tab.



There ought to be a selection in the UP2 generator under the Independent Variable "System" pull-down simply called "Wavelength" that allows me to use Wavelength as an independent variable, instead of asking me to pick a wavelength from the weighted array I am using to generate polychromatic PSFs or simulated images. Again, that weighted wavelength array has nothing to do with an independent wavelength variable I am using to generate a dog-and-pony graphic, and I see zero reason why those two concepts should be tied together in any way, shape, or form.



If there is another use case for which two should be tied together, please point it out, because I'm scratching my head over here.



Daniel
Userlevel 3
Badge +2
Hello Daniel,



The reason the Wavelengths in the independent variables section of the Universal plot are linked to the system wavelengths (set in Wavelength Data) is that the output of a Universal Plot is always the value of an optimisation operand (e.g. EFFL, REAY). These operands typically have as their inputs system/surface properties or parameters (wavelength number, field number, surface number/thickness, etc.)



In this example, the dependent variable (output) is EFFL which always reports the effective focal length at the wavelength specified by the 'Wave' input, which is an integer corresponding to a wavelength in the Wavelength Data editor. In this case an arbitrary 'Wavelength' independent variable would not work as it would have no effect on the value reported by EFFL (which will always be at the wavelength specified by 'Wave'). In order to have the Universal Plot report EFFL across a range of wavelengths then you need to set it to (temporarily) modify the value of one of the system wavelengths (corresponding to 'Wave' from the EFFL settings) in the Wavelength Data. This is what the current implementation of the Universal plot allows.



With this in mind, is there something about the current Universal Plot that is preventing you accessing the data you need? If so, I'll if we can suggest some alternative solutions.



Chris

Well, if that's the way you have to do this, then that's the way you have to do it.


I just think it's needlessly convoluted.


At least now I know that the change caused by UP2 generation affects only one wavelength in the array, and that as soon as the UP2 plot has been generated, that array wavelength returns to its previous state.


I haven't read the whole 2.4k+ page manual to see if this is explained there, but if it's not, it should be.


Thanks,


Daniel


Reply