Author Topic: ATK2008.10 about energy spectrum  (Read 5992 times)

0 Members and 1 Guest are viewing this topic.

Offline deepwave

  • Heavy QuantumATK user
  • ***
  • Posts: 33
  • Reputation: 0
    • View Profile
ATK2008.10 about energy spectrum
« on: March 8, 2011, 05:58 »
Dear everyone,
I have performed a calculation of MPSH(Energy spectrum) for two probe spin injection system? I have some confusion about setting the quantum number to calculate the HOMO and LUMO. for my system’s molecule, there are 108 outer-shell electrons, usually based on that two electrons occupy one orbit, so the 108 outer-shell electrons will occupy 54 orbits, and the quantum number of HOMO should be 53 ,for LUMO is that 54. however, it seems not like that through calculating the energy spectrum, as following,
# Energy Spectrum
# -----------------------------------------------------------------------------
#     Spin-Up Energy (eV)  Spin-Down Energy (eV)
0         -18.77                 -18.77
   1         -18.52                 -18.51
   2         -18.18                 -18.18
   3         -17.90                 -17.90
   4         -16.04                 -16.03
   5         -15.67                 -15.65
   6         -15.29                 -15.26
   7         -14.99                 -14.99
   8         -14.83                 -14.82
   9         -14.78                 -14.78
  -----------------------------------------------------------------------------
   410       -0.73                  -0.03
   411       -0.69                  -0.03
   412       -0.69                  -0.03
   413       -0.69                  -0.02
   414       -0.69                  -0.02
   415       -0.69                  -0.01
   416       -0.68                  -0.01
   417       -0.68                   0.04
   418       -0.68                   0.05
   419       -0.68                   0.06
   420       -0.67                   0.07
   421       -0.67                   0.07
   422       -0.67                   0.07
   423       -0.67                   0.08
   424       -0.66                   0.08
   446       -0.55                   0.27
   447       -0.46                   0.27
   448       -0.46                   0.28
   449       -0.21                   0.31
   450       -0.15                   0.35
   451       -0.13                   0.42
   452       -0.12                   0.47
   453       -0.02                   0.49
   454       -0.01                   0.50
   455        0.43                   0.72
   456        0.44                   0.99
   457        0.49                   0.99
   458        0.50                   0.99
   459        0.53                   1.00
   460        0.66                   1.11
   461        0.67                   1.18
 -----------------------------------------------------------------------------
   872       80.93                  80.94
   873       81.46                  81.47
   874       84.84                  84.84
   875       85.24                  85.24
   876       87.08                  87.08
   877       88.39                  88.39
question:
      should I set the quantum number of HOMO to 454(-0.01eV)  and the LUMO to 455 for spin up, and HOMO to 416, LUMO to 417 for spin dowm?? I do not think so! Because we can find the energy orbit was degenerated from the output dat. So I want to know which is the quantum number for HOMO and LUMO ?
Attached is the calculated log out file.
Thanks!

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5565
  • Country: dk
  • Reputation: 93
    • View Profile
    • QuantumATK at Synopsys
Re: ATK2008.10 about energy spectrum
« Reply #1 on: March 8, 2011, 09:47 »
It seems you have not projected the MPSH only on the molecule, but the entire central region. If you project on the molecule, I think your math (plus minus one, perhaps) for HOMO/LUMO would work better.

Offline deepwave

  • Heavy QuantumATK user
  • ***
  • Posts: 33
  • Reputation: 0
    • View Profile
Re: ATK2008.10 about energy spectrum
« Reply #2 on: March 11, 2011, 09:11 »
thank you for Anders Blom. yes i make a mistake! but i calculate MPSH(Energy spectrum) for the entire central region,what is physical means of the HOMO and LUMO orbit? if i use this the HOMO and LUMO orbits to calculate the projected hamitonian eigenstates, what is the means. and i have another question about calculate the current under different voltage in the spin system. my script as follwing: is right? i run it then errors occur. can you help me change script.
Code: python
######################################################################
# Initialize self-consistent field calculation
######################################################################
# Restore self consistent calculation from check point file
scf = restoreSelfConsistentCalculation(
    filename = 'G:/theme1/parallel/ivcurve/4Ni-scf3.nc'
)

for voltage in numpy.arange(0.0, 5.01, 0.1):
	two_probe_method = TwoProbeMethod(
    	electrode_parameters = (left_electrode_parameters,right_electrode_parameters),
    	exchange_correlation_type = exchange_correlation_type,
    	iteration_mixing_parameters = iteration_mixing_parameters,
    	electron_density_parameters = electron_density_parameters,
    	basis_set_parameters = basis_set_parameters,
    	iteration_control_parameters = iteration_control_parameters,
    	energy_contour_integral_parameters = energy_contour_integral_parameters,
    	two_center_integral_parameters = two_center_integral_parameters,
    	electrode_voltages = (voltage, 0)*Volt,
    	algorithm_parameters = two_probe_algorithm_parameters
)
if processIsMaster(): nlPrint(two_probe_method)
runtime_parameters = runtimeParameters(
    verbosity_level = 1,
    checkpoint_filename = '4Ni-bias-%.1f.nc' % voltage
)
scf = executeSelfConsistentCalculation(
    twoprobe_configuration,
    two_probe_method,
    runtime_parameters = runtime_parameters,
		initial_calculation=scf
)

