03.01.2014 Views

CP/MM Tutorial

CP/MM Tutorial

CP/MM Tutorial

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>CP</strong>/<strong>MM</strong> <strong>Tutorial</strong><br />

Jülich, 26/07/2012<br />

Emiliano Ippoliti: e.ippoliti@grs-sim.de<br />

Preliminary Information<br />

To reproduce the calculations in the tutorial and performed the exercises therein you<br />

need a workstation where to run the required programs that should be already<br />

installed. To this aim, we will use the main supercomputer of the Aachen<br />

Rechenzentrum. In order to access this HPC cluster, you need a user account. Each<br />

student who are already registered in the Aachen TIM-System can activate an account<br />

on their own through the following procedure:<br />

• Access your TIM webpage manager:<br />

https://tim.rz.rwth-aachen.de/enrole/logon<br />

by inserting your credentials.<br />

• Click on the “Manage Accounts” icon in the menu at the left of the page.<br />

• Press the “New” button on the main frame of the page to request the activation<br />

of a new service.<br />

• Tick the “Hochleistungsrechnen RWTH Aachen” entry and press “Continue”.<br />

• Tick the “Ich habe die Nutzungs-/Lizenzbedingungen gelesen und stimme zu”<br />

and press the “Submit” button.<br />

In some minutes/hours your account should be created.<br />

To enter the cluster you can use the ssh command from a terminal window in your<br />

laptop:<br />

ssh –Y @cluster.rz.rwth-aachen.de<br />

For data transfer from and to your laptop use the scp command.<br />

A very useful user guide for an exhaustive quick start with such a machine can be<br />

found at the address:<br />

http://www.rz.rwth-aachen.de/global/show_document.asp?id=aaaaaaaaaacfhzd<br />

It is strongly suggested to read it and referes to that in case of problem with running<br />

jobs.<br />

Introduction<br />

We want to study the effect of the solvent (water) and the temperature on the dipole<br />

moment of an acetone molecule. To accomplish that we will resort to several different


software (MOLDEN, <strong>CP</strong>MD, VMD, Gaussian09, Amber, GROMOS, etc) in order to<br />

let you taste the everyday working in the biophysical field.<br />

The procedure can be summarized in the following steps:<br />

1. Calculate the dipole moment D v of acetone in vacuum<br />

2. Perform a QM/<strong>MM</strong> molecular dynamics simulation for the acetone in a<br />

classical water box at room temperature.<br />

3. Calculate the dipole moment D for some random snapshots of this simulation<br />

and take the mean value<br />

4. Calculate the difference D - D v<br />

Each file mentioned in this tutorial (in bold) can be found on the Aachen<br />

supercomputer in the folder:<br />

/home/ei250498/<strong>Tutorial</strong>s/ACETONE<br />

under the subfolder whose name starts with the number of the corresponding section<br />

of this tutorial.<br />

To do your tests and exercises, work in your own folder in $WORK filesystem by<br />

creating a folder there by the command:<br />

Then to go to your folder:<br />

mkdir $WORK/Q<strong>MM</strong>M_<strong>Tutorial</strong><br />

cd $WORK/Q<strong>MM</strong>M_<strong>Tutorial</strong><br />

1 - Where to start?<br />

Acetone is the organic compound with the formula (CH3) 2 CO. This colorless, mobile,<br />

flammable liquid is the simplest example of the ketones:<br />

Figure 1. Acetone<br />

To obtain an initial structure we use the MOLDEN program. 1 As for all the programs<br />

mentioned in this tutorial, the first time in each session you want to use molden you<br />

need to initialize the environment in order to be able to recall it. This can be done<br />

with a “source” command:<br />

source /home/ei250498/PROGRAMS/MODULES/molden.sh<br />

1 http://www.cmbi.ru.nl/molden/molden.html <br />

2 An online general guide for the ZMAT Editor can be found at the web address:


Then, you can run molden by simply typing:<br />

molden &<br />

In the Molden Control panel at the right, deselect the “Shade” button and press on the<br />

“ZMAT Editor” button that is a tool to create and/or manipulate structures on screen<br />

and to optimize the structures on a force field level.<br />

The use of the editor is rather intuitive. 2 In the following a synthetic list of the steps to<br />

create the acetone molecule:<br />

• Press “Add line”<br />

• Select Carbon from the Periodic Table<br />

• Press “Substitute atom by Fragment” and without releasing the mouse button<br />

select the –HC=O<br />

• Press “Add line”<br />

• Select Hydrogen from the Periodic Table<br />

• Click, in the Main screen, on the 4 atoms H,C,O,H in sequence to define the<br />

connectivity of the new H atom in the molecule<br />

• Highlight a Hydrogen by pressing on the atom in the Main screen or in the list<br />

of atoms in Zmat Editor<br />

• Press “Substitute atom by Fragment” and without releasing the mouse button<br />

select the –CH3<br />

• Do the same for the other Hydrogen<br />

Then, we can save the structure in the xyz format by writing the name of the file in<br />

the field “File name?”, choosing the “XYZ” format in the menu which appear when<br />

you press on the square “Cartesian” at the right bottom and finally pressing “Write Z-<br />

Matrix”.<br />

Close the ZMAT Editor by clicking the “Close” button on the right top and then by<br />

pressing on the button with a skull.<br />

2 - Dipole moment in vacuum<br />

We will use <strong>CP</strong>MD to calculate the dipole moment of acetone in gas phase.<br />

To initialize the environment and be able to use <strong>CP</strong>MD:<br />

source /home/ei250498/PROGRAMS/MODULES/cpmd.sh<br />

Any program can be run interactively on the login node. In the following we report<br />

the command to do that. However, if your job is supposed to run for more than 5<br />

minutes this is NOT a good practice: longer jobs should be run on the computational<br />

node by using the batch system. This can be accomplished by writing a simple batch<br />

script where you insert the information about your job and then submit the request to<br />

the batch system through the command:<br />

2 An online general guide for the ZMAT Editor can be found at the web address: <br />

http://www.cmbi.ru.nl/molden/zmat/zmat.html#add


sub < <br />

Some batch script templates called launch_XXX.job can be found in:<br />

/home/ei250498/TUTORIALS/ACETONE<br />

If you open them you will found some initial lines starting with #BSUB word that<br />

represents commands for the batch system:<br />

#BSUB -J Template<br />

#BSUB -o output<br />

#BSUB -e error<br />

#BSUB -n 2<br />

#BSUB -W 00:15<br />

#BSUB -M 700<br />

#BSUB -a intelmpi<br />

ß Batch system’s job name<br />

ß Filename of the batch system’s output messages (and error if no option -e used)<br />

ß Filename of the batch system’s error messages<br />

ß Number of cores to be reserve for the job<br />

ß Hard runtime limit: after the expiration of this time (here 15’) the job will be killed<br />

ß Set the per-process memory limit in MB<br />

ß Specify which MPI version you want to use in the parallel run<br />

followed by some lines which are the commands that the batch system has to run on<br />

the computational nodes and that are similar to the ones you use in the interactive<br />

way.<br />

Refer to the HPC user guide for a more detailed description of all the useful<br />

commands available for the batch script.<br />

To check the status of your batched jobs you can use the command:<br />

bjobs –w<br />

and to remove a job from the batch list you can use the command:<br />

bkill <br />

where the job_id can be read from the list got with the bjobs command.<br />

A batch script template called launch.job can be found in:<br />

/home/ei250498/TUTORIALS/ACETONE<br />

Refer to the HPC user guide to learn how to create a batch script for your jobs.<br />

To run <strong>CP</strong>MD with for example 2 cores (everything on the same line):<br />

mpirun –np 2 cpmd.x /home/ei250498/PROGRAMS/SRC/cpmd/PP<br />

> &<br />

/home/ei250498/PROGRAMS/SRC/cpmd/PP is the location where <strong>CP</strong>MD will look for<br />

the pseudopotentials files which will be specified in the input file. All the<br />

pseudopotentials we will use are already present there.<br />

In order to calculate the dipole moment of the acetone in vacuum we first have to<br />

optimize the geometry of the molecule we have constructed in the previous step. So,


we need to write an appropriate input file according the syntax of <strong>CP</strong>MD. 3 By your<br />

favorite editor, write down the opt_geo.inp text file:<br />

&INFO<br />

Acetone molecule<br />

Geometry optimization<br />

&END<br />

&<strong>CP</strong>MD<br />

OPTIMIZE GEOMETRY XYZ<br />

CONVERGENCE ORBITALS<br />

1.0d-7<br />

CONVERGENCE GEOMETRY<br />

7.0d-4<br />

&END<br />

&SYSTEM<br />

ANGSTROM<br />

SY<strong>MM</strong>ETRY<br />

ORTHORHOMBIC<br />

CELL ABSOLUTE<br />

10.6 10.0 9.8 0.0 0.0 0.0<br />

CUTOFF<br />

70.<br />

&END<br />

&DFT<br />

FUNCTIONAL BLYP<br />

&END<br />

&ATOMS<br />

*C_MT_BLYP.psp KLEINMAN-BYLANDER<br />

LMAX=D<br />

3<br />

0.000000 0.000000 0.000000<br />

1.367073 0.000000 -0.483333<br />

-0.683537 -1.183920 -0.483333<br />

*O_MT_BLYP.psp KLEINMAN-BYLANDER<br />

LMAX=D<br />

1<br />

0.000000 0.000000 1.220000<br />

*H_MT_BLYP.psp KLEINMAN-BYLANDER<br />

LMAX=P<br />

6<br />

1.367073 0.000000 -1.572333<br />

1.880433 0.889165 -0.120333<br />

1.880433 -0.889165 -0.120333<br />

-0.683537 -1.183920 -1.572333<br />

-0.170177 -2.073085 -0.120333<br />

-1.710256 -1.183920 -0.120333<br />

&END<br />

<strong>CP</strong>MD Input file<br />

3 <strong>CP</strong>MD manual: http://www.cpmd.org/manual.pdf


Any <strong>CP</strong>MD input file is organized in sections that start with &NAME and end with<br />

&END. Everything outside those sections is ignored. Also all keywords have to be in<br />

upper case or else they will be ignored. The sequence of the sections does not matter,<br />

nor does the order of keywords (except in some special case reported in the manual).<br />

A minimal input file must have a &<strong>CP</strong>MD, &SYSTEM, and an &ATOMS section.<br />

This input file starts with an (optional) &INFO section. This section allows you to put<br />

comments about the calculation into the input file and they will be repeated in the<br />

output file. This can be very useful to identify and match your input and output files.<br />

The first part of &<strong>CP</strong>MD section instructs the program to do a geometry optimization<br />

(XYZ suboption specify you want the final structure also in xyz format in a file called<br />

GEOMETRY.xyz and a ’trajectory’ of the optimization in a file named GEO_OPT.xyz)<br />

with a tight wavefunction and geometry convergence criterions respectively (default<br />

10 -5 and 5*10 -4 ).<br />

The &SYSTEM section contains various parameters related to the simulation cell and<br />

the representation of the electronic structure. The keywords SY<strong>MM</strong>ETRY, CELL and<br />

CUTOFF are required and define the (periodic) symmetry, shape, and size of the<br />

simulation cell, as well as the plane wave energy cutoff (i.e. the size of the basis set),<br />

respectively. The keyword ANGSTROM specify that the atomic coordinates and the<br />

supercell parameters and several other parameters are read in Ångströms (pay<br />

attention: default is atomic units (a.u.) which are always used internally). We define a<br />

primitive orthorhombic cell with the lattice constants obtained by adding 7 Å in each<br />

direction to the dimension of the system: the cell has to be large enough to avoid<br />

significant interactions of the acetone molecule and its electron structure with its<br />

periodic neighbors. In <strong>CP</strong>MD all calculations are periodic. Do always a convergence<br />

test looking for example at the total energy value when you increase the box size!<br />

The &DFT section is used to select the density functional (FUNCTIONAL) and<br />

related parameters. In this case we use the gradient corrected BLYP functional 4 (local<br />

density approximation is the default).<br />

Finally, the &ATOMS section is needed to specify the atom coordinates and the<br />

pseudopotential(s), that are used to represent them. The coordinates are taken from<br />

the structure written by MOLDEN.<br />

The input for a new atom type is started with a ``*'' in the first column. This line<br />

further contains the file name where to find the pseudopotential information starting<br />

in column 2 and several labels as KLEINMAN-BYLANDER, in our case, which specifies<br />

the method to be used for the calculation of the nonlocal parts of the pseudopotential<br />

