User Tools

Site Tools


probe_particle_model

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
probe_particle_model [2016/12/29 17:01]
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 61: Line 63:
 Symbol/​or/​Z-of-element x y z charge-optional Symbol/​or/​Z-of-element x y z charge-optional
  
-The Lennard-Jones potential needed for calculations can be created by running:+The Lennard-Jones ​(L-J) potential needed for calculations can be created by running:
   python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/​generateLJFF.py -i YOUR_INPUT_FILE.xyz   python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/​generateLJFF.py -i YOUR_INPUT_FILE.xyz
 If charges are also in the input file add "​-q"​ flag to create electrostatic field. If charges are also in the input file add "​-q"​ flag to create electrostatic field.
Line 71: Line 73:
  
  
-x, y and z components of Lennard-Jones forces are stored in __LJFF_x.xsf__,​ __LJFF_y.xsf__ and __LJFF_z.xsf__ files, respectively. These files that can be viewed e.g. via XCrySDen (http://​www.xcrysden.org/​) or VESTA (http://​jp-minerals.org/​vesta/​en/​).+x, y and z components of L-forces are stored in __LJFF_x.xsf__,​ __LJFF_y.xsf__ and __LJFF_z.xsf__ files, respectively. These files that can be viewed e.g. via XCrySDen (http://​www.xcrysden.org/​) or VESTA (http://​jp-minerals.org/​vesta/​en/​).
  
  
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.
  
   ​   ​
 +
 ===== Scans with different charge (Q), lateral stiffness (K) or oscillation amplitude (A) ===== ===== Scans with different charge (Q), lateral stiffness (K) or oscillation amplitude (A) =====
  
-  ​python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/​relaxed_scan.py --krange min max  ​--qrange min max n+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) 
 + 
 +It will create a new folder __Q?​.??​K?​.??/​__ where will be stored the results from the new run. A df map for wanted oscillation amplitude (A) can be then created by: 
 + 
 +  python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/​plot_results.py --df -q (Q) -k (K) -a (A) 
 + 
 +The results will be saved in subfolder __Amp?​.??/​__. 
 + 
 +Also scans over ranges of (Q),(K) and (A) can be done, via:  
 + 
 +  ​python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/​relaxed_scan.py --krange min max nK  ​--qrange min max nQ 
 + 
 +  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
  
-  python PATH_TO_YOUR_PROBE_PARTICLE_MODEL/​plot_results.py --df --arange min max n+Prokop Hapala, Ruslan Temirov, FStefan 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
probe_particle_model.1483027280.txt.gz · Last modified: 2016/12/29 17:01 (external edit)