Magnetic Form Factor


Adds magnetic_ff[charge].t for t in j0, j2, j4, j6, and J. J should be the dipole approximation <j0> + (1 - 2/g) <j2>, according to the documentation for CrysFML [1] , but that does not seem to be the case in practice.

[1]Brown. P. J. (Section 4.4.5) International Tables for Crystallography Volume C, Wilson. A. J. C.(ed).
class periodictable.magnetic_ff.MagneticFormFactor

Bases: object

Magnetic form factor for the ion.

The available form factors are:

M = <j0> form factor coefficients
J = <j0> + C2 <j2> form factor coeffients
jn = <jn> form factor coefficients for n = 0, 2, 4, 6

Not all form factors are available for all ions. Use the expression hasattr(ion.magnetic_ff, '<ff>') to test for the particular form factor <ff>. The form factor coefficients are a tuple (A, a, B, b, C, c, D). The following expression computes the M/j0 and J form factors from the corresponding coefficients:

s = q^2 / 16 pi^2
ff = A exp(-a s^2) + B exp(-b s^2) + C exp(-c s^2) + D

The remaining form factors j2, j4 and j6 are scalled by an additional s^2. The form factor calculation is performed by the <ff>_Q method for <ff> in M, J, j0, j2, j4, j6. For example, here is the calculation for the M form factor for Fe^2+ computed at 0, 0.1 and 0.2:

>>> import periodictable
>>> ion = periodictable.Fe.ion[2]
>>> print("[%.5f, %.5f, %.5f]"
...       % tuple(ion.magnetic_ff[ion.charge].M_Q([0, 0.1, 0.2])))
[1.00000, 0.99935, 0.99741]

Returns J scattering potential at Q-1


Returns j0 scattering potential at Q-1


Returns j0 scattering potential at Q-1


Returns j2 scattering potential at Q-1


Returns j4 scattering potential at Q-1


Returns j6 scattering potential at Q-1



periodictable.magnetic_ff.formfactor_0(j0, q)

Returns the scattering potential for form factor j0 at the given q.

periodictable.magnetic_ff.formfactor_n(jn, q)

Returns the scattering potential for form factor jn at the given q.

periodictable.magnetic_ff.init(table, reload=False)

Add magnetic form factor properties to the periodic table