(this method is extremely efficient but also accurate).<br />

The next line contains information on the nonlocality of the pseudopotential: you can<br />

specify the maximum l-quantum number with ``LMAX= l '' where l is S, P or D. 5<br />

On the following lines the coordinates for this atomic species have to be given.<br />

4 A.D. Becke, J.Chem.Phys. 98 (1993) 5648-­‐5652; C. Lee, W. Yang, R.G. Parr, Phys. Rev. B 37 <br />

(1988) 785-­‐789. <br />

5 If this is the only input, the program assumes that LMAX is the l for the local<br />

potential. You can use another local function by specifying ``LOC= ''. In addition it is<br />

possible to assign the local potential to a further potential with ``SKIP= ''.


The first line gives the number of atoms of the current type.<br />

---<br />

If you start the geometry optimization:<br />

mpirun -np 2 cpmd.x opt_geo.inp /home/ei250498/PROGRAMS/SRC/cpmd/PP ><br />

opt_geo.out &<br />

the calculation should be completed in less than a minute 5 minutes (use<br />

tail –f opt_geo.out<br />

to monitor the different steps of the calculation reported in the output file).<br />

<strong>CP</strong>MD Output file<br />

Look at the output file to understand all the information which we can find there.<br />

At the beginning there is the header where one can see, when the run was started,<br />

what version of <strong>CP</strong>MD was used, and when it was compiled:<br />

PROGRAM <strong>CP</strong>MD STARTED AT: Tue Jun 1 19:32:59 2010<br />

SETCNST| USING: CODATA 2006 UNITS<br />

****** ****** **** **** ******<br />

******* ******* ********** *******<br />

*** ** *** ** **** ** ** ***<br />

** ** *** ** ** ** ** **<br />

** ******* ** ** ** **<br />

*** ****** ** ** ** ***<br />

******* ** ** ** *******<br />

****** ** ** ** ******<br />

VERSION 3.13.2<br />

COMPILED WITH GROMOS-AMBER QM/<strong>MM</strong> SUPPORT<br />

COPYRIGHT<br />

IBM RESEARCH DIVISION<br />

MPI FESTKOERPERFORSCHUNG STUTTGART<br />

The <strong>CP</strong>MD consortium<br />

Home Page: http://www.cpmd.org<br />

Mailing List: cpmd-list@cpmd.org<br />

E-mail: cpmd@cpmd.org<br />

*** Jan 10 2011 -- 16:03:39 ***<br />

Then, we find some technical information about the environment (machine, user,<br />

directory, input file, process id) where this job was run:<br />

THE INPUT FILE IS:<br />

opt_geo.inp<br />

THIS JOB RUNS ON:<br />

cluster-linux.rz.RWTH-Aachen.DE<br />

THE CURRENT DIRECTORY IS:<br />

/home/ei250498/<strong>Tutorial</strong>s/ACETONE/2-<strong>CP</strong>MD<br />

THE TEMPORARY DIRECTORY IS:<br />

/home/ei250498/<strong>Tutorial</strong>s/ACETONE/2-<strong>CP</strong>MD<br />

THE PROCESS ID IS: 28735<br />

Next are the contents of the &INFO section copied to the output:


******************************************************************************<br />

* INFO - INFO - INFO - INFO - INFO - INFO - INFO - INFO - INFO - INFO - INFO *<br />

******************************************************************************<br />

* Acetone molecule *<br />

* Geometry optimization *<br />

******************************************************************************<br />

Next section contain a summary of some of the parameters read in from the &<strong>CP</strong>MD<br />

section, or their respective default settings; for example the convergence threshold for<br />

wavefunction optimization (set manually) or the maximum number of iterations<br />

(default):<br />

OPTIMIZATION OF IONIC POSITIONS<br />

PATH TO THE RESTART FILES: ./<br />

GRAM-SCHMIDT ORTHOGONALIZATION<br />

MAXIMUM NUMBER OF STEPS:<br />

10000 STEPS<br />

MAXIMUM NUMBER OF ITERATIONS FOR SC:<br />

10000 STEPS<br />

PRINT INTERMEDIATE RESULTS EVERY<br />

10001 STEPS<br />

STORE INTERMEDIATE RESULTS EVERY<br />

10001 STEPS<br />

STORE INTERMEDIATE RESULTS EVERY 10001 SELF-CONSISTENT STEPS<br />

NUMBER OF DISTINCT RESTART FILES: 1<br />

TEMPERATURE IS CALCULATED ASSUMING EXTENDED BULK BEHAVIOR<br />

FICTITIOUS ELECTRON MASS: 400.0000<br />

TIME STEP FOR ELECTRONS: 5.0000<br />

TIME STEP FOR IONS: 5.0000<br />

CONVERGENCE CRITERIA FOR WAVEFUNCTION OPTIMIZATION: 1.0000E-06<br />

WAVEFUNCTION OPTIMIZATION BY PRECONDITIONED DIIS<br />

THRESHOLD FOR THE WF-HESSIAN IS 0.5000<br />

MAXIMUM NUMBER OF VECTORS RETAINED FOR DIIS: 10<br />

STEPS UNTIL DIIS RESET ON POOR PROGRESS: 10<br />

FULL ELECTRONIC GRADIENT IS USED<br />

CONVERGENCE CRITERIA FOR GEOMETRY OPTIMIZATION: 3.000000E-04<br />

GEOMETRY OPTIMIZATION BY GDIIS/BFGS<br />

SIZE OF GDIIS MATRIX: 5<br />

GEOMETRY OPTIMIZATION IS SAVED ON FILE GEO_OPT.xyz<br />

EMPIRICAL INITIAL HESSIAN (DISCO PARAMETRISATION)<br />

SPLINE INTERPOLATION IN G-SPACE FOR PSEUDOPOTENTIAL FUNCTIONS<br />

NUMBER OF SPLINE POINTS: 5000<br />

The exchange correlation functionals are reported in the lines coming immediately<br />

after:<br />

EXCHANGE CORRELATION FUNCTIONALS<br />

LDA EXCHANGE: SLATER (ALPHA = 0.66667)<br />

LDA CORRELATION:<br />

LEE, YANG & PARR<br />

[C.L. LEE, W. YANG, AND R.G. PARR, PRB 37 785 (1988)]<br />

GRADIENT CORRECTED FUNCTIONAL<br />

DENSITY THRESHOLD:<br />

1.00000E-08<br />

EXCHANGE ENERGY<br />

[A.D. BECKE, PHYS. REV. A 38, 3098 (1988)]<br />

PARAMETER BETA: 0.004200<br />

CORRELATION ENERGY<br />

[LYP: C.L. LEE ET AL. PHYS. REV. B 37, 785 (1988)]<br />

At this point of the output you find which and how many atoms (and their coordinates<br />

in a.u.), electrons and states (we are doing a closed shell calculation, so there are only<br />

doubly occupied states) are in the system, and what pseudopotentials were used with<br />

which settings:<br />

*** DETSP| SIZE OF THE PROGRAM IS 3700/ 119392 kBYTES ***<br />

***************************** ATOMS ****************************


NR TYPE X(bohr) Y(bohr) Z(bohr) MBL<br />

1 C 0.000000 0.000000 0.000000 3<br />

2 C 2.583394 0.000000 -0.913367 3<br />

3 C -1.291698 -2.237285 -0.913367 3<br />

4 O 0.000000 0.000000 2.305466 3<br />

5 H 2.583394 0.000000 -2.971279 3<br />

6 H 3.553503 1.680278 -0.227396 3<br />

7 H 3.553503 -1.680278 -0.227396 3<br />

8 H -1.291698 -2.237285 -2.971279 3<br />

9 H -0.321588 -3.917563 -0.227396 3<br />

10 H -3.231915 -2.237285 -0.227396 3<br />

****************************************************************<br />

NUMBER OF STATES: 12<br />

NUMBER OF ELECTRONS: 24.00000<br />

CHARGE: 0.00000<br />

ELECTRON TEMPERATURE(KELVIN): 0.00000<br />

OCCUPATION<br />

2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0<br />

============================================================<br />

| Pseudopotential Report Tue Jan 14 09:55:25 1997 |<br />

------------------------------------------------------------<br />

| Atomic Symbol : C |<br />

| Atomic Number : 6 |<br />

| Number of core states : 1 |<br />

| Number of valence states : 2 |<br />

| Exchange-Correlation Functional : |<br />

| Slater exchange : .6667 |<br />

| LDA correlation : Lee-Yang-Parr |<br />

| Exchange GC : Becke (1988) |<br />

| Correlation GC : Lee-Yang-Parr |<br />

| Electron Configuration : N L Occupation |<br />

| 1 S 2.0000 |<br />

| 2 S 2.0000 |<br />

| 2 P 2.0000 |<br />

| Full Potential Total Energy -37.702121 |<br />

| Trouiller-Martins normconserving PP |<br />

| n l rc energy |<br />

| 2 S 1.2300 -.49630 |<br />

| 2 P 1.2300 -.19186 |<br />

| 3 D .7159 -.19186 |<br />

| Number of Mesh Points : 615 |<br />

| Pseudoatom Total Energy -5.370516 |<br />

============================================================<br />

============================================================<br />

| Pseudopotential Report Thu Nov 30 13:19:26 1995 |<br />

------------------------------------------------------------<br />

| Atomic Symbol : O |<br />

| Atomic Number : 8 |<br />

| Number of core states : 1 |<br />

| Number of valence states : 2 |<br />

| Exchange-Correlation Functional : |<br />

| Slater exchange : .6667 |<br />

| LDA correlation : Lee-Yang-Parr |<br />

| Exchange GC : Becke (1988) |<br />

| Correlation GC : Lee-Yang-Parr |<br />

| Electron Configuration : N L Occupation |<br />

| 1 S 2.0000 |<br />

| 2 S 2.0000 |<br />

| 2 P 4.0000 |<br />

| Full Potential Total Energy -75.023693 |<br />

| Trouiller-Martins normconserving PP |<br />

| n l rc energy |<br />

| 2 S 1.0500 -.87404 |<br />

| 2 P 1.0500 -.33186 |<br />

| 3 D 1.0500 -.33186 |<br />

| Number of Mesh Points : 631 |<br />

| Pseudoatom Total Energy -15.775323 |<br />

============================================================<br />

============================================================<br />

| Pseudopotential Report Thu Nov 30 13:17:19 1995 |<br />

------------------------------------------------------------<br />

| Atomic Symbol : H |<br />

| Atomic Number : 1 |<br />

| Number of core states : 0 |<br />

| Number of valence states : 1 |


| Exchange-Correlation Functional : |<br />

| Slater exchange : .6667 |<br />

| LDA correlation : Lee-Yang-Parr |<br />

| Exchange GC : Becke (1988) |<br />

| Correlation GC : Lee-Yang-Parr |<br />

| Electron Configuration : N L Occupation |<br />

| 1 S 1.0000 |<br />

| Full Potential Total Energy -.462611 |<br />

| Trouiller-Martins normconserving PP |<br />

| n l rc energy |<br />

| 1 S .5000 -.24002 |<br />

| 2 P .5000 -.24002 |<br />

| Number of Mesh Points : 511 |<br />

| Pseudoatom Total Energy -.462591 |<br />

============================================================<br />

****************************************************************<br />

* ATOM MASS RAGGIO NLCC PSEUDOPOTENTIAL *<br />

* C 12.0112 1.2000 NO KLEINMAN S NONLOCAL *<br />

* P NONLOCAL *<br />

* D LOCAL *<br />

* O 15.9994 1.2000 NO KLEINMAN S NONLOCAL *<br />

* P NONLOCAL *<br />

* D LOCAL *<br />

* H 1.0080 1.2000 NO KLEINMAN S NONLOCAL *<br />

* P LOCAL *<br />

****************************************************************<br />

Then, a section about how the calculation is distributed through the cores: here you<br />

can understand if something wrong happened and you run for example only a serial<br />

job! Here below an example of this section by using 8 cores:<br />

PARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARA<br />

N<strong>CP</strong>U NGW NHG PLANES GXRAYS HXRAYS ORBITALS Z-PLANES<br />

0 4333 34682 13 246 976 1 1<br />

1 4335 34684 14 246 976 2 1<br />

2 4336 34639 13 243 975 1 1<br />

3 4336 34676 14 244 976 2 1<br />

4 4334 34682 13 244 976 1 1<br />

5 4332 34670 14 244 976 2 1<br />

6 4338 34676 13 244 976 1 1<br />

7 4342 34680 14 244 976 2 1<br />

