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 4 ... 361
16
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).

17
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.

18
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)

19
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?

20
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.

21
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])

22
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

23
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.

24
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.


25
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.

26
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?

27
The easiest way to set up an electric field across a molecule would be add the metallic plates on either side of the molecule, sort of like how we did in this tutorial: https://docs.quantumatk.com/tutorials/opening_a_band_gap/opening_a_band_gap.html

Then molecular polarizability is the derivative of the dipole moment (see https://docs.quantumatk.com/manual/Types/ElectronDensity/ElectronDensity.html#usage-examples) as  function of the field strength.

28
A pristine material, i.e. a perfectly periodic crystal, has an infinite mean free path by definition. The only reason we speak of a MFP is because there is some kind of scattering source that breaks this periodicity, such as edge roughness, dopants, or indeed temperature. The closest to what you might be looking for (undoped, perfect 2D material) is probably then to introduce some randomness due to thermal vibrations, using the SpecialThermalDisplacement method (https://docs.quantumatk.com/manual/Types/SpecialThermalDisplacement/SpecialThermalDisplacement.html), and then proceed just like the tutorial (updated link: https://docs.quantumatk.com/tutorials/elastic_scattering_impurity_in_si_nanowire/elastic_scattering_impurity_in_si_nanowire.html)

29
PAW-GGA-LCAO should work fine, although there are some other details in PAW that might not work. You could also use the planewave calculator with PAW.

Yes, there is no predefined +1/2 parameters for Pr (or in fact a lot of exotic elements). I would probably recommend GGA+U for Pr, but either way you will need to fit the parameter.


30
Yes, this is expected for most semiempirical models, as they only contain parameters for the electronic structure, not forces and stress, and hence cannot be used for geometry optimization, MD, or phonons. The exception is DFTB, which typically works for all that.

Pages: 1 [2] 3 4 ... 361