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:02]
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.
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) =====
  
-  ​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.1483027372.txt.gz · Last modified: 2016/12/29 17:02 (external edit)