Skip to content

Commit a4c5f30

Browse files
authored
Fix #48 add ecp arguments to main function and cli parser (#49)
* Add ECP argument to SPAHM(a,b) CLI arguments * Includes ecp check to xyz_to_mol() and raises error
1 parent ec1d48c commit a4c5f30

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

qstack/compound.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,14 @@ def xyz_to_mol(fin, basis="def2-svp", charge=0, spin=0, ignore=False, unit='ANG'
5050
mol.charge = -(sum(map(data.elements.charge, elements))%2)
5151
mol.spin = 0
5252

53-
if ecp:
53+
if ecp is not None:
5454
mol.ecp = ecp
5555

5656
mol.build()
57+
species_charges = [data.elements.charge(z) for z in mol.elements]
58+
if mol.basis == 'minao' and ecp is None and (np.array(species_charges) > 36).any():
59+
msg = f"{mol.basis} basis set requires the use of effective core potentials for atoms with Z>36"
60+
raise RuntimeError(msg)
5761
return mol
5862

5963

qstack/spahm/rho/atom.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,13 @@ def main():
6868
parser.add_argument('--charge', dest='charge', default=0, type=int, help='total charge of the system (default: 0)')
6969
parser.add_argument('--spin', dest='spin', default=None, type=int, help='number of unpaired electrons (default: None) (use 0 to treat a closed-shell system in a UHF manner)')
7070
parser.add_argument('--xc', dest='xc', default=defaults.xc, type=str, help=f'DFT functional for the SAD guess (default: {defaults.xc})')
71+
parser.add_argument('--ecp', dest='ecp', default=None, type=str, help=f'effective core potential to use (default: None)')
7172
parser.add_argument('--nameout', dest='NameOut', default=None, type=str, help='name of the output representations file.')
7273
parser.add_argument('--omod', dest='omod', default=defaults.omod, nargs='+', type=str, help=f'model(s) for open-shell systems (alpha, beta, sum, diff, default: {defaults.omod})')
7374
args = parser.parse_args()
7475
print(vars(args))
7576

76-
mol = compound.xyz_to_mol(check_file(args.mol), args.basis, charge=args.charge, spin=args.spin, unit=args.units)
77+
mol = compound.xyz_to_mol(check_file(args.mol), args.basis, charge=args.charge, spin=args.spin, unit=args.units, ecp=args.ecp)
7778
dm = None if args.dm is None else np.load(args.dm)
7879

7980
representations = get_repr(mol, args.elements, args.charge, args.spin,

qstack/spahm/rho/bond.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ def main():
5757
parser.add_argument('--guess', type=str, dest='guess', default=defaults.guess, help='initial guess')
5858
parser.add_argument('--units', type=str, dest='units', default='Angstrom', help='the units of the input coordinates (default: Angstrom)')
5959
parser.add_argument('--basis', type=str, dest='basis' , default=defaults.basis, help='AO basis set (default=MINAO)')
60+
parser.add_argument('--ecp', dest='ecp', default=None, type=str, help=f'effective core potential to use (default: None)')
6061
parser.add_argument('--charge', type=str, dest='charge', default=None, help='charge / path to a file with a list of thereof')
6162
parser.add_argument('--spin', type=str, dest='spin', default=None, help='number of unpaired electrons / path to a file with a list of thereof')
6263
parser.add_argument('--xc', type=str, dest='xc', default=defaults.xc, help=f'DFT functional for the SAD guess (default={defaults.xc})')
@@ -90,7 +91,7 @@ def main():
9091
xyzlist = utils.get_xyzlist(xyzlistfile)
9192
charge = utils.get_chsp(args.charge, len(xyzlist))
9293
spin = utils.get_chsp(args.spin, len(xyzlist))
93-
mols = utils.load_mols(xyzlist, charge, spin, args.basis, args.print, units=args.units)
94+
mols = utils.load_mols(xyzlist, charge, spin, args.basis, args.print, units=args.units, ecp=args.ecp)
9495

9596
allvec = get_repr(mols, xyzlist, args.guess, xc=args.xc, spin=args.spin, readdm=args.readdm, printlevel=args.print,
9697
pairfile=args.pairfile, dump_and_exit=args.dump_and_exit,

0 commit comments

Comments
 (0)