phylyh
Regular ATK user

Reputation: 0
Offline
Posts: 20
|
 |
« Reply #15 on: March 17, 2009, 09:55 » |
|
I have the same feeling as you. Thanks for your detailed advice. I will try it.
|
|
|
|
|
Logged
|
|
|
|
|
Anders Blom
|
 |
« Reply #16 on: March 17, 2009, 11:57 » |
|
Let's hope Nori's nice suggestions work.
A small note: Do not use electrodeConstraints.RealSpaceDensity if you plan to calculate the voltage drop; it will simply not give correct results. In general, this keyword should only be used as a last resort when the calculation refuses to converge in any other way...
|
|
|
|
|
Logged
|
|
|
|
phylyh
Regular ATK user

Reputation: 0
Offline
Posts: 20
|
 |
« Reply #17 on: March 17, 2009, 13:41 » |
|
If I just calculate the Transimission at zero bias voltage, electrodeConstraints.RealSpaceDensity can be used to obtain correct results? Another way, the electrodeConstraints.DensityMatrix. is suitable for both zero-bias and volt-drop calculation?
Thanks all
|
|
|
|
|
Logged
|
|
|
|
|
Anders Blom
|
 |
« Reply #18 on: March 17, 2009, 13:47 » |
|
I generally advise against using electrodeConstraints.RealSpaceDensity. It's legacy method that used to be the old default (actually only one available), but we have discovered a lot of things with it that work less than satisfactorily.
The all-round workhorse is the new default, electrodeConstraints.Off.
However, for finite bias calculations when you are interested in plotting the voltage drop, electrodeConstraints.DensityMatrix is your only valid choice. Sometimes it's hard to converge the calculation with this constraint, in which case you would "downgrade" to Off, converge, and then restart with the converged calculation as initial guess, and run again to convergence with DensityMatrix.
In the absolutely worst case, when nothing helps, "downgrade" to RealSpaceDensity, converge, and then restart and run again to convergence with Off (and/or DensityMatrix as needed, if you are looking for the voltage drop).
|
|
|
|
|
Logged
|
|
|
|
phylyh
Regular ATK user

Reputation: 0
Offline
Posts: 20
|
 |
« Reply #19 on: March 18, 2009, 06:49 » |
|
The system is converged when I use the density matrix mixing instead of Hamiltonian mixing but I am not sure if the result will be affected by these two mixing scheme?
|
|
|
|
|
Logged
|
|
|
|
|
Nordland
|
 |
« Reply #20 on: March 18, 2009, 08:51 » |
|
Mixing scheme does not have an significant impact on the system, and the differences is not something that is observable.
However, as Dr. Anders Blom, writes the importances is the twoprobe algorithm for the electrode constaint, this has a high impact on the transmission spectrum etc.
|
|
|
|
|
Logged
|
|
|
|
phylyh
Regular ATK user

Reputation: 0
Offline
Posts: 20
|
 |
« Reply #21 on: March 20, 2009, 16:33 » |
|
Dear All
I meet another runtime error as follows when I apply bias to the system:
Traceback (most recent call last): File "CNT55_Ni1_1.0.py", line 488, in ? runtime_parameters = runtime_parameters NLValueError: One of or more atoms has a different number of orbitals.
I am not sure what does the error come from?
Thanks for all
|
|
|
|
|
Logged
|
|
|
|
|
Nordland
|
 |
« Reply #22 on: March 20, 2009, 16:57 » |
|
I am not sure - but I think that you are restarting a calculation with old one, where there is either a different number of atoms or you have changed the basis set - but I am not sure....
|
|
|
|
|
Logged
|
|
|
|
|
Anders Blom
|
 |
« Reply #23 on: March 20, 2009, 18:34 » |
|
Yes, you can only restart the calculation from an initial density if the number of orbitals is the same on each atom. This means, you can not change the basis set size (like, SingleZeta to DoubleZeta), add, remove or reorder (!) atoms.
|
|
|
|
|
Logged
|
|
|
|
phylyh
Regular ATK user

Reputation: 0
Offline
Posts: 20
|
 |
« Reply #24 on: March 20, 2009, 19:05 » |
|
Thanks, it seems that the basis set is different from previous calculation.
|
|
|
|
|
Logged
|
|
|
|
phylyh
Regular ATK user

Reputation: 0
Offline
Posts: 20
|
 |
« Reply #25 on: March 21, 2009, 16:05 » |
|
Dear All,
Does the following runtime error mean the memory is not enough ?
Traceback (most recent call last): File "CNT55_Ni21_1.0.py", line 501, in ? runtime_parameters = runtime_parameters ATKError: St9bad_alloc
It seems that there are so many different runtime error.
Thanks
|
|
|
|
|
Logged
|
|
|
|
|
Nordland
|
 |
« Reply #26 on: March 21, 2009, 16:42 » |
|
Hey phylyh.
Yes the std::bad_alloc is the C/C++ error message when it does not have enough memory for allocating an array.
|
|
|
|
|
Logged
|
|
|
|
phylyh
Regular ATK user

Reputation: 0
Offline
Posts: 20
|
 |
« Reply #27 on: March 30, 2009, 10:53 » |
|
Dear All
I meet another runtime error which I never see before:
Traceback (most recent call last): File "Au_Z7_Au.py", line 496, in ? runtime_parameters = runtime_parameters ATKError: inverse(DZMatrix const &) : Could not LU factorize!
My system is a little big, about 300 atoms, and I am not sure what this error come from?
Thanks
|
|
|
|
|
Logged
|
|
|
|
|
|
phylyh
Regular ATK user

Reputation: 0
Offline
Posts: 20
|
 |
« Reply #29 on: March 30, 2009, 11:28 » |
|
Hi, Guru
the py file is enclosed. Thanks for your check.
Yunhao
|
|
|
|
|
Logged
|
|
|
|
|