G=0 COMPONENT ON PROCESSOR : 2<br />

PARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARA<br />

*** LOADPA| SIZE OF THE PROGRAM IS 10260/ 120760 kBYTES ***<br />

OPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPEN<br />

NUMBER OF <strong>CP</strong>US PER TASK 1<br />

OPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPEN<br />

*** RGGEN| SIZE OF THE PROGRAM IS 11492/ 121976 kBYTES ***<br />

The following part of the output we see a summary of the settings read in from the<br />

&SYSTEM section of the input file or their corresponding defaults and some derived<br />

parameters (density cutoff, number of plane waves):<br />

************************** SUPERCELL ***************************<br />

SY<strong>MM</strong>ETRY:<br />

ORTHORHOMBIC<br />

LATTICE CONSTANT(a.u.): 20.03110<br />

CELL DIMENSION: 20.0311 0.9434 0.9245 0.0000 0.0000 0.0000<br />

VOLUME(OMEGA IN BOHR^3): 7010.16987<br />

LATTICE VECTOR A1(BOHR): 20.0311 0.0000 0.0000<br />

LATTICE VECTOR A2(BOHR): 0.0000 18.8973 0.0000<br />

LATTICE VECTOR A3(BOHR): 0.0000 0.0000 18.5193<br />

RECIP. LAT. VEC. B1(2Pi/BOHR): 0.0499 0.0000 0.0000<br />

RECIP. LAT. VEC. B2(2Pi/BOHR): 0.0000 0.0529 0.0000<br />

RECIP. LAT. VEC. B3(2Pi/BOHR): 0.0000 0.0000 0.0540<br />

REAL SPACE MESH: 108 108 100<br />

WAVEFUNCTION CUTOFF(RYDBERG): 70.00000<br />

DENSITY CUTOFF(RYDBERG): (DUAL= 4.00) 280.00000


NUMBER OF PLANE WAVES FOR WAVEFUNCTION CUTOFF: 34686<br />

NUMBER OF PLANE WAVES FOR DENSITY CUTOFF: 277389<br />

****************************************************************<br />

Here we see how <strong>CP</strong>MD generates the initial guess for the wavefunction<br />

optimization. In this case it uses a superposition of atomic wavefunctions using an<br />

(internal) minimal Slater basis:<br />

*** RINFORCE| SIZE OF THE PROGRAM IS 16052/ 127264 kBYTES ***<br />

*** FFTPRP| SIZE OF THE PROGRAM IS 19764/ 128656 kBYTES ***<br />

GENERATE ATOMIC BASIS SET<br />

C SLATER ORBITALS<br />

2S ALPHA= 1.6083 OCCUPATION= 2.00<br />

2P ALPHA= 1.5679 OCCUPATION= 2.00<br />

O SLATER ORBITALS<br />

2S ALPHA= 2.2458 OCCUPATION= 2.00<br />

2P ALPHA= 2.2266 OCCUPATION= 4.00<br />

H SLATER ORBITALS<br />

1S ALPHA= 1.0000 OCCUPATION= 1.00<br />

INITIALIZATION TIME:<br />

0.39 SECONDS<br />

*** GMOPTS| SIZE OF THE PROGRAM IS 24656/ 141780 kBYTES ***<br />

*** PHFAC| SIZE OF THE PROGRAM IS 24764/ 152468 kBYTES ***<br />

*** ATOMWF| SIZE OF THE PROGRAM IS 25784/ 154300 kBYTES ***<br />

ATRHO| CHARGE(R-SPACE): 24.000000 (G-SPACE): 24.000000<br />

****************************************************************<br />

* ATOMIC COORDINATES *<br />

****************************************************************<br />

1 C 0.000000 0.000000 0.000000<br />

2 C 2.583394 0.000000 -0.913367<br />

3 C -1.291698 -2.237285 -0.913367<br />

4 O 0.000000 0.000000 2.305466<br />

5 H 2.583394 0.000000 -2.971279<br />

6 H 3.553503 1.680278 -0.227396<br />

7 H 3.553503 -1.680278 -0.227396<br />

8 H -1.291698 -2.237285 -2.971279<br />

9 H -0.321588 -3.917563 -0.227396<br />

10 H -3.231915 -2.237285 -0.227396<br />

****************************************************************<br />

From the following statement in the output you can see that the Hessian has been<br />

initialized from a simple guess assuming a molecule with some specified bonds. This<br />

behavior can be controlled with the keyword HESSIAN. For bulk systems or<br />

complicated molecules, it may be better to start from a unit Hessian instead:<br />

INITIALIZE EMPIRICAL HESSIAN<br />

><br />

2 1 3 1 4 1 5 2 6 2<br />

7 2 8 3 9 3 10 3<br />

><br />

5 1 5 3 6 1 6 4 7 1<br />

7 3 7 4 8 1 8 2 9 1<br />

9 2 9 4 10 1 10 4<br />

TOTAL NUMBER OF MOLECULAR STRUCTURES: 1<br />

****************************************************************<br />

* ATOMIC COORDINATES *<br />

****************************************************************<br />

1 C 0.000000 0.000000 0.000000<br />

2 C 2.583394 0.000000 -0.913367<br />

3 C -1.291698 -2.237285 -0.913367<br />

4 O 0.000000 0.000000 2.305466<br />

5 H 2.583394 0.000000 -2.971279<br />

6 H 3.553503 1.680278 -0.227396<br />

7 H 3.553503 -1.680278 -0.227396<br />

8 H -1.291698 -2.237285 -2.971279<br />

9 H -0.321588 -3.917563 -0.227396<br />

10 H -3.231915 -2.237285 -0.227396


****************************************************************<br />

Now the program is ready to start the geometry optimization. You can follow the<br />

progress of the optimization in the output file:<br />

<strong>CP</strong>U TIME FOR INITIALIZATION<br />

0.81 SECONDS<br />

================================================================<br />

= GEOMETRY OPTIMIZATION =<br />

================================================================<br />

NFI GEMAX CNORM ETOT DETOT T<strong>CP</strong>U<br />

EWALD| SUM IN REAL SPACE OVER<br />

1* 1* 1 CELLS<br />

1 3.015E-02 4.345E-03 -35.648938 -3.565E+01 0.51<br />

2 1.889E-02 1.442E-03 -36.307687 -6.587E-01 0.46<br />

3 1.904E-02 7.725E-04 -36.379166 -7.148E-02 0.46<br />

…<br />

26 1.294E-06 1.055E-07 -36.415776 -2.343E-09 0.48<br />

27 9.933E-07 7.580E-08 -36.415776 -1.233E-09 0.48<br />

RESTART INFORMATION WRITTEN ON FILE<br />

./RESTART.1<br />

ATOM COORDINATES GRADIENTS (-FORCES)<br />

1 C 0.0000 0.0000 0.0000 -4.443E-02 7.697E-02 -5.004E-02<br />

2 C 2.5834 0.0000 -0.9134 -3.769E-02 -4.835E-02 4.876E-02<br />

3 C -1.2917 -2.2373 -0.9134 6.088E-02 8.661E-03 4.903E-02<br />

4 O 0.0000 0.0000 2.3055 3.158E-02 -5.469E-02 -6.270E-02<br />

5 H 2.5834 0.0000 -2.9713 -1.090E-02 -5.915E-05 8.858E-03<br />

6 H 3.5535 1.6803 -0.2274 -9.255E-03 -3.027E-03 -2.712E-04<br />

7 H 3.5535 -1.6803 -0.2274 6.917E-04 3.287E-03 -1.830E-03<br />

8 H -1.2917 -2.2373 -2.9713 5.515E-03 9.402E-03 8.862E-03<br />

9 H -0.3216 -3.9176 -0.2274 -3.189E-03 1.061E-03 -1.824E-03<br />

10 H -3.2319 -2.2373 -0.2274 7.229E-03 6.496E-03 -2.472E-04<br />

FILE GEO_OPT.xyz EXISTS, NEW DATA WILL BE APPENDED<br />

****************************************************************<br />

*** TOTAL STEP NR. 27 GEOMETRY STEP NR. 1 ***<br />

*** GNMAX= 7.696852E-02 ETOT= -36.415776 ***<br />

*** GNORM= 3.227866E-02 DETOT= 0.000E+00 ***<br />

*** CNSTR= 0.000000E+00 T<strong>CP</strong>U= 12.89 ***<br />

****************************************************************<br />

1 2.130E-02 5.311E-03 -35.580799 8.350E-01 0.46<br />

2 1.574E-02 1.566E-03 -36.324351 -7.436E-01 0.46<br />

3 5.503E-03 8.729E-04 -36.400043 -7.569E-02 0.46<br />

...<br />

A geometry optimization is not much else than repeated wavefunction optimizations,<br />

where the positions of the atoms are updated according to the forces acting on them.<br />

In the first part above you can see, the wavefunction optimization. The columns have<br />

the following meaning:<br />

• NFI step number (number of finite iterations)<br />

• GEMAX largest off-diagonal component<br />

• CNORM average of the off-diagonal components<br />

• ETOT total energy DETOT change in total energy<br />

• T<strong>CP</strong>U time used for this step<br />

One can see that the calculation stops after the convergence criterion of 1.0d-6 has<br />

been reached for the GEMAX value.<br />

After printing the positions and forces of the atoms you see a small report block and<br />

then another wavefunction optimization starts. The numbers for GNMAX, GNORM,<br />

and CNSTR stand for the largest absolute component of the force on any atom,


average force on the atoms, and the largest absolute component of a constraint force<br />

on the atoms respectively. They allow you to monitor the progress of the convergence<br />

of the geometry optimization.<br />

Finally, at the end of the geometry optimization, you can see that the forces and the<br />

total energy have decreased from their initial values as it is to be expected:<br />

****************************************************************<br />

*** TOTAL STEP NR. 3737 GEOMETRY STEP NR. 214 ***<br />

*** GNMAX= 2.827646E-04 [3.64E-02] ETOT= -36.489908 ***<br />

*** GNORM= 1.395703E-04 DETOT= -1.769E-05 ***<br />

*** CNSTR= 0.000000E+00 T<strong>CP</strong>U= 9.63 ***<br />

****************************************************************<br />

================================================================<br />

= END OF GEOMETRY OPTIMIZATION =<br />

================================================================<br />

and we have the final summary of the results; the atom coordinates and a breakdown<br />

of the total energy into the various components:<br />

RESTART INFORMATION WRITTEN ON FILE<br />

./RESTART.1<br />

****************************************************************<br />

* *<br />

* FINAL RESULTS *<br />

* *<br />

****************************************************************<br />

ATOM COORDINATES GRADIENTS (-FORCES)<br />

1 C 0.3033 -0.3710 0.4996 2.238E-04 -3.750E-05 -1.867E-04<br />

2 C 2.8157 0.1207 -0.8206 -2.828E-04 1.186E-04 1.534E-04<br />

3 C -1.4005 -2.3884 -0.6592 -1.866E-05 -5.129E-05 1.748E-04<br />

4 O -0.3055 0.7755 2.4178 1.488E-05 -9.553E-05 2.593E-04<br />

5 H 2.5171 0.5750 -2.8280 7.045E-06 -1.029E-04 -2.289E-04<br />

6 H 3.8187 1.6721 0.1124 -6.949E-05 1.507E-04 -3.226E-05<br />

7 H 3.9948 -1.5943 -0.7676 1.188E-04 -1.722E-05 1.350E-04<br />

8 H -1.5584 -2.1576 -2.7186 1.045E-05 -8.026E-05 -1.718E-04<br />

9 H -0.5710 -4.2692 -0.3267 -5.208E-05 -4.544E-05 5.413E-05<br />

10 H -3.2775 -2.3193 0.2103 -1.609E-04 1.615E-04 -2.245E-04<br />

****************************************************************<br />

ELECTRONIC GRADIENT:<br />

MAX. COMPONENT = 8.03517E-07 NORM = 6.81662E-08<br />

NUCLEAR GRADIENT:<br />

MAX. COMPONENT = 2.82765E-04 NORM = 1.39570E-04<br />

TOTAL INTEGRATED ELECTRONIC DENSITY<br />

IN G-SPACE = 24.000000<br />

IN R-SPACE = 24.000000<br />

(K+E1+L+N+X) TOTAL ENERGY = -36.48990756 A.U.<br />

(K) KINETIC ENERGY = 27.70023623 A.U.<br />

(E1=A-S+R) ELECTROSTATIC ENERGY = -27.60801450 A.U.<br />

