Add Si vs scattering order
This commit is contained in:
parent
7f33daf856
commit
d00c537f30
|
@ -0,0 +1,70 @@
|
||||||
|
# coding: utf8
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
from ase.build import bulk
|
||||||
|
|
||||||
|
from msspec.calculator import MSSPEC, XRaySource
|
||||||
|
from msspec.iodata import Data
|
||||||
|
from msspec.utils import hemispherical_cluster, get_atom_index
|
||||||
|
|
||||||
|
|
||||||
|
# Create the cluster
|
||||||
|
a = 5.43
|
||||||
|
Si = bulk('Si', a=a, cubic=True)
|
||||||
|
cluster = hemispherical_cluster(Si,
|
||||||
|
diameter=30, planes=4,
|
||||||
|
emitter_plane=3,
|
||||||
|
shape = 'cylindrical',
|
||||||
|
)
|
||||||
|
for atom in cluster:
|
||||||
|
atom.set('mean_square_vibration', 0.006)
|
||||||
|
atom.set('mt_radius', 1.1)
|
||||||
|
cluster.emitter = get_atom_index(cluster, 0, 0, 0)
|
||||||
|
|
||||||
|
# Create a calculator and set parameters
|
||||||
|
calc = MSSPEC(spectroscopy='PED', algorithm='expansion')
|
||||||
|
|
||||||
|
calc.source_parameters.energy = XRaySource.AL_KALPHA
|
||||||
|
calc.source_parameters.theta = -54.7
|
||||||
|
calc.source_parameters.phi = 90
|
||||||
|
calc.spectroscopy_parameters.final_state = 1
|
||||||
|
|
||||||
|
calc.tmatrix_parameters.tl_threshold = 1e-4
|
||||||
|
calc.calculation_parameters.vibrational_damping = 'averaged_tl'
|
||||||
|
calc.calculation_parameters.RA_cutoff = 2
|
||||||
|
|
||||||
|
my_filters = ('forward_scattering', 'distance_cutoff')
|
||||||
|
calc.calculation_parameters.path_filtering = my_filters
|
||||||
|
calc.calculation_parameters.distance = 30
|
||||||
|
calc.calculation_parameters.off_cone_events = 0
|
||||||
|
[a.set('forward_angle', 40) for a in cluster]
|
||||||
|
|
||||||
|
calc.set_atoms(cluster)
|
||||||
|
|
||||||
|
# Compute and add previous data for comparison
|
||||||
|
data = None
|
||||||
|
for i in range(1,4):
|
||||||
|
calc.calculation_parameters.scattering_order = i
|
||||||
|
data = calc.get_theta_scan(level='2p',
|
||||||
|
theta=np.arange(-30., 80., 0.5),
|
||||||
|
phi=0,
|
||||||
|
kinetic_energy=1382.28, data=data)
|
||||||
|
|
||||||
|
# Put all orders on the same view
|
||||||
|
dset = data[0]
|
||||||
|
dset.add_columns(cs2=data[1].cross_section)
|
||||||
|
dset.add_columns(cs3=data[2].cross_section)
|
||||||
|
view1 = dset.views[0]
|
||||||
|
view1.select('theta', 'cross_section', index=0, legend="Scattering order 1")
|
||||||
|
view1.select('theta', 'cs2', legend="Scattering order 2")
|
||||||
|
view1.select('theta', 'cs3', legend="Scattering order 3")
|
||||||
|
|
||||||
|
|
||||||
|
no_filters = Data.load('path_filtering.hdf5')
|
||||||
|
dset.add_columns(no_filters=no_filters[0].cross_section)
|
||||||
|
view2 = dset.add_view('comparison', **view1._plotopts)
|
||||||
|
view2._plotopts['legend'] = []
|
||||||
|
view2.select('theta', 'cs3', legend="With path filtering")
|
||||||
|
view2.select('theta', 'no_filters', legend="Without path filtering")
|
||||||
|
|
||||||
|
data.view()
|
Loading…
Reference in New Issue