Author Topic: DDOS in AC conductance  (Read 2458 times)

0 Members and 1 Guest are viewing this topic.

Offline rose

  • Heavy QuantumATK user
  • ***
  • Posts: 47
  • Country: it
  • Reputation: 0
    • View Profile
DDOS in AC conductance
« on: January 8, 2016, 06:54 »
Hi,
Regarding the AC conductance tutorial that mentioned in the site, I am really interested to plot DDOS in alternative energies. Would it be possible to help me write a code for it. I have no idea how I should do that.
thanks
Rose

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Re: DDOS in AC conductance
« Reply #1 on: January 8, 2016, 08:42 »
Dear Rose.

You can easily decide exactly which energies the DDOS should be evaluated at. For example, if you first create and execute a script that does a device calculation followed by an ordinary DDOS analysis, you can then create another script that simply reads in the self-consistent calculation and performs a new DDOS analysis at any energies you choose:

- In the Script Generator, use the "Analysis from File" block.
- Also add a DDOS block.
- Send the script to the Editor, and modify the energies at which the DDOS is evaluated.

I have attached a script that does exactly that, you can see it below. Note how the energies are manually defined in a list, which is then passed to the DDOS object as a numpy array with units of eV.

# -------------------------------------------------------------
# Analysis from File
# -------------------------------------------------------------
configuration = nlread('/home/jw/forum/DDOS.nc', object_id='gID000')[0]

# -------------------------------------------------------------
# Device Density Of States
# -------------------------------------------------------------
energies = [-1, -0.5, -0.25, -0.1, 0, 0.05, 0.1, 0.3, 2.0]

device_density_of_states = DeviceDensityOfStates(
    configuration=configuration,
    energies=numpy.array(energies)*eV,
    kpoints=MonkhorstPackGrid(1,1),
    contributions=All,
    energy_zero_parameter=AverageFermiLevel,
    infinitesimal=1e-06*eV,
    self_energy_calculator=RecursionSelfEnergy(),
    )
nlsave('DDOS_custom_energies.nc', device_density_of_states)
nlprint(device_density_of_states)

Offline rose

  • Heavy QuantumATK user
  • ***
  • Posts: 47
  • Country: it
  • Reputation: 0
    • View Profile
Re: DDOS in AC conductance
« Reply #2 on: January 8, 2016, 09:00 »
Thanks for the comment.
Hence, I want to plot the DDOS in Ac-Impedance Tutorial, which as it can be seen from the code mentioned in
https://www.quantumwise.com/documents/tutorials/latest/LowLevelEntities/index.html/chap.acconductance.html
the results are not save separately and only reported as a matrix. how can i save the results in .nc format so i can input it latter and then perform the DDOS process as you mentioned?
And is that DDOS correct or should change the code for considering AC effects in DDOS too?
yours
Rose.

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Re: DDOS in AC conductance
« Reply #3 on: January 14, 2016, 09:35 »
I don't quite understand the question. Are you looking to plot the DDOS at the energies that the AC admittance is plotted in the figures at the link you provided?

Offline rose

  • Heavy QuantumATK user
  • ***
  • Posts: 47
  • Country: it
  • Reputation: 0
    • View Profile
Re: DDOS in AC conductance
« Reply #4 on: January 14, 2016, 22:16 »
hi,
I try to plot DDOS at different "omega" that mentioned in the tutorial.
thanks.
Rose

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Re: DDOS in AC conductance
« Reply #5 on: January 18, 2016, 13:08 »
OK, so the omegas in the tutorial are just energies (hbar*omega = E), with units of eV. As you see in the tutorial, the list of energies is selected manually:
omega_list =  numpy.linspace(0,1,11)*eV

As I described in a previous post, this list can be passed to the DDOS analysis also:
# -------------------------------------------------------------
# Device Density Of States
# -------------------------------------------------------------
omega_list =  numpy.linspace(0,1,11)*eV

device_density_of_states = DeviceDensityOfStates(
    configuration=configuration,
    energies=omega_list,
....