A program to manage global ab initio Potential Energy Surfae (PES) calculations using MOLPRO1 quantum chemistry software.
Every features of this package is controlled through the different subcommands of the PESMan.py code,
- Use PESMan
exportto export job. - Use PESMan
importto import job after successful run. - Use PESMan
zip/unzipto archive or extract job folders. - Use PESMan
deleteto delete any geometry/calculation from database - Use PESMan
statusanytime to check current status of calculation
- Create Molpro template (
*.template) files for jobs. - Modify
pesman.configfile with necessary information and template names. - Modify
geometry.pyfile according to the system details and create the objectgeomObj. - Modify
CreateNewDbs.pycorresponding to the system details and grid required and run to create the databases relevant to the system type. - Modify
ReadResults.pyfile for reading results from databases. - Run
python PESMan.py addcalcto add the calculation defined in thepesman.config. - Now we are ready to start the ab intio jobs. For first time run
python PESMan.py export -cid 1 -gid 1 -sid 0to export 1st geometry for calcid 1 without any starting geometry (-sid 0). Run the job file (RunJob*.py) created inside theExpDir. Upon successful run import it withPESMan.py import -e <path to export.dat> - Now the
RunManagerscript can do the calculations for all the geometries sequentially. For first geometries in multi calculation it has to be done one-by-one sequentially to accumulate enough seed geometry, after that it can be run in bunches. Be careful about the depth value in the script. Tweak the different parameters inRunManagerto get better performance. Note,RunManageralso calls theReadResultsscript to periodically to extract the results from database and store it in a datafile. - Manual export/import can also be done. Run
./PESMan.py export -cid 2 -j 1000 -n 3 -parto parallel (3 process) export 1000 for calc id 2 > Run > import asPESMan.py import -e <export.dat file> -ig wfu -n 3 -zip -del.-ig wfuignores wavefunction files during import. But its recommended to use theRunManagerscript instead. - Run
./PESMan.py statusat any moment to check the current status of the calculation.
- Molpro calculation of Calc Ids other than 1 usually doesn't depend on other geometries so, its more efficient to run those jobs in parallel. Specify the option
-parduring export. Number of parallel processes is taken from thepesman.config - If no
-parflag is provided or theRunManageris used in serial mode, thenprocvalue inpesman.configis used to run the Molpro itself in parallel using its internal MPI implementation. - Use
-zippreferably while importing to archive the data while keeping inGeomData, this will slow down the import/export process, but it heavily reduces file number and sizes. If you don't want to slow down the export/import, you can do the archiving altogether at the end too, using./PESMan.py zip -all. - Though the neighbor database is created to keep the distances between neighbors, the database itself is never used in any of the calculation.
- RunManager saves the mcscf iteration numbers in
IterMultiJobs.dat, and only imports if its below 39 iteration. - The
RunManager.pyis used to automatically export/run/import one after other. This can be done with a single job at a time or a bunch of jobs per iteration. As the mcscf is run using information from neighboring geometries, it is advisable to run those, for initial few jobs in serial. other wise this script can be invoked to run all jobs in bunches of jobs in parallel - The RunManager depends on the successful run of the neighboring geometries to export a particular job. If a large number of jobs are failed or the database doesn't have enough neighbor information the RunManager sequence can break. In that case, RunManager searches globally for the closest neighbor pair of incomplete jobs, and performs a brute-force export to keep the job going. If that fails, a new job has to be exported manually.
- If some calculation has to be removed, Run the
./PESMan.py deletewithcalcIdandgeomIdto remove that from the database. - To add some new geometries to an existing data base, re-run the
CreateNewDbs.pyby providing the new complete list of full geometries. The script will check for existing geometries in the data base and update it with new additional geometries. This will modify all the neighbor geometry information, but won't interfere with any existing results in database. - If some calc is semi successful i.e. if like mrci energy and ddr are done in a single calc and energy is successful but nact is failed, then run the
collectFailed.pyby providing theexport.datas a command-line argument to store the semi successful jobs in a new table in database. This script will also store the result in datafile. - Running
python PESMan.py addcalcfor first time will add the calc names and template to the database. If you run the same again with same calc names, PESMan instead of inserting a new calcinfo, will update the existing info template