This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
probe_particle_model [2017/01/02 16:03] krejcio |
probe_particle_model [2022/01/13 14:15] (current) krejcio [Inputs] - adding more comments to params.ini |
||
---|---|---|---|
Line 4: | Line 4: | ||
New code is written in C/Python and can operate in framework of Lennard-Jones forces as well as electrostatic forces, if necessary. | New code is written in C/Python and can operate in framework of Lennard-Jones forces as well as electrostatic forces, if necessary. | ||
+ | |||
+ | {{:ptcda_df.png|}} | ||
===== Older Fortran Version ===== | ===== Older Fortran Version ===== | ||
Line 77: | Line 79: | ||
If an electrostatic Hartree potential is obtained from some DFT calculations, it can be read *.xsf or *.cube files. The electrostatic force field is created by running: | If an electrostatic Hartree potential is obtained from some DFT calculations, it can be read *.xsf or *.cube files. The electrostatic force field is created by running: | ||
- | python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/generateLJFF.py -i YOUR_INPUT_FILE.xsf | + | python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/generateElFF.py -i YOUR_INPUT_FILE |
If default parameters are used, than you have monopole represented by an Gaussian cloud of charge with its FWHM of 0.7 Ǎ. The monopole can be changed to non-tilting dipoles or quadrupoles by adding flag: -t type, where type ∈ {s,px,py,pz,dx2,dy2,dz2,dxy,dxz,dyz}; s stands for monopole (default), p for dipoles, d for quadrupoles. The FWHM of the Gaussian cloud can be changed by adding flag: -s FWHM. | If default parameters are used, than you have monopole represented by an Gaussian cloud of charge with its FWHM of 0.7 Ǎ. The monopole can be changed to non-tilting dipoles or quadrupoles by adding flag: -t type, where type ∈ {s,px,py,pz,dx2,dy2,dz2,dxy,dxz,dyz}; s stands for monopole (default), p for dipoles, d for quadrupoles. The FWHM of the Gaussian cloud can be changed by adding flag: -s FWHM. | ||
Line 85: | Line 87: | ||
This files contains all important information about the scan and informations for creation of important forcefields. Here we show an example of it: | This files contains all important information about the scan and informations for creation of important forcefields. Here we show an example of it: | ||
probeType 8 # atom type of ProbeParticle (to choose L-J potential ),e.g. 8 for CO, 54 for Xe | probeType 8 # atom type of ProbeParticle (to choose L-J potential ),e.g. 8 for CO, 54 for Xe | ||
- | charge 0.0 # effective charge of probe particle [e] | + | tip 'dz2' # For calculations with electrostatics only - multipole of the PP {'dz2' is the most popular now fo CO}, charge cloud is not tilting # |
- | stiffness 0.20 0.20 20.00 # [N/m] harmonic spring potential (x,y,R) components, x,y is bending stiffnes, R particle-tip bond-length stiffnes, | + | sigma 0.71 # For calculations with electrostatics only - FWHM of the gaussian charge cloud {0.7 or 0.71 are standarts} # |
- | r0Probe 0.0 0.0 4.00 # [Å] equilibirum position of probe particle (x,y,R) components, R is bond length, x,y introduce tip asymmetry | + | charge -0.05 # For calculations with electrostatics only: if 0.00 then ElFF is not even read - effective charge of probe particle [e] {for multipoles the real moment is q*sigma - dipole - or q*sigma**2 - quadrupole} {for CO 'dz2' we typically use -0.30 - -0.05} # |
+ | stiffness 0.20 0.20 20.00 # [N/m] harmonic spring potential (x,y,R) components, x,y is bending stiffness, R particle-tip bond-length stiffness, {for CO we typically use 0.24 0.24 20.00} | ||
+ | r0Probe 0.0 0.0 3.00 # [Å] equilibirum position of probe particle (x,y,R) components, R is bond length {3.00 for CO mostly these days}, x,y introduce tip asymmetry | ||
PBC True # Periodic boundary conditions ? [ True/False ] | PBC True # Periodic boundary conditions ? [ True/False ] | ||
gridN 240 240 200 # Grid division around each cell axis; Not necessary - if it is not here a 0.1 division is applied | gridN 240 240 200 # Grid division around each cell axis; Not necessary - if it is not here a 0.1 division is applied | ||
Line 97: | Line 101: | ||
scanStep 0.1 0.1 0.10 # steps of scan (dx, dy, dz) | scanStep 0.1 0.1 0.10 # steps of scan (dx, dy, dz) | ||
Amplitude 1.0 # [Å] oscillation amplitude for conversion Fz->df | Amplitude 1.0 # [Å] oscillation amplitude for conversion Fz->df | ||
+ | |||
+ | If you want to make a scan for different probe, you have to change the probeType in __params.ini__ and to recompute L-J forces. | ||
+ | |||
+ | **The number of grid divisions in *.xsf files is enlarged by one in each direction. Therefore, gridN have to be numbers of cubicles in *.xsf file reduced by one, if geometry is read from *.xyz, but electrostatics from .xsf** | ||
===== Simulating AFM ===== | ===== Simulating AFM ===== | ||
Line 102: | Line 110: | ||
With having L-J and electrostatic forces made by generating scripts, you can try to run an AFM scan via: | With having L-J and electrostatic forces made by generating scripts, you can try to run an AFM scan via: | ||
python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/relaxed_scan.py | python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/relaxed_scan.py | ||
- | which run the scan with charge Q and lateral stiffness K written in __params.ini__. The result - Fz force acting on the tip -- is saved in __Q?.??K?.??__ directory as an __OutFz.xsf__ file. | + | which run the scan with charge Q and lateral stiffness K written in __params.ini__. Please note, that electrostatic forces are necessary only if Q ≠ 0.0. The result - Fz force acting on the tip -- is saved in __Q?.??K?.??__ directory as an __OutFz.xsf__ file. |
The df results for constant height scans can be plotted by: | The df results for constant height scans can be plotted by: | ||
python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/plot_results.py --df | python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/plot_results.py --df | ||
Line 112: | Line 120: | ||
If a flag - -pos is applied for both commands (scanning & plotting) than xy positions of the relaxing Probe Particle (PP) are shown in __xy_???.png__ as a red dots, while the gray scale on the background maps represent z position of the PP (brighter - higher). | If a flag - -pos is applied for both commands (scanning & plotting) than xy positions of the relaxing Probe Particle (PP) are shown in __xy_???.png__ as a red dots, while the gray scale on the background maps represent z position of the PP (brighter - higher). | ||
- | ===== Test ===== | + | ===== Tests ===== |
Examples of df simulation is already in the downloaded/cloned repository in folder __examples/__. You should try to run these examples before going to your own stuff, in order to see that the code is working on your machine. | Examples of df simulation is already in the downloaded/cloned repository in folder __examples/__. You should try to run these examples before going to your own stuff, in order to see that the code is working on your machine. | ||
Line 120: | Line 128: | ||
===== Scans with different charge (Q), lateral stiffness (K) or oscillation amplitude (A) ===== | ===== Scans with different charge (Q), lateral stiffness (K) or oscillation amplitude (A) ===== | ||
- | A scan with different charge (Q) and/or lateral stiffness (K) than those written in __params.ini__ can be calculated via running: | + | A scan with different charge (Q) and/or lateral stiffness (K) than those written in __params.ini__ can be calculated via running (be aware, that for Q ≠ 0.0, you need to have precalculated electrostatic forces): |
python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/relaxed_scan.py -q (Q) -k (K) | python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/relaxed_scan.py -q (Q) -k (K) | ||
Line 135: | Line 143: | ||
python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/plot_results.py --df --krange min max nK --qrange min max nQ --arange min max nA | python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/plot_results.py --df --krange min max nK --qrange min max nQ --arange min max nA | ||
+ | |||
+ | ===== References ===== | ||
+ | |||
+ | Prokop Hapala, Georgy Kichin, Christian Wagner, F. Stefan Tautz, Ruslan Temirov, and Pavel Jelínek, Mechanism of high-resolution STM/AFM imaging with functionalized tips, Phys. Rev. B 90, 085421 – http://journals.aps.org/prb/abstract/10.1103/PhysRevB.90.085421 | ||
+ | |||
+ | Prokop Hapala, Ruslan Temirov, F. Stefan Tautz, and Pavel Jelínek, Origin of High-Resolution IETS-STM Images of Organic Molecules with Functionalized Tips, Phys. Rev. Lett. 113, 226101 – http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.113.226101 |