Skip to content

Pr₂NiO₄ on 5C2

Fit the layered nickelate Pr₂NiO₄ to constant-wavelength neutron single-crystal data from 5C2 at LLB, with anisotropic displacements.

The project is the catalogue case sc-neut-cwl_pr2nio4-5c2, 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_pr2nio4-5c2', destination='data')
project = edi.Project.load(project_path)
structure = project.structures['pr2nio4']
experiment = project.experiments['llb_5c2']
Data 'sc-neut-cwl_pr2nio4-5c2' is at data/sc-neut-cwl_pr2nio4-5c2-cfb07d23bd89/sc-neut-cwl_pr2nio4-5c2

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('llb_5c2')

Perform the analysis

A single crystal has no background or profile: the stages are the scale, the positions, the interstitial oxygen's displacement, then the displacement tensors.

Scale

The scale brings the calculated intensities to the measured ones.

experiment.linked_structures['pr2nio4'].scale.free = True
project.display.parameters.free()
project.analysis.fit()
project.display.fit.results()
edi fit: project sc-neut-cwl_pr2nio4-5c2, 198 pts fitted / 198 loaded, 1 free
   iter   time (s) wR(F²) (%)  reduced χ²   change
                       115.85      6415.49
      1      0.001      49.30      1161.93   81.9% ↓
      2      0.002      49.30      1161.93   
  done · converged · 2 iters · reduced χ² 1161.93 · wR(F²) 49.30 % · 0.00 s
project.display.pattern('llb_5c2')

Positions

The coordinates each site's symmetry leaves free.

for site in structure.atom_sites:
    for coordinate in (site.fract_x, site.fract_y, site.fract_z):
        coordinate.free = not coordinate.symmetry_constrained
project.analysis.fit()
project.display.fit.results()
edi fit: project sc-neut-cwl_pr2nio4-5c2, 198 pts fitted / 198 loaded, 6 free
   iter   time (s) wR(F²) (%)  reduced χ²   change
                        49.30      1192.18
      1      0.001      47.49      1106.20   7.2% ↓
      2      0.002      46.77      1072.93   3.0% ↓
      3      0.003      46.69      1069.03   0.4% ↓
      4      0.004      46.64      1067.00   0.2% ↓
      5      0.005      46.63      1066.25   0.1% ↓
      6      0.006      46.61      1065.55   0.1% ↓
      7      0.007      46.60      1065.20   
      8      0.008      46.60      1064.86   
      9      0.009      46.59      1064.67   
     10      0.010      46.59      1064.48   
     11      0.011      46.59      1064.37   
     12      0.012      46.58      1064.26   
     13      0.013      46.58      1064.19   
     14      0.014      46.58      1064.13   
     15      0.015      46.58      1064.09   
     16      0.016      46.58      1064.05   
     17      0.017      46.58      1064.02   
     18      0.018      46.58      1063.99   
     19      0.019      46.58      1063.98   
     20      0.020      46.58      1063.96   
     21      0.021      46.58      1063.95   
     22      0.022      46.58      1063.94   
     23      0.023      46.58      1063.93   
  done · converged · 23 iters · reduced χ² 1063.93 · wR(F²) 46.58 % · 0.02 s
project.display.pattern('llb_5c2')

The interstitial displacement

The isotropic displacement of the interstitial oxygen Od.

structure.atom_sites['Od'].adp_iso.free = True
project.analysis.fit()
project.display.fit.results()
edi fit: project sc-neut-cwl_pr2nio4-5c2, 198 pts fitted / 198 loaded, 7 free
   iter   time (s) wR(F²) (%)  reduced χ²   change
                        46.58      1069.50
      1      0.001      46.52      1067.17   0.2% ↓
      2      0.002      46.52      1066.73   
      3      0.003      46.51      1066.69   
  done · converged · 3 iters · reduced χ² 1066.69 · wR(F²) 46.51 % · 0.00 s
project.display.pattern('llb_5c2')

Anisotropic displacements

Last, the tensors, each with the components its site symmetry leaves free.

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_pr2nio4-5c2, 198 pts fitted / 198 loaded, 23 free
   iter   time (s) wR(F²) (%)  reduced χ²   change
                        46.51      1164.22
      1      0.001      16.34       143.71   87.7% ↓
      2      0.003       4.78        12.28   91.5% ↓
      3      0.004       4.34        10.15   17.4% ↓
      4      0.006       4.29         9.89   2.6% ↓
      5      0.007       4.27         9.79   0.9% ↓
      6      0.009       4.26         9.76   0.3% ↓
      7      0.010       4.26         9.75   0.1% ↓
      8      0.012       4.26         9.75   
      9      0.014       4.26         9.75   
  done · converged · 9 iters · reduced χ² 9.75 · wR(F²) 4.26 % · 0.02 s
project.display.pattern('llb_5c2')
project.display.fit.correlations()
project.display.structure('pr2nio4')

Save the project

project.save_as('sc-neut-cwl_pr2nio4-5c2')
project.report.save_html('sc-neut-cwl_pr2nio4-5c2.html')
Saving project to 'sc-neut-cwl_pr2nio4-5c2'
Saving report to 'sc-neut-cwl_pr2nio4-5c2.html'