| ²é¿´: 440 | »Ø¸´: 0 | |||
[×ÊÔ´]
cclib ´¦Àí´óÓÚ100¸öÔ×ÓµÄϵͳ (GAMESS, parser)
|
|
ǰ¶Îʱ¼ä×Ô¼ºÓöµ½µÄÎÊÌ⣬cclib´¦Àí´óÓÚ100¸öÔ×ÓµÄϵͳ³ö´í¡£ ÏÂÃæÊǰ³µÄ´¦Àí·½·¨£¬¹²Ïí£º Here is the root problem: cclib (the current released version) cannot parse the log file of system with natom >= 100. In the log file for the Eigenvalues/MOs: 518 H 98 S -0.000000 0.000000 -0.000000 -0.000000 -0.000000 519 C 99 S -0.000000 0.000000 -0.000000 -0.000000 -0.000000 520 C 99 S -0.000000 0.000000 -0.000000 -0.000000 -0.000000 521 C 99 X -0.000000 0.000000 -0.000000 -0.000000 -0.000000 522 C 99 Y -0.000000 0.000000 -0.000000 -0.000000 -0.000000 523 C 99 Z -0.000000 0.000000 -0.000000 -0.000000 -0.000000 524 H 0 S -0.000000 0.000000 -0.000000 -0.000000 -0.000000 525 H 1 S -0.000000 0.000000 -0.000000 -0.000000 -0.000000 526 C 2 S -0.000000 0.000000 -0.000000 -0.000000 -0.000000 The number of atoms are recorded as 0, 1, ..., instead of 100/200/..., 101/201/..., which is however problematic in calculating CSPA. My resolution is: introducing a switch to monitor this change. The corresponding code, in gamessparser.py is partially copied in the following: LINE 714: p = re.compile("(\d+)\s*([A-Z][A-Z]?)\s*(\d+)\s*([A-Z]+)" ![]() oldatom ='0' i_atom = 0 #couter to translate to 0s to some hundreds, by C.W. flag_w = True #Flag to whether for i in range(self.nbasis): line = inputfile.next() # If line is empty, break (ex. for FMO in exam37). if not line.strip(): break # Fill atombasis and aonames only first time around if readatombasis and base == 0: aonames = [] start = line[:17].strip() m = p.search(start) if m: g = m.groups() g2 = int(g[2]) #atom index from GAMESS's log file if g2 == 0 and flag_w: #c.w. i_atom = i_atom + 100 #c.w flag_w = False if g2 != 0: flag_w = True g2 = g2 + i_atom #c.w. aoname = "%s%s_%s" % (g[1].capitalize(), str(g2), g[3]) #c.w. # aoname = "%s%s_%s" % (g[1].capitalize(), g[2], g[3]) oldatom = str(g2) #c.w. atomno = g2 - 1 #c.w. # oldatom = g[2] # atomno = int(g[2])-1 orbno = int(g[0])-1 else: # For F orbitals, as shown above g = [x.strip() for x in line.split()] g2 = int(g[2]) #atom index from GAMESS's log file if g2 == 0 and flag_w: #c.w. i_atom = i_atom + 100 #c.w. flag_w = False #c.w. if g2 != 0: #c.w. flag_w = True #c.w. g2 = g2 + i_atom #c.w. # aoname = "%s%s_%s" % (g[1].capitalize(), oldatom, g[2]) aoname = "%s%s_%s" % (g[1].capitalize(), oldatom, str(g2)) atomno = int(oldatom)-1 orbno = int(g[0])-1 self.atombasis[atomno].append(orbno) self.aonames.append(aoname) coeffs = line[15:] # Strip off the crud at the start. j = 0 while j*11+4 < len(coeffs): self.mocoeffs[0][base+j, i] = float(coeffs[j * 11 j + 1) * 11])j += 1 line = inputfile.next() Enjoy! |
» ²ÂÄãϲ»¶
µ÷¼Á
ÒѾÓÐ0È˻ظ´
µ÷¼Á
ÒѾÓÐ0È˻ظ´
ÎïÀí»¯Ñ§ÂÛÎÄÈóÉ«/·ÒëÔõôÊÕ·Ñ?
ÒѾÓÐ196È˻ظ´
µ÷¼ÁÕÐÉú
ÒѾÓÐ0È˻ظ´
µ÷¼ÁÕÐÉú
ÒѾÓÐ0È˻ظ´
µ÷¼ÁÕÐÉú
ÒѾÓÐ0È˻ظ´
µ÷¼ÁÕÐÉú
ÒѾÓÐ0È˻ظ´
ͼÊéÇóÖú£ºFluorescent Probes for Bioactive Species: Design
ÒѾÓÐ0È˻ظ´
µ÷¼ÁÕÐÉú
ÒѾÓÐ1È˻ظ´
ʵ¼ÊÆøÌåÄÚѹǿµÄ΢¹Û»úÖÆ»ò½«¸Äд--------´ÓÒ»¸ö»ù±¾µÄÁ¦Ñ§ÑðÃý˵Æð
ÒѾÓÐ1È˻ظ´
µ÷¼ÁÕÐÉú
ÒѾÓÐ0È˻ظ´
ÕÒµ½Ò»Ð©Ïà¹ØµÄ¾«»ªÌû×Ó£¬Ï£ÍûÓÐÓÃŶ~
È¡µÃ²©Ê¿Ñ§Î»´óÓÚÈýÄêÊÇ·ñÄÜÉêÇëCSC×ÊÖú¶Áº£Íⲩºó£¿
ÒѾÓÐ12È˻ظ´
Çóh-BNµÄÔ×ÓλÖÃÒÔ¼°µ¥²ã½á¹¹ÔõôÓÃMS½¨Á¢£¿
ÒѾÓÐ9È˻ظ´
ÎïÀíÎü¸½Ò»¶¨·ÅÈÈÂð£¿ìʱä¿ÉÒÔ´óÓÚ0Âð£¿
ÒѾÓÐ10È˻ظ´
Ô×Ó²¼¾ÓµçºÉ·Ö²¼
ÒѾÓÐ3È˻ظ´
ÈÃÖÐѧÉúÊÜÒæÒ»ÉúµÄ100¸öÃÀµÂ¹ÊÊÂ.»ÆÆå¡¾×ªÔØ¡¿
ÒѾÓÐ4È˻ظ´
Éú²âÊý¾ÝµÄ±ê×¼²î´óÓÚÆ½¾ùÖµ£¬Ôõô°ì£¿
ÒѾÓÐ7È˻ظ´
Ô×ÓÓ«¹â²âÊÔÓöµ½ÎÊÌ⣬Ôõô°ì£¿
ÒѾÓÐ5È˻ظ´
¡¾ÇóÖú¡¿µ¥¾§µÄXÑÜÉä-È·¶¨¾ø¶Ô¹¹ÐÍ-ÊÇ·ñÒ»¶¨ÒªÓÐÖØÔ×Ó£¡£¡
ÒѾÓÐ7È˻ظ´
¡¾ÌÖÂÛ¡¿ÐüÉÍ£±£°£°½ð±Ò£¡ºìÍâ·ÖÎö½âÆ×£ºSiÔ×ÓÉϼ׻ùÊýÁ¿
ÒѾÓÐ10È˻ظ´
¡¾ÇóÖú¡¿Ô×ÓÎüÊղⶨ¿óʯÖеļغÍÄÆ£¬ÔõôҲ×ö²»ºÃ£¿
ÒѾÓÐ5È˻ظ´
¡¾ÇóÖú¡¿ÈçºÎʹÓûðÑæÔ×ÓÎüÊÕ·¨²â¶¨100ppmÒÔÄÚµÄÌúº¬Á¿
ÒѾÓÐ14È˻ظ´
¡¾ÇóÖú¡¿ÈçºÎÅжÏÒ»¸öÔ×ÓÔÚÔ°üÄÚ²¿
ÒѾÓÐ4È˻ظ´
¿ÆÑдÓСľ³æ¿ªÊ¼£¬ÈËÈËΪÎÒ£¬ÎÒΪÈËÈË














j + 1) * 11])
»Ø¸´´ËÂ¥
µã»÷ÕâÀïËÑË÷¸ü¶àÏà¹Ø×ÊÔ´