Designer for an ultra-fast high-efficiency broad-spectrum low-resolution spectrometer with a compound prism as the dispersive element. The optimization and design of a spectrometer has multiple conflicting goals; the size of the spectrometer and the light's deviation should be minimized, and the amount of information should be maximized. Normal optimization methods that give one best result, can't be used with these goals, so multi-objective-optimization algorithms are used to generate a Pareto Set of results. The results are then shown interactively to allow the user to choose which design they want. The optimization algorithm used is Approximation-Guided Evolutionary Multi-Objective Optimization II.
- Incoming light is collimated
- Incoming light has a gaussian intensity profile
- Incoming light has a uniform distribution of wavelengths
- Incoming light is unpolarized
- The idea is that the incoming light will typically be from an achromatic fiber-coupled collimator
- No intra-media transmission loss
- Only inter-media transmission loss at media interfaces using Fresnel equations
- Ignores the effect of the light's incident angle with the detector on detection probability, other than the idea that the detectors have a maximum allowed incident angle for efficiency reasons
- The detector array is linear
- An example of one would be a linear ccd or a pmt array
- The last prism is an aspheric chromatic prism lens, to allow for wavelength-dependent focusing onto the detector array with minimal losses, in comparison to a separate lens element.
- Install rust using rustup, the rust installation manager
- You can use the default stable toolchain
- No extra components are required
- To install the python module normally
python3 -m pip install .
orpython3 -m pip install git+https://github.com/jdtatz/compound-prism-designer.git
- To install in development mode, inside a virtual environment,
maturin develop --release --rustc-extra-args="-C target-feature=+fma -C target-cpu=native" --cargo-extra-args="--features pyext"
- This is only neccassary if you edit
compound_prism_spectrometer/
- Install rust using rustup, the rust installation manager
- Use the non-default nightly toolchain
rustup toolchain install nightly --component rust-src llvm-tools-preview
- And either
rustup override set nightly
in the project directory- or
rustup default nightly
- Need rust version >= 1.52.0-nightly
- Install Cargo-make
cargo install cargo-make
- Build with
cargo make verify-kernel
© NORTHEASTERN UNIVERSITY Compound Prism Designer Software used with permission. All Rights Reserved.