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 ... 344 345 [346] 347 348 ... 361
5176
Oh, one more thing. You can also compute the 3D real-space molecular orbital of each MPSH eigenstate. Then you will immediately see where in space it is localized. If there is a peak in the MPSH, and a dip in the transmission, and it sits right at the vacancy, then you can be quite sure that this is a localized molecular level due to the impurity, which destroys the transmission at this energy.

5177
For a perfect periodic system, the MPSH is meaningless. For the concept to make any sense there has to be a clearly defined "molecular" part to "project" on.

However, as soon as you introduce a defect or e.g. add an atom/molecule to the outside of a nanotube, etc, then you have precisely such a part, and also your projection atoms are quite obvious. In case of a single added atom, you may want to include the neighboring atoms too to account for the modified bonding between these.

It is also relevant to compare not just the transmission but also the surface density of states to the MPSH spectrum. If there at some energy is an MPSH level but no peak in the DOS, then the level is anyway not actively participating in the transmission (a peak in the DOS corresponds to some kind of localized level, which typically deteriorates the transmission), since it is not coupled to the leads.

What is the system corresponding to the results you posted? There seems to be a corresponding peak at -0.25 in both, but not at +0.25 eV, but that could just mean that the first peak is related to some localized molecular level and the other is due to some feature in the band structure.

If you have a single vacancy, I would select the atoms that previously used to be bound to that atom as the part to project on.

5178
First a check: which version of ATK are you using? The use of "mpirun" rather than "mpiexec" first led me to believe that you have an older, outdated version (i.e. older than 2008.02). But, then you write "Intel MPI", which could be the simple explanation: ATK only works with MPICH2 (ver 1.0.8 or similar).

5179
General Questions and Answers / Re: mesh cut-off
« on: April 6, 2009, 08:49 »
I have earlier tried some carbon nanotube band structure calculations with as low as 70 Ry without seeing any significant degradation in the results. On the other hand, the actual reduction in time and memory compared to 100 or 150 Ry is not extremely large.

I agree that SZP should be fine to save time for carbon, although you may find it interesting to read a recent article by G. Abadir et al. on precisely the topic of the basis set choice in Journal of Computational Electronics (http://dx.doi.org/10.1007/s10825-009-0263-5).

5180
A side issue: you script potentially ends with an indented statement. This generates error messages in MPI on the slave nodes, and actually I think it prevents the script from running. So, always make sure the last line in the script is completely empty (no spaces at all!) when running in parallel!

5181
The problem has been located. As often in these cases, it's completely obvious - once you know the answer! :)

The issue lies in the use of random(). This function will give different values on the different nodes, so by the time the self-consistent loop starts, each MPI node will have a different configuration, which obviously makes no sense at all.

To solve this, you could generate the configuration only on the master node and export it to a VNL file (all encapsulated in processIsMaster()) and then read the VNL file back in on all nodes.
Edit: This will not work, since the slave nodes will run ahead and attempt to read the VNL file while the master node is still making it. Use Nordland's method below instead!

Simple - and not! ;)

PS: I don't know how large systems you plan to compute, but there is actually not very much to be gained by running molecules in parallel, unless they are very, very large (hundred of atoms). On the other hand, you can really gain a lot by ensuring that ATK runs threaded over the cores on a dual or quad core CPU. The reason is that the MPI parallelization only can be used for the matrix element generation for molecules, while the threading kicks in for the matrix diagonalization.

5182
The plot thickens! I get the same error on our cluster. Definitely need to look further at this...

5183
Does the error occur very soon in the calculation, or after many iterations?

5184
It should be quite easy to do. Let's see, step by step.

1. Insert the line

Code
import ivcurve

right after the two import statements at the top of your script. The reason we do this early in the script is because if it fails (for some reason), we will know immediately. The file needs to be in the same directory as your script.

2. Remove all code in your script after and including the line

Code
# Perform self-consistent field calculation

3. Insert this code at the end of the script instead:
Code
voltages=[0.0,0.1,0.2,0.3]*Volt

ivcurve.runIVcurve (
    twoprobe_configuration,
    two_probe_method,
    runtime_parameters,
    voltages,
    vnl_filename='FeMgOFe_iv.vnl', sample_name='FeMgOFe',
    current_k_point_sampling = (10,10),
    current_number_of_points = 100
  )

4. Change the voltages to whatever range you prefer, as well as the file and sample name.

Notes:

In your original script, the k-point sampling for the current calculation was 1x1. A characteristic feature of the FeMgOFe system is that you need very, very many k-points to get an accurate current for the minority transmission in the parallel electrode confiuration. I have used 10x10 in the example code above, but you should really check this number, and find out how many you need. Just do it for the zero bias case, that should be fine.

However, and this is crucial: the way you have set up the system, it is not spin-polarized. For this you must add an initial spin to the electron density parameters. For more information, see the tutorial on FeMgO.

