Skip to content

Tb₂Ti₂O₇ on HEiDi

Fit the pyrochlore Tb₂Ti₂O₇ to constant-wavelength neutron single-crystal data from HEiDi at MLZ, with anisotropic displacements and Becker-Coppens extinction.

The project is the catalogue case sc-neut-cwl_tb2ti2o7-heidi, the one the command line and the app's Examples open.

Fitting Single sc neut cwl Bragg Crystal structure

import easydiffraction as edi

Load the project

project_path = edi.download_data('sc-neut-cwl_tb2ti2o7-heidi', destination='data')
project = edi.Project.load(project_path)
structure = project.structures['tb2ti2o7']
experiment = project.experiments['heidi']
Data 'sc-neut-cwl_tb2ti2o7-heidi' is at data/sc-neut-cwl_tb2ti2o7-heidi-38a48062af12/sc-neut-cwl_tb2ti2o7-heidi

The project marks what its fit frees. The fit below frees it in stages, so start with all of it fixed.

for parameter in project.free_parameters:
    parameter.free = False
project.display.pattern('heidi')

Perform the analysis

One new group per fit: the scale, O1's position, the displacement tensors, then the extinction. diffraction-lib also fits occupancies and isotropic displacements, which this case keeps fixed.

Scale

The scale brings the calculated intensities to the measured ones.

experiment.linked_structures['tb2ti2o7'].scale.free = True
project.display.parameters.free()
project.analysis.fit()
project.display.fit.results()
edi fit: project sc-neut-cwl_tb2ti2o7-heidi, 220 pts fitted / 220 loaded, 1 free
   iter   time (s) wR(F²) (%)  reduced χ²   change
                        22.22        75.58
      1      0.001      19.62        58.90   22.1% ↓
      2      0.002      19.62        58.90   
  done · converged · 2 iters · reduced χ² 58.90 · wR(F²) 19.62 % · 0.00 s
project.display.pattern('heidi')

O1's position

The one coordinate the symmetry leaves free.

structure.atom_sites['O1'].fract_x.free = True
project.analysis.fit()
project.display.fit.results()
edi fit: project sc-neut-cwl_tb2ti2o7-heidi, 220 pts fitted / 220 loaded, 2 free
   iter   time (s) wR(F²) (%)  reduced χ²   change
                        19.62        59.17
      1      0.001      14.74        33.42   43.5% ↓
      2      0.003      14.74        33.42   
  done · converged · 2 iters · reduced χ² 33.42 · wR(F²) 14.74 % · 0.00 s
project.display.pattern('heidi')

Anisotropic displacements

for tensor in structure.atom_site_aniso:
    for component in (
        tensor.adp_11,
        tensor.adp_22,
        tensor.adp_33,
        tensor.adp_12,
        tensor.adp_13,
        tensor.adp_23,
    ):
        component.free = not component.symmetry_constrained
project.analysis.fit()
project.display.fit.results()
edi fit: project sc-neut-cwl_tb2ti2o7-heidi, 220 pts fitted / 220 loaded, 10 free
   iter   time (s) wR(F²) (%)  reduced χ²   change
                        14.74        34.69
      1      0.001       6.20         6.13   82.3% ↓
      2      0.003       6.09         5.93   3.3% ↓
      3      0.005       6.09         5.93   
  done · converged · 3 iters · reduced χ² 5.93 · wR(F²) 6.09 % · 0.01 s
project.display.pattern('heidi')

Extinction

The domain radius and the mosaic spread.

experiment.extinction.domain_radius.free = True
experiment.extinction.mosaic_spread.free = True
project.analysis.fit()
project.display.fit.results()
edi fit: project sc-neut-cwl_tb2ti2o7-heidi, 220 pts fitted / 220 loaded, 12 free
   iter   time (s) wR(F²) (%)  reduced χ²   change
                         6.09         5.98
      1      0.002       3.86         2.40   59.9% ↓
      2      0.003       3.18         1.63   32.1% ↓
      3      0.005       2.97         1.42   13.1% ↓
      4      0.007       2.92         1.38   2.9% ↓
      5      0.010       2.91         1.37   0.7% ↓
      6      0.011       2.88         1.34   2.0% ↓
      7      0.013       2.88         1.33   0.4% ↓
      8      0.015       2.88         1.33   
      9      0.017       2.88         1.33   
     10      0.018       2.88         1.33   
  done · converged · 10 iters · reduced χ² 1.33 · wR(F²) 2.88 % · 0.02 s
project.display.pattern('heidi')
project.display.fit.correlations()
project.display.structure('tb2ti2o7')

Save the project

project.save_as('sc-neut-cwl_tb2ti2o7-heidi')
project.report.save_html('sc-neut-cwl_tb2ti2o7-heidi.html')
Saving project to 'sc-neut-cwl_tb2ti2o7-heidi'
Saving report to 'sc-neut-cwl_tb2ti2o7-heidi.html'