(S) ESELF = 29.92067103 A.U.<br />

(R) ESR = 1.71581582 A.U.<br />

(L) LOCAL PSEUDOPOTENTIAL ENERGY = -27.66180959 A.U.<br />

(N) N-L PSEUDOPOTENTIAL ENERGY = 1.82151808 A.U.<br />

(X) EXCHANGE-CORRELATION ENERGY = -10.74183777 A.U.<br />

GRADIENT CORRECTION ENERGY =<br />

-0.58344734 A.U.<br />

****************************************************************<br />

The last section of the output reports the memory allocation and the timing of the run:<br />

================================================================<br />

BIG MEMORY ALLOCATIONS<br />

SCR 785159 CATOM 190652


PME 520040 PSI 330270<br />

YF 330270 GNL 240960<br />

ATWFR 301200 SCR 785149<br />

XF 330270 RHOE 165135<br />

----------------------------------------------------------------<br />

[PEAK NUMBER 99] PEAK MEMORY 4872541 = 39.0 MBytes<br />

================================================================<br />

****************************************************************<br />

* *<br />

* TIMING *<br />

* *<br />

****************************************************************<br />

SUBROUTINE CALLS <strong>CP</strong>U TIME ELAPSED TIME<br />

INVFFTN 44858 3172.00 323.62<br />

FFT-G/S 269168 2733.40 274.36<br />

FWFFT 18690 1730.00 175.40<br />

I NVFFT 14953 1726.20 173.92<br />

GCENER 3738 1265.70 128.33<br />

FWFFTN 22436 1242.70 125.49<br />

FFTCOM 33643 817.30 127.30<br />

VPSI 3747 593.00 58.45<br />

GRADEN 3738 460.30 47.00<br />

RHOOFR 3737 448.90 45.11<br />

N-FFTCOM 67294 389.10 84.91<br />

ODIIS 3737 381.20 38.66<br />

XCENER 3738 353.30 35.86<br />

FNONLOC 3747 233.70 23.72<br />

PHASE 33643 219.10 22.22<br />

VOFRHOA 3738 172.50 17.50<br />

VOFRHOB 3738 131.30 12.75<br />

EICALC 3738 94.90 9.90<br />

RNLSM1 3747 66.90 6.84<br />

RGS 3950 38.60 3.57<br />

RNLSM2 664 35.50 3.48<br />

----------------------------------------------------------------<br />

TOTAL TIME 16305.60 1738.41<br />

****************************************************************<br />

<strong>CP</strong>U TIME : 4 HOURS 33 MINUTES 47.00 SECONDS<br />

ELAPSED TIME : 0 HOURS 30 MINUTES 10.50 SECONDS<br />

*** <strong>CP</strong>MD| SIZE OF THE PROGRAM IS 41068/ 152348 kBYTES ***<br />

PROGRAM <strong>CP</strong>MD ENDED AT: Tue Jan 10 20:03:09 2011<br />

================================================================<br />

= CO<strong>MM</strong>UNICATION TASK AVERAGE MESSAGE LENGTH NUMBER OF CALLS =<br />

= SEND/RECEIVE 43407. BYTES 36127. =<br />

= BROADCAST 321. BYTES 15557. =<br />

= GLOBAL SU<strong>MM</strong>ATION 360. BYTES 79725. =<br />

= GLOBAL MULTIPLICATION 0. BYTES 1. =<br />

= ALL TO ALL CO<strong>MM</strong> 876851. BYTES 100937. =<br />

= PERFORMANCE TOTAL TIME =<br />

= SEND/RECEIVE 5675.900 MB/S 0.276 SEC =<br />

= BROADCAST 94.488 MB/S 0.053 SEC =<br />

= GLOBAL SU<strong>MM</strong>ATION 8.258 MB/S 10.435 SEC =<br />

= GLOBAL MULTIPLICATION 0.000 MB/S 0.001 SEC =<br />

= ALL TO ALL CO<strong>MM</strong> 417.428 MB/S 212.029 SEC =<br />

= SYNCHRONISATION 0.025 SEC =<br />

================================================================<br />

If you look in your directory, you will see the following files:<br />

Name<br />

GEOMETRY<br />

GEOMETRY.xyz<br />

GEO_OPT.xyz<br />

HESSIAN<br />

LATEST<br />

Content<br />

Final ionic positions and velocities (in a.u.)<br />

Final ionic positions and velocities in xyz format<br />

All the ionic positions along the geometry optimization<br />

Approximate Hessian used in geometry optimization<br />

Info on the last restart file: filename and # times written


RESTART.1<br />

Restart binary file from which it is possible restart a new<br />

calculation<br />

Now we want to calculate the dipole of the acetone in the “zero temperature”<br />

optimized structure just found by using the RESTART.1 file to retrieve the information.<br />

We can do that modifying the input file this way (see dipole.inp file):<br />

&<strong>CP</strong>MD<br />

PROPERTIES<br />

RESTART WAVEFUNCTION COORDINATES LATEST<br />

&END<br />

&PROP<br />

DIPOLE MOMENT<br />

&END<br />

…<br />

PROPERTIES keyword tells <strong>CP</strong>MD to look at the section &PROP where it is specifies<br />

which properties it has to calculate.<br />

RESTART keyword tells <strong>CP</strong>MD to read WAVEFUNCTION and COORDINATES from the<br />

restart file written in the LATEST file (which was generated in the previous<br />

calculation).<br />

The rest of the input file is the same of the previous one: the coordinates will be not<br />

read (since are taken from the restart file) but some number as to put anyway to avoid<br />

the program stops writing some error!<br />

Run the job:<br />

mpirun -np 2 cpmd.x dipole.inp //home/ei250498/PROGRAMS/SRC/cpmd/PP /<br />

> dipole.out &<br />

In the output file you can see that the following new section:<br />

CALCULATE DIPOLE MOMENT<br />

****************************************************************<br />

* PROPERTY CALCULATIONS *<br />

****************************************************************<br />

RV30| WARNING! NO WAVEFUNCTION VELOCITIES<br />

RESTART INFORMATION READ ON FILE<br />

./RESTART.1<br />

*** PHFAC| SIZE OF THE PROGRAM IS 26772/ 142336 kBYTES ***<br />

CENTER OF INTEGRATION (CORE CHARGE): 0.37726 -0.65932 0.02482<br />

DIPOLE MOMENT<br />

X Y Z TOTAL<br />

0.35426 -0.61017 -0.98996 1.21566 atomic units<br />

0.90044 -1.55090 -2.51623 3.08990 Debye<br />

3 – The electrostatic grid


The next step will be to create a box with an acetone molecule and several water<br />

molecules. We will use for that the xleap program belonging to the Amber11 6<br />

molecular dynamics package. This package has been devised to deal with biological<br />

systems (aminoacids, nucleic acids, etc) and so our acetone has not recognized by it.<br />

This is also the case when we want to study some drug which interacts with<br />

“traditional” biological systems.<br />

In particular, xleap do not know how to assign the partial charges to each atom of<br />

acetone. To do that we will use a standard procedure which has been directly<br />

suggested by the developers of the Amber force fields and which they use to tune that<br />

parameters which is not possible to determine experimentally. The procedure is based<br />

on calculating at quantum level the electrostatic potential on a grid around the<br />

molecule and then to determine the so-called RESP charges to assign at each atom in<br />

order to reproduce the electrostatic field.<br />

According the recipe of Amber developers we will use the Gaussian09 package 7 to<br />

calculate the electrostatic grid by using the 6-31G(d,p) localized basis set and B3LYP<br />

exchange correlation functional.<br />

First, we need to optimize the geometry again: the level of theory are different and in<br />

principle the optimized structures could be different! Here it is the input file<br />

opt_geom.com for Gaussian:<br />

%NProcShared=2<br />

%chk=./opt_geom.chk<br />

%mem=600MB<br />

#p opt b3lyp/6-31G(d,p) nosymm iop(6/7=3) gfinput<br />

Acetone geometry optimization<br />

0 1<br />

C 0.000000 0.000000 0.000000<br />

O 0.000000 0.000000 1.220000<br />

C 1.367073 0.000000 -0.483333<br />

C -0.683537 -1.183920 -0.483333<br />

H 1.367073 0.000000 -1.572333<br />

H 1.880433 0.889165 -0.120333<br />

H 1.880433 -0.889165 -0.120333<br />

H -0.683537 -1.183920 -1.572333<br />

H -0.170177 -2.073085 -0.120333<br />

H -1.710256 -1.183920 -0.120333<br />

Note: Remember to leave two blank line at the end of the file (do not ask me why J)<br />

Run the optimization:<br />

1. Initialize the environment (this time we use the module command since the<br />

program was installed by the staff of the cluster and not by us):<br />

2. Run Gaussian:<br />

module load CHEMISTRY<br />

module load gaussian09<br />

6 You can find the manual at the web address: http://ambermd.org/doc11/ <br />

7 Gaussian09 online manual: http://www.gaussian.com/g_tech/g_ur/g09help.htm


g09 opt_geom.com &<br />

3. After about one minute the job will end and you can check that the<br />

optimization has been successfully this way:<br />

grep -B 1 Maximum opt_geom.log<br />

Use Molden to retrieve the coordinates of the last optimized configuration:<br />

molden opt_geom.log &<br />

in the Molden Control panel press the “Geom. conv.” button and the Geom<br />

Convergence windows will appear. In that windows you can select any step of the<br />

optimization procedure; select the last one and save the structure.<br />

Now, use Gaussian again to calculate the electrostatic grid by the<br />

electrostatic_grid.com input file:<br />

%NProcShared=8<br />

%chk=./electrostatic_grid.chk<br />

%mem=600MB<br />

#p b3lyp/6-31G(d,p) nosymm iop(6/33=2) pop(chelpg,regular) guess=read gfinput<br />

Acetone electrostatic grid calculation<br />

0 1<br />

C 0.1066280 -0.1846610 0.1346160<br />

O -0.3060700 0.5300980 1.0273310<br />

C 1.4973060 -0.0081640 -0.4519990<br />

C -0.7415970 -1.3007560 -0.4520680<br />

H 1.4366050 0.1927160 -1.5279620 ß Optimized coordinates<br />

H 2.0063930 0.8173940 0.0467940<br />

H 2.0826090 -0.9274690 -0.3338980<br />

H -0.8854310 -1.1476190 -1.5280030<br />

H -0.2379310 -2.2672580 -0.3343160<br />

H -1.7110070 -1.3291270 0.0468420<br />

The electrostatic grid will be written in the log file: look for the string “ESP fit Center”.<br />

4 – Partial charges<br />

The program Antechamber inside the Amber10 and Amber11 package 8 is able to read<br />

the electrostatic grid in a log file of Gaussian and calculate the RESP charges associated<br />

to the atoms of your molecule. To use Antechamber and every other program of the<br />

Amber11 suite, we firstly need to initialize the environment:<br />

source /home/ei250498/PROGRAMS/MODULES/amber11.sh<br />

8 The current version (07-­‐2012) of Antechamber in Amber12 is buggy. Do not use Amber12 for <br />

these calculations.


Copy the log file of Gaussian with the electrostatic grid information on a new directory<br />

and use the following command: 9<br />

antechamber -i electrostatic_grid.log -fi gout -c resp -nc 0 -m 1 -o<br />

acetone.resp.prep -fo prepi -rn ACET<br />

Actually, Antechamber recalls several programs in sequence that produce many<br />

different intermediate files in your directory. When the process ends correctly you<br />

should see the file acetone.resp.prep that is the file with the partial RESP charges that<br />

we will use in the next step (copy it in a new directory and move to it).<br />

5 – Water box<br />

It is time to create the water box containing the acetone and the files necessary to run a<br />

short classical Molecular Dynamics (MD) run. In fact, we want then to perform a<br />

classical pre-equilibration of the system, in order to relax it near to a “stable state”. 10<br />

For this aim we will use the Graphical User Interface Xleap of Amber11:<br />

xleap -f $AMBERHOME/dat/leap/cmd/leaprc.ff99SB &<br />

where the file leaprc.ff99SB is used to load all libraries which contains the parameters of<br />

the Amber force field 99SB. Such a force field like any others has been tuned to<br />

describe aminoacids, nucleic acids, etc but there is no information about acetone. For<br />

this reason we have calculated the partial charges, which now we can load in Xleap by<br />

typing the following command (in the Xleap main window): 11<br />

loadamberprep acetone.resp.prep<br />

and for the same reason some other parameters are still missing and have to be added<br />