Another point is that this calculation will be extremely time-consuming. However, by running it on a cluster you can probably save a factor of 10 or more in time. In that case, you may have to take some special care about the path and import statements etc. However, I note that you are using Windows, and currently there is not parallel Windows version of ATK. So, I really hope you have opportunity to access a parallel Linux machine, or you may have to wait a week or so for the results of this calculation!

5185
Actually for graphene nanoribbons there are only 2 types, armchair and zigzag.

But the notation used in the literature is not entirely consistent. What I mean by these terms is the edge type, while sometimes one encounters a notation related to the "corresponding unrolled nanotube". Highly confusingly, this results in the opposite labeling (i.e. a zigzag edge ribbon is made from unrolling an armchair nanotube).

But at any rate, there are only 2 different types; chiral tubes cannot be unrolled unto something that looks like a ribbon (as far as I know). Well, you can of  course always unroll it, but it will not have straight edges.

5186
I think you may be using an older edition of ATK, or at least an example from the manual of an older version. There was a mistake in the manual on exactly this. See the new updated manual at http://quantumwise.com/documents/manuals/ATK-2008.10/ref.calculatedensityofstates.html for the correct code example, which also takes care of the unit of the DOS properly.

5187
energies is an array of energies, so you need to subscript it in order to extract an energy from which you can get and print the value using the method inUnitsOf().

Thus, change the line

Code
print energies.inUnitsOf(eV),'\t',dos[0,i],'\t',dos[1,i]

to

Code
print energies[i].inUnitsOf(eV),'\t',dos[0,i],'\t',dos[1,i]

and you should be set to go! (Actually there are 2 places to change, for spin/non-spin.)

5188
Welcome to the Forum, beark!

This is certainly one of the trickier concepts in ATK. From your well formulated question I can see that you are on your way to understanding it, however :)

From the setup perspective, yes, there are only 3 components: left electrode, central regions, and right electrode. The Atomic Manipulator treats the surface layers internally a bit different, in order to make it easier for the user to add and remove layers.

The physical relevance of the surface layers is however distinctly different from the rest of the scattering region. As you state yourself, their role is to screen the influence of the real scattering part (the molecule, nanotube, interface layers, whatever constitutes the real middle part of the device) such that the fundamental approximation (that the electrodes are bulk-like) holds.

In principle yes, you need to converge the results in the number of layers, but this is quite expensive. In practice, you will hopefully get a feeling for your own types of systems and how efficient they are at screening. Some quantities that will help you assess the quality of the screening is to compute the voltage drop (search the Forum for several good discussions on this) or the effective potential, and check if it is smooth across the boundaries between the electrodes and the scattering region.

Large bias requires more screening. 1D or quasi-1D systems screen less efficiently than whole metal surface, but fortunately it's less expensive to increase the number of screening layers for chains and nanotubes etc.

Hope this answers your questions, but just keep asking if something is still unclear!

Good luck with ATK, I hope you will enjoy the program!


5189
I want to do some simple operation
graphene sheet with width=6 and rep=2
I want to replace some C atoms to B and N atoms.I dont want to change structure just simple atom replacement.Or another words i would like to see graphene sheet which is made in Boron or Nitrogen

I recently realized myself that this could be interesting, so I made an updated script that support boron-nitride or any other two-atom basis hexagonal nanoribbon. I have attached it to this post; use it like the old script, there are just some extra parameters at the top. There is even now a switch to turn on/off the hydrogen edge termination ;)

If i go to the atomic manipulator i cant change nothing
Second chance i went to the Molecular Builder and did some replacements and back to the Manipulator and all seemed ok.But when i dragged it to the Nanolanguage scripter i didnt see quantities availability "ENERGY BANDS" for calculating.Instead of "Energy bands" i see "Energy Spectrum Molecular Energy spectrum"

You should not edit a periodic structure in the Molecular Builder (MB), but in the Bulk Builder. The MB produces molecules, and you cannot compute the band structure of a molecule. Better stick to PeriodicAtomConfigurations all the time, otherwise you lose the unit cell, and it's gets messy to figure out the alignment.

Second question about Energy density.In some cases it shows beatiful DOS diagramm,other cases it shows only preview for nanoscope?

I must admit I don't understand the question. Energy density?

I hope the new script will help you out a lot, so that you don't actually have to go via the manipulators. If, however, you still need to do simple modifications, use the Bulk Builder on the PeriodicAtomConfigurations. If you only want to change some specific atoms to B/N, then I can suggest a suitable approach, if you give me some more details.

5190
You are correct, the X/Y lattice vectors must be commensurate for heterogeneous systems.

This is quite trivial to ensure in systems where you can just add some vacuum padding, but if the two electrodes are constructed from e.g. two different metals with different lattice constants, one has to strain one material. In this can one can try to find a particular supercell combination (like 2x3 on the left and 3x4 on the right, or something else) that minimizes the required strain.

Pages: 1 ... 344 345 [346] 347 348 ... 361