| ²é¿´: 740 | »Ø¸´: 5 | ||
| ¡¾½±Àø¡¿ ±¾Ìû±»ÆÀ¼Û5´Î£¬×÷ÕßTIGERYZZÔö¼Ó½ð±Ò 5 ¸ö | ||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | ||
TIGERYZZ½ð³æ (СÓÐÃûÆø)
|
[×ÊÔ´]
¡¾·ÖÏí¡¿ATK_adaptive_current
|
|
|
ÕâÊǸö¼ÆËãµçÁ÷µÄº¯Êý£¬Ó¦¸Ã»¹ËãÊÇbeta°æµÄ¡£Ã²ËÆ¿ÉÒÔÉèÖþ«¶È== ¾ßÌåµÄ¹¦ÄÜÎÒÒ²²»Ì«Çå³þ£¬°²×°ºÍʹÓ÷½·¨ÔÚÏÂÃæ¡£ Ï£Íû³æ×ÓÃÇÓÃÁËÒÔºóÒ»ÆðÀ´ËµÒ»ÏÂÕâ¸ö³ÌÐò~~~ This is not just a simple NanoLanguage script, it's actually quite complex. So, there are binary and script files involved. I have attached the Windows and 32-bit Linux versions in a zip file. 64-bit Linux version is not available right now, but we can do it later. To use it: 1) Extract the zip file in some convenient directory; it will create a subdirectory "ATK_adaptive_current" 2) In this directory there is a subdirectory "win32" and inside it another subdirectory called "quadpack". Copy this directory to the "lib" directory in your ATK installation on Windows (so that "quadpack" becomes a subdirectory of "lib" . For Linux, same thing, except that"quadpack" should become a subdirectory of lib/python2.4/site-packages. 3) To calculate the current using the new routine, edit the script "calc_current_adaptive.py" to set the checkpoint file name (with path if necessary), k-points (or, wait, you have hydrogen-terminated edges? if so, 1x1 is fine), and level of accuracy. About the accuracy: * The syntax to the function calculateCurrentAdaptive closely resembles that of calculateCurrent, with an import difference. Instead of setting the number of integration points, you set the desired accuracy (and a verbosity). * You can specify the max absolute error you want in the result. The routine will use as many points, with more points in areas of quickly varying T(E), as needed to obtain this accuracy, up to a maximum of interval subdivisions (so that it doesn't run forever). * There is also a "relative accuracy", and the routine is not converged until both errors are below the threshold, so if your current is 1e-8 Ampere, it will not converge until the error is less than 1e-11 Ampere, even if epsabs=1e-6 Ampere. * So, in some sense there is no need to use epsabs, since usually it's more important to have a good relative accuracy. Thus you can actually leave epsabs at 1e-6 Ampere (default). * I would suggest using 1e-2 for epsrel to begin with, and see how many evaluations that requires, before trying 1e-3 (default). * If you set verbosity>0, the routine will print the current, the error, and the number of iterations used. This will be very useful to see that you have a good accuracy! * If you set verbosity>1, it will also print the points E where T(E) is evaluated, and T(E). You can pipe this output to a file, bring it into Excel, sort it, and use this to plot T(E), and at the same see how the routine distributes the points irregularly; more points will be used where T(E) varies quickly. ÄÉÃ×Å̵ØÖ·£º http://www.namipan.com/d/ATK_ada ... 456600e82d04fa20200 zdhlover˵ϲ»ÏÂÀ´£¬¶îÎÒ´«Á˸öµ½Ð¡Ä¾³æ~~ [ Last edited by TIGERYZZ on 2009-5-11 at 13:42 ] |
» ²ÂÄãϲ»¶
277Çóµ÷¼Á ÊýÒ»104·Ö
ÒѾÓÐ13È˻ظ´
304Çóµ÷¼Á
ÒѾÓÐ10È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
336Çóµ÷¼Á£¬Ò»Ö¾Ô¸Öпƴó
ÒѾÓÐ6È˻ظ´
071000ÉúÎïѧ£¬Ò»Ö¾Ô¸ÉîÛÚ´óѧ296·Ö£¬Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
Ò»Ö¾Ô¸±±¾©»¯¹¤085600 310·ÖÇóµ÷¼Á
ÒѾÓÐ19È˻ظ´
274Çóµ÷¼ÁÇóµ÷¼Á
ÒѾÓÐ7È˻ظ´
277¹¤¿ÆÇóµ÷¼Á
ÒѾÓÐ10È˻ظ´
283·ÖÇóµ÷¼Á
ÒѾÓÐ10È˻ظ´
295Çóµ÷¼Á
ÒѾÓÐ16È˻ظ´
» ±¾Ö÷ÌâÏà¹ØÉ̼ÒÍÆ¼ö: (ÎÒÒ²ÒªÔÚÕâÀïÍÆ¹ã)
freer007
ľ³æ (ÕýʽдÊÖ)
- 1STÇ¿Ìû: 1
- Ó¦Öú: 1 (Ó×¶ùÔ°)
- ½ð±Ò: 2421.7
- Ìû×Ó: 676
- ÔÚÏß: 146Сʱ
- ³æºÅ: 707811
4Â¥2009-11-23 09:10:46
5Â¥2009-11-24 10:54:21
6Â¥2010-02-27 22:35:48
¼òµ¥»Ø¸´
zdhlover2Â¥
2009-05-11 09:59
»Ø¸´



wwxq3Â¥
2009-11-22 23:26
»Ø¸´

















. For Linux, same thing, except that
»Ø¸´´ËÂ¥