manually. Most of them can be retrieved by the “general Amber force field for organic<br />

molecules GAFF”:<br />

loadamberparams $AMBERHOME/dat/leap/parm/gaff.dat<br />

other ones, however, have to provide manually. It is not difficult to calculate them but<br />

here we will no explain how to do 12 . We have already prepared a file with such missing<br />

parameters (above all bond and angles ones) and they can be load in Xleap by the<br />

following command:<br />

loadamberparams /home/ei250498/TUTORIALS/ACETONE/5-XLEAP/acetone.frcmod<br />

You can now give a look at your system by the command edit:<br />

9 Run simply the command “antechamber” to have a short description of the meaning of all the <br />

option recognized by antechamber. <br />

10 Remember the time step for a classical MD run is ~ps, while the time step for a quantum MD is <br />

~fs. So, the classical pre-­‐equilibration is essential since typical relaxation times are of the order <br />

of 10s-­‐100s of ps! <br />

11 The syntax for any Xleap command can be recall by typing the command without any <br />

arguments. <br />

12 Refer to the Amber manual, for example.


edit ACET<br />

You can also check if all the parameters for the acetone have been loaded:<br />

check ACET<br />

Finally, you can save the topology and coordinates files for your ACET unit by typing:<br />

saveamberparm ACET acetone.top acetone.rst<br />

However, we want to study the acetone in water and therefore we need to solvate the<br />

system, before:<br />

solvatebox ACET TIP3PBOX 14<br />

TIP3PBOX specifies that we solvate with the classical water model molecule<br />

“TIP3P” 13 ; an orthorhombic box whose walls are at least 14 Å from any acetone’s atoms<br />

has been created:<br />

edit ACET<br />

From the new window you can also look at the partial charges and other parameters of<br />

your system:<br />

• Select the atoms<br />

• Edit/Edit selected atoms<br />

Finally, we save the topology and coordinates files for our solvated system:<br />

saveamberparm ACET acetone_solv.top acetone_solv.rst<br />

Copy the two files to another folder.<br />

By the VMD software 14 you can visualize your system:<br />

source /home/ei250498/PROGRAMS/MODULES/vmd.sh<br />

vmd –parm7 acetone_solv.top –rst7 acetone_solv.rst<br />

VMD is also installed on your laptop. You can transfer the files needed to VMD on<br />

your laptop and use them locally: this strategy could be worth in the cases your network<br />

connection was really slow.<br />

6 – Pre Equilibration<br />

13 http://en.wikipedia.org/wiki/Water_model <br />

14 VMD User’s Guide: http://www.ks.uiuc.edu/Research/vmd/current/ug/


We need now to equilibrate the system at force field level in order to later start the<br />

QM/<strong>MM</strong> simulation from a configuration “not so far” from an equilibrium one (at the<br />

QM/<strong>MM</strong> level).<br />

To run MD simulation we will use the “sander” program of the AMBER11 package.<br />

We proceed this way: 15<br />

1. First, classical minimization of the system restraining the acetone molecule to<br />

the initial position: this step is performed since the initial Xleap solvation is not<br />

physically reasonable (no hydrogen bonds, etc) and this way we favour water<br />

molecules to orient correctly around the acetone:<br />

mpirun -np 2 sander.MPI -O -i 1-restraint.inp -o eq_restraint.out –c<br />

acetone_solv.rst -p acetone_solv.top -r eq_restraint.rst –ref<br />

acetone_solv.rst -inf eq_restraint.info &<br />

Note: the command “tail eq_restraint.info” can be used to monitor the minimization and<br />

verify that it does not reach the max number of steps but stop before satisfying the<br />

convergence criteria.<br />

2. Then, a not constrained minimization is performed:<br />

mpirun -np 2 sander.MPI -O -i 2-minimization.inp –o<br />

eq_minimization.out -c eq_restraint.rst -p acetone_solv.top -r<br />

eq_minimization.rst -inf eq_minimization.info &<br />

3. Now, we take the system at 300 K with MD at constant volume and a linear<br />

heating. In this step we constrain weakly acetone to the initial position so that<br />

water can spread all around the acetone without forming “holes”. Since the liquid<br />

water relaxation time is order of 10 ps we need to perform a > 10 ps MD:<br />

mpirun -np 2 sander.MPI -O -i 3-heating.inp -p acetone_solv.top -c<br />

eq_minimization.rst -ref eq_minimization.rst -o eq_heating.out -r<br />

eq_heating.rst -x eq_heating.crd -e eq_heating.en -inf<br />

eq_heating.info &<br />

4. Finally, we couple our system simultaneously to a thermostat at 300 K and a<br />

barostat at 1 atm and perform an NPT simulation to let the density of the system<br />

to reach the equilibrium value at room condition (~ 1g/cm 3 since the most is<br />

formed by water):<br />

mpirun -np 2 sander.MPI -O -i 4-eq_density.inp -p<br />

acetone_solv.top -c eq_heating.rst -o eq_density.out -r<br />

eq_density.rst -x eq_density.crd -e eq_density.en –inf<br />

eq_density.info &<br />

Note: when the last step has ended, you can fast analyze the behavior of all the<br />

physically relevant quantities of your system (like the density for example) by using<br />

the perl script “process_mdout.perl”:<br />

15 All the input file for sander can be found in the folder: <br />

/home/ei250498/TUTORIALS/ACETONE/6-SANDER


Box Density<br />

• mkdir analysis<br />

• cd analysis<br />

• process_mdout.perl ../eq_density.out<br />

• xmgrace summary.DENSITY<br />

Why is density smaller than 1g/cm 3 ?<br />

7 – Reimaging<br />

Let’s give a look at the last configuration you obtained from the classical molecular<br />

dynamics equilibration:<br />

cd ..<br />

vmd -parm7 acetone_solv.top -rst7 eq_density.rst<br />

What did happen to our orthorhombic box?<br />

The image shows your system without applying the periodic boundary conditions<br />

(PBC) that sander and all the other programs of Amber11 use. So, molecules drift<br />

over time and may span multiple periodic cells; this is normal when you are working<br />

on Amber11 or on some other molecular dynamics package. However, now we want<br />

to move to <strong>CP</strong>MD in order to perform a QM/<strong>MM</strong> MD simulation, and <strong>CP</strong>MD does<br />

not apply “automatically” PBC. Consequently, we need to “reimage” the coordinates<br />

into the primary unit cell. We can use the “ptraj” program 16 of the Amber11 suite to<br />

accomplish this task. Move the topology and coordinates files to another folder and<br />

then create the input file eq_density.ptraj for ptraj:<br />

16 http://ambermd.org/doc10/AmberTools.pdf


trajin eq_density.rst<br />

ß coordinates file to read<br />

trajout eq_density_reimaged.rst restart ß output file in the same format as the input<br />

center :1 ß center the box to the geometric center of residue 1<br />

image center<br />

ß force all the molecules into the primary unit cell<br />

Run ptraj according this syntax:<br />

ptraj acetone_solv.top < eq_density.ptraj<br />

Verify that the imaging has been correctly done:<br />

vmd -parm7 acetone_solv.top -rst7 eq_density_reimaged.rst.1<br />

8 – Convert MD files<br />

Copy the topology and the “reimaged” coordinates files to a new directory and typing<br />

the following command:<br />

source /home/ei250498/PROGRAMS/MODULES/conv_7.sh<br />

Conv_7.x acetone_solv.top eq_density_reimaged.rst.1 solvate<br />

Conv_7.x is an in-house program written some years ago to convert the Amber MD<br />

files in the GROMOS format. This because the QM/<strong>MM</strong> interface of <strong>CP</strong>MD works<br />

with such a format. The option “solvate” let us specify that the water molecules<br />

should be treated as solvent ones: this is useful only if you are interested to read in the<br />

log files of <strong>CP</strong>MD energies and other quantities partitioned in solute and solvent<br />

components.<br />

If you get an error like this:<br />

PGFIO-F-231/formatted read/unit=12/error on data conversion.<br />

File name = acetone_solv.top formatted, sequential access<br />

record = 2538<br />

In source file Conv.f, at line number 280<br />

is because you are using an Amber version later of 2010. As of the end of 2010, xleap<br />

writes in the topology files two short sections:


%FLAG SCEE_SCALE_FACTOR<br />

and<br />

%FLAG SCNB_SCALE_FACTOR<br />

introduced to allow you to set the scaling coefficients for individual elements. These<br />

sections are not understood by our converter and should be removed from our<br />

topology file before processing it with Conv7.x. This can be simply done by opening<br />

the topology file with a text editor:<br />

vi acetone_solv.top<br />

This procedure can also be done automatically by using the perl script Conv7.pl in<br />

place of Conv7.x<br />

Conv_7.pl acetone_solv.top eq_density_reimaged.rst.1 solvate<br />

The presence of these two sections is completely negligible for our aims, including<br />

performing classical molecular dynamics.<br />

The converter will produce 5 files:<br />

• gromos.top the Gromos topology file for our system<br />

• gromos.inp the Gromos input file<br />

• gromos.g96 the coordinates file in g96 format<br />

• gromacs.top the Gromacs topology file<br />

• ffgro96.itp the itp file for the Gromacs software<br />

We need only the first 3 files, but some changes 17 have to be done in order to<br />

correctly set up a QM/<strong>MM</strong> MD simulation:<br />

Changes in gromos.inp<br />

1 - In the section SYSTEM the two numbers should be in sequence:<br />

Number of (identical) solute (not necessarily the QM part!) molecules<br />

Number of (identical) solvent (not necessarily the <strong>MM</strong> part!) molecules<br />

Such information can be retrieved, for example, by typing on the prompt<br />

command line:<br />

2 - In the section BOUNDARY:<br />

tail gromacs.top<br />

The first number should be 0 for isolated system; >0 if PBC in parallelepiped<br />

box has been used;


gromos.g96 file.<br />

90.0 is the angle between the x and z axis of the box.<br />

The last number is ignored by <strong>CP</strong>MD in QM/<strong>MM</strong> simulations.<br />

3 - In the section SUBMOLECULES the numbers in sequence should be:<br />

Number of (different) solute molecules.<br />

Index of the last atom of the first solute molecule.<br />

Index of the last atom of the second solute molecule.<br />

...<br />

Such data can be read from the file gromos.g96:<br />

vi gromos.g96<br />

4 - In the section PRINT you could want to modify the first number which give<br />

you the number of steps after that <strong>CP</strong>MD write info of the energy in the output<br />

file (20 is usually enough).<br />

5 - In the section FORCE, under the line of 1's (which turns the various force<br />

components on), we have to put:<br />

The number of different layers, usually 2 (Solute and solvent)<br />

Index of the last atom of layer 1<br />

Index of the last atom of layer 2<br />

...<br />

Changes in gromos.top<br />

In the section ATOMTYPENAME replace the names of the types of the atoms,<br />

from the standard generic force field library "gaff":<br />

to the Amber force field library:<br />

vi $AMBERHOME/dat/leap/parm/gaff.dat<br />

vi $AMBERHOME/dat/leap/parm/parm99.dat<br />

The correctly modified files gromos_mod.top and gromos_mod.inp can be found in:<br />

/home/ei250498/TUTORIALS/ACETONE/8-Conv_7<br />

9 – QM/<strong>MM</strong> MD<br />

Copy the modified files and the grooms.g96 file to a new directory.<br />

At this point, we have all the files which describe the <strong>MM</strong> part and its interactions;<br />

the last step will be to write the input file for <strong>CP</strong>MD with the instructions for the<br />

simulation and the definition of the QM part. A <strong>CP</strong>MD input file for a QM/<strong>MM</strong>


simulation is similar to the <strong>CP</strong>MD input file for a standard QM calculation which has<br />

been described in paragraph 2 (section &INFO, &<strong>CP</strong>MD, &SYSTEM, &ATOMS,<br />

&DFT). However, there are 6 main differences which should always be taken into<br />

account when you deal with the QM/<strong>MM</strong> interface of <strong>CP</strong>MD:<br />

1. In the &<strong>CP</strong>MD section the keyword Q<strong>MM</strong>M has to be added.<br />

2. A new &Q<strong>MM</strong>M section, which we will explain in detail below, is<br />

mandatory.<br />

3. The QM atoms are specified in the &ATOMS section similar to normal<br />

<strong>CP</strong>MD calculations. Instead of explicit coordinates one has to provide the<br />

atom index as given in the Gromos topology and coordinates files:<br />

vi gromos.g96<br />

4. The keyword ANGSTROM in the &SYSTEM section cannot be used, so any<br />

