epsman.elecStructure.ESjob module

ESjob clas - combines EShandler electronic structure file functionality + epsJob class functionality.

22/02/21 Basics working for file setting & epsJob functionatliy (including backend method dev)

19/02/21 Started dev.

class epsman.elecStructure.ESjob.ESjob(fileName=None, fileBase=None, outFile=None, master='localhost', overwriteFlag=True, **kwargs)[source]

Bases: epsJob

Class to wrap epsJob + EShandler functionality.

Note this currently assume a SINGLE electronic structure file as the base for a job.

For multiple jobs with different ES files (e.g. bond-scans), this should be wrapped or subclassed - TBD.

10/06/21: adding ES file handling & info functions following recent OCS run testing, first version of:

  • setOrbInfoPD, orbInfoSummary (source _orbInfo.py) to pull orbital/molecule info from ES file (part of EShandler class).

  • setChannel, setePSinputs, genSymList, convertSymList, writeInputConf (source _ePSsetup.py) for setting up ePS parameters based on ES file + additional inputs (part of EShandler class). Needs further work, may also move to ESjob class in future…?

  • setJobInputConfig, symTest, setSymsFromFiles (source _ePSsetup), additional ePS job setup routines… need some work!

19/02/21: now init with epsman.epsJob class as parent, so can implement existing file IO methods.

buildePSjob(channel=None, mol='mol', batch='batch', note=None, Ssym=None, Csym=None, Estart=1.0, Estop=1.0, dE=1.0, EJob=None, precision=2, scrType='basicNoDefaults', writeInpLog=True, overwriteFlag=False, confOnly=False)[source]

Master ePS job creation routine for electronic-structe case. This tries to run all job creation steps, with useful output.

Parameters:
  • channel (int) – Ionizing channel (orbital), for self.esData.setChannel(channel)

  • mol (strings, optional, default = 'mol','batch') – Job labels, used for self.setJob(mol = mol, orb = f’orb{job.esData.channel.name}’, batch = batch) This defines the job paths & names.

  • batch (strings, optional, default = 'mol','batch') – Job labels, used for self.setJob(mol = mol, orb = f’orb{job.esData.channel.name}’, batch = batch) This defines the job paths & names.

  • note (string, optional, default = None) – Used for additional job annotation. job.jobNote = f’{job.mol}, orb {job.esData.channel.name} ionization, batch {batch}, {note}.’ This is propagated to generator files & outputs.

  • Ssym (lists, optional, default = None) – Symmetry settings for Scattering and Continuum symmetries. If None, defaults to all pairs. (As set by self.esData.setePSinputs() and self.esData.genSymList().)

  • Csym (lists, optional, default = None) – Symmetry settings for Scattering and Continuum symmetries. If None, defaults to all pairs. (As set by self.esData.setePSinputs() and self.esData.genSymList().)

  • Estart (floats, optional, default to 1.0) – Energy settings for the job, passed to em.multiEChunck()

  • Estop (floats, optional, default to 1.0) – Energy settings for the job, passed to em.multiEChunck()

  • dE (floats, optional, default to 1.0) – Energy settings for the job, passed to em.multiEChunck()

  • Ejob (int, optional, default to None, 2) – Additional energy settings for the job, passed to em.multiEChunck()

  • precision (int, optional, default to None, 2) – Additional energy settings for the job, passed to em.multiEChunck()

  • scrType (string, default = 'basicNoDefaults') – Template script for job generation. Passed to self.writeInp().

  • writeInpLog (bool, default = True) – Write log file on job creation if True. Passed to self.writeInp().

  • overwriteFlag (bool, default = False) – Overwrite any existing settings if True.

  • confOnly (bool, default = False) – Skip ePS input file creation step. This allows for local settings to be created without final deploy to ePS host.

checkLocalESfiles(master='localhost', pushPrompt=True)[source]

Check master ES files, convert to Molden & sync with remote host.

Note that this will currently only work for a local machine as master, since there is no remote run set here.

Parameters:

master (str, default = 'localhost') – Set which host to use as master. Note that Gamess > Molden conversion will currently only work for a local machine, since there is no remote run set here.

setESfiles(fileName=None, pushPrompt=True, overwriteFlag=False)[source]

Set electronic structure files for all self.hostDefn[host] and sync files.

NOTE: this sets self.elecStructure if passed, then propagates and syncs files. This assumes self.hostDefn[host][‘elecDir’] is already set on hosts. Use setMasterESfile() to update & check local file first, and setJob(), initConenction() or setWrkDir() or setJobPaths() etc. first. TODO: fix this!

setJobInputConfig(jobES=None)

Write job.jobSetting configuration string from jobES and other params.

setMasterESfile(fileName=None, fileBase=None, outFile=None, master='localhost', overwriteFlag=True)[source]

Set electronic structure files for master, create object and check file.

NOTE: fileName cannot contain full path, since this is then set by fileBase/fileName. TODO: add some checks/work-arounds here!

setSymsFromFiles(jobES)

Set/update self.symList from fileList or passed inputs.

symTest(jobES, scrType='basicNoDefaults', writeInpLog=False)

Loop over symmetry pairs for symmetry testing case.

Note this currently uses Eke value as a way to write one file per symmetry pair, with all other parameters unchanged. Bit ugly… but works with current codebase, including file checks.

20/05/26: debugged and added scrType to keep consistency with buildePSjob.

Should fix to use “update” functionality rather than go from scratch here.