qphensurf / STMpw

Implementation of Bardeen and Tersoff-Hamann approximations.
GNU General Public License v3.0
4 stars 4 forks source link

Is STM simulation using p-wave tip available? #1

Open lycheehoo opened 1 year ago

lycheehoo commented 1 year ago

Dear editor, I just wonder if these codes can select diferent tip kinds, like p-wave?

qphensurf commented 1 year ago

Thank you for your interest in the code. Unfortunately that option is not implemented in the code.

qphensurf commented 1 year ago

Hi, the vasp version of the code allows you to use a "relistic" tip by using the Bardeen Hamiltonian and producing a wavecar for virtually any tip. Downside of this is that you run into "periodic tip" problems, so you need to know what you are doing (or experiment with it).

p-wave is not implemented, but it is really simple to do (just include the first spatial derivative for the wavefunction). We have not done it because we think it is an "uncontrolled" approximation: nobody really knows how the tip is and what waves are contributing the most. From this point of view, keeping the s-wave is the simplest and you do not start flicking with the tip. Having said this, lots of people like the p-wave and it is wonderful way of adding "some extra" corrugation to the STM image ;-)

So long story short: it is not there, but we can do it if you convince us.

Best regards, Nicolás Lorente

On Thu, Apr 20, 2023 at 7:19 AM lycheehoo @.***> wrote:

Dear editor, I just wonder if these codes can select diferent tip kinds, like p-wave?

— Reply to this email directly, view it on GitHub https://github.com/qphensurf/STMpw/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANBM4HGFDDSSQ7QDFPXJTC3XCDBNXANCNFSM6AAAAAAXE7DG3U . You are receiving this because you are subscribed to this thread.Message ID: @.***>

lycheehoo commented 1 year ago

Thanks for your timely and detailed reply. Yeah, we actually do not know the real state of the tip. But I have read some papers using these p-wave simulated STM images to match their experimental STM images, which can not be perfectly reproduced by s-wave tip. Take one example below Nat. Chem. 15, 53–60 (2023). , the author simulated constant height STM images using s-wave and p-wave tip, respectively. He found images produced by p-wave tip could match the characteristics of the experiments better than s-wave tip. So I just want to have more choice to confirm my experimental data in some special situations : ) Wish you all the best. image image

lycheehoo commented 1 year ago

Hi Lorente, I got another question to ask: When I plot the simulated dI/dV curve using these codes, does the fermi level fit to 0 eV in the output data dIdV_TH_npt_1.dat automatically? Thanks.

compthesml commented 1 year ago

Hi Lorente, I got another question to ask: When I plot the simulated dI/dV curve using these codes, does the fermi level fit to 0 eV in the output data dIdV_TH_npt_1.dat automatically? Thanks.

Hi,

Yes, the Fermi level is set to 0 eV for all the energies within the code.

Best,

Roberto

lycheehoo commented 1 year ago

Thanks Roberto, I have a technical question for you: when I am going to get the simulated LDOS, I need to input the corresponding tip-sample bias, so what is the criteria for the bias input? It is based on whether our STS experimental bias or calculated PDOS bias?

qphensurf commented 1 year ago

Usually the calculated bias do not correspond to the experimental one due to the shortcomings of DFT. So you have to find the calculated bias that corresponds to the experimental one. For example, if you have a molecule on the surface and you are probing the HOMO on the surface in the experiment, you should simulate the LDOS at the bias at which the HOMO is in the calculation. Since it doesn´t take much time to calculate an extra point in the same run of STMpw, we usually compute several voltages corresponding to the different peaks in the theoretical PDOS. Then we compare the maps with the experimental results.

Best,

Roberto

lycheehoo commented 1 year ago

Usually the calculated bias do not correspond to the experimental one due to the shortcomings of DFT. So you have to find the calculated bias that corresponds to the experimental one. For example, if you have a molecule on the surface and you are probing the HOMO on the surface in the experiment, you should simulate the LDOS at the bias at which the HOMO is in the calculation. Since it doesn´t take much time to calculate an extra point in the same run of STMpw, we usually compute several voltages corresponding to the different peaks in the theoretical PDOS. Then we compare the maps with the experimental results.

