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:
epsJobClass 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.