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 ... 341 342 [343] 344 345 ... 363
5131
This might be a reflection of a memory problem. It is known that loading large files into VNL can causes memory issues. To avoid this, one can attempt to putt the eigenstates (the 3D grids) into separate files, or to restart VNL between loading different large files. This is obviously not an ideal solution, but it's a work-around for now, that hopefully can solve the problem.

To recalculate the eigenstates should be very fast, and can easily be done from the checkpoint file, for example using something like

Code
from ATK.KohnSham import *
from ATK.MPI import processIsMaster

# Opening vnlfile
if processIsMaster(): file = VNLFile('TET_1.vnl')

scf = restoreSelfConsistentCalculation ('tet.nc')

eigenstates = calculateEigenstates(
    self_consistent_calculation = scf,
    quantum_numbers = (33)
)
for state_index,state in enumerate(eigenstates):
    label='Eigenstate'+' '+str(state_index)
    if processIsMaster(): file.addToSample(state, 'New Molecule', label)

5132
This case is a bit complex, since you are running an I-V curve calculation, using the external module "ivcurve". In this case, restarting doesn't work the way you may expect, perhaps. Restarting applies to a single calculation, while the I-V curve routine runs several calculations in sequence.

If it already completed the evaluation of the current for, say, the first 2-3 points on the I-V curve, you can just leave out those values from the range of voltages, and start from another point. You may however want to recalculation the zero bias, as this can then be used as a starting point for higher voltages, which usually helps convergence.

At the end of the day, the I-V curve module is really just a helper routine, it doesn't do anything you couldn't do by hand, that is, to run each voltage separately, and collect the current values for plotting. Plus, of course, reusing the converged density from the previous calculation to run the next higher bias.

That's also why you always should start from zero bias, in this case, and in general. So, if you want biases from -1 to 1 V, in steps of 0.1, say, run 0. V first, then do -0.1 and +0.1, and so on.

To reuse a previous calculation as initial guess for a new calculation, use the keyword initial_calculation to executeSelfConsistentCalculation():

Code
oldscf = restoreSelfConsistentCalculation('zerobias.nc')
scf = executeSelfConsistentCalculation(
    twoprobe_configuration,
    method,
    runtime_parameters,
    initial_calculation = oldscf
    )

(This code snippet is just to give an idea; needs to be polished to match your particular case.)

5133
Yes, the checkpoint file does not contain all electrode data, so this needs to be recalculated. It's typically a very small portion of the total calculation time anyway.

5134
Provided you specified a checkpoint file for the calculation, follow the steps below. If you didn't, well, then there is no option but to rerun, of course.

If the checkpoint file is called "mycalculation.nc", then make a new script

Code
from ATK.TwoProbe import *

oldscf = restoreSelfConsistentCalculation("mycalculation.nc")

scf = executeSelfConsistentCalculation(self_consistent_calculation=oldscf)

Any analysis (like, evaluation of transmission spectrum, etc) you had in the original script can be copied from the old script and added after these lines.

5135
Yes, you are correct General W :)

A point (k1,k2,k3) is located at k1*b1+k2*b2+k3*b3 in reciprocal Cartesian space, where bi (i=1,2,3) are the reciprocal unit vectors.

As Quantamania suggests, you'll want to run your calculation via the symmetry points, and VNL automatically suggests such a route for you, except it doesn't tell you the labels of those points.

We're working on a much improved way to compute band structures; there is a prototype tutorial (note: this link may stop working when the tutorial is published; if so, look for it at the general Tutorial page). To run those calculations, you also need the scripts attached to this post.

5136
None of these calculations have converged to a meaningful state, so the current is also wrong. Well, it's zero (1e-21 Ampere is zero) as expected since there are no electrons in the system any more (q is also zero, almost).

This is one of the most usual problems in calculations, and there are many discussions on the Forum how to cure the problem (search for "zero charge"). Most important is to have a wide enough electrode, after that to have enough k-point sampling and perhaps increase the temperature.

If you post the geometry and parameters, we can perhaps give more direct tips on where to improve it. Also see the Tutorial on how to converge FeMgO for specific hints on avoiding charge run-away.

5137
I guess you meant R, not P.

Just to be clear: padding is NOT the same thing as screening. The screening layers are part of C.

Again, from the perspective of how you set up the geometry, you specify to the program a "left electrode", a "right electrode", and a "central region" geometry. These are L, R, and C, and they are stitched together as L-C-R. The voltage drop etc occurs over this region. The whole padding idea is really just related to how the code handles things internally.

5138
Thanks for the invitation! I have been to Beijing once, a few years ago. I enjoyed it very much, although it was very cold (November) :)

5139
I must really apologize, it was a typing mistake on my part (which is obvious from the error message ;) ). It should be isProcessMaster(), not isProcessMaster. Small details, simple to find when you know. And yes, I should have tested the script in parallel, but as I wrote before I forgot to do it, and right now I don't have any parallel computer at hand (I'm travelling).

I have updated the script in the original post; really hope this version finally works properly! (Fortunately, not too much time is wasted before the error occurs.)

Is the Forum working really slow for you too? It's strange, normally it responds fast, but right now it's really sluggish... I've tried optimizing the tables and checking for errors, but it seems ok... Can only hope it solves itself.

5140
What is a bit confusing for me is that now we edited scripts left and right, plus you run both on Windows and Linux. As far as I understand, you can run properly in serial on Windows (via the VNL Job Manager, perhaps), but it fails in parallel on Linux, is that correct? And it complains about the VNL file not existing?

Please make a habit of posting the error message when there is one. Even if it seems the same as before, there could be a small crucial difference that helps in finding out what's wrong. For instance, if you are indeed using the new script, it should fail on line 80, not line 79. Also, the error should contain the full path of the "lih.vnl" file.

5141
A tutorial/add-on module for band structure calculations based on symmetry labels for the common lattices (not monoclinic...) is being developed. I've sent you a preview by email, enjoy! :)

5142
Although, from the user's perspective of how the geometry is defined, it is the electrode ;)

For definiteness, the system which ATK actually performs the calculation on, looks like

L-LP-C-RP-R           (p for padding)

where C=central region and L/LP and R/RP are the left and right electrode geometries. During the self-consistent two-probe calculation, the real space quantities in L and R are fixed to their bulk values, while those in LP and RP are allowed to vary.

So, again, from the perspective of how the system is defined (names of variables etc), the system is L-C-R, and the real space density and effective potential vary freely across this region.

5143
Hang on, I think the error might be different. You were running in parallel, and the script doesn't actually check that only the master node writes to the VNL file. Shame on me, that's really bad.

I have fixed the script in the original post; download it and replace your existing file, and try again.

5144
The M-L path is called U.

I don't think the concept of effective mass applies in this case. It's a quantity used in simpler models, where the band structure is close to parabolic, such that you don't need the detailed band structure, but it suffices to use a simplified picture of it, i.e. a perfect parabola. If the band structure doesn't look like that, there is no point in trying to compute an effective mass, since it cannot be used for anything meaningful...

5145
In the call to runIVCurve you must give the name of the VNL file with full path, like you did when it was defined

Code
if processIsMaster(): file = VNLFile('C:/Users/617/Desktop/lih.vnl')

So change to

Code
ivcurve.runIVcurve (
    twoprobe_configuration,
    two_probe_method,
    runtime_parameters,
    voltages,
    vnl_filename='C:/Users/617/Desktop/lih.vnl', sample_name='lih',
    current_k_point_sampling = (1,1),
    current_number_of_points = 100
  )

and it should work better! :)

Pages: 1 ... 341 342 [343] 344 345 ... 363