Best,

Roberto

OK, I am clear now, thanks.

lycheehoo commented 1 year ago

Usually the calculated bias do not correspond to the experimental one due to the shortcomings of DFT. So you have to find the calculated bias that corresponds to the experimental one. For example, if you have a molecule on the surface and you are probing the HOMO on the surface in the experiment, you should simulate the LDOS at the bias at which the HOMO is in the calculation. Since it doesn´t take much time to calculate an extra point in the same run of STMpw, we usually compute several voltages corresponding to the different peaks in the theoretical PDOS. Then we compare the maps with the experimental results. Best, Roberto

OK, I am clear now, thanks.

If I want to get the simulated LDOS of specific tip-simple bias, all I need to do is just change the "cube output" to "T"? And the output TH_V_bias.cube file is the LDOS information and the .TH_V_bias.siesta is the constant height/current STM image?

qphensurf commented 1 year ago

.dat, .cube, and .siesta files contain the same information. For example, TH_V_bias.dat, TH_V_bias.cube and TH_V_bias.siesta contain the STM topography in the Tersoff-Hamann approximation. .dat files can be plotted with the utilities in the Utils directory; .siesta files can be plotted with WsXM; and .cube files can be plotted with different programs.

LDOS is proportional to dI/dV, so if you want to plot a LDOS map, this is called dIdV in the output files. For example, dIdV_TH_V_bias.dat. To plot it just use the utilities in the Utils directory, in particular the Cond_gnu.f90 program.

lycheehoo commented 1 year ago

Very convenient tools, so the following output dIdV_TH_V_bias.cube files are the genuine simulated maps data? And I can plot them in WsXM. image

lycheehoo commented 11 months ago

Dear developer, I got questions on plotting dIdV_TH_bias.dat using Cond_gnu.fortran program. How to set the parameters "height" and "current"? What is the true meaning of them? And when I set the "height" of "2", there is all zero in the 3rd line of the output "Conductance.gnu".

qphensurf commented 11 months ago

"height" is the height over the surface (Zsurf in input.STMpw) in angstroms. It has to be higher than z_s, so a height of 2 is too small. Just increase it. "Current" is the current in arbitrary units. Typical values can be from 1e-7 to 1e-10, but they depend on your system.

lycheehoo commented 11 months ago

Thanks, it runs successfully. And could you please tell me how to plot it by gnuplot? I just type "set pm3d" "splot Conductance.gnu", but the output image is awful.

qphensurf commented 11 months ago

Take a look at the cond_V_cc.sh and cond_V_ch.sh scripts in the Utils directory. They produce nice png images from gnuplot.

lycheehoo commented 9 months ago

Hello, I want to use this software to simulate the experimental didv maps using gas phase molecule. So are these codes available for didv simulation on just isolated molecule (no substrate)? Thanks!

lorente commented 9 months ago

Yes, you can do a calculation with just the molecular supercell and run STMpw on it to produce STM images and dI/dV maps. Just make sure that the bias is large enough to get the contribution of the molecular states that you want to explore. Remember thsat gas-phase molecules have energy levels that are very different from the adsorbed ones, and that of course, all these are DFT results so very different from any experimental values. You can have a look at the states first, throught the vasp PARCHG files and see which ones you want to have… Remember also that vast decides to put the Fermi energy for a molecular calculation just a little bit above the HOMO for no particular reason because the Fermi energy is not defined for gapped systems.

Best, Nicolás

On 10 Nov 2023, at 07:22, lycheehoo @.***> wrote:

Hello, I want to use this software to simulate the experimental didv maps using gas phase molecule. So are these codes available for didv simulation on just isolated molecule (no substrate)? Thanks!

— Reply to this email directly, view it on GitHub https://github.com/qphensurf/STMpw/issues/1#issuecomment-1805171118, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHPGJRJOMLCGYEM2QXGFWTYDXB3VAVCNFSM6AAAAAAXE7DG3WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBVGE3TCMJRHA. You are receiving this because you are subscribed to this thread.

lycheehoo commented 5 months ago

Dear Nicolás, I try to calculate the simulated di/dv maps (LDOS) of specific orbitals, like HOMO, LUMO... So I want to know how to get the corresponding LDOS of specific state? For single molecules, I try to use the energy in EIGENVAL file, and I set the simulated bias to corresponding state energy, but the outcomes are strange. I'm looking forward to your reply, thanks! :)

lorente commented 5 months ago

Hi,

Not sure I understand what you want. If you want to get the dI/dV maps (maps of LDOS) you can just use the dIdV tag and normal procedure in STMpw, I think we can files for that in Utils etc…

If what you want is to get a single molecular orbtal dI/dV map. Then you need to calculate the molecule without substrate in vasp or QE and just match the bias with the eigenvalue energy corrected by the Fermi energy of the calculation, all computed for the single molecule. This works fine. But you can also do this with vasp plotting the PARCHG for that Eigenvalue. https://www.vasp.at/wiki/index.php/PARCHG https://www.vasp.at/wiki/index.php/PARCHG The plots of PARCHG and of the dI/dV map match, althought you have to be careful with the typical problems of STMpw (the plane where you extrapolate the wavefuncitons, etc).

You can send me the weird looking LDOS for single molecules and I can try to see why it does not work.

Best Nicolas

On 30 Mar 2024, at 11:59, lycheehoo @.***> wrote:

Dear Nicolás, I try to calculate the simulated di/dv maps (LDOS) of specific orbitals, like HOMO, LUMO... So I want to know how to get the corresponding LDOS of specific state? For single molecules, I try to use the energy in EIGENVAL file, and I set the simulated bias to corresponding state energy, but the outcomes are strange. I'm looking forward to your reply, thanks! :)

— Reply to this email directly, view it on GitHub https://github.com/qphensurf/STMpw/issues/1#issuecomment-2028012430, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHPGJXQKGKPRES23XJ4CDTY22LITAVCNFSM6AAAAAAXE7DG3WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRYGAYTENBTGA. You are receiving this because you commented.

lycheehoo commented 4 months ago

Thanks for your detailed response! Yes, I want to get a single molecular orbtal dI/dV map, so I calculate the molecule without substrate. And I look at the electron occupation in the EIGENVAL file to know the HOMO and other orbitals' energy. My input and output files are shown below. For example, the LUMO's energy is -1.820794 eV (from EIGENVAL), and the Fermi energy determined by VASP is -2.7686 eV (from OUTCAR), so if I want the simulated maps of LUMO, I need to set the bias in input.STMpw as 0.948 V. Is this right? inputfile.zip

lorente commented 4 months ago

On 31 Mar 2024, at 14:31, lycheehoo @.***> wrote:

Thanks for your detailed response! Yes, I want to get a single molecular orbtal dI/dV map, so I calculate the molecule without substrate. And I look at the electron occupation in the EIGENVAL file to know the HOMO and other orbitals' energy. My input and output files are shown below. For example, the LUMO's energy is -1.820794 eV (from EIGENVAL), and the Fermi energy determined by VASP is -2.7686 eV (from OUTCAR), so if I want the simulated maps of LUMO, I need to set the bias in input.STMpw as 0.948 V. Is this right?

Yes, correct. I will have a lookat this later, Nicolas

inputfile.zip https://github.com/qphensurf/STMpw/files/14815595/inputfile.zip — Reply to this email directly, view it on GitHub https://github.com/qphensurf/STMpw/issues/1#issuecomment-2028698427, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHPGJQQVBOOQV7GE3BK3QDY2763PAVCNFSM6AAAAAAXE7DG3WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRYGY4TQNBSG4. You are receiving this because you commented.

lycheehoo commented 4 months ago

OK, thank you very much :)