Scattering intensity given by SLD_particle-SLD_layer, not by SLD_particle-SLD_avge

Theory:

S(q) = |F(q)|^2.

F(q) = sum_j (b_j-bb) F_j(q)

where j=1 is the layer (matrix) material, j=2,... runs over embedded particles. b_j is the material SLD. bb is the background SLD. It can be either b_1, or the weighted average of all b_j.

sum_j F_j(q) = \int dr^3 e^{iqr},

which yields, in some approximation, \delta(q). This means that sum_j F_j contributes only to forward scattering, and therefore can be equated with 0.

Write sum' for a sum from which the j=1 term is ommitted.

F(q) = sum' (b_j-bb) F_j + (b_1-bb) (-sum' F_j) = sum' (b_j-b_1) F_j.

Status:

Currently, if option useAvgMat is on, then we compute

F(q) = sum' (b_j-bb) F_j.

This is wrong. The average SLD bb must only be used in the R&T computation, not in the scattering computation.

This error has become even more consequential with MR !3278 (merged) that enabled useAvgMat by default.

Resolution:

  • Set ambient material to native (matrix) slice material.
  • Remove ambient material from IReParticle and children.