length has to be specified in a.u.<br />

5. The option ABSOLUTE in the keyword CELL cannot be used. Therefore, the<br />

correct syntax for the size of the rectangular box AxBxC is<br />

A B/A C/A 0 0 0<br />

6. The QM system in a QM/<strong>MM</strong> calculation can only be dealt as isolated system,<br />

i.e. without explicit PBC since there is the <strong>MM</strong> environment all round it.<br />

Even though we are requesting an isolated system calculation (SY<strong>MM</strong>ETRY<br />

keyword with the option ISOLATED SYSTEM or 0), the calculation is, in fact,<br />

still done in a periodic cell (we are still using plane wave basis set!). Since<br />

acetone has a dipole moment, we have to take care of the long range<br />

interactions between periodic images and there are methods (activated with<br />

the keyword POISSON SOLVER in the &SYSTEM section) implemented in<br />

<strong>CP</strong>MD to compensate for this effect. We will choose the TUCKERMAN Poisson<br />

solver 18 since it has been proven to be the most effective one with typical<br />

systems studied in biology. Decoupling of the electrostatic images in the<br />

Poisson solver requires to increase the box size over the dimension of the<br />

molecule: practical experience shows that 3.5 Å space between the outmost<br />

atoms and the box is usually sufficient for typical biological systems. <br />

&Q<strong>MM</strong>M section<br />

In this paragraph we will review the most relevant keywords to specify in the<br />

&Q<strong>MM</strong>M section of the <strong>CP</strong>MD input file. See for example 19 for a complete<br />

list:<br />

TOPOLOGY: On the next line the name of a Gromos topology file<br />

has to be given.<br />

COORDINATES: On the next line the name of a Gromos96 format<br />

coordinate file has to be given.<br />

INPUT: On the next line the name of a Gromos input file has to<br />

be given.<br />

18 G.J. Martyna and M. E. Tuckerman, J. Chem. Phys. 110, 2810 (1999). <br />

19 http://www.cpmd.org/manual/node258.html


AMBER:<br />

ELECTROSTATIC<br />

COUPLING:<br />

An Amber functional form for the classical force field<br />

is used.<br />

The electrostatic interaction of the quantum system<br />

with the classical system is explicitly kept into account<br />

for all classical atoms at a distance r ≤ RCUT_NN from<br />

any quantum atom and for all the <strong>MM</strong> atoms at a<br />

distance of RCUT_NN < r ≤ RCUT_MIX and a charge<br />

larger than 0.1e (NN atoms). <strong>MM</strong>-atoms with a charge<br />

smaller than 0.1e and a distance of RCUT_NN < r ≤<br />

RCUT_MIX and all <strong>MM</strong>-atoms with RCUT_MIX < r ≤<br />

RCUT_ESP are coupled to the QM system by a ESP<br />

coupling Hamiltonian (EC atoms).<br />

If the additional LONG RANGE keyword is specified, the<br />

interaction of the QM-system with the rest of the<br />

classical atoms is explicitly kept into account via<br />

interacting with a multipole expansion for the QMsystem<br />

up to quadrupolar order. A file named<br />

MULTIPOLE is produced.<br />

If LONG RANGE is omitted the quantum system is<br />

coupled to the classical atoms not in the NN-area and<br />

in the EC-area list via the force-field charges.<br />

If the keyword ELECTROSTATIC COUPLING is omitted,<br />

all classical atoms are coupled to the quantum system<br />

by the force-field charges (mechanical coupling):<br />

computational expensive calculation!<br />

RCUT_NN:<br />

RCUT_MIX:<br />

RCUT_EXP:<br />

UPDATE LIST:<br />

SAMPLE<br />

INTERACTING:<br />

ARRAYSIZES:<br />

The cutoff distance for atoms in the nearest neighbor<br />

region from the QM-system is read from the next line.<br />

We will use the default value of 10 a.u.<br />

The cutoff distance for atoms in the intermediate<br />

region is read from the next line. We will use the value<br />

of 15 a.u.<br />

The cutoff distance for atoms in the ESP-area is read<br />

from the next line. We will use the value of 20 a.u.<br />

On the next line the number of MD steps between<br />

updates of the various lists of atoms for<br />

ELECTROSTATIC COUPLING is given. At every list<br />

update a file INTERACTING_NEW.pdb is created (and<br />

overwritten).<br />

The sampling rate for writing a trajectory of the<br />

interacting subsystem is read from the next line. With<br />

the additional keyword OFF or a sampling rate of 0,<br />

those trajectories are not written.<br />

Parameters for the dimensions of various internal arrays<br />

can be given in this block. The syntax is one label and


the according dimension per line. The suitable<br />

parameters can be estimated using the script<br />

estimate_gromos_size.sh:<br />

estimate_gromos_size.sh gromos_mod.top<br />

This section of the input has to be terminated by a line<br />

containing END ARRAYSIZES.<br />

Now, we have all the elements to write a <strong>CP</strong>MD input file for a QM/<strong>MM</strong> simulation.<br />

But which steps do we need to perform a stable Car-Parrinello MD?<br />

We have the equilibrated coordinates at room conditions obtained from a classical MD:<br />

this is a good starting point, however we still need to equilibrate the system at QM/<strong>MM</strong><br />

level since the two levels of theory are different.<br />

Therefore, as we have done in the second paragraph, we should firstly optimize the<br />

geometry of the system. Unfortunately, all the optimizer algorithms in <strong>CP</strong>MD do not<br />

work together the QM/<strong>MM</strong> interface. Consequently, we have to use some “trick” to find<br />

a minimal energy structure (at QM/<strong>MM</strong> level). In particular in this tutorial we will<br />

perform a simulated annealing (keyword ANNEALING IONS), i.e. we run a <strong>CP</strong>-dynamics<br />

where and gradually removing kinetic energy from the nuclei by multiplying velocities<br />

with a factor (in our case it is set to 0.99, so 1% of the kinetic energy will be removed in<br />

every step). Here it is the annealing.inp file which perform this preliminary step:<br />

&Q<strong>MM</strong>M<br />

TOPOLOGY<br />

gromos_mod.top<br />

COORDINATES<br />

gromos.g96<br />

INPUT<br />

gromos_mod.inp<br />

ELECTROSTATIC COUPLING LONG RANGE<br />

RCUT_NN<br />

10<br />

RCUT_MIX<br />

15<br />

RCUT_ESP<br />

20<br />

UPDATE LIST<br />

100<br />

SAMPLE_INTERACTING<br />

0<br />

AMBER<br />

ARRAYSIZES<br />

MAXATT 16<br />

MAXAA2 11<br />

MAXNRP 20<br />

MAXNBT 15<br />

MAXBNH 16<br />

MAXBON 13<br />

MAXTTY 14<br />

MXQHEH 22<br />

MAXTH 13<br />

MAXQTY 10<br />

MAXHIH 10<br />

MAXQHI 10<br />

MAXPTY 14<br />

MXPHIH 28<br />

MAXPHI 11<br />

MAXCAG 11<br />

MAXAEX 20024<br />

MXEX14 22


END ARRAYSIZES<br />

&END<br />

&<strong>CP</strong>MD<br />

Q<strong>MM</strong>M<br />

MOLECULAR DYNAMICS <strong>CP</strong><br />

ISOLATED MOLECULE<br />

QUENCH BO<br />

ANNEALING IONS<br />

0.99<br />

TEMPERATURE<br />

300<br />

EMASS<br />

600.<br />

TIMESTEP<br />

5.0<br />

MAXSTEP<br />

10000<br />

TRAJECTORY SAMPLE<br />

0<br />

STORE<br />

100<br />

RESTFILE<br />

1<br />

&END<br />

&SYSTEM<br />

POISSON SOLVER TUCKERMAN<br />

SY<strong>MM</strong>ETRY<br />

0<br />

CELL<br />

18.61 1.11 0.95 0 0 0<br />

CUTOFF<br />

70.<br />

CHARGE<br />

0.0<br />

&END<br />

&DFT<br />

FUNCTIONAL BLYP<br />

&END<br />

&ATOMS<br />

*H_MT_BLYP.psp KLEINMAN-BYLANDER<br />

LMAX=S<br />

6<br />

4 5 6 8 9 10<br />

*C_MT_BLYP.psp KLEINMAN-BYLANDER<br />

LMAX=P<br />

3<br />

2 3 7<br />

*O_MT_BLYP.psp KLEINMAN-BYLANDER<br />

LMAX=P<br />

1<br />

1<br />

&END<br />

Some comments on the keywords in the &<strong>CP</strong>MD section which are not explained, yet:<br />

MOLECULAR DYNAMICS <strong>CP</strong>:<br />

ISOLATED MOLECULE:<br />

QUENCH BO:<br />

Perform a molecular dynamics run.<br />

<strong>CP</strong> stands for a Car-Parrinello type of MD.<br />

Calculate the ionic temperature assuming that<br />

the system consists of an isolated molecule or<br />

cluster.<br />

the wavefunction is converged at the<br />

beginning of the MD run.


TEMPERATURE:<br />

EMASS:<br />

TIMESTEP:<br />

MAXSTEP:<br />

TRAJECTORY SAMPLE:<br />

STORE:<br />

RESTFILE:<br />

The initial temperature for the atoms in Kelvin<br />

is read from the next line: we start from 300 K<br />

since it is the temperature at which we<br />

equilibrate the system classically.<br />

The fictitious electron mass in atomic units for<br />

the <strong>CP</strong> dynamics is read from the next line.<br />

We choose 600 a.u. but ideally a careful set of<br />

tests should be done to verify that adiabaticity<br />

conditions to be met 20 : this and the following<br />

one are the only parameters to tune in order to<br />

decouple the electronic and ionic degrees of<br />

freedom and minimize their energy transfer.<br />

The time step in atomic units is read from the<br />

next line. We use the default time step of 5 a.u.<br />

~ 0.12 fs.<br />

The maximum number of steps for molecular<br />

dynamics to be performed. The value is read<br />

from the next line.<br />

Store the atomic positions, velocities and<br />

optionally forces at N every time step on the<br />

TRAJECTORY file. N is read from the next line.<br />

If N=0 the trajectory file will not be written.<br />

The RESTART file is updated every N steps. N<br />

is read from the next line. Default is at the end<br />

of the run.<br />

The number of distinct RESTART files<br />

generated during <strong>CP</strong>MD runs is read from the<br />

next line. The restart files are written in turn.<br />

Default is 1.<br />

Moreover, here it is a simple procedure to obtain the sizes of the box to insert under the<br />

CELL keyword by using standard bash commands:<br />

• Create a file with the coordinate of the atoms belong to the QM part:<br />

grep CET gromos.g96 > QM.coor<br />

• Reorder the lines in the column 5 (6,7) for the coordinate x (y,z) with an<br />

increasing numerical (-n) order:<br />

sort -k 5 -n QM.coor<br />

• Take the last value (L) of the column (in nm), subtract it to the first (F) one,<br />

add 0.7 nm (i.e. 2 * 3.5 Å for the Poisson solver’s requirements) and then<br />

convert it to a.u.:<br />

echo "(L - F + 0.7)*10/0.529" | bc –l<br />

20 http://www.theochem.ruhr-­‐uni-­‐bochum.de/research/marx/marx.pdf


• Finally remember that under the CELL keyword of the <strong>CP</strong>MD input file the<br />

size of the quantum cell will be inserted according to the syntax:<br />

size_x size_y/size_x size_z/size_x 0 0 0<br />

1 - ANNEALING<br />

We are now ready to run the annealing (copy all the file in a folder called<br />

ANNEALING):<br />

mpirun -np 2 cpmd.x annealing.inp /home/ei250498/PROGRAMS/SRC/cpmd/PP<br />

> annealing.out &<br />

While the simulation proceeds you can monitor the decreasing temperature (third<br />

column named TEMPP) this way:<br />

tail -f annealing.out<br />

When the temperature reaches about 2-4 K we can “softly” stop the calculation (that<br />

is in order to make it write a RESTART file) by typing on the prompt line:<br />

touch EXIT<br />

The final configuration will be stored in the RESTART.1 file.<br />

More files will be generated during a QM/<strong>MM</strong> <strong>CP</strong> simulation:<br />

Q<strong>MM</strong>M_ORDER<br />

CRD_INI.g96<br />

CRD_FIN.g96<br />

INTERACTING.pdb<br />

INTERACTING_NEW.pdb<br />

The first line specifies the total number of atoms (NAT) and the<br />

