VirtualPhotonics / VTS

Virtual Tissue Simulator
https://virtualphotonics.org
Other
34 stars 9 forks source link

Two-layer SDA fluence(rho,z,ft) capability #15

Closed hayakawa16 closed 5 years ago

hayakawa16 commented 5 years ago

Due to a request from a student from Notre Dame, I'm trying to get the Fluence(rho,z,ft) working for the two-layer SDA solution. The bones are there and I would like to see current results. To view the map, additional code is needed: 1) ForwardSolverBase and IForwardSolver need an overload of FluenceOfRhoAndZAndFt which takes in IOpticalPropertyRegion[] (instead of OpticalProperties). 2) TwoLayerSDAForwardSolver needs an overload for this method that actually implements generation of result. TwoLayerSDAForwardSolver does not inherit DiffusionForwardSolverBase (it inherits only ForwardSolverBase) which houses homogeneous versions of methods such as FluenceOfRhoAndZAndFt. 3) ComputationalFactory GetForwardFluenceFuncComplex needs code to handle special case when forward solver is TwoLayerSDAForwardSolver.

This appears to be giving reasonable results. It takes a little bit to run, however, it you make the rho and z grid less fine, it runs fairly fast (30x30 rather than 300x300). I plan to commit the Vts changes, but not push yet. I won't enable Fluence(rho,z,ft) for the two-layer SDA in the GUI yet.

Please let me know if you think my code implementation needs modification or if you have questions about what I did. Thanks.

hayakawa16 commented 5 years ago

The modifications to the Vts and WPF have been pushed. This code modification required an update to the Fluence/Interrogation Panel to add a spinning circle to indicate to the user that the solution is processing, and the addition of a "Cancel" button to interrupt this process if it takes too long given the user input. The ability to generate Fluence(rho,z,ft) for the two-layer SDA will be available in the next release of the WPF GUI.