Coverage for gpaw/lcao/analyse_basis.py: 93%
29 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-19 00:19 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-19 00:19 +0000
1import os
2import sys
3from optparse import OptionParser
6def build_parser():
7 usage = '%prog [OPTION] [BASIS]...'
8 parser = OptionParser(usage=usage, version='%prog 1.0')
9 parser.add_option('-f', '--files', action='store_true',
10 dest='actual_filenames',
11 help='Read from specified filenames rather than '
12 'searching GPAW setup directories')
13 parser.add_option('-s', '--save-figs', action='store_true', dest='save',
14 help='Save figures to disk rather than showing plots')
15 parser.add_option('-l', '--literal', action='store_true',
16 help='Do not pre-multiply wave functions by r in plots')
17 parser.add_option('-n', '--normalize', action='store_true',
18 help='Plot normalized wave functions')
19 parser.add_option('-x', '--ext', default='png',
20 help='Image format [default: %default]')
21 return parser
24def main(argv=sys.argv[1:]):
25 parser = build_parser()
26 opts, files = parser.parse_args(argv)
28 import matplotlib.pyplot as plt
29 from gpaw.basis_data import Basis, BasisPlotter
31 plotter = BasisPlotter(premultiply=not opts.literal,
32 normalize=opts.normalize,
33 show=False,
34 save=opts.save,
35 ext=opts.ext)
37 for path in files:
38 dir, filename = os.path.split(path)
39 splitfilename = filename.split('.')
40 symbol = splitfilename[0]
41 name = '.'.join(splitfilename[1:-1])
42 if opts.actual_filenames:
43 basis = Basis.read_path(symbol, name, path)
44 else: # search GPAW setup dirs
45 basis = Basis.find(symbol, name)
46 plotter.plot(basis)
48 if not opts.save:
49 plt.show()