Exemplo n.º 1
0
    def read_dens(self):
        """
        Read the (transition) density matrices and some supplementary information.
        """
        rtype = self.ioptions.get('rtype')
        if self.ioptions['read_libwfa']: self.mos = None

        if rtype == 'ricc2':
            self.state_list = file_parser.file_parser_ricc2(
                self.ioptions).read(self.mos)
        elif rtype in ['tddft', 'escf', 'tmtddft']:
            self.state_list = file_parser.file_parser_escf(self.ioptions).read(
                self.mos)
        elif rtype == 'libwfa':
            self.state_list = file_parser.file_parser_libwfa(
                self.ioptions).read()
        elif rtype == 'qcadc':
            self.state_list = file_parser.file_parser_qcadc(
                self.ioptions).read()
        elif rtype == 'qctddft':
            self.state_list = file_parser.file_parser_qctddft(
                self.ioptions).read(self.mos)
        elif rtype in ['mcscf', 'colmcscf']:
            self.state_list = file_parser.file_parser_col_mcscf(
                self.ioptions).read(self.mos)
        elif rtype in ['mrci', 'colmrci']:
            self.state_list = file_parser.file_parser_col_mrci(
                self.ioptions).read(self.mos)
        elif rtype in ['rassi', 'molcas']:
            self.state_list = file_parser.file_parser_rassi(
                self.ioptions).read(self.mos)
        elif rtype.lower() == 'nos':
            self.state_list = file_parser.file_parser_nos(self.ioptions).read(
                self.mos)
        elif rtype.lower() in ['cclib', 'gamess', 'orca']:
            # these are parsed with the external cclib library
            ccli = cclib_interface.file_parser_cclib(self.ioptions)

            errcode = ccli.check()
            if errcode >= 2:
                raise error_handler.MsgError(
                    "The file cannot be parsed by cclib")
            print

            self.mos = ccli.read_mos()
            self.read2_mos()
            self.state_list = ccli.read(self.mos)

            # Write a Molden file if possible
            if errcode == 0:
                self.mos.write_molden_file(fname='MOs.mld')
                self.ioptions['mo_file'] = 'MOs.mld'
            else:
                self.ioptions['molden_orbitals'] = False
        else:
            raise error_handler.ElseError(rtype, 'rtype')

        self.extra_info()
Exemplo n.º 2
0
 def read_dens(self):
     """
     Read the (transition) density matrices and some supplementary information.
     """
     rtype = self.ioptions.get('rtype')
     if self.ioptions['read_libwfa']: self.mos = None
     
     if rtype=='ricc2':
         self.state_list = file_parser.file_parser_ricc2(self.ioptions).read(self.mos)
     elif rtype in ['tddft', 'escf', 'tmtddft']:
         self.state_list = file_parser.file_parser_escf(self.ioptions).read(self.mos)
     elif rtype=='libwfa':
         self.state_list = file_parser.file_parser_libwfa(self.ioptions).read()
     elif rtype=='qcadc':
         self.state_list = file_parser.file_parser_qcadc(self.ioptions).read()
     elif rtype=='qctddft':            
         self.state_list = file_parser.file_parser_qctddft(self.ioptions).read(self.mos)            
     elif rtype in ['mcscf', 'colmcscf']:
         self.state_list = file_parser.file_parser_col_mcscf(self.ioptions).read(self.mos)
     elif rtype in ['mrci', 'colmrci']:
         self.state_list = file_parser.file_parser_col_mrci(self.ioptions).read(self.mos)
     elif rtype in ['rassi', 'molcas']:
         self.state_list = file_parser.file_parser_rassi(self.ioptions).read(self.mos)
     elif rtype.lower() == 'nos':
         self.state_list = file_parser.file_parser_nos(self.ioptions).read(self.mos)
     elif rtype.lower() in ['cclib', 'gamess', 'orca']:
         # these are parsed with the external cclib library
         ccli = cclib_interface.file_parser_cclib(self.ioptions)
         
         errcode = ccli.check()
         if errcode >= 2: raise error_handler.MsgError("The file cannot be parsed by cclib")
         print()
         
         self.mos = ccli.read_mos()
         self.read2_mos()
         self.state_list = ccli.read(self.mos)
         
         # Write a Molden file if possible
         if errcode == 0:
             self.mos.write_molden_file(fname='MOs.mld')
             self.ioptions['mo_file'] = 'MOs.mld'
         else:
             self.ioptions['molden_orbitals'] = False
     else:
         raise error_handler.ElseError(rtype, 'rtype')
     
     self.extra_info()
Exemplo n.º 3
0
Check if a file can be read by cclib and if all the required information is available.
"""

import theo_header, cclib_interface, input_options, error_handler
import sys

theo_header.print_header('Check cclib')

print("cc_check.py <logfile>")
print("Check if a logfile can be parsed with cclib")

try:
    logfile = sys.argv[1]
except IndexError:
    raise error_handler.MsgError("Please enter the name of the logfile!")

ioptions = input_options.dens_ana_options(ifile=None, check_init=False)
ioptions['rtype'] = 'cclib'
ioptions['rfile'] = logfile

ccparser = cclib_interface.file_parser_cclib(ioptions)
errcode = ccparser.check()

if errcode <= 1:
    print("\n %s can be parsed by using rtype='cclib' in dens_ana.in."%logfile)
    if errcode == 0:
        print(" Conversion to Molden format also possible")
    else:
        print(" But conversion to Molden format is not possible")
else:
    print("\n %s cannot be parsed by cclib (errcode=%i)!"%(logfile, errcode))
Exemplo n.º 4
0
"""

import theo_header, cclib_interface, input_options, error_handler
import sys

theo_header.print_header('Check cclib')

print("cc_check.py <logfile>")
print("Check if a logfile can be parsed with cclib")

try:
    logfile = sys.argv[1]
except IndexError:
    raise error_handler.MsgError("Please enter the name of the logfile!")

ioptions = input_options.dens_ana_options(ifile=None, check_init=False)
ioptions['rtype'] = 'cclib'
ioptions['rfile'] = logfile

ccparser = cclib_interface.file_parser_cclib(ioptions)
errcode = ccparser.check()

if errcode <= 1:
    print("\n %s can be parsed by using rtype='cclib' in dens_ana.in." %
          logfile)
    if errcode == 0:
        print(" Conversion to Molden format also possible")
    else:
        print(" But conversion to Molden format is not possible")
else:
    print("\n %s cannot be parsed by cclib (errcode=%i)!" % (logfile, errcode))