number of quantum atoms (NATQ). The subsequent NAT lines<br />

contain, for every atom, the gromos atom number, the internal<br />

<strong>CP</strong>MD atom number, the <strong>CP</strong> species number isp and the<br />

number in the list of atoms for this species NA(isp). The<br />

quantum atoms are specified in the first NATQ lines.<br />

Contains the positions of all atoms in the first frame of the<br />

simulation in Gromos extended format (g96).<br />

Contains the positions of all atoms in the last frame of the<br />

simulation in Gromos extended format (g96).<br />

Contains (in a non-standard PDB-like format) all the QM atoms<br />

and all the <strong>MM</strong> atoms in the electrostatic coupling NN list. The<br />

5-th column in this file specifies the gromos atom number as<br />

defined in the topology file and in the coordinates file. The 10-<br />

th column specifies the <strong>CP</strong>MD atom number as in the<br />

TRAJECTORY file. The quantum atoms are labeled by the<br />

residue name QUA.<br />

The same as before, but it is created if the file<br />

INTERACTING.pdb is detected in the current working<br />

directory of the <strong>CP</strong>MD run.


<strong>MM</strong>_CELL_TRANS<br />

ENERGIES<br />

The QM system (atoms and wavefunction) is always recentered<br />

in the given supercell. This file contains, the<br />

trajectory of the re-centering offset for the QM-box. The first<br />

column ist the frame number (NFI) followed by the x-, y-, and<br />

z-component of the cell-shift vector.<br />

Contains all the energies along the trajectory.<br />

Let’s give a closer look at the output file annealing.out which present some new<br />

sections:<br />

CAR-PARRINELLO MOLECULAR DYNAMICS<br />

PATH TO THE RESTART FILES: ./<br />

ITERATIVE ORTHOGONALIZATION<br />

MAXIT: 30<br />

EPS:<br />

1.00E-06<br />

MAXIMUM NUMBER OF STEPS:<br />

10000 STEPS<br />

MAXIMUM NUMBER OF ITERATIONS FOR SC:<br />

10000 STEPS<br />

PRINT INTERMEDIATE RESULTS EVERY<br />

10001 STEPS<br />

STORE INTERMEDIATE RESULTS EVERY<br />

100 STEPS<br />

STORE INTERMEDIATE RESULTS EVERY 10001 SELF-CONSISTENT STEPS<br />

NUMBER OF DISTINCT RESTART FILES: 1<br />

TEMPERATURE IS CALCULATED ASSUMING AN ISOLATED MOLECULE<br />

In <strong>CP</strong>MD, atoms are frequently referred to as ions, which may be confusing. This is<br />

due to the pseudopotential approach, where you integrate the core electrons into the<br />

(pseudo)atom which then could be also described as an ion. See for example the<br />

following output segment:<br />

FICTITIOUS ELECTRON MASS: 600.0000<br />

TIME STEP FOR ELECTRONS: 5.0000<br />

TIME STEP FOR IONS: 5.0000<br />

QUENCH SYSTEM TO THE BORN-OPPENHEIMER SURFACE<br />

SIMULATED ANNEALING OF IONS WITH ANNERI = 0.990000<br />

ELECTRON DYNAMICS: THE TEMPERATURE IS NOT CONTROLLED<br />

ION DYNAMICS: THE TEMPERATURE IS NOT CONTROLLED<br />

This part of the output tells us, that the TIMESTEP keyword was recognized as well as<br />

the output option and that there will be no temperature control, i.e. we will do a<br />

microcanonical (NVE-ensemble) simulation.<br />

Then, several sections devoted to describe in detail the QM/<strong>MM</strong> interface and its data<br />

immediately follow:<br />

INITIALIZATION TIME:<br />

1.05 SECONDS<br />

*** MDPT| SIZE OF THE PROGRAM IS 95528/ 288728 kBYTES ***<br />

*** PHFAC| SIZE OF THE PROGRAM IS 97076/ 300980 kBYTES ***<br />

*** ATOMWF| SIZE OF THE PROGRAM IS 98100/ 302796 kBYTES ***<br />

ATRHO| CHARGE(R-SPACE): 24.000000 (G-SPACE): 24.000000<br />

RE-CENTERING QM SYSTEM AT EVERY TIME STEP<br />

BOX TOLERANCE [a.u.] 7.00000000000000<br />

BOX SIZE [a.u.]<br />

QM SYSTEM SIZE [a.u.]<br />

X DIRECTION: CELLDIM = 18.6100; XMAX-XMIN= 5.3773<br />

Y DIRECTION: CELLDIM = 20.6571; YMAX-YMIN= 7.3868<br />

Z DIRECTION: CELLDIM = 17.6795; ZMAX-ZMIN= 4.3595<br />

>>>>>>>> QUENCH SYSTEM TO THE BORN-OPPENHEIMER SURFACE


!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!<br />

THE QM SYSTEM DOES NOT HAVE AN INTEGER CHARGE.<br />

A COMPENSATING CHARGE OF 0.000040 HAS BEEN<br />

DISTRIBUTED OVER THE NN ATOMS.<br />

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />

…<br />

0.000040 e of charge to compensate: for all practical purposes this is zero!<br />

After the force initialization section finally the MD begins:<br />

NFI EKINC TEMPP EKS ECLASSIC EHAM EQM DIS T<strong>CP</strong>U<br />

1 0.00006 297.0 -54.34715 -51.01094 -51.01088 -36.46342 0.218E-04 1.53<br />

2 0.00056 293.9 -54.34671 -51.04477 -51.04421 -36.46309 0.863E-04 1.54<br />

3 0.00136 290.9 -54.34661 -51.07860 -51.07724 -36.46309 0.191E-03 1.52<br />

4 0.00201 287.9 -54.34663 -51.11193 -51.10992 -36.46319 0.335E-03 1.52<br />

...<br />

The individual columns have the following meaning:<br />

NFI<br />

EKINC<br />

TEMPP<br />

EKS<br />

ECLASSIC<br />

EHAM<br />

EQM<br />

DIS<br />

T<strong>CP</strong>U<br />

Step number (number of finite iterations)<br />

Fictitious kinetic energy of the electronic degrees of freedom<br />

Temperature (= kinetic energy / degrees of freedom) for atoms<br />

(ions)<br />

Kohn-Sham energy; equivalent to the potential energy in<br />

classical MD<br />

The total energy in a classical MD, but not the conserved<br />

quantity for <strong>CP</strong>-dynamics (ECLASSIC = EHAM - EKINC).<br />

Energy of the total <strong>CP</strong>-Hamiltonian; the conserved quantity.<br />

Energy of QM part (electrons + nuclei contribution)<br />

Mean squared displacement of the atoms from the initial<br />

coordinates.<br />

Time needed for this step<br />

Finally we get a summary of some averages and root mean squared deviations for<br />

some of the monitored quantities. This is quite useful to detect unwanted energy drifts<br />

or too large fluctuations in the simulation:<br />

RESTART INFORMATION WRITTEN ON FILE<br />

./RESTART.1<br />

****************************************************************<br />

* AVERAGED QUANTITIES *<br />

****************************************************************<br />

MEAN VALUE +/- RMS DEVIATION<br />

[-^2]**(1/2)<br />

ELECTRON KINETIC ENERGY 0.000867 0.300539E-03<br />

IONIC TEMPERATURE 37.2640 52.8318<br />

DENSITY FUNCTIONAL ENERGY -56.788301 0.907159<br />

CLASSICAL ENERGY -56.369667 1.48329<br />

CONSERVED ENERGY -56.368800 1.48357<br />

NOSE ENERGY ELECTRONS 0.000000 0.00000


NOSE ENERGY IONS 0.000000 0.00000<br />

CONSTRAINTS ENERGY 0.000000 0.00000<br />

RESTRAINTS ENERGY 0.000000 0.00000<br />

ION DISPLACEMENT 0.306287 0.932230E-01<br />

<strong>CP</strong>U TIME 1.5641<br />

2 – TEST<br />

To verify that the reached configuration is physically "reasonable", a good test is to<br />

run a simulation in a NVE ensemble and monitoring the temperature (column 3) and<br />

the physical energy (column 5): if after some steps these two quantities stabilize<br />

(usually oscillating around a value of temperature smaller than 100 K) then we can be<br />

confident that the RESTART.1 file previously obtained is a good minimal energy<br />

structure. On the other hand, if energy and/or temperature continuously increase that<br />

means we have not a good structure and another annealing procedure is required by<br />

starting from another point (for example after heating the system at 300 K in order to<br />

move the system away from that “wrong” energy potential basin). The test can be<br />

accomplished by the following procedure:<br />

• Create a new folder:<br />

mkdir TEST<br />

cd TEST<br />

• Copy the following files from the previous calculation:<br />

cp ../gromos* .<br />

cp ../RESTART.1 RESTART<br />

cp ../annealing.inp<br />

test.inp<br />

• Modify the test.inp file in order to change the &<strong>CP</strong>MD section so as to<br />

appear:<br />

&<strong>CP</strong>MD<br />

RESTART COORDINATES VELOCITIES WAVEFUNCTION<br />

Q<strong>MM</strong>M<br />

MOLECULAR DYNAMICS <strong>CP</strong><br />

ISOLATED MOLECULE<br />

EMASS<br />

600.<br />

TIMESTEP<br />

5.0<br />

MAXSTEP<br />

3000<br />

TRAJECTORY SAMPLE<br />

0<br />

&END<br />

Note: in the RESTART line there is no LATEST option: this way <strong>CP</strong>MD expects<br />

to read data from a file named exactly “RESTART”.<br />

• Run the test:


mpirun -np 8 cpmd.x test.inp<br />

/home/ei250498/PROGRAMS/SRC/cpmd/PP > test.out &<br />

• Monitor the simulation:<br />

tail –f test.out<br />

• When it ends you can plot on a graph the temperature and the physical energy<br />

by gnuplot:<br />

gnuplot<br />

p 'ENERGIES' u 1:3 w l<br />

p 'ENERGIES' u 1:5 w l<br />

quit<br />

3 – HEATING<br />

If the test went well, we can come back to the configuration obtained by annealing<br />

and start heating the system to room temperature. There are several methods<br />

implemented in <strong>CP</strong>MD to do that. We choose to increase the target temperature of a<br />

thermostat (coupled to the system) linearly at each step by performing a usual <strong>CP</strong><br />

dynamics. A simple Berendsen-type thermostat 21 will be applied.<br />

Two more keywords are required in &<strong>CP</strong>MD section with respect the previous input<br />

file:<br />

1. TEMPERATURE with the option RAMP; 3 numbers has to be specified on the line<br />

below the keyword: initial and target temperature in K and the ramping speed<br />

in K per atomic time unit (to get the change per timestep you have to multiply<br />

it with the value of TIMESTEP). Read the initial temperature from the output<br />

file of the annealing procedure.<br />

2. BERENDSEN with the option IONS; 2 numbers has to be specified on the line<br />

below the keyword: the target temperature (the initial one in our case) and the<br />

time constant τ in a.u. (0.12 ps is a reasonable value). <br />

The procedure to accomplish the heating can be summarized this way:<br />

• Create a new folder:<br />

mkdir HEATING<br />

21 H. J. C. Berendsen, J. P. M. Postma, W. F. van Gunsteren, A. DiNola, J. R. Haak <br />

J. Chem. Phys, 81, 3684 (1984).


cd HEATING<br />

• Copy the following files from the previous calculation:<br />

cp ../ANNEALING/gromos* .<br />

cp ../ANNEALING/RESTART.1 RESTART<br />

cp ../TEST/test.inp<br />

heating.inp<br />

• Modify heating.inp according the rules above mentioned:<br />

vi heating.inp<br />

by adding the two following lines in the &<strong>CP</strong>MD section:<br />

• Monitor the temperature:<br />

BERENDEN IONS<br />

3.8 5000<br />

TEMPERATURE RAMP<br />

3.8 340.0 1<br />

tail –f heating.out<br />

• If the temperature reach approximately the target temperature even before the<br />

MAXSTEP number of steps are performed you can stops the simulation:<br />

touch EXIT<br />

4 – PRODUCTION RUN<br />

We are finally ready to run a <strong>CP</strong> molecular dynamics in room conditions. <br />

To do that, as usual, we will create a new folder: <br />

mkdir PRODUCTION-RUN<br />

cd PRODUCTION-RUN<br />

and then we will copy the necessary files there in order to start the calculation from<br />

the last configuration got from the heating procedure:<br />

cp ../HEATING/gromos* .<br />

