/usr/bin/cclib-cda is in cclib 1.3.1-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #!/usr/bin/python
#
# This file is part of cclib (http://cclib.github.io), a library for parsing
# and interpreting the results of computational chemistry packages.
#
# Copyright (C) 2007-2014, the cclib development team
#
# The library is free software, distributed under the terms of
# the GNU Lesser General Public version 2.1 or later. You should have
# received a copy of the license along with cclib. You can also access
# the full license online at http://www.gnu.org/copyleft/lgpl.html.
from __future__ import print_function
import os
import sys
import glob
import getopt
import logging
import numpy
from cclib.parser import ccopen
from cclib.method import CDA
if __name__ == "__main__":
parser1 = ccopen(sys.argv[1], logging.ERROR)
parser2 = ccopen(sys.argv[2], logging.ERROR)
parser3 = ccopen(sys.argv[3], logging.ERROR)
data1 = parser1.parse(); data2 = parser2.parse(); data3 = parser3.parse()
fa = CDA(data1, None, logging.ERROR)
retval = fa.calculate([data2, data3])
if retval:
print("Charge decomposition analysis of %s\n"%(sys.argv[1]))
if len(data1.homos) == 2:
print("ALPHA SPIN:")
print("===========")
print(" MO# d b r s")
print("-------------------------------------")
for spin in range(len(data1.homos)):
if spin == 1:
print("\nBETA SPIN:")
print("==========")
for i in range(len(fa.donations[spin])):
print("%4i: %7.3f %7.3f %7.3f %7.3f" % \
(i + 1, fa.donations[spin][i],
fa.bdonations[spin][i],
fa.repulsions[spin][i],
fa.residuals[spin][i]))
if i == data1.homos[spin]:
print("------ HOMO - LUMO gap ------")
print("-------------------------------------")
print(" T: %7.3f %7.3f %7.3f %7.3f" % \
(fa.donations[spin].sum(),
fa.bdonations[spin].sum(),
fa.repulsions[spin].sum(),
fa.residuals[spin].sum()))
|