Skip to content

Co₂SiO₄ on D20 at 2.3 K

Fitting  Single  pd  neut  cwl  Bragg  Crystal structure  Magnetic structure

Fit the magnetic structure of the olivine Co₂SiO₄ to constant-wavelength neutron powder data from D20 at ILL, measured at 2.3 K, below its ordering temperature. The cobalt moments order with k = 0 in the magnetic space group Pnma.1: Co1 may point in any direction, Co2 only along b.

The project is the catalogue case pd-neut-cwl_cosio-d20_2k, the one the command line and the app's Examples open. Its two Co sites share one displacement, and the two FCJ asymmetry terms are tied, from the start.

import easydiffraction as edi

Load the project

project_path = edi.download_data('pd-neut-cwl_cosio-d20_2k', destination='data')
project = edi.Project.load(project_path)
structure = project.structures['cosio']
experiment = project.experiments['d20']
project.display.constraints()
Data 'pd-neut-cwl_cosio-d20_2k' is at data/pd-neut-cwl_cosio-d20_2k-683d6db07336/pd-neut-cwl_cosio-d20_2k

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

Perform the analysis

The nuclear structure comes first, in the usual order; the magnetic moments come last, once the nuclear peaks are fitted.

Scale, 2θ zero and cell

experiment.linked_structures['cosio'].scale.free = True
experiment.instrument.calib_twotheta_offset.free = True
structure.cell.length_a.free = True
structure.cell.length_b.free = True
structure.cell.length_c.free = True
project.display.parameters.free()
project.analysis.fit()
project.display.fit.results()
edi fit: project pd-neut-cwl_cosio-d20_2k, 1438 pts fitted / 1506 loaded, 5 free
   iter   time (s)   Rwp (%)  reduced χ²   change
                       11.38        35.73
      1      0.024     11.32        35.36   1.1% ↓
  done · converged · 1 iters · reduced χ² 35.36 · Rwp 11.32 % · 0.03 s
project.display.pattern('d20')

Background

With the peaks in place, the sixteen background points follow the level between them.

for point in experiment.background:
    point.intensity.free = True
project.analysis.fit()
project.display.fit.results()
edi fit: project pd-neut-cwl_cosio-d20_2k, 1438 pts fitted / 1506 loaded, 21 free
   iter   time (s)   Rwp (%)  reduced χ²   change
                       11.32        35.75
      1      0.024     10.76        32.31   9.6% ↓
  done · converged · 1 iters · reduced χ² 32.31 · Rwp 10.76 % · 0.03 s
project.display.pattern('d20')

Peak widths

experiment.peak.broad_gauss_u.free = True
experiment.peak.broad_gauss_v.free = True
experiment.peak.broad_gauss_w.free = True
experiment.peak.broad_lorentz_y.free = True
project.analysis.fit()
project.display.fit.results()
edi fit: project pd-neut-cwl_cosio-d20_2k, 1438 pts fitted / 1506 loaded, 25 free
   iter   time (s)   Rwp (%)  reduced χ²   change
                       10.76        32.41
      1      0.027     10.71        32.12   0.9% ↓
      2      0.033     10.71        32.12   
  done · converged · 2 iters · reduced χ² 32.12 · Rwp 10.71 % · 0.04 s
project.display.pattern('d20')

Peak asymmetry

The low-angle peaks lean towards low angle. One FCJ term is freed; the other follows it by the project's constraint.

experiment.peak.asym_fcj_1.free = True
project.analysis.fit()
project.display.fit.results()
edi fit: project pd-neut-cwl_cosio-d20_2k, 1438 pts fitted / 1506 loaded, 26 free
   iter   time (s)   Rwp (%)  reduced χ²   change
                       10.71        32.14
      1      0.142     10.70        32.07   0.2% ↓
      2      0.148     10.70        32.05   
      3      0.153     10.69        32.02   0.1% ↓
      4      0.159     10.68        31.95   0.2% ↓
      5      0.165     10.67        31.88   0.2% ↓
      6      0.170     10.66        31.83   0.2% ↓
      7      0.176     10.65        31.79   0.1% ↓
      8      0.181     10.65        31.74   0.1% ↓
      9      0.187     10.64        31.68   0.2% ↓
     10      0.193     10.62        31.60   0.2% ↓
     11      0.199     10.61        31.53   0.2% ↓
     12      0.206     10.60        31.48   0.2% ↓
     13      0.212     10.60        31.45   0.1% ↓
     14      0.219     10.60        31.44   
     15      0.225     10.60        31.44   
     16      0.232     10.60        31.44   
     17      0.238     10.60        31.44   
     18      0.248     10.60        31.44   
  done · converged · 18 iters · reduced χ² 31.44 · Rwp 10.60 % · 0.26 s
project.display.pattern('d20')

Atom positions

Co1 sits on a centre of symmetry and the other sites on the mirror plane, so only their free coordinates are fitted. The displacements stay at their room-temperature values.

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 pd-neut-cwl_cosio-d20_2k, 1438 pts fitted / 1506 loaded, 37 free
   iter   time (s)   Rwp (%)  reduced χ²   change
                       10.60        31.69
      1      0.055     10.50        31.11   1.8% ↓
  done · converged · 1 iters · reduced χ² 31.11 · Rwp 10.50 % · 0.06 s
project.display.pattern('d20')

Magnetic moments

With the nuclear peaks fitted, the moments fit the magnetic peaks. The magnetic space group lets Co1 point in any direction and Co2 only along b.

structure.atom_site_moment['Co1'].crystalaxis_x.free = True
structure.atom_site_moment['Co1'].crystalaxis_y.free = True
structure.atom_site_moment['Co1'].crystalaxis_z.free = True
structure.atom_site_moment['Co2'].crystalaxis_y.free = True
project.analysis.fit()
project.display.fit.results()
edi fit: project pd-neut-cwl_cosio-d20_2k, 1438 pts fitted / 1506 loaded, 41 free
   iter   time (s)   Rwp (%)  reduced χ²   change
                       10.50        31.20
      1      0.054      4.87         6.72   78.5% ↓
      2      0.064      4.87         6.72   
      3      0.073      4.87         6.71   
      4      0.081      4.87         6.71   
      5      0.091      4.87         6.71   
      6      0.100      4.87         6.71   
      7      0.111      4.87         6.71   
  done · converged · 7 iters · reduced χ² 6.71 · Rwp 4.87 % · 0.12 s
project.display.pattern('d20')

Magnetic form factor

Last, the j2 term of the Co²⁺ form factor, which changes how the magnetic intensities fall with angle. It moves together with the moments, so it comes after them.

structure.magnetic_form_factor['Co'].j2_coefficient.free = True
project.analysis.fit()
project.display.fit.results()
edi fit: project pd-neut-cwl_cosio-d20_2k, 1438 pts fitted / 1506 loaded, 42 free
   iter   time (s)   Rwp (%)  reduced χ²   change
                        4.87         6.72
      1      0.056      4.70         6.25   6.9% ↓
      2      0.065      4.70         6.25   
      3      0.073      4.70         6.25   0.1% ↓
      4      0.082      4.70         6.25   
      5      0.090      4.70         6.25   
      6      0.103      4.70         6.25   
  done · converged · 6 iters · reduced χ² 6.25 · Rwp 4.70 % · 0.11 s
project.display.pattern('d20')
project.display.fit.correlations()
project.display.structure('cosio')

Save the project

project.save_as('pd-neut-cwl_cosio-d20_2k')
project.report.save_html('pd-neut-cwl_cosio-d20_2k.html')
Saving project to 'pd-neut-cwl_cosio-d20_2k'
Saving report to 'pd-neut-cwl_cosio-d20_2k.html'