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 ... 356
General Questions and Answers / Re: Help in python code
« on: Yesterday at 01:00 »
The plotting script is not helpful to answer the question, it's just plotting data once you have already extracted it. The question is really about how you computed the DOS, with which projections, and how to extract them. It's also a bit unclear what you want to plot, do you need multiple lines for the projected DOS of p-orbitals, one line for each atom, or just p for all atoms, one line? I guess my confusion is from the "loop", is it over atoms or projections? Seems like you should use ProjectOnShellsByElement, but I agree it's a bit hard to know from the manual how you use "evaluate" to get the individual data out. If you give me a bit more info, I can try to help.

First part is not possible, that I can see, if you mean you want to constrain the moment. You can of course provide an initial guess for it via InitialSpin, but then it will adjust during the self-consistent cycle.

For the second question, the answer is yes.

As the error says, it's not enough to just have the configurations, you must also have the data to train to, i.e. energy, forces and stress.
Without having had the chance to test it explicitly, I think you just have to set recalculate_training_data=True instead of False, and I hope this will not rerun the scf loop since you do provide the same calculator as originally used.

If you are ok with scripting, it's pretty easy to explain. It's also very easy using the GUI, but harder to explain in text...

My recommendation would be to take your Python script that you were running and make a copy of it.

Then locate the line which says something like bulk_configuration.update() - this is the line that triggers the self-consistent calculation. Right after that, you should see a line with "nlsave", which saves the converged state of the calculation once it's done.

Now it's hard to understand what to do. We basically just need to read this state from the file, instead of re-running. After that, all the following lines will work the same.

So, comment out the "update" and "nlsave" lines, and replace them with

bulk_configuration = nlread(filename, BulkConfiguration)[-1]

Note that you need to change the filename to match your case, and also check that the variable was bulk_configuration, sometimes it's different. But just take it from the lines you comment out.

You image doesn't show much in terms of error messages, but it is correct that a spatial region cannot overlap the space occupied by atoms, so you need to edit the structure to avoid that.

Properly speaking, a heterostructure does not have a band structure, at least not in the direction perpendicular to the interface. The concept of a band structure relies on periodicity, and the heterostructure does not possess that. You can talk about the partial band structure in the plane of the interface, I guess (although it's not a common analysis), which can be computed in the usual way with QuantumATK if you use a slab model for the structure, and only choose symmetry points in the XY plane, if the interface is along Z. Finally, you may be referring to the band alignment, and for that you would compute the projected DOS, as shown in the interface tutorials such as shown here:

This is a big job, it will take time. You can however redo the band structure now, there is no need to redo the self-consistent loop. Only using 1 node, even with 8 cores, is quite limited, I would try to either use more cores on that single node, or more nodes. Basically the band structure calculation will scale linearly with the total number of cores.

We are looking into this, but it doesn't seem to be a general issue, so it could be related to the specific structure you used. Therefore, we need the full script, you can attach it to the post, rather than paste it in the message, then there is no problem with character limit.

If you are planning to do forcefield calculations, you can use partial charges, yes.

It in DFT, it's both easier and a bit trickier... Depending on exactly how the F atom binds to the other atoms, there will be some amount of charge transfer, so it will never be exactly -1 unless isolated in vacuum. DFT doesn't care about partial charges, but you can charge the entire simulation cell ("charge" keyword) in which case the electronegativity of the F will probably lead it to having the correct charge (or 0.9 or whatever it adjusts to). If the F atom is not bound, and you want the extra electron in the system to go onto it, you could use a compensation charge. I haven't tried exactly that...

1. Yes
2. Definitely use Active Learning because you dopant needs to move to many different locations in the crystal not captured by the simple "shake and twist" protocol in Batch (move atoms around a bit, change unit cell szie and shape a bit). You need to explore regions of the PES far from equilibrium for the NEBs to be accurate. Notably, in the newest version you can actually do active learning on the NEB itself though, that might save a lot of time!
3. Eh, not yet...
4. Really? Maybe share some data with us, so we can check. You could try to use a smaller basis_size of  course. But don't try to include all dopants at once, that will be too many elements.

There is a rather old explanation on how to at least project the transmission onto the MPSH states here:
I hope it still works, but perhaps some small changes in the code lately will require the utility script at least to be updated...

You will have to loop over the energy and record the contribution to the transmission from each MPSH state to make the plot.

The phase is defined the paper through the ratio of the real and imaginary parts of the projected transmission eigenvalues, as I understand it. By default, the transmission eigenvalues computed by QuantumATK are expressed in the basis of the original basis set orbitals (, so again one would need to perform a unitary transformation to the space spanned by the MPSH states. I'll check on the best way to do that.

Also see regarding how to obtain the MPSH spectrum.

Yes, I suppose you have to do this manually, and the procedure you indicated is correct. Probably the boundary conditions are not too critical for the geometry optimization, so it might be easier to use FFT anyway, provided you have enough vacuum above the surface.

Because spin up and down are no longer meaningful concepts in the noncollinear regime, to which spin-orbit belongs. Or put differently, s-o interaction couples the up and down spins so you no longer can have pure spin states, only spinors. You will therefore need to consider up/up and down/down currents, but also note there is up/down and down/up contributions.

Which version of the code are you using? Ideally, if you can share the Python input file, we can look at this, as it seems like a bug, but it could already have been fixed in newer versions. If you don't want to share the script publicly, you can email it.

General Questions and Answers / Re: optimize_cell flag Error
« on: December 1, 2023, 20:56 »

Pages: [1] 2 3 ... 356