Source code for scm.plams.recipes.adfnbo

import os

from scm.plams.core.functions import log
from scm.plams.interfaces.adfsuite.ams import AMSJob

__all__ = ["ADFNBOJob"]


[docs]class ADFNBOJob(AMSJob):
[docs] def prerun(self): # noqa F811 s = self.settings.input.ADF s.fullfock = True s.aomat2file = True s.symmetry = "NoSym" s.basis.core = "None" if "save" in s: if isinstance(s.save, str): s.save += " TAPE15" elif isinstance(s.save, list): s.save.append("TAPE15") else: log( "WARNING: 'SAVE TAPE15' could not be added to the input settings of {}. Make sure (thisjob).settings.input.save is a string or a list.".format( self.name ), 1, ) else: s.save = "TAPE15" if isinstance(self.settings.adfnbo, list): adfnbo_input = self.settings.adfnbo else: adfnbo_input = ["write", "spherical", "fock"] log( "WARNING: (thisjob).settings.adfnbo should be a list. Using default settings: write, fock, spherical", 1 ) self.settings.runscript.post = ( 'cp "' + os.path.join(self.path, "adf.rkf") + '" TAPE21\n' "$AMSBIN/adfnbo <<eor\n" + "\n".join(adfnbo_input) + "\neor\n\n$AMSBIN/gennbo6 FILE47\n" )