Currently, only an array of wavelengths (or a single wavelength) may be passed into the Solve() function. However, it may be desirable (especially when designing things) to have an arbitrary combination of input parameters to allow for easy running of sweeps. This may require considerable refactoring.
At a high level, there are only 3 inputs to the Solver: a LayerStack, a Source, and the number of harmonics. The number of harmonics will in the future be varied for purposes of convergence testing, so that leaves only two things which can be conceptually varied: a Source and a LayerStack. Supporting varying these directly I think would be a good idea.
Perhaps there could be an additional argument to Solve(): call it sweep_kwargs, which is an arbitrary number of keyword arguments that correspond to some attribute of the Source or the LayerStack. While LayerStack would be a little trickier, varying arguments for the Source should be straightforward, there are only so many things that can be changed, and only a single source for a given simulation.
Currently, only an array of wavelengths (or a single wavelength) may be passed into the Solve() function. However, it may be desirable (especially when designing things) to have an arbitrary combination of input parameters to allow for easy running of sweeps. This may require considerable refactoring.
At a high level, there are only 3 inputs to the
Solver
: aLayerStack
, aSource
, and the number of harmonics. The number of harmonics will in the future be varied for purposes of convergence testing, so that leaves only two things which can be conceptually varied: aSource
and aLayerStack
. Supporting varying these directly I think would be a good idea.Perhaps there could be an additional argument to Solve(): call it
sweep_kwargs
, which is an arbitrary number of keyword arguments that correspond to some attribute of theSource
or theLayerStack
. WhileLayerStack
would be a little trickier, varying arguments for theSource
should be straightforward, there are only so many things that can be changed, and only a single source for a given simulation.