Commit 285f9db2 authored by Jan Oliver Oelerich's avatar Jan Oliver Oelerich

Added plasmon stuff to doc

parent 0a2c1b4e
......@@ -54,20 +54,20 @@ The structure of NetCDF files can be inspected using the handy tool ``ncdump -h
parameter, otherwise the whole content of the file is dumped!). Here is the output of an example run: ::
netcdf TestRUN {
netcdf out {
group: AMBER {
dimensions:
atom = 320 ;
atom = 164140 ;
elements = 1 ;
spatial = 3 ;
cell_spatial = 3 ;
cell_angular = 3 ;
label = 6 ;
frame = 4 ;
slices = 11 ;
grid_x = 336 ;
grid_y = 336 ;
frame = 10 ;
slices = 142 ;
grid_x = 490 ;
grid_y = 490 ;
variables:
char spatial(spatial) ;
char cell_spatial(cell_spatial) ;
......@@ -93,7 +93,7 @@ parameter, otherwise the whole content of the file is dumped!). Here is the outp
:Conventions = "AMBER" ;
:ConventionVersion = "1.0" ;
:program = "STEMsalabim" ;
:programVersion = "5.0.0" ;
:programVersion = "5.0.0b" ;
:title = "sim" ;
} // group AMBER
......@@ -102,28 +102,31 @@ parameter, otherwise the whole content of the file is dumped!). Here is the outp
// group attributes:
:programVersionMajor = "5" ;
:programVersionMinor = "0" ;
:programVersionPatch = "0" ;
:gitCommit = "5575906360b70117dffa4f5ae31d4eb3af34c5fa" ;
:title = "TestRUN" ;
:UUID = "22720f20-4816-4732-b287-627027bdcaff" ;
:time_start = "2019-01-24 14:23:09" ;
:programVersionPatch = "0b" ;
:gitCommit = "f1dcc606c9a78b12fc3afda9496f638992b591bf" ;
:title = "sim" ;
:UUID = "8dce768e-f1d6-4876-bb20-c301e3e323f8" ;
:time_start = "2019-02-12 13:25:43" ;
:time_stop = "2019-02-13 00:06:05" ;
} // group runtime
group: params {
dimensions:
defocus = 2 ;
defocus = 1 ;
plasmon_energies = 51 ;
variables:
float defocus(defocus) ;
float defocus_weights(defocus) ;
float plasmon_energies(plasmon_energies) ;
// group attributes:
:program_arguments = "--num-threads 8 -p TestRUN.cfg -o TestRUN.nc" ;
:program_arguments = "--params=inp.cfg --num-threads=4 --tmp-dir=/local --output-file=out.nc" ;
:config_file_contents = "..." ;
group: application {
// group attributes:
:random_seed = 2984830537U ;
:random_seed = 967613772U ;
} // group application
group: simulation {
......@@ -132,7 +135,7 @@ parameter, otherwise the whole content of the file is dumped!). Here is the outp
:title = "sim" ;
:normalize_always = 0US ;
:bandwidth_limiting = 1US ;
:output_file = "TestRUN.nc" ;
:output_file = "out.nc" ;
:output_compress = 0US ;
} // group simulation
......@@ -142,9 +145,9 @@ parameter, otherwise the whole content of the file is dumped!). Here is the outp
:c5 = 5000000. ;
:cs = 2000. ;
:astigmatism_ca = 0. ;
:defocus = -2. ;
:defocus = -0. ;
:fwhm_defoci = 6. ;
:num_defoci = 2U ;
:num_defoci = 1U ;
:astigmatism_angle = 0. ;
:min_apert = 0. ;
:max_apert = 15.07 ;
......@@ -156,66 +159,80 @@ parameter, otherwise the whole content of the file is dumped!). Here is the outp
// group attributes:
:max_potential_radius = 0.3 ;
:crystal_file = "crystal.xyz" ;
:crystal_file = "Si_110_10x10x200_300K.xyz" ;
} // group specimen
group: grating {
// group attributes:
:density = 300. ;
:nx = 336U ;
:ny = 336U ;
:slice_thickness = 0.5431 ;
:density = 90. ;
:nx = 490U ;
:ny = 490U ;
:slice_thickness = 0.76806 ;
} // group grating
group: adf {
// group attributes:
:enabled = 1US ;
:x = 0.5, 0.7 ;
:y = 0.5, 0.7 ;
:x = 0.5, 0.6 ;
:y = 0.5, 0.6 ;
:detector_min_angle = 0. ;
:detector_max_angle = 200. ;
:detector_num_angles = 201U ;
:detector_max_angle = 150. ;
:detector_num_angles = 151U ;
:detector_interval_exponent = 1.f ;
:average_configurations = 0US ;
:average_defoci = 0US ;
:save_slices_every = 0U ;
:average_configurations = 1US ;
:average_defoci = 1US ;
:save_slices_every = 10U ;
} // group adf
group: cbed {
// group attributes:
:enabled = 1US ;
:x = 0., 1. ;
:y = 0., 1. ;
:x = 0.5, 0.6 ;
:y = 0.5, 0.6 ;
:size = 0U, 0U ;
:average_configurations = 1US ;
:average_defoci = 1US ;
:save_slices_every = 0U ;
:average_defoci = 0US ;
:save_slices_every = 101U ;
} // group cbed
group: frozen_phonon {
// group attributes:
:number_configurations = 2U ;
:number_configurations = 10U ;
:fixed_slicing = 1US ;
:enabled = 1US ;
} // group frozen_phonon
group: plasmon_scattering {
// group attributes:
:enabled = 1US ;
:simple_mode = 0US ;
:plural_scattering = 0US ;
:max_energy = 25.f ;
:energy_grid_density = 2.f ;
:mean_free_path = 128.f ;
:plasmon_energy = 16.9f ;
:plasmon_fwhm = 4.f ;
} // group plasmon_scattering
} // group params
group: adf {
dimensions:
adf_position_x = 9 ;
adf_position_y = 9 ;
adf_detector_angle = 201 ;
adf_defocus = 2 ;
adf_phonon = 2 ;
adf_slice = 1 ;
adf_position_x = 22 ;
adf_position_y = 22 ;
adf_detector_angle = 151 ;
adf_defocus = 1 ;
adf_phonon = 1 ;
adf_slice = 15 ;
coordinate_dim = 2 ;
adf_plasmon_energies = 51 ;
variables:
float adf_intensities(adf_defocus, adf_position_x, adf_position_y, adf_phonon, adf_slice, adf_detector_angle) ;
float center_of_mass(adf_defocus, adf_position_x, adf_position_y, adf_phonon, adf_slice, coordinate_dim) ;
float adf_intensities(adf_defocus, adf_position_x, adf_position_y, adf_phonon, adf_slice, adf_plasmon_energies, adf_detector_angle) ;
float center_of_mass(adf_defocus, adf_position_x, adf_position_y, adf_phonon, adf_slice, adf_plasmon_energies, coordinate_dim) ;
double adf_probe_x_grid(adf_position_x) ;
double adf_probe_y_grid(adf_position_y) ;
double adf_detector_grid(adf_detector_angle) ;
......@@ -224,15 +241,16 @@ parameter, otherwise the whole content of the file is dumped!). Here is the outp
group: cbed {
dimensions:
cbed_position_x = 43 ;
cbed_position_y = 43 ;
cbed_k_x = 224 ;
cbed_k_y = 224 ;
cbed_position_x = 22 ;
cbed_position_y = 22 ;
cbed_k_x = 327 ;
cbed_k_y = 327 ;
cbed_defocus = 1 ;
cbed_phonon = 1 ;
cbed_slice = 1 ;
cbed_slice = 2 ;
cbed_plasmon_energies = 51 ;
variables:
float cbed_intensities(cbed_defocus, cbed_position_x, cbed_position_y, cbed_phonon, cbed_slice, cbed_k_x, cbed_k_y) ;
float cbed_intensities(cbed_defocus, cbed_position_x, cbed_position_y, cbed_phonon, cbed_slice, cbed_plasmon_energies, cbed_k_x, cbed_k_y) ;
double cbed_probe_x_grid(cbed_position_x) ;
double cbed_probe_y_grid(cbed_position_y) ;
double cbed_x_grid(cbed_k_x) ;
......@@ -241,7 +259,6 @@ parameter, otherwise the whole content of the file is dumped!). Here is the outp
} // group cbed
}
The structure of NetCDF files is hierarchical and organized in groups. The following groups are written by
STEMsalabim:
......
......@@ -395,6 +395,61 @@ Settings for the ``frozen_phonon`` algorithm to simulate TDS.
When true, the ``z`` coordinates (beam direction) of the atoms is not varied, resulting in fixed slicing between
subsequent frozen phonon configurations.
``plasmon_scattering``
~~~~~~~~~~~~~~~~~
Settings for the ``single plasmon scattering``.
::
plasmon_scattering: {
enabled = true; # enable or disable the feature
simple_mode = true; # No energy resolution, only E = 0 and 0 < E < max_energy
max_energy = 10; # max energy of the energy grid considered for plasmon energy transfer in eV
energy_grid_density = 10; # density of the energy grid in 1/eV
mean_free_path = 120; # mean free path of a plasmon in nm
plasmon_energy = 16.7; # plasmon energy in eV
plasmon_fwhm = 3.7; # plasmon energy FWHM in eV
}
**plasmon_scattering.enabled**
*boolean [default: `false`]*
Whether diffuse thermal scattering via frozen phonon approximation should be enabled.
**plasmon_scattering.simple_mode**
*integer [default: `true`]*
Number of frozen phonon configurations to calculate.
**plasmon_scattering.max_energy**
*float (eV) [default: `10`]*
Max energy of the plasmon energy grid
**plasmon_scattering.energy_grid_density**
*float (1/eV) [default: `10`]*
Density of the plasmon energy grid
**plasmon_scattering.mean_free_path**
*float (nm) [default: `120`]*
Mean free path of the plasmons in the material.
**plasmon_scattering.plasmon_energy**
*float (eV) [default: `16.7`]*
Characteristic energy of the material's plasmons.
**plasmon_scattering.plasmon_fwhm**
*float (eV) [default: `3.7`]*
Full width half maximum of the plasmon peak of the spectrum.
.. _cli-parameters:
Command line arguments
......
......@@ -218,6 +218,7 @@ namespace stemsalabim {
op::nakedprint(" Grid size: %d x %d\n", gridman->samplingX(), gridman->samplingY());
op::nakedprint(" Scan points: %d x %d\n", gridman->adfXGrid().size(), gridman->adfYGrid().size());
op::nakedprint(" Energy bins: %d\n", gridman->energyLossGrid().size());
op::nakedprint(" Wave length %.4f nm\n", p.wavelength());
op::nakedprint(" Max angle %.1f mrad\n", kx_max * p.wavelength());
op::nakedprint(" Angle resolution: %.3f mrad\n", gridman->kx(1) * p.wavelength() * 1000);
op::nakedprint(" Num FP configs: %d\n", p.numberOfConfigurations());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment