# Changes in /[d8ac2ad:4073633] in sasmodels

Ignore:
Files:
6 edited

Unmodified
Removed
• ## doc/guide/magnetism/magnetism.rst

 r2c108a3 Models which define a scattering length density parameter can be evaluated as magnetic models. In general, the scattering length density (SLD = $\beta$) in each region where the SLD is uniform, is a combination of the nuclear and magnetic SLDs and, for polarised neutrons, also depends on the spin states of the neutrons. as magnetic models. In general, the scattering length density (SLD = $\beta$) in each region where the SLD is uniform, is a combination of the nuclear and magnetic SLDs and, for polarised neutrons, also depends on the spin states of the neutrons. For magnetic scattering, only the magnetization component $\mathbf{M_\perp}$ perpendicular to the scattering vector $\mathbf{Q}$ contributes to the magnetic scattering length. .. figure:: is the Pauli spin. Assuming that incident neutrons are polarized parallel (+) and anti-parallel (-) to the $x'$ axis, the possible spin states after the sample are then Assuming that incident neutrons are polarized parallel $(+)$ and anti-parallel $(-)$ to the $x'$ axis, the possible spin states after the sample are then: Non spin-flip (+ +) and (- -) * Non spin-flip $(+ +)$ and $(- -)$ Spin-flip    (+ -) and (- +) * Spin-flip $(+ -)$ and $(- +)$ Each measurement is an incoherent mixture of these spin states based on the fraction of $+$ neutrons before ($u_i$) and after ($u_f$) the sample, with weighting: .. math:: -- &= ((1-u_i)(1-u_f))^{1/4} \\ -+ &= ((1-u_i)(u_f))^{1/4} \\ +- &= ((u_i)(1-u_f))^{1/4} \\ ++ &= ((u_i)(u_f))^{1/4} Ideally the experiment would measure the pure spin states independently and perform a simultaneous analysis of the four states, tying all the model parameters together except $u_i$ and $u_f$. .. figure:: ===========   ================================================================ M0_sld        = $D_M M_0$ Up_theta      = $\theta_\mathrm{up}$ M_theta       = $\theta_M$ M_phi         = $\phi_M$ Up_frac_i     = (spin up)/(spin up + spin down) neutrons *before* the sample Up_frac_f     = (spin up)/(spin up + spin down) neutrons *after* the sample M0:sld      $D_M M_0$ mtheta:sld   $\theta_M$ mphi:sld     $\phi_M$ up:angle     $\theta_\mathrm{up}$ up:frac_i    $u_i$ = (spin up)/(spin up + spin down) *before* the sample up:frac_f    $u_f$ = (spin up)/(spin up + spin down) *after* the sample ===========   ================================================================ .. note:: The values of the 'Up_frac_i' and 'Up_frac_f' must be in the range 0 to 1. The values of the 'up:frac_i' and 'up:frac_f' must be in the range 0 to 1. *Document History* | 2015-05-02 Steve King | 2017-05-08 Paul Kienzle | 2017-11-15 Paul Kienzle
• ## explore/check1d.py

 ra5f91a7 elif arg.startswith('-angle='): angle = float(arg[7:]) else: elif arg != "-2d": argv.append(arg) opts = compare.parse_opts(argv)
• ## sasmodels/models/bcc_paracrystal.py

 reda8b30 The calculation of $Z(q)$ is a double numerical integral that must be carried out with a high density of points to properly capture the sharp peaks of the paracrystalline scattering. So be warned that the calculation is slow. Fitting of any experimental data the sharp peaks of the paracrystalline scattering. So be warned that the calculation is slow. Fitting of any experimental data must be resolution smeared for any meaningful fit. This makes a triple integral which may be very slow. This example dataset is produced using 200 data points, *qmin* = 0.001 |Ang^-1|, *qmax* = 0.1 |Ang^-1| and the above default values. The 2D (Anisotropic model) is based on the reference below where $I(q)$ is approximated for 1d scattering. Thus the scattering pattern for 2D may not be accurate, particularly at low $q$. For general details of the calculation and angular be accurate, particularly at low $q$. For general details of the calculation and angular dispersions for oriented particles see :ref:orientation . Note that we are not responsible for any incorrectness of the 2D model computation. # april 6 2017, rkh add unit tests, NOT compared with any other calc method, assume correct! # add 2d test later # TODO: fix the 2d tests q = 4.*pi/220. tests = [ [{}, [0.001, q, 0.215268], [1.46601394721, 2.85851284174, 0.00866710287078]], [{'theta': 20.0, 'phi': 30, 'psi': 40.0}, (-0.017, 0.035), 2082.20264399], [{'theta': 20.0, 'phi': 30, 'psi': 40.0}, (-0.081, 0.011), 0.436323144781], #[{'theta': 20.0, 'phi': 30, 'psi': 40.0}, (-0.017, 0.035), 2082.20264399], #[{'theta': 20.0, 'phi': 30, 'psi': 40.0}, (-0.081, 0.011), 0.436323144781], ]
• ## sasmodels/models/core_shell_parallelepiped.py

 r393facf [{'theta':10.0, 'phi':20.0}, [(qx, qy)], [0.0853299803222]], ] del tests  # TODO: fix the tests del qx, qy  # not necessary to delete, but cleaner
• ## sasmodels/models/fcc_paracrystal.py

 reda8b30 The calculation of $Z(q)$ is a double numerical integral that must be carried out with a high density of points to properly capture the sharp peaks of the paracrystalline scattering. So be warned that the calculation is slow. Fitting of any experimental data the sharp peaks of the paracrystalline scattering. So be warned that the calculation is slow. Fitting of any experimental data must be resolution smeared for any meaningful fit. This makes a triple integral which may be very slow. The 2D (Anisotropic model) is based on the reference below where $I(q)$ is approximated for 1d scattering. Thus the scattering pattern for 2D may not be accurate particularly at low $q$. For general details of the calculation be accurate particularly at low $q$. For general details of the calculation and angular dispersions for oriented particles see :ref:orientation . Note that we are not responsible for any incorrectness of the # april 10 2017, rkh add unit tests, NOT compared with any other calc method, assume correct! # TODO: fix the 2d tests q = 4.*pi/220. tests = [ [{}, [0.001, q, 0.215268], [0.275164706668, 5.7776842567, 0.00958167119232]], [{}, (-0.047, -0.007), 238.103096286], [{}, (0.053, 0.063), 0.863609587796], #[{}, (-0.047, -0.007), 238.103096286], #[{}, (0.053, 0.063), 0.863609587796], ]
• ## sasmodels/product.py

 rce99754 def __init__(self, model_info, P, S): # type: (ModelInfo, KernelModel, KernelModel) -> None #: Combined info plock for the product model self.info = model_info #: Form factor modelling individual particles. self.P = P #: Structure factor modelling interaction between particles. self.S = S self.dtype = P.dtype #: Model precision. This is not really relevant, since it is the #: individual P and S models that control the effective dtype, #: converting the q-vectors to the correct type when the kernels #: for each are created. Ideally this should be set to the more #: precise type to avoid loss of precision, but precision in q is #: not critical (single is good enough for our purposes), so it just #: uses the precision of the form factor. self.dtype = P.dtype  # type: np.dtype def make_kernel(self, q_vectors):
Note: See TracChangeset for help on using the changeset viewer.