Split scatterer discription from scattering theory

Registered by Tom Dimiduk

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:
milestone icon 2.0
Started by
Vinothan N. Manoharan
Completed by
Tom Dimiduk

Related branches

Sprints

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.