  It took me full 2 weeks (2..3 hours each day) to make this calculation
code. But the result is worth efforts. Now it is FULL 3D code that calculates
efficiency of light delivery in lasers by means of elliptic and ovoid 
reflectors. 
  The executable and code seem to be pretty self documented, so I hope that 
there's no need for a separate help or tutorial. If anything is unclear please
refer to the sourcecode or (as the last resort) ask me.
  The code uses raytracing method in a simple layout consisting of elliptic
reflector and two cylindric rods: lamp and laser crystal. The lamp is usually
referred as 'source' and the laser crystal is called as 'receptor' or 'target'.
  The math of the code is based upon four fundamental assumptions:
1) The light may be treated as rays. No interference or other wave phenomena
   are taken into account. No spectral distribition as well. The lamp emits 
   rays. And the laser rod or the lamp itself absorb them.
2) Any ray that hits the laser rod is treated as being absorbed completely. 
   No further tracing is done for that ray.
3) Any ray that hits the lamp is treated as being absorbed completely too. 
   No further tracing is done for that ray.
4) Any ray can be reflected up to fixed number times (currently 30). If it was 
   unable to reach a target (lamp or laser rod) after the N-th reflection, it 
   dies out. This is rather good approximation, because commonly in laser 
   physics they take into account only the first reflection.

  The code is freeware, opensource and public domain. It is provided 'as is'
with no warranty. Even without an implied warranty. Its author is not 
responsible for any damage to Your computer or Your health that could arise
due to the usage of this program. The author is also not responsible for any 
possible loss of profit and so on. 

  HOW TO USE: download, unpack and run the executable. Press the 'OK' button
if frustrated with nothing happens. A few runs with the default initial data 
should give You a sense what to do. There are also plenty of hint messages, 
just move the cursor over the GUI elements. 
  Upper right corner is being occupied by Ellipse Create Helper - a calculator
tool that helps to discover the other parameters of ellipse if two of them are
known. The two parameters to be calculated must be set to zero. Other two 
parameters must thereby be non zero and positive. There are some other rules
for the parameters to satisfy (e.g. it should be that a>b, p>4*a and so on).
You will get used to them soon after beginning of usage.
  
  Compile if needed. This program was written and compiled in Lazarus IDE 
v 1.6.2. Lazarus is Delphi-like free pascal IDE, that provides possibility to
compile for many platforms, so You should be able to use the program under
Windows(tm), Linux, MacOs and Android. However I pesonally haven't tested these
possibilities yet.
  The code is somewhat dirty and it may be bad for portability, scalability 
and code-thieves. Sorry for this. But hey, it is completely open and free! 
And it was intended to be a quick-hand five-minute tool, not a code monster 
like Zemax or Glad. Fell free to optimize and clean up as You wish.

						With regards.
						Y.S. (LKlabs)
						Sept. 2020.
