Skip to content

Latest commit

 

History

History
113 lines (76 loc) · 5.59 KB

README.md

File metadata and controls

113 lines (76 loc) · 5.59 KB

Tutorial 2: Find the most stable structure of given isomers

  • Spring School on Computational Chemistry 17-19 April 2024
  • Nino Runeberg, CSC - IT center for Science Ltd, based on the earlier work of Atte Sillanpää

Overview

  1. We have downloaded from PubChem a set of molecules having the same molecular formula C11H14O2N2 .
  2. From the original set of about 14700 molecules we have selected 31 structures.
    Their corresponding SMILES strings are given in the table https://siili.rahtiapp.fi/Duf0GbqtRVGrz2dZbPi5qg
  3. Pick any of the free structures in that table and mark your name on the row (click on side-by-side icon at top left to edit )
  4. Set up a calculation to get the minimum energy conformation according to the same recipe we used for formaldehyde
  5. Tabulate the total energy of the corresponding optimized structure
  6. Can you explain why some isomers are lower in energy than others?
  7. Bonus Would the order change if you'd change the model? Improve basis set? Add an implicit solvent model? Include entropy estimate?

Open TmoleX and create a new Project

  1. Launch TmoleX and create a new project in a suitable directory.
  • If you use the Puhti desktop then use something like /scratch/project_2006657/<your-username>/qc_tutorial2. Remember to replace your-username with your actual username in order to make it a unique and not interfering with other participants projects.
  • If you use a locally installed TmoleX then define the new project under your home directory, e.g. ~/qc_tutorial2 .
  1. A new job is initiated within your new TmoleX project.
  2. Rename the first job in this project according to the cid identifier you picked from the list "Rename job"
  3. In the first Geometry subsection paste your SMILES string into the slot SMILES to 3D. Pushing the buttons should launch the TmoleX viewer showing the 3D structure of the molecule corresponding to your SMILES string. "SMILES"
  4. Since the conversion from SMILES to xyz is quite rough it's often a good idea to do a preoptimization. "SMILES"
  5. Continue in a similar way as we did with formaldehyde and optimize the structure. Do a SMP parallel calculation and request for 8 cores. "start"
  6. Once the structure optimization has (hopefully) converged, fill in the total energy of that structure into the table. "finish"

Examine how long it took to run the job

When a job has finished, all output files are transferred to your local job and deleted from Puhti's work directory. Amoung the result files yous should have a file called slurm-XXXXXXXXXX.out where XXXXXXXXXXis replaced with a number that corresponds to the JOBID the job had in Puhti's queuing system. If you would like to have a closer look at the details of that job you should login to Puhti

ssh  your-username@puhti.csc.fi

Once logged into Puhti you can use the command sacct to collect various data related to the job. Give the command (replace JOBID with the actual number)

sacct -X -j JOBID -o state,start,alloc,elapsed,cputime
     State               Start  AllocCPUS    Elapsed    CPUTime 
---------- ------------------- ---------- ---------- ---------- 
 COMPLETED 2024-04-15T15:11:06          4   00:10:51   00:43:24 

Here the Elapsed time is the wall time the job took to finish.

Use the optimized structure and define a new job, Start new job with current data, where you change the basis set (Atomic Attributes) to def2-TZVP and define the job as a Single Point-> Energy (ground state) . Repeat this calculation using 1,2,4 and 8 cores. Tabulate the values into a table. You can calculate the "speedup" by dividing the 1 core time with N core time. Linear speedup would equal the number of cores used. A speedup above 1.5 when doubling the number of cores is often considered as reasonable.

cores walltime speedup
1
2
4
8

Discussion

  • Why do the numbers differ?
  • Why do these number matter?
  • Are these numbers accurate?
  • How to get more accurate information?
  • What else affects the performance?

TmoleX and workflows

Occationally you would like to apply the same model/workflow on a bunch of different structures. An example was the preoptimization followed by an optimization at a higher level that we used for formaldehyde. Such batch jobs can be easily done with TmoleX.

  1. Create a new project and select Templates -> New/Edit Template

"finish"

  1. Define two job steps corresponding to an AM1 geometry optimization followed by a dft/bp86/sv(p) optimization.

"finish"

  1. Create a batch New Batch Job and hit Add List of SMILES. In that window add some of the our SMILES strings followed by a name (here the cid number) "finish"

  2. For the batch of molecules Choose Job Template -> Charge: Use from input -> Apply Job Template
    "finish"

  3. Once the template has been selected start the job "finish"

This ends the tutorial.