GROPT(1)

๐Ÿ’– NAME ๐Ÿ’–

okay so bestie, meet gropt โ€” she lives in the User Commands chapter and her whole thing is performing ray tracing computation of optical systems. that's it, that's the job. she ate and left no crumbs ๐Ÿฆ‹


๐Ÿ“œ SYNOPSIS ๐Ÿ“œ

gropt [options] <input> [...] [-o <output>]

โœจ DESCRIPTION โœจ

so what is gropt actually doing with her life? the task's purpose is to perform various computations in the framework of geometrical optics, periodt. ๐Ÿ‘‘

her main input is a descriptor file that quantifies all the optical elements โ€” lenses, mirrors, aperture stops, etc., plus the respective materials โ€” and also the alignment geometry of these pieces. like, the whole blueprint of the setup, no cap.

and the output?? bestie, the output includes all the well-known products of optical analysis, and i mean all of them:

  • ray transfer matrices
  • analysis for multiple wavelengths
  • ray diagrams
  • 3D models for visualization
  • spot diagrams
  • models for spatially quantized point-spread functions
  • plate solutions
  • vignetting

also!! the underlying ray trace library (see ./src/optcalc.[ch]) is also included in the program firandom, so that precise and accurate simulated images can be generated for whatever optical setup you've got going on. iykyk. ๐Ÿ”ฅ


๐Ÿ’… OPTIONS ๐Ÿ’…

๐Ÿซถ General options:

  • -h, --help โ€” gives you a general summary about the command line options. the quick lil vibe check.
  • --long-help, --help-long โ€” gives a detailed list of command line options. the long-form lore drop.
  • --wiki-help, --help-wiki, --mediawiki-help, --help-mediawiki โ€” gives a detailed list of command line options in Mediawiki format. for when you need it cute and wiki-fied.
  • --version, --version-short, --short-version โ€” gives some version information about the program. ๐ŸŽ€
  • <input>, -i <input>, --input <input> โ€” name of the input file describing the optical system. > heads up bestie: all of the length dimensions โ€” including offsets, curvatures, curvature radii and higher order aspherical constants โ€” are needed to be defined in the units of millimeters. no mixing units, that's not the move. ๐ŸŒธ reading from standard input can be forced using a single dash "-" as the input file name.

๐Ÿงช Testing and benchmarking:

  • --speed-test <time/seconds> โ€” in this mode, gropt runs a speed test to figure out the number of rays that can be traced during the given interval of time. note that this speed depends on the optical system itself, so you should specify a valid input (see -i, --input). she's benchmarking your setup specifically, so bring the receipts. โฑ๏ธ

๐ŸŒˆ Common options for the various analysis modes:

  • -l, --lambda, --wavelength <wavelength/microns> โ€” the wavelength (in microns) of the ray set of the actual analysis. ๐Ÿ’œ
  • -f, --focus <focal-plane-position> โ€” the position of the focal plane. it overrides the "focal" keyword in the input optical system description (see -i, --input for more). she said your config keyword is not the main character today, this flag is. ๐Ÿ’…
  • -x, --scale <pixel-scale> โ€” the pixel scale (i.e. the pixel size), also in millimeters.
  • -a, --angle <incident-angle/radians>|<normal_x>,<normal_y> โ€” the incident angle of the incoming parallel rays. if a single parameter is given, then it is going to be interpreted as an angle in radians. if two parameters are given after -a or --angle, then these are treated as the x and y components of the ray normal vector. by conventions, a single parameter of a is equivalent to 0,sin(a). so like, one number = angle mode, two numbers = vector mode. pick your fighter. ๐Ÿฆ‹

๐Ÿ”ญ Spot diagram analysis:

  • -s, --spot-aperture <radius>[,<number-of-rings>[,<position>]] โ€” the radius, the number of the rings and the offset of spot aperture. if omitted, the number of the rings is going to be one and the offset of the spot aperture is going to be zero. > note that the option -o, --output or --output-spot is needed to be specified in order to perform a spot diagram analysis. don't forget it or nothing happens, and that would be devastating. ๐Ÿ˜ญ
  • -o, --output, --output-spot <spot-diagram-output> โ€” the name of the file to which the spot diagram output is intended to be written. to write the output to the standard output, use a dash (-) as a file name. to write the output to the file named as a dash, use -o ./- or something equivalent. yes, that's the trick, that's the lore. โญ

๐Ÿ”„ Ray transfer matrix analysis:

  • -t, --transfer โ€” perform a ray transfer matrix analysis. the results (namely, the computed focal plane offset and the effective focal length) are written to the standard output. two lil numbers, straight to stdout, slay. ๐Ÿ‘‘

๐ŸŽจ Exporting geometry:

  • -d, --output-scad <openscad-file> โ€” exports the geometry of the input optical setup to an OpenSCAD file. this 3D model of the setup can then be viewed by running openscad, whose input is the output this process. go make a lil 3D model, you deserve it. ๐ŸŒˆ
  • -e, --output-eps <encapsulated-postscript-file> โ€” exports the geometry of the input optical setup to an encapsulated PostScript file. this PostScript image can be considered as a planar diagram of the lens system. and if -s or --spot-aperture is defined, then rays are also drawn according to the specifications following these command-line switches. โœจ

๐ŸŽฏ Determination of point-spread function:

  • -z, --psf-half-size <half-size> โ€” the half size of the output point-spread function. if this parameter is, for example, 3, then the resolution of the output point-spread function will be 7x7. in general, if the parameter is H, then the output point-spread function will have a resolution of (2H+1)x(2H+1). math is mathing. ๐Ÿงฎ
note that the pixel scale of this computed point-spread function is defined by -x or --scale. ๐Ÿ’…

๐Ÿ˜ค REPORTING BUGS ๐Ÿ˜ค

found a bug? report bugs to <apal@szofi.net>, see also https://fitsh.net/. tell them everything, they wanna know. ๐Ÿซถ


Copyright ยฉ 1996, 2002, 2004-2008, 2010-2016, 2018-2020; Pal, Andras <apal@szofi.net>


and that's the whole page bestie!! ๐Ÿ’– this was gropt 0.9.4 (2021.01.24), dated January 2021 โ€” so if you're reading this, the version is 0.9.4, the date is January 2021, and honestly? iconic. go trace some rays. ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from