Import EasyDiffraction¶
In [2]:
Copied!
import easydiffraction as ed
import easydiffraction as ed
Create a job¶
Create a job — the main object to store all the information
In [3]:
Copied!
job = ed.Job(type='pd-xray')
print(job.type)
job = ed.Job(type='pd-xray')
print(job.type)
Job type: pd-cwl-unp-1d-xray
Define a model¶
Create a phase object
In [4]:
Copied!
phase = ed.Phase(name='nacl')
phase = ed.Phase(name='nacl')
Set space group
In [5]:
Copied!
phase.space_group.name_hm_alt = 'F m -3 m'
phase.space_group.name_hm_alt = 'F m -3 m'
Set cell parameters
In [6]:
Copied!
phase.cell.length_a = 5.691694
phase.cell.length_a = 5.691694
Add atoms
In [7]:
Copied!
phase.atom_sites.append(label='Na',
type_symbol='Na',
fract_x=0,
fract_y=0,
fract_z=0,
occupancy=1,
u_iso_or_equiv=0.01)
phase.atom_sites.append(label='Cl',
type_symbol='Cl',
fract_x=0,
fract_y=0,
fract_z=0.5,
occupancy=1,
u_iso_or_equiv=0.01)
phase.atom_sites.append(label='Na',
type_symbol='Na',
fract_x=0,
fract_y=0,
fract_z=0,
occupancy=1,
u_iso_or_equiv=0.01)
phase.atom_sites.append(label='Cl',
type_symbol='Cl',
fract_x=0,
fract_y=0,
fract_z=0.5,
occupancy=1,
u_iso_or_equiv=0.01)
Add phase to the job object
In [8]:
Copied!
job.add_phase(phase=phase)
print(job.phases)
job.add_phase(phase=phase)
print(job.phases)
Collection of 1 phases: ['nacl']
Show phase info in CIF format
In [9]:
Copied!
phase = job.phases['nacl']
print(phase.cif)
phase = job.phases['nacl']
print(phase.cif)
data_nacl _cell_length_a 5.691694 _cell_length_b 5.691694 _cell_length_c 5.691694 _cell_angle_alpha 90.00000000 _cell_angle_beta 90.00000000 _cell_angle_gamma 90.00000000 _space_group_name_H-M_ref 'F m -3 m' loop_ _atom_site_label _atom_site_type_symbol _atom_site_fract_x _atom_site_fract_y _atom_site_fract_z _atom_site_occupancy _atom_site_adp_type _atom_site_U_iso_or_equiv Na Na 0.00000000 0.00000000 0.00000000 1.00000000 Uiso 0.01 Cl Cl 0.00000000 0.00000000 0.5 1.00000000 Uiso 0.01
Display the crystal structure of a given model
In [10]:
Copied!
job.show_crystal_structure(id='nacl')
job.show_crystal_structure(id='nacl')
3Dmol.js failed to load for some reason. Please check your browser console for error messages.
Define an experiment¶
Although in this example we only simulate the diffraction pattern, some parameters for the ‘virtual experiment’ still need to be set. For example, the wavelength of the X-ray beam, the range of 2-theta angles, etc.
Let's start by setting the range and step of the 2-theta angles. The other parameters will be set later.
In [11]:
Copied!
job.instrument.twotheta_range_min = 20
job.instrument.twotheta_range_max = 160
job.instrument.twotheta_range_inc = 0.05
job.instrument.twotheta_range_min = 20
job.instrument.twotheta_range_max = 160
job.instrument.twotheta_range_inc = 0.05
Perform an analysis¶
Display the analysis chart before changing the values of other parameters from their default values.
In [12]:
Copied!
job.show_simulation_chart()
job.show_simulation_chart()