Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - zhangguangping

Pages: 1 2 3 [4] 5 6 ... 13
46
See http://quantumwise.com/publications/tutorials/item/877-inelastic-electron-spectroscopy-of-h-molecule-between-1d-au-chains

Dear Anders,

For the the 4th question raised in the last thread, I have found the answer in the manual. One can seperately calculate the "device_configuration.update()", "DynamicalMatrix", "HamiltonianDerivatives" and saved in seperate *nc files, then read them in at the step of IETS calcuation as follows.

Code
device_configuration = nlread('filename-dc.nc', DeviceConfiguration)[0]

dynamical_matrix = nlread('filename-dm.nc', DynamicalMatrix)[0]

hamiltonian_derivatives = nlread('filename-hd.nc', HamiltonianDerivatives)[0]

inelastic_transmission_spectrum = InelasticTransmissionSpectrum(
configuration=device_configuration,
dynamical_matrix=dynamical_matrix,
hamiltonian_derivatives=hamiltonian_derivatives,
energies=numpy.linspace(0, 0, 1)*eV,
kpoints=MonkhorstPackGrid(1, 1),
qpoints=MonkhorstPackGrid(1, 1),
method=XLOE,
)
nlsave('filename-IETS.nc', inelastic_transmission_spectrum)

With best regards,

/Guangping

47
Dear Anders,

Thanks for your reply.

I will read it carefully, and try to understand the process of calculation IETS in ATK.

With best regards,

Guangping

Dear Anders,

I have followed the tutorial, but still have some questions on the calculation of IETS in ATK.

(1) In the tutorial, it metioned that "The dynamical matrix can be calculated in parallel over the atomic displacements in each direction. Consequently this calculation can be performed efficiently using six cores." So, to speed up the calculation, the cores used must be six or multiple of six, in that each core has a very similar computational load, right?

(2) Concerning the setting of q-points in vibration calculation, if I just inlcude the molecule in a molecular junction in the "Dynamical Matrix" calcualtion, can I safely set a 1x1 q-point sampling since the molecular is supposed not to interact wtih its image in repetition unit cells ?

(3) What is the effect of "repetitions=(x, x, x)" in "DynamicalMatrix" and "HamiltonianDerivatives" class? As the reason stated in (2), can I safely set repetitions=(1, 1, 1)? I found, it is ok for DynamicalMatrix, but not for HamiltonianDerivatives. I get errors like

Code
Traceback (most recent call last):
  File "/tmp/1366.node00/CH3-C7-Au-IETS.py", line 463, in <module>
Traceback (most recent call last):
  File "/tmp/1366.node00/CH3-C7-Au-IETS.py", line 463, in <module>
Traceback (most recent call last):
  File "/tmp/1366.node00/CH3-C7-Au-IETS.py", line 463, in <module>
    Traceback (most recent call last):
  File "/tmp/1366.node00/CH3-C7-Au-IETS.py", line 463, in <module>
    use_equivalent_bulk=True,
    use_equivalent_bulk=True,
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 132, in __init__
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 132, in __init__
use_equivalent_bulk=True,
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 132, in __init__
Traceback (most recent call last):
    use_equivalent_bulk=True,
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 132, in __init__
Traceback (most recent call last):
  File "/tmp/1366.node00/CH3-C7-Au-IETS.py", line 463, in <module>
  File "/tmp/1366.node00/CH3-C7-Au-IETS.py", line 463, in <module>
Traceback (most recent call last):
  File "/tmp/1366.node00/CH3-C7-Au-IETS.py", line 463, in <module>
    use_equivalent_bulk=True,
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 132, in __init__
    use_equivalent_bulk=True,
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 132, in __init__
Traceback (most recent call last):
  File "/tmp/1366.node00/CH3-C7-Au-IETS.py", line 463, in <module>
    use_equivalent_bulk=True,
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 132, in __init__
    use_equivalent_bulk=True,
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 132, in __init__
Traceback (most recent call last):
  File "/tmp/1366.node00/CH3-C7-Au-IETS.py", line 463, in <module>
Traceback (most recent call last):
  File "/tmp/1366.node00/CH3-C7-Au-IETS.py", line 463, in <module>
Traceback (most recent call last):
  File "/tmp/1366.node00/CH3-C7-Au-IETS.py", line 463, in <module>
    use_equivalent_bulk=True,
Traceback (most recent call last):
  File "/tmp/1366.node00/CH3-C7-Au-IETS.py", line 463, in <module>
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 132, in __init__
    use_equivalent_bulk=True,
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 132, in __init__
    use_equivalent_bulk=True,
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 132, in __init__
    use_equivalent_bulk=True,
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 132, in __init__
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 978, in setAndCheckAtomsDisplacedWithinSuperCell
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 978, in setAndCheckAtomsDisplacedWithinSuperCell
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 978, in setAndCheckAtomsDisplacedWithinSuperCell
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 978, in setAndCheckAtomsDisplacedWithinSuperCell
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 978, in setAndCheckAtomsDisplacedWithinSuperCell
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 978, in setAndCheckAtomsDisplacedWithinSuperCell
NL.ComputerScienceUtilities.Exceptions.NLValueError:   File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 978, in setAndCheckAtomsDisplacedWithinSuperCell
NL.ComputerScienceUtilities.Exceptions.NLValueError: Atoms are being displaced out of the unit cell in directions where the cell repetition is less that 3. Please increase the unit cell repetition in the direction(s): A.
NL.ComputerScienceUtilities.Exceptions.NLValueError: Atoms are being displaced out of the unit cell in directions where the cell repetition is less that 3. Please increase the unit cell repetition in the direction(s): A.
Atoms are being displaced out of the unit cell in directions where the cell repetition is less that 3. Please increase the unit cell repetition in the direction(s): A.
NL.ComputerScienceUtilities.Exceptions.NLValueError: Atoms are being displaced out of the unit cell in directions where the cell repetition is less that 3. Please increase the unit cell repetition in the direction(s): A.
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 978, in setAndCheckAtomsDisplacedWithinSuperCell
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 978, in setAndCheckAtomsDisplacedWithinSuperCell
NL.ComputerScienceUtilities.Exceptions.NLValueError: Atoms are being displaced out of the unit cell in directions where the cell repetition is less that 3. Please increase the unit cell repetition in the direction(s): A.
NL.ComputerScienceUtilities.Exceptions.NLValueError: Atoms are being displaced out of the unit cell in directions where the cell repetition is less that 3. Please increase the unit cell repetition in the direction(s): A.
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 978, in setAndCheckAtomsDisplacedWithinSuperCell
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 978, in setAndCheckAtomsDisplacedWithinSuperCell
NL.ComputerScienceUtilities.Exceptions.NLValueError: Atoms are being displaced out of the unit cell in directions where the cell repetition is less that 3. Please increase the unit cell repetition in the direction(s): A.
NL.ComputerScienceUtilities.Exceptions.NLValueError: Atoms are being displaced out of the unit cell in directions where the cell repetition is less that 3. Please increase the unit cell repetition in the direction(s): A.
NL.ComputerScienceUtilities.Exceptions.NLValueError: Atoms are being displaced out of the unit cell in directions where the cell repetition is less that 3. Please increase the unit cell repetition in the direction(s): A.
  File "./zipdir/NL/Analysis/HamiltonianDerivatives.py", line 978, in setAndCheckAtomsDisplacedWithinSuperCell
NL.ComputerScienceUtilities.Exceptions.NLValueError: Atoms are being displaced out of the unit cell in directions where the cell repetition is less that 3. Please increase the unit cell repetition in the direction(s): A.
NL.ComputerScienceUtilities.ExceptionsNL.ComputerScienceUtilities.Exceptions.NLValueError: Atoms are being displaced out of the unit cell in directions where the cell repetition is less that 3. Please increase the unit cell repetition in the direction(s): A.
.NLValueError: Atoms are being displaced out of the unit cell in directions where the cell repetition is less that 3. Please increase the unit cell repetition in the direction(s): A.

(4) How to continue an IETS calculation in ATK?

For example, in the .py file the main calculation are lined as the following as instructed in the tutorial Au-H2-Au.
Code
...
device_configuration.update()
...
dynamical_matrix = DynamicalMatrix(...)
...
vibrational_mode = VibrationalMode(...)
...
hamiltonian_derivatives = HamiltonianDerivatives(...)
...
inelastic_transmission_spectrum = InelasticTransmissionSpectrum(...)

Like the case in (3), how can one continue the job?

Can you give me some help on this?

Thanks so much.

48
I have very little knowledge of Fortran, but I know enough to tell you that in fact this kind of text format with a fixed number of characters per field is designed specifically for Fortran (at least old-style Fortran code). So it must be easy to read in that language, probably using the 12.6 floating point format somehow, I don't know maybe read(11,"(D12.6)") or similar does the trick?

Dear Anders,

Thanks for your reply.

I will search it on the web.

Maybe, the fix formatting reading are just for fix formatting, and not for the free formatting.

With best regards,

/Guangping Zhang

49
It is not a good idea to increase the width of the number field, at least if you want to strictly abide to the specification of the CUBE file format:
http://paulbourke.net/dataformats/cube/ (although this page is from 2003, but I don't know of a more standard
As you see, the numbers are ("originally") supposed to take up a certain amount of characters ("12 characters wide with 6 decimal places") and it's not a problem for a computer to read the file even if the numbers are "melted" together. Harder for the eye yes, but if one increases it to say 15 characters wide or even just space-separated, it's not certain that all codes can read the file anymore, if they are written according to the standard. But on the other hand, the page says "most parsing programs can read any white space separated format" which is probably true. Still, one is not really supposed to look at this kind of data manually, so formatting for the eye isn't really an issue.

Dear Anders Blom,
Thanks for your kind reply.
This suggestion is not only for the eye, but for the read in code.
I now use a fortran code of the following to read the cube data
Code
	  open(unit=11,file=inputcube)
  read(11,*) head1
  read(11,*) head2

  read(11,*), N_atom,Orig(1),Orig(2),Orig(3)
  read(11,*), nX,dV1(1),dV1(2),dV1(3)
  read(11,*), nY,dV2(1),dV2(2),dV2(3)
  read(11,*), nZ,dV3(1),dV3(2),dV3(3)

  allocate(cube_a(nX,nY,nZ))
  allocate(cube_b(nX,nY,nZ))
  allocate(xuhao(N_atom),zb_0(N_atom))
  allocate(zb_x(N_atom),zb_y(N_atom),zb_z(N_atom))

  do i=1, N_atom
    read(11,*) xuhao(i),zb_0(i),zb_x(i),zb_y(i),zb_z(i)
  enddo

  read(11,*)
     &  (((cube_a(i,j,k),k=1,nZ),j=1,nY),i=1,nX)

  close(11)

this kind of read directives need white for seperate the numbers apart.

I am glad to know how to read a fixed width number even though it may melt with the neighbours?

With best regards,

/Guangping Zhang

50
Drag and drop the configuration on top of the isosurface window. You have the repetition option for the configuration as well.

Dear Umberto,

Alough the repetition option can make the split MPSH orbital into a whole one, it is not convenient to output the MPSH orbitals in only one unit cell.
To solve this, I have written a FORTRAN code that can manipulate the grid data to make the split MPSH orbital into a whole one, see the attached.

Also, I have found something uncomfortable in the format of numbers at the head of cube files, the width of numbers should be increased to make numbers separate.

Quote
CUBE FILE. DATA VALUES IN UNITS OF 1/Bohr**1.5, LENGTHS IN BOHR
OUTER LOOP: X, MIDDLE LOOP: Y, INNER LOOP: Z
  248 0.000000e+00 0.000000e+00 0.000000e+00
   99 2.205845e-01 0.000000e+00 0.000000e+00
   99-1.102922e-01 1.910322e-01 0.000000e+00
  444 0.000000e+00 0.000000e+00 2.220775e-01
   47 0.000000e+00 2.729734e+00 1.576013e+00 2.228819e+00
   47 0.000000e+00 8.189202e+00 1.576013e+00 2.228819e+00
   47 0.000000e+00 1.364867e+01 1.576013e+00 2.228819e+00
   47 0.000000e+00 1.910814e+01 1.576013e+00 2.228819e+00
   47 0.000000e+00-0.000000e+00 6.304051e+00 2.228819e+00
   47 0.000000e+00 5.459468e+00 6.304051e+00 2.228819e+00
   47 0.000000e+00 1.091894e+01 6.304051e+00 2.228819e+00
   47 0.000000e+00 1.637840e+01 6.304051e+00 2.228819e+00
   47 0.000000e+00-2.729734e+00 1.103209e+01 2.228819e+00
   47 0.000000e+00 2.729734e+00 1.103209e+01 2.228819e+00

51
Dear Anders,

Thanks for your reply.

I will read it carefully, and try to understand the process of calculation IETS in ATK.

With best regards,

Guangping

52
General Questions and Answers / Re: Possible bug in VNL
« on: May 1, 2016, 00:53 »
Dear Anders,

Yeh, that it is.

However, the Basic device is fllowed by "Basis set/exchange correlation".

With best regards,

Guangping

53
General Questions and Answers / Possible bug in VNL
« on: April 30, 2016, 16:26 »
Dear QW stuff,

I find a possible bug in VNL.
VNL:  2015.1.5b36b25
Platform:  windows 10 x64
Description: When you set the parameters in “New Calculator” of the "Script Generator",  the "Density mesh cut-off" can not be changed under the card "Basic device", it always go back to the default value 75 Hartree when you come back to this “Basic device” card, until you set the value in the card "Numerical accuracy parameters". That is to say,  the "Density mesh cut-off" can not use the value set in the card "Basic device", and only use the value set in the card "Numerical accuracy parameters".

With best regards,

Guangping

54
Dear all,

Is there a detail tutorial for Inelastic electron tunneling spectrum (IETS)? I saw this can be realized in InelasticTransmissionSpectrum Class. However, I did not find a detailed tutorial of how to use it:
(1) how to set the dynamical region when calculate the phonon.
(2) how to inspect the vibrational mode after the phonon calculation.
(3) how to calculate the IETS based on the above data.

With best regards,

/Guangping

Moderator edit: Confusing spelling mistake in subject corrected.

55
Dear Umberto,

Thanks very much for your kind reply. It is of great help.

Have a nice weekend.


/Guangping

56
Dear Umberto,

Thanks very much.

I should try the repetition function. I though it was not for this.

And how to show the configuration of the structure along with the MPSH wavefunction?

With best.

Guangping

57
Dear all,

When I plot the MPSH orbital of a junction, I found the MPSH orbital is split into two part because some part are outside the unit cell as seen in the attachment. How to solve this by no construct a new junction and rerun the job?

And how to show the configuration of the two probe in the MPSH orbital? I did not find the option. I have used nlsave to save the configuration into the nc file before the MPSH orbitals are save into this nc file.

With best regards,

/Guangping

58
Dear Jess,

Thanks for your clear reply.

This reply thoroughly clear my puzzle.

Thanks very much.

With best regards,

/Guangping

59
Dear Jess,

Thanks very much for your kind reply. It is of great help.

Code
initial_spin = InipialSpin(scaled_spins=[1.0, 1.0, 0.0, 0.0, -1.0, -1.0])

the scale factor specified by scaled_spins is used to scale the initial guess. If there is no initial guess, then it represents the scale factor of the maximum magnetic moment of the atom.

Now I understand why the converged FM can be used as a good initial of AFM configuration.

Thanks very much.

Guangping

60
Dear Jeff,

Thanks very much for your reply.

I have read the second tutorial before, and this time I read the first tutorial. This tutorial is of great help. As I understand, to speed up the electronic convergence in Magnetic Tunnel Junctions, one usually use a large electron temperature (indeed, this temperature is not the real temperature but a smearing and a trick for the convergence) up to ~1200 K.

I have two questions yet:

(1) Can the effect of parallel configuration or  antiparallel configuration of the electrodes be neglected to the geometry of the device? I saw the geometry optimization is only carried out for the parallel configuration. And this optimized geometry is used to do the electron transport calculation for antiparallel configuration.

(2) What is the idea of using a converged electron structure of the parallel configuration to initialized the antiparallel configuration? The tutorial metioned that this could improve the convergence behavior of the antiparallel configuration. is this a general rule? It is hard to believe.

With best regards,

Guangping

Pages: 1 2 3 [4] 5 6 ... 13