cp ../HEATING/RESTART.1 RESTART<br />

cp ../HEATING/heating.inp<br />

cpmd.inp<br />

To run <strong>CP</strong> molecular dynamics we need to modify the previous input file:<br />

• We want to restart from previous wavefunction, coordinates and velocities<br />

since we want to conserve the temperature information from the RESTART file.


Therefore we will preserve the option VELOCITIES in the RESTART keyword<br />

and we will remove TEMPERATURE keyword.<br />

We will replace the Berendsen thermostat with the Nose-Hoover chains 22 : this<br />

because the second kind of thermostat preserves the Maxwell distribution of<br />

the velocities and so it is more physically meaningful. In more technical<br />

words, it provides an NVT ensemble for a system in equilibrium.<br />

The keyword that turns it on is NOSE, and then you have to specify the degrees<br />

of freedom to which you want to apply it (IONS); the target temperature in<br />

Kelvin and the thermostat frequency in cm-1 are read from the next line:<br />

NOSE IONS<br />

300 4000<br />

For the choice of frequency at which the energy transfer happens, you have<br />

only to pay attention not to select a resonance vibrational frequency of your<br />

system.<br />

• We will reintroduce the keyword MAXSTEP to perform 10000 steps (or more if<br />

you have time: typical <strong>CP</strong>MD trajectories nowadays are tens of ps long!) <br />

• Finally, we want to save 10 restart files (i.e. configurations from which we<br />

will calculate the dipole moment of acetone) equally separated in time along<br />

the trajectory. We can do that by properly using the keyword RESTFILE and<br />

STORE: <br />

STORE<br />

100<br />

RESTFILE<br />

10<br />

This way <strong>CP</strong>MD will create ten restart files in sequence called RESTART.1,<br />

RESTART.2, …, RESTART.10 each one after 1000 steps of dynamics.<br />

Running meaningful Car-Parrinello dynamics simulation requires adiabaticity<br />

conditions to be met, i.e. the separation of the electronic and ionic degrees of<br />

freedom.<br />

Theoretically such separation can be achieved by separating the power spectrum of<br />

the orbital classical fields from the phonon spectrum of the ions (the gap between the<br />

lowest electronic frequency and the highest ionic frequency should be large enough).<br />

Since the electronic frequencies depend on the fictitious electron mass EMASS one<br />

should carefully optimize its value and rise the lowest frequency appropriately.<br />

The adiabaticity can be observed by running test simulations and looking at the<br />

energy components.<br />

In particular, the fictitious kinetic energy of the electronic degrees of freedom (EKINC,<br />

second column in the ENERGIES file) might have a tendency to grow. However, after<br />

an initial transfer of a little kinetic energy, the electrons should be much “colder" than<br />

the ions, since only then will the electronic structure remain close to the Born-<br />

Oppenheimer surface and thus the wavefunction and forces derived from it will be<br />

22 S. Nosé and M. L. Klein, Mol. Phys. 50, 1055 (1983); S. Nosé, Mol. Phys. 52, 255 (1984); S. Nosé, <br />

J. Chem. Phys. 81, 511 (1984); S. Nosé, Prog. Theor. Phys. Suppl. 103, 1 (1991); W. G. Hoover, <br />

Phys. Rev. A 31, 1695 (1985).


meaningful. Therefore, we must always monitor the behavior of the EKINC in order<br />

to verify the system keeps being in the adiabatic regime:<br />

TOTAL INTEGRATED ELECTRONIC DENSITY<br />

IN G-SPACE = 24.000000<br />

IN R-SPACE = 24.000000<br />

(K+E1+L+N+X+Q+M) TOTAL ENERGY = -57.87866446 A.U.<br />

(K+E1+L+N+X) TOTAL QM ENERGY = -36.47942711 A.U.<br />

(Q) TOTAL QM/<strong>MM</strong> ENERGY = 0.00000000 A.U.<br />

(M) TOTAL <strong>MM</strong> ENERGY = -21.38112962 A.U.<br />

DIFFERENCE = -0.01810773 A.U.<br />

(K) KINETIC ENERGY = 27.71754549 A.U.<br />

(E1=A-S+R) ELECTROSTATIC ENERGY = -27.62122216 A.U.<br />

(S) ESELF = 29.92067103 A.U.<br />

(R) ESR = 1.68558813 A.U.<br />

(L) LOCAL PSEUDOPOTENTIAL ENERGY = -29.41090607 A.U.<br />

(N) N-L PSEUDOPOTENTIAL ENERGY = 3.57237860 A.U.<br />

(X) EXCHANGE-CORRELATION ENERGY = -10.73722297 A.U.<br />

GRADIENT CORRECTION ENERGY =<br />

-0.58313547 A.U.<br />

NFI EKINC TEMPP EKS ECLASSIC EHAM EQM DIS T<strong>CP</strong>U<br />

1 0.00001 302.5 -57.87866 -54.48084 -54.48082 -36.47943 0.538E-05 1.50<br />

2 0.00011 302.3 -57.87721 -54.48093 -54.48082 -36.47936 0.214E-04 1.47<br />

3 0.00027 302.2 -57.87578 -54.48109 -54.48082 -36.47937 0.480E-04 1.35<br />

4 0.00037 302.0 -57.87431 -54.48118 -54.48081 -36.47937 0.849E-04 1.50<br />

5 0.00039 301.9 -57.87280 -54.48119 -54.48080 -36.47937 0.132E-03 1.35<br />

6 0.00039 301.8 -57.87125 -54.48118 -54.48079 -36.47937 0.190E-03 1.35<br />

7 0.00037 301.6 -57.86966 -54.48116 -54.48078 -36.47937 0.258E-03 1.67<br />

8 0.00037 301.5 -57.86803 -54.48115 -54.48078 -36.47936 0.336E-03 1.35<br />

9 0.00037 301.3 -57.86636 -54.48114 -54.48077 -36.47936 0.425E-03 1.46<br />

NBPML: 80733 ELEMENTS IN THE PAIRLIST<br />

10 0.00037 301.2 -57.86466 -54.48114 -54.48077 -36.47935 0.523E-03 1.37<br />

11 0.00036 301.0 -57.86291 -54.48113 -54.48077 -36.47934 0.632E-03 1.46<br />

12 0.00035 300.9 -57.86112 -54.48111 -54.48076 -36.47932 0.752E-03 1.35<br />

13 0.00035 300.7 -57.85927 -54.48107 -54.48073 -36.47931 0.881E-03 1.35<br />

14 0.00034 300.5 -57.85740 -54.48106 -54.48072 -36.47929 0.102E-02 1.46<br />

15 0.00033 300.4 -57.85551 -54.48106 -54.48073 -36.47928 0.117E-02 1.35<br />

16 0.00032 300.2 -57.85357 -54.48105 -54.48073 -36.47927 0.133E-02 1.46<br />

17 0.00031 300.0 -57.85159 -54.48103 -54.48072 -36.47926 0.150E-02 1.35<br />

18 0.00030 299.8 -57.84956 -54.48101 -54.48070 -36.47925 0.169E-02 1.51<br />

19 0.00030 299.7 -57.84751 -54.48099 -54.48070 -36.47924 0.188E-02 1.42<br />

Ensuring adiabaticity of <strong>CP</strong> dynamics consists of decoupling the two subsystems and<br />

thus minimizing the energy transfer from ionic degrees of freedom to electronic ones.<br />

In this sense the system during <strong>CP</strong> dynamics simulation should be kept in a<br />

metastable state.<br />

Hint: any time you notice something strange (and even if you do not!) I very <br />

useful suggestion is ALWAYS look at your simulations by some visualization tool: <br />

the most of the problem are immediately identified at a glance… <br />

To visualize a <strong>CP</strong>-­‐<strong>MM</strong> simulation you can use vmd: 23 <br />

23 Any command of vmd can be also execute by the GUI of the program: refer to its manual for <br />

details.


vmd -g96 CRD_INI.g96 -cpmd TRAJECTORY<br />

5 – DIPOLE CALCULATION<br />

As a last step we want to calculate the dipole moment for each snapshot saved in <br />

ten restarts file previously collected and then make the mean value in order to <br />

give this way an estimate of the temperature and entropic effects due to the <br />

environment formed by the solvent. <br />

Create a new folder and copy the restart files and the other needed files in this <br />

directory: <br />

mkdir DIPOLE_CALCULATION<br />

cp ../ PRODUCTION-RUN/RESTART.* .<br />

cp ../ PRODUCTION-RUN/gromos* .<br />

cp ../ PRODUCTION-RUN/cpmd.inp dipole.in<br />

cp ../PRODUCTION-RUN/LATEST .<br />

and modify the input file to calculate the dipole moment as you have learnt in the <br />

second paragraph: <br />

…<br />

&<strong>CP</strong>MD<br />

Q<strong>MM</strong>M<br />

RESTART WAVEFUNCTION COORDINATES LATEST<br />

PROPERTIES<br />

RESTFILE<br />

0<br />

&END<br />

&PROP<br />

DIPOLE MOMENT<br />

&END<br />

…<br />

The keyword LATEST is inserted in order to perform the ten calculations in a <br />

comfortable way: in fact, if you want <strong>CP</strong>MD read the RESTART.X file you only need <br />

to replace that name in the first line of the file LATEST. The keyword RESTFILE <br />

with value 0 guarantees that <strong>CP</strong>MD does not write a RESTART file at the end of <br />

each calculation (we do not need it, now), so avoiding it overwrites the ones we <br />

have copied from the PRODUCTION-­‐RUN folder. <br />

So, you can perform the following sequence of very fast calculations (less than 3 <br />

sec!), being careful to modify the name in the first line of the file LATEST each <br />

time:


mpirun -np 2 cpmd.x dipole.inp /home/ei250498/PROGRAMS/SRC/cpmd/PP ><br />

dipole1.out &<br />

mpirun -np 2 cpmd.x dipole.inp /home/ei250498/PROGRAMS/SRC/cpmd/PP ><br />

dipole2.out &<br />

mpirun -np 2 cpmd.x dipole.inp /home/ei250498/PROGRAMS/SRC/cpmd/PP ><br />

dipole3.out &<br />

mpirun -np 2 cpmd.x dipole.inp /home/ei250498/PROGRAMS/SRC/cpmd/PP ><br />

dipole4.out &<br />

mpirun -np 2 cpmd.x dipole.inp /home/ei250498/PROGRAMS/SRC/cpmd/PP ><br />

dipole5.out &<br />

mpirun -np 2 cpmd.x dipole.inp /home/ei250498/PROGRAMS/SRC/cpmd/PP ><br />

dipole6.out &<br />

mpirun -np 2 cpmd.x dipole.inp /home/ei250498/PROGRAMS/SRC/cpmd/PP ><br />

dipole7.out &<br />

mpirun -np 2 cpmd.x dipole.inp /home/ei250498/PROGRAMS/SRC/cpmd/PP ><br />

dipole8.out &<br />

mpirun -np 2 cpmd.x dipole.inp /home/ei250498/PROGRAMS/SRC/cpmd/PP ><br />

dipole9.out &<br />

mpirun -np 2 cpmd.x dipole.inp /home/ei250498/PROGRAMS/SRC/cpmd/PP ><br />

dipole10.out &<br />

Note: you could have skipped this procedure by using the keyword <br />

DIPOLE DYNAMICS SAMPLE<br />

1000<br />

in the previous <strong>CP</strong> calculation. Such a keyword makes <strong>CP</strong>MD save the <br />

coordinates of the dipole moments every 1000 steps on a file called DIPOLE. An <br />

example is saved in the folder: <br />

/home/ei250498/TUTORIALS/ACETONE/9-<strong>CP</strong>MD-<strong>MM</strong>/4-PRODUCTION-RUN/DIPOLE/<br />

However, these values are polarizations (in a.u.): they have to be multiply by the <br />

volume to obtain the correct values of the dipole in a.u. <br />

At this point you have only to extract each value of the dipole moment: <br />

grep -B 1 -A 4 "X<br />

grep -B 1 -A 4 "X<br />

Y" dipole1.out<br />

Y" dipole2.out<br />

…<br />

and calculate the arithmetic mean D. <br />

What is the difference with respect the value in vacuum we calculate in the <br />

second paragraph?


What is the qualitative reason of such a difference? <br />

The solvent effect can be separated in two different components: the <br />

geometry variation of the solute with respect to the gas phase (temperature <br />

effect), and the different polarization of the wavefunction. <br />

How could you proceed if you wanted to identify the contribution of the two <br />

parts?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!