Open rowlesmr opened 1 year ago
If PD_AMORPHOUS
gets its own peak info, positions would have to be in d, and intensities be relative, a la Le Bail.
Consider the setup in the data below.
There are two diffractograms, each with two phases - one normal crystalline, one be amorphous. Each diffractogram has been modelled with the same two phases, so there are only two data blocks containing phase information.
How do we indicate that the peaks in each of the diffractograms actually belong to the same amorphous phase, and that the peaks in the amorphous phase are represented by two different sets of peak?
data_amor_phase
_pd_phase.id AMOR_PHASE
# what goes here?
data_cryst_phase
_pd_phase.id CRYST_PHASE
# this is a normal structure data block
data_diffraction_pattern_1
_pd_diffractogram.id DIFFRACTOGRAM_A
loop_
_pd_peak.id # all of these peaks belong to the amorphous phase
_pd_peak.2theta_centroid
_pd_peak.width_2theta
_pd_peak.intensity
1 23.39 0.25 1246
2 37.37 0.57 1258
3 42.51 0.76 1942
loop_
_pd_phase_mass.phase.id
_pd_phase_mass.percent
CRYST_PHASE 40
AMOR_PHASE 60
loop_
_pd_meas.2theta
_pd_meas.intensity_total
_pd_calc.intensity_total
5.00 1223 1234
5.02 1324 1235
#...
data_diffraction_pattern_2
_pd_diffractogram.id DIFFRACTOGRAM_B
loop_
_pd_peak.id # all of these peaks belong to the amorphous phase
_pd_peak.2theta_centroid
_pd_peak.width_2theta
_pd_peak.intensity # the intensities are halved, as there is half the amount of amorphous phase present
a 23.39 0.25 623
b 37.37 0.57 629
c 42.51 0.76 971
loop_
_pd_phase_mass.phase.id
_pd_phase_mass.percent
CRYST_PHASE 70
AMOR_PHASE 30
loop_
_pd_meas.2theta
_pd_meas.intensity_total
_pd_calc.intensity_total
5.00 643 640
5.02 656 641
#...
Some ideas (of course, suggestions for better names are more than welcome):
data_amor_phase
_pd_phase.id AMOR_PHASE
loop_
_pd_amorphous_peak.id
_pd_amorphous_peak.d_spacing
_pd_amorphous_peak.rel_intensity
_pd_amorphous_peak.corresponding_peaks
i 4.413 0.642 [ [ 1 DIFFRACTOGRAM_A ] [ a DIFFRACTOGRAM_B ] ]
ii 2.792 0.648 [ [ 2 DIFFRACTOGRAM_A ] [ b DIFFRACTOGRAM_B ] ]
iii 2.467 1 [ [ 3 DIFFRACTOGRAM_A ] [ c DIFFRACTOGRAM_B ] ]
where _pd_amorphous_peak.corresponding_peaks
is a list of _pd_peak.id
and _pd_peak.diffractogram_id
couplets, which go on as long as there are more diffractograms to add. Or maybe, rather than a list of couplets, just a list of alternating values: [ 1 DIFFRACTOGRAM_A a DIFFRACTOGRAM_B ]
Similar, but split up
data_amor_phase
_pd_phase.id AMOR_PHASE
loop_
_pd_amorphous_peak.id
_pd_amorphous_peak.d_spacing
_pd_amorphous_peak.rel_intensity
_pd_amorphous_peak.peak_ids
_pd_amorphous_peak.diffractograms_ids
i 4.413 0.642 [ 1 a ] [ DIFFRACTOGRAM_A DIFFRACTOGRAM_B ]
ii 2.792 0.648 [ 2 b ] [ DIFFRACTOGRAM_A DIFFRACTOGRAM_B ]
iii 2.467 1 [ 3 c ] [ DIFFRACTOGRAM_A DIFFRACTOGRAM_B ]
where _pd_amorphous_peak.peak_ids
is a list of _pd_peak.id
s and _pd_amorphous_peak.diffractograms_ids
is a list of _pd_peak.diffractogram_id
s, where the nth entry is each list are a pair.
A more CIF1.1-style solution
data_amor_phase
_pd_phase.id AMOR_PHASE
loop_
_pd_amorphous_peak.id
_pd_amorphous_peak.d_spacing
_pd_amorphous_peak.rel_intensity
i 4.413 0.642
ii 2.792 0.648
iii 2.467 1
loop_
_pd_amorphous_lookup.peak_id
_pd_amorphous_lookup.diffractogram_id
_pd_amorphous_lookup.amorphous_peak_id
1 DIFFRACTOGRAM_A i
2 DIFFRACTOGRAM_A ii
3 DIFFRACTOGRAM_A iii
a DIFFRACTOGRAM_B i
b DIFFRACTOGRAM_B ii
c DIFFRACTOGRAM_B iii
.
In all of these, _pd_amorphous_peak.d_spacing
gives the peak position of an amorphous peak (in angstroms), and _pd_amorphous_peak.rel_intensity
gives an intensity in units that are consistent with |F|^2, inasmuch as they need to be acted upon by things such as the LP factor in order to match the intensities in the diffractogram. The intensities are also relative, so you can have peaks from the same phase in different diffractograms with different observed intensities, but the same relative intensities.
This might be a little "stream of conciousness"y. .
From rereading #23 and the definition of
PD_PEAK
, I have two questions:PD_PEAK
have a_pd_peak.diffractogram_id
dataitem?_pd_peak.diffractogram_id
be a category key?_pd_peak.id
is also used inPD_AMORPHOUS
,PD_BACKGROUND
andREFLN
.PD_AMORPHOUS
is keyed onpeak_id
andphase_id
.PD_BACKGROUND
is keyed onid
anddiffractogram_id
.REFLN
is keyed on_refln.index_h|k|l
and_pd_refln.phase_id
.Consider a simple example of a synthetic mixture of
CRYST_PHASE
andAMOR_PHASE
(think quartz and silica fume) as below (ignoredata_diffraction_pattern_2
for now...).CRYST_PHASE
is a bog-standard normal crystal structure.AMOR_PHASE
is defined by some peaks. How doesAMOR_PHASE
know where to go to get it's peaks?.
I also stumbled upon another issue: Consider the same phases in a second synthetic mixture (now unignore
data_diffraction_pattern_2
), where it is the exact same materials but in different amounts . Also assume I do a constrained refinement, so other parameters that should be the same, are the same.It makes sense to have a single
AMOR_PHASE
, as it literally is the same material. But I don't think we can point the same phase to two different diffraction patterns which have different PD_PEAK parameters (in this case, intensity). We need a way to designate relative intensities in the amorphous phase. Also, in the case of multiple diffraction patterns, how can we point to differentdiffractogram_id
s.The PD_PEAK category description, just FYi
I need to have a think.