-
Notifications
You must be signed in to change notification settings - Fork 65
Optimize orientation averaging for symmetric particles #278
Copy link
Copy link
Open
Labels
accuracyImproves simulation accuracyImproves simulation accuracycomp-LogicRelated to internal code logicRelated to internal code logiccomp-UIRelated to user interface (command line, input files)Related to user interface (command line, input files)performanceSimulation speed, memory consumptionSimulation speed, memory consumptionpri-MediumWorth assigning to a milestoneWorth assigning to a milestone
Milestone
Description
Metadata
Metadata
Assignees
Labels
accuracyImproves simulation accuracyImproves simulation accuracycomp-LogicRelated to internal code logicRelated to internal code logiccomp-UIRelated to user interface (command line, input files)Related to user interface (command line, input files)performanceSimulation speed, memory consumptionSimulation speed, memory consumptionpri-MediumWorth assigning to a milestoneWorth assigning to a milestone
Type
Fields
Give feedbackNo fields configured for Feature.
Is your feature request related to a problem? Please describe.
Automatic orientation averaging in ADDA can be very inefficient, when applied to symmetric shapes. In short, ADDA places the particle in many equivalent orientations, wasting computations and leading to poor accuracy. That has been noted long ago, see e.g. this case, and there are some comments about it in
avg_params.dat, but only for the case of axisymmetric particles.Describe the solution you'd like
The more automatic - the better for the users. But the simplest solution is to provide optimal
avg_params.dat(or comments inside this file) for various point group symmetries. These files will have a reduced angular ranges (mainly beta and gamma). It is important to note (for users) that the optimal (the largest) angular reduction will be based on reflection symmetries, and, thus, cause some elements of the Mueller matrix (that must be zero after averaging, like S14) to be non-zero. In other words, such elements must be manually discarded afterwards.For example, a solution for the cube is to use
which is approximately 16 times reduction in simulation time (not clear if can be made better, the total order of the cubical symmetry group with reflections is 48).
Alternative (or supplementary) solutions may be related to changing the averaging scheme inside ADDA, so it would be more robust with respect to particle symmetries. For instance, the averaging over gamma can be changed to simple trapezoid rule using some prime number of points.