Split scatterer discription from scattering theory
Description of the scatterers can be decoupled from the scattering theory used to compute a hologram. To do this the current model structure will be broken into two class trees: scatterer and scattering theory
Scatterer describes the physical layout of particles, cells, etc that we are modeling
ScatteringTheory describes the math that is used to compute a hologram from a physical layout.
Here is a basic pass at a class hierarchy. (I am still struggling with whether things like elipsoid or coated sphere should be subclasses of sphere. From a CS prospective it makes sense, but from a physical sense it does not quite make sense to say that an ellipsoid is a "kind of sphere" -tgd 2011-06-02; agreed, ellipsoid and sphere should be two different classes; an ellipsoid has an orientation and two radii, whereas a sphere has only one radius and no orientation. For the same reason coated sphere should be a separate class -- vnm)
Scatterer
|- Sphere
|- Coated Sphere
|- Ellipsoid
|- Cluster
* List of Sphere, Coated Sphere, Ellipsoid, ...
|- General Isolated Particle
|- General Volume scatterer (grid based)
|- Suspension (I still don't understand what this means very well -tgd 2011-06-02)
ScatteringTheory
|- RG (Rayleigh-Gans) (Either based on explicit integration of objects, or on discretizing space)
|- Mie
|- T-Matrix
|- DDA (Discrete Dipole Approximation) (Presumably based on discritizing space)
The fitting machinery will ideally be able to figure out whether a scattering model applies for a given set of scatterers. For example, if a user assigns scatters as a list of spheres and the theory as Mie, it should be able to figure out that it can superimpose several Mie solutions to build up the scatterer. Eventually it would be nice if it could do some intelligent detection of what theory to use, ie TMatrix when spheres are close together, switching to Mie superposition if the particles are far apart. It can always fall back to one of the general theories if it does not have specific models for a scatter specified.
Blueprint information
- Status:
- Complete
- Approver:
- Vinothan N. Manoharan
- Priority:
- High
- Drafter:
- None
- Direction:
- Approved
- Assignee:
- Vinothan N. Manoharan
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- 2.0
- Started by
- Vinothan N. Manoharan
- Completed by
- Tom Dimiduk
Related branches
Related bugs
Sprints
Whiteboard
Work Items
Dependency tree
* Blueprints in grey have been implemented.