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'