I was pleased to see the new NSC Source DLL 'SkewRaysCircular.dll' added in the May 19 release (OpticStudio 20.2). We have immediate use for it in modeling our systems.
It was inspired by the similar (sequential) User Defined Surface DLLs discussed in Paul Colbourne's webinar and KnowledgeBase Article KA-01772, which allows optimization of generally astigmatic Gaussian beams in Sequential mode.
But I was disappointed to see that the new Non-Sequential Source DLL only models CIRCULAR Gaussian beams with no astigmatism, unlike the Sequential capabilities that were supplied by Dr. Colbourne, which accommodate general astigmatism!
I suggest updating and replacing SkewRaysCircular.dll with a new, more general, Source DLL, renamed appropriately, e.g., SkewRaysGaussianXY.dll , that DOES support general astigmatism. This would seem simple enough to implement starting from the existing SkewRaysCircular.dll: add new pairs of parameters for WaistX, WaistY, (and/or SIzeX, SizeY), AngleX, AngleY, and PositionX, PositionY; we can use the same mode switch ('Definition?') to select which 2 pairs are used.
[...although the Definition? switch as documented in the manual is not as clear as it could be; for example, Position of the waist with respect to the 'z' axis of the beam is not clear whether it is positive or negative for waist position in front of or behind the position of the Source DLL (FYI, Position is NEGATIVE for waists that I would call 'in front of,' i.e., farther along the propagation axis, from the position of the Source DLL. I had to just try it out to see for myself since the manual was not clear to me.]
The source code for the Sequential (User Surface) DLL can be viewed as us_gaussXY.c , which can be found in the Article Attachments ZIP file associated with that KnowledgeBase article. (The source code for the new NSC Source DLL is not supplied to allow us to see how it works, or to attempt to modify it.) Please consider making the source code (in C?) for the Non-Sequential Source DLL available for perusal (and potential customization), too.
-- Greg Magel
P.S. BTW, can we add a Tag to the list? E.g., for this post, I was looking for Non-Sequential, but it's not in the list of Tags...