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 - Anders Blom

Pages: [1] 2 3 ... 361
1
I don't think you need a script, actually. If you open the IV curve in the GUI (NanoLab) you should be able to change the curves to show any spin component.

2
I think we need to look at the exact scripts and output. If you don't want to share them publicly, you can email then.

3
All doable, yes

4
The script is rather specific to the calculation done with an explicit defect. In your case, you should go back to definitions in the theory section; looking at the line which actually defines the MFP, you can evaluate all quantities for your system and extract the MFP as

(R(L)/Rc-1) = L/MFP

(all depending on energy).

Here Rc is the conductance of the perfect system, and R(L) = 1/T(L) is computed for a device where L is the length of the part that has been thermally perturbed. A better option might even be to plot R(L) as a function of L, which should be a linear relation and you can get MFP from the slope.

5
With 5 licenses you can only parallelize over up 5 concurrent saddle searches but each on of these can run on multiple cores, using MPI parallelization. You do however have to set processes_per_saddle_search=N correctly in the ParallelParameters object attached to the calculator (cf. https://docs.quantumatk.com/manual/Types/AdaptiveKineticMonteCarlo/AdaptiveKineticMonteCarlo.html#parallel-saddle-searches), so that 5*N = M = the total number of MPI processes you spawn (mpiexec -n M).

6
It shouldn't matter, but there is a lot going on here. What is the repetition in the calculation that gives good results? Do you use the Wigner-Seitz scheme in both cases? Are there convergence issues indicated in any log file? Code version (we fixed some symmetry-related problems that gave negative energies recently)?

There is no real need to optimize the geometry since the structure is symmetric (fractional coordinates constrained to 1/3 and 2/3). Yes, you can optimize the lattice constant, but that would be a simple equation of state (vary the parameter a for 5-10 runs and fit a parabola), much more efficient.

Do you need spin-polarization? Not sure it makes a difference, just takes longer... I try without first, at least, while testing other parameters.

7
It was removed because it was a really exotic feature not many people used. You can still perform the analysis of course, you just need to script it, either from the Workflow Builder or, almost easier, directly by hand. Of course it was a lot more fun when you could just click, because now you need to run multiple scripts just to check how many finite transmission channels you have, and then get the eigenstate, and drag it into the Viewer...

Code: python
device_configuration = nlread("myfile.hdf5", DeviceConfiguration)[-1]
energy = 0.0*eV
eigenvalues = TransmissionEigenvalues(device_configuration, energy)
nlprint(eigenvalues)

Then second run

Code: python
device_configuration = nlread("myfile.hdf5", DeviceConfiguration)[-1]
# Same energy as before
energy = 0.0*eV
# List here the interesting quantum numbers
quantum_numbers = [0,1,2]
for quantum_number in quantum_number:
    eigenstate = TransmissionEigenstate(device_configuration, energy, quantum_number=quantum_number)
    nlsave('myfile.hdf5',eigenstate)

8
First of all, spin up and down are not good quantum numbers anymore when you introduce spin-orbit coupling (or noncollinear spin).

But it should still be possible to project the current on Up or Down in a script. Can you share more about the script you run and error message?

9
Looks like the copy/paste from the webpage uses the null character instead of normal spaces. So just delete all spaces before "for" and "print" and change it to normal spaces.  Or, you can use the little "copy" icon in the code box, that seems to work properly.

10
The variables of relevance for this are kx, ky and zi. You can just loop over them and print to a text file in desired format, although I would argue that any analysis or plotting you want to do might be better done in Python...

Code: python
kvalues = ky[0]
for i in range(len(kvalues)):
    for j in range(len(kvalues)):
        print(kvalues[i], kvalues[j], zi[i,j])

11
General Questions and Answers / Re: M3GNet energies
« on: March 19, 2024, 20:51 »
You are not telling it to print anything...
Add nlprint(total_energy) and you will see the energy printed

12
General Questions and Answers / Re: Zero bias transmission
« on: March 11, 2024, 19:57 »
No, all transport we compute is elastic by default. Otherwise you would have to introduce extra effects that take/give the energy the electron loses/gains in the process. This could be phonons, and QuantumATK can handle inelastic phonon scattering, see corresponding tutorials on that, like https://docs.quantumatk.com/tutorials/inelastic_current_in_si_pn_junction/inelastic_current_in_si_pn_junction.html.

13
Good question, happy that we get a chance to answer it here for the benefit of all users.

  • Start we a fresh empty workflow in the Workflow Builder
  • Insert a "Load from file" block from the Algorithms group and double-click the inserted block to open it
  • Click the button "Load from file" and select the file and object in the file that you want to read in
  • Close the "Load from file" widget
  • Now you can add any analysis you want to the script. Usually it's automatically connected to the loaded object, if not (some analysis takes multiple input configurations) you can connect them manually by clicking the little colorful icons on the right (next to the red warning badge that appears in these situations).

I didn't make screenshots as I hope it's clear already but let me know if you need more guidance.


14
The term "ballistic" is somewhat ambiguous. In our NEGF mode it's taken to mean the opposite of diffusive (as in "ballistic transport", below the mean free path, i.e. no energy relaxation from phonon scattering), since we include scattering of interfaces, defects, surface roughness, etc as created by any atom not in a perfectly periodic arrangement. In some other models i's defined it as "no scattering at all", which would only be possible in a perfect crystal, and thus is rather uninteresting in an atomistic picture, but makes sense in higher-level models when you only use the mobility or set transmission to 1 to model a ballistic conductor.

No matter the bias, the transmission spectrum is computed including the effects of all atoms present in the system.

15
This is confusing, as this error has nothing to do running a script (no matter what task, like TransmissionSpectrum), but rather is related to the GUI itself and how it stores the status of running jobs. Do you see the error in the script log file or does the GUI crash?

Pages: [1] 2 3 ... 361