######################################################################
# Calculate physical properties
######################################################################
current = calculateCurrent(
    self_consistent_calculation = scf,
    brillouin_zone_integration_parameters = brillouinZoneIntegrationParameters((1, 1)),
    spin = Spin.Up,
    green_function_infinitesimal = 1.0e-5*electronVolt,
    number_of_points = 100
)
if processIsMaster(): nlPrint(current)
if processIsMaster(): file.addToSample(current, 'twoprobe_configuration', 'Current')

current_1 = calculateCurrent(
    self_consistent_calculation = scf,
    brillouin_zone_integration_parameters = brillouinZoneIntegrationParameters((1, 1)),
    spin = Spin.Down,
    green_function_infinitesimal = 1.0e-5*electronVolt,
    number_of_points = 100
)
if processIsMaster(): nlPrint(current_1)
if processIsMaster(): file.addToSample(current_1, 'twoprobe_configuration', 'Current 1')
« Last Edit: March 11, 2011, 09:45 by Anders Blom »

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5565
  • Country: dk
  • Reputation: 93
    • View Profile
    • QuantumATK at Synopsys
Re: ATK2008.10 about energy spectrum
« Reply #3 on: March 11, 2011, 09:44 »
The MPSH really makes most sense if projected onto something that naturally can be understood as a molecule, or at least a localized structure.

What is the error?

Offline deepwave

  • Heavy QuantumATK user
  • ***
  • Posts: 33
  • Reputation: 0
    • View Profile
Re: ATK2008.10 about energy spectrum
« Reply #4 on: March 13, 2011, 07:01 »
thanks for Anders Blom!
i run the same script again and sucess, but it only calculate the current under 5 votage. i want to the current for 0.1,0.2,0.3,……,4.9,5.0 votage, and every times it can use former result of .nc file. can you help me to modify the script. thank you !

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5565
  • Country: dk
  • Reputation: 93
    • View Profile
    • QuantumATK at Synopsys
Re: ATK2008.10 about energy spectrum
« Reply #5 on: March 14, 2011, 00:09 »
This is a very Pythonish thing. The parts of the script you want to be part of the loop must be indented on the same level. So if we do
Code: python
for i in range(3):
    print i
    print "Hello"
you get 3 "Hello" (and the numbers 0,1,2). But in this case:
Code: python
for i in range(3):
    print i
print "Hello"
you only get one "Hello" because it's not part of the loop In your script, you only loop over the voltages in the part that sets up the calculator, not in the rest of the script that actually uses the calculator. So what you need to do is indent all the lines below the "for" line to the same level. In most editors you can achieve this by selecting the relevant lines (21 to 55) and hitting the TAB button.

Offline deepwave

  • Heavy QuantumATK user
  • ***
  • Posts: 33
  • Reputation: 0
    • View Profile
Re: ATK2008.10 about energy spectrum
« Reply #6 on: March 14, 2011, 02:41 »
thank you! i got it !
i have another question in my script! i find it calculate the current every times use the same .nc file(under 0 votage).but i want to use differents. such as ,if i calculate the current under 1.0 votage, it can use former result of .nc file(under 0.8 votage).
how i should modify the statements. thank you!

scf = restoreSelfConsistentCalculation( 
    filename = 'G:/theme1/parallel/ivcurve/4Ni-scf3.nc' 


Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5565
  • Country: dk
  • Reputation: 93
    • View Profile
    • QuantumATK at Synopsys
Re: ATK2008.10 about energy spectrum
« Reply #7 on: March 14, 2011, 10:54 »
I don't understand what you are trying to do... The current is calculated as part of your script and stored in the VNL file. And if you just want to calculate the current afterwards, based on the converged NC files there is no reason to use any previous calculation, you just do
Code
scf = restore...()
current = calculateCurrent(scf,...)

Offline deepwave

  • Heavy QuantumATK user
  • ***
  • Posts: 33
  • Reputation: 0
    • View Profile
Re: ATK2008.10 about energy spectrum
« Reply #8 on: March 15, 2011, 02:59 »
thank you! may be i describe not clear. if we calculate the votage of range(0.0, 5.0, 0.2 )
i mean when calculate the current of 1.0V, we should use the result of the .nc under 0.8V in order to quickly convergence. so how can we modify the script to realize every steps.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5565
  • Country: dk
  • Reputation: 93
    • View Profile
    • QuantumATK at Synopsys
Re: ATK2008.10 about energy spectrum
« Reply #9 on: March 15, 2011, 09:54 »
The script you posted initially does precisely that: see the line "initial_calculation=scf".