Releases: scottprahl/iad
Another minor bug fix
This release fixes a bug when the anisotropy g is specified in an input file. Thanks to Dr. Thinh Phan for the bug report.
v3.16.3 (15 May 2024)
- fixed bug that discarded info from "g" input column
- improved README.md
Full Changelog: v3.16.2...v3.16.3
Better lost light calculation
This release also fixes a bug in the lost light calculation using Monte Carlo due to forgetting to update all of the direction cosines at a boundary. Ironically, the Monte Carlo code gave the correct answers for total reflected and transmitted light. Now the internal Monte Carlo radial reflection and transmission calculation has been validated against Monte Carlo simulations written by others.
This release adds a few new features.
- One can now specify the reduce scattering coefficient
$\mu_s'$ from the command line using the new-j musp
option. - One can limit the range of wavelengths to be analyzed using the new
-l 'upper lower'
option. For example,-l '500 600'
will limit the points processed to those between 500 and 600nm
I started to revise the manual, but a lot is left to be done. Some things are still omitted and some things are repeated.
Other bug fixes and improvements include
- fixed bug in mc_lost affecting lost light estimation
- force one MC run when port sizes are present
- revised manual
- add wavelength constraints -l '500 600' to limit processing
- allow reduced scattering to be specified with -j
- better checks for out-of-date redistribution matrix
- exit properly with bad header
- include mc_test.c in distribution
- show line number for bad .rxt entry
- invalidate h calc when angles change
- build targets for test programs
- better debug -x 1 output
- improved iadsum
- improved iadplus
- made mc_lost as standalong executable
- made forward calculation work with no spheres
- improved g spacing in grid
- better support for m.u measurements
Full Changelog: v3.16.1...v3.16.2
Full three port sphere corrections
True three port integrating sphere handling. Before, there were three ports but one always had to be empty. Now the transmission sphere can have a sample in one port, the detector in another, and a reflectance standard in the third port (opposite the sample port. Before the third port needed to be empty or to have a cap that had the same reflectivity as the sphere walls.
The python program iadplus
continues to improve its generated graphs. The new plot is a graph of MR vs. MT and shows where all physically possible points lie for the given set of sphere parameters. Points that fail to converge are plotted and it is easy to see why this might be the case.
v3.16.1 (25 Mar 2024)
- clarify and revise single sphere effects
- avoid MC for failed 1 parameter searches
- change 'empty' -> 'entrance' or 'empty' -> 'third' as appropriate
- enable constraints in rxt files
- fix command line regression of constraints
- improve -x 2 debugging for grid generation
- improve Valid_Grid
- add -J to generate grid for plotting
- improvements to iadplus
v3.16.0 (16 Mar 2024)
- flexible columns input files!
- add -w and -W command line options
- include MC lost light in -z calculations
- include MC lost light in 1 parameter searches
- better support for overwriting r&t file data from command-line
- first version of python wrapper iadplus
- add more simple checks for bad r & t values
New flexible input format
This release allows each M_R and M_T measurement to be accompanied by other data. For example the .rxt
replaces the usual number of measurements line with a line that describes each column in the input. The column descriptors match the single letter options use 'L' for '-L' which describes the wavelength. So for example this might look like
L r t n N w
500 0.5 0.1 1.40 1.50 0.98
600 0.4 0.1 1.41 1.51 0.97
the column order is arbitrary but the column labels must match the column order.
The other major feature is the iadplus
program that will permits analyzing a bunch of .rxt
files at once and creating a Jupyter notebook with graphs of all the data. It works for me, but if you encounter problems let me know
v3.16.0 (16 Mar 2024)
- flexible columns input files!
- add -w and -W command line options
- include MC lost light in -z calculations
- include MC lost light in 1 parameter searches
- better support for overwriting r&t file data from command-line
- first version of python wrapper iadplus
- add more simple checks for bad r & t values
Significantly improved debugging display
This release primarily focuses on the -x
command-line option. This allows one to display intermediate calculations to see exactly why things are going awry. For example,
iad -x 1 file.rxt
will show exactly how integrating sphere and Monte Carlo lost light calculations are influencing the calculation. Another handy example
iad -x 4 -r 0.5 -t 0.1 -u 0.01
which will show each iteration as the program finds the optical properties that match the three observed properties.
v3.15.1 (4 Mar 2024)
- add -x 1 support back for debugging
- add -L 633 to set wavelength to 633nm
- fix building docs/iad_src.pdf
- add separate mc_test and mc_lost_test
- improve -x debugging
- allow more constraint situations
- remove unused code
v3.15.0 (2 Mar 2024)
- support for spheres with no baffles
- better help message
- works better with extreme anisotropies
- clarify MT calculations
- improve header in output file
Support for spheres with no baffles
v3.15.0 (2 Mar 2024)
- support for spheres with no baffles
- clarify calibration of MR and MT
- works better with extreme anisotropies
- better help message
- improve header in output file
v3.14.5 release
v3.14.5
fix error using spheres with oblique incidence.
v3.14.4
improve diffuse lost light calculations
v3.14.3
generate 64-bit windows executables
v3.14.1
retain correct solution when lost light correction changes nothing
v3.14.0
fix lost light calculation with slides (broken when adding absorbing slide support)
Improved diffuse lost calculation
Integrating spheres generate diffuse light, which uniformly illuminates the sample from all directions. However, a challenge arises because some of this diffuse light, particularly near the edges of the sample, is inevitably lost. This loss manifests as marginally elevated calculated absorption coefficients.
The release refines the method for correcting the estimation of this diffusely lost light.
v3.14.4 (1 Feb 2024)
- fix lost diffuse light code
- dramatically improve the look of generated .c and .h files
- remove Mathematica support
- Makefile cleanup
- add test for lost light calculation
- use POSIX getopt
- use M_PI instead of number
- add test code for lost light estimation
- fix oblique test code
v3.14.3 (31 Jan 2024)
- produce 64-bit windows executable since
- 32-bit triggered false positive virus detection
v3.14.1 (30 Jan 2024)
- no longer toss correct solution in some cases
- only calculate redistribution matrix when needed
- improve debug comments
- start stripping tabs from cweb files
v3.14.0 (25 Jan 2024)
- fix handling of slides (@anishabahl)
- fix github build
- improve Makefile
- warn on bad sphere wall reflectivity
64bit Windows version
No new functionality from version v3.14.1. I just modified the Makefile
It was pointed out that Windows Defender falsely identified the windows binary as a Trojan virus. This was evidently caused by using the i686-w64-mingw32-gcc
compiler. I changed to the 64-bit compiler, x86_64-w64-mingw32-gcc
, and the false positive warning went away.
v3.14.3 (31 Jan 2024)
- produce 64-bit windows executable
- 32-bit iad.exe triggered a false positive trojan detection
v3.14.1 (30 Jan 2024)
- no longer toss correct solution in some cases
- only calculate redistribution matrix when needed
- improve debug comments
- start stripping tabs from cweb files
v3.14.0 (25 Jan 2024)
- fix handling of slides (@anishabahl)
- fix github build
- improve Makefile
- warn on bad sphere wall reflectivity
Resolve a few more bugs
This version fixes some weird cases where things converged but did not converge. It turns out that I was throwing away the correct solution just before printing the result.
v3.14.1 (30 Jan 2024)
- no longer toss correct solution in some cases
- only calculate redistribution matrix when needed
- improve debug comments
- start stripping tabs from cweb files
- minor changes to text in output file
v3.14.0 (25 Jan 2024)
- fix handling of slides (@anishabahl)
- fix github build
- improve Makefile
- warn on bad sphere wall reflectivity