Personal tools
You are here: Home Tutorial The Basics of CPMD - Wavefunction Optimization

The Basics of CPMD - Wavefunction Optimization

The first example will demonstrate some of the basic steps of performing a CPMD calculation with a very simple molecule: hydrogen, and a very simple task: calculate the electronic structure. We will use that as an example to have a look at the input file format, and how to read the output.

Wavefunction Optimization

 

Input File Format

 

For nearly all CPMD calculations, you first have to calculate the electronic structure of your system, and use that as a base for further calculations. For our first calculation you'll need the input file 1-h2-wave.inp and the pseudo-potential file H_MT_LDA.psp.


Now let's have a look at the input file. The input is organized in sections which start with &NAME and end with &END. Everything outside those sections is ignored. Also all keywords have to be in upper case or else they will be ignored. The sequence of the sections does not matter, nor does the order of keywords, except where noted in the manual. A minimal input file must have a &CPMD, &SYSTEM and an &ATOMS section. For more details on the input syntax, please have a look at the CPMD manual.

 

&INFO
isolated hydrogen molecule.
single point calculation.
&END

 

The input file starts with an (optional) &INFO section. This section allows you to put comments about the calculation into the input file and they will be repeated in the output file. This can be very useful to match input and output files.

    

&CPMD
 OPTIMIZE WAVEFUNCTION
 CONVERGENCE ORBITALS
  1.0d-7

 
This first part of &CPMD section instructs the program to do a wavefunction optimization (i.e. a single point calculation) with a very tight convergence criterion (the default is 1.0d-5).

    

 CENTER MOLECULE ON
 PRINT FORCES ON
&END

 
The rest of the &CPMD section has the molecule moved to the center of the simulation cell and asks to calculate and print the forces on each atom at the end of the run.

    

&SYSTEM
 SYMMETRY
   1
 ANGSTROM
 CELL
   8.00 1.0 1.0  0.0  0.0  0.0
 CUTOFF
   70.0
&END

 
The &SYSTEM section contains various parameters related to the simulations cell and the representation of the electronic structure. The keywords SYMMETRY, CELL and CUTOFF are required and define the (periodic) symmetry, shape, and size of the simulation cell, as well as the plane wave cutoff (i.e. the size of the basis set). The keyword ANGSTROM additionally indicates that all lengths and coordinates are given in angstrom (and not in a.u.).

    

&DFT
 FUNCTIONAL LDA
&END

 
The &DFT section is used to select the density functional and related parameters. In this case we go with the local density approximation (which also is the default).

&ATOMS
*H_MT_LDA.psp
  LMAX=S
  2
  4.371   4.000   4.000
  3.629   4.000   4.000
&END

 
Finally the &ATOMS section is needed to specify the atom coordinates and the pseudopotentials, that are used to represent them. The detailed syntax of the pseudopotential specification is a bit complicated and will not be needed nor discussed here. If you want to know more, please have a look at the Further Details of the Input section of the CPMD manual.

Output File Format

 

Now type:
    

  cpmd.x 1-h2-wave.inp> 1-h2-wave.out

 
to start the calculation, which should be completed in less than a minute. The main output of the CPMD program is now in the file 1-h2-wave.out. Let's have a closer look at the contents of this file.
    

 PROGRAM CPMD STARTED AT: Mon Jul 25 15:46:31 2011
 
 SETCNST| USING: CODATA 2006 UNITS


               ******  ******    ****  ****  ******   
              *******  *******   **********  *******  
             ***       **   ***  ** **** **  **   *** 
             **        **   ***  **  **  **  **    ** 
             **        *******   **      **  **    ** 
             ***       ******    **      **  **   *** 
              *******  **        **      **  *******  
               ******  **        **      **  ******   

                          VERSION 3.15.1


                COMPILED WITH GROMOS-AMBER QM/MM SUPPORT

                            COPYRIGHT
                      IBM RESEARCH DIVISION
                MPI FESTKOERPERFORSCHUNG STUTTGART

                       The CPMD consortium
                  Home Page: http://www.cpmd.org
               Mailing List: cpmd-list@cpmd.org
                     E-mail: cpmd@cpmd.org


                  ***  Jul 25 2011 -- 12:49:25  ***

We start with the header, where you can see, when the run was started, what version on CPMD you were using, and when it was compiled.

 THE INPUT FILE IS:                              ../1-h2-wave.inp
 THIS JOB RUNS ON:                                      bladeppc7
 THE CURRENT DIRECTORY IS: 
                /homes/sp/fd/teo/WebIN/references/01-h2/1-h2-wave
 THE TEMPORARY DIRECTORY IS: 
                /homes/sp/fd/teo/WebIN/references/01-h2/1-h2-wave
 THE PROCESS ID IS:                                          4298
 

Here we have some technical information about the environment, where this job was run.

 ******************************************************************************
 * INFO - INFO - INFO - INFO - INFO - INFO - INFO - INFO - INFO - INFO - INFO *
 ******************************************************************************
 * isolated hydrogen molecule.                                                *
 * single point calculation.                                                  *
 ******************************************************************************

Here we see the contents of the &INFO section copied to the output.

 SINGLE POINT DENSITY OPTIMIZATION
 
 USING SEED  123456 TO INIT. PSEUDO RANDOM NUMBER GEN.
 PATH TO THE RESTART FILES:                                    ./
 GRAM-SCHMIDT ORTHOGONALIZATION
 MAXIMUM NUMBER OF STEPS:                             10000 STEPS
 MAXIMUM NUMBER OF ITERATIONS FOR SC:                 10000 STEPS
 PRINT INTERMEDIATE RESULTS EVERY                     10001 STEPS
 STORE INTERMEDIATE RESULTS EVERY                     10001 STEPS
 NUMBER OF DISTINCT RESTART FILES:                              1
 TEMPERATURE IS CALCULATED ASSUMING EXTENDED BULK BEHAVIOR 
 FICTITIOUS ELECTRON MASS:                               400.0000
 TIME STEP FOR ELECTRONS:                                  5.0000
 TIME STEP FOR IONS:                                       5.0000
 CONVERGENCE CRITERIA FOR WAVEFUNCTION OPTIMIZATION:   1.0000E-07
 WAVEFUNCTION OPTIMIZATION BY PRECONDITIONED DIIS
 THRESHOLD FOR THE WF-HESSIAN IS                            .5000
 MAXIMUM NUMBER OF VECTORS RETAINED FOR DIIS:                  10
 STEPS UNTIL DIIS RESET ON POOR PROGRESS:                      10
 FULL ELECTRONIC GRADIENT IS USED 
 SPLINE INTERPOLATION IN G-SPACE FOR PSEUDOPOTENTIAL FUNCTIONS
    NUMBER OF SPLINE POINTS:                                 5000

This section now gives you a summary of the parameters read in from the &CPMD section, or their respective default settings.

    
 EXCHANGE CORRELATION FUNCTIONALS 
    LDA EXCHANGE:                                            NONE
    LDA XC THROUGH PADE APPROXIMATION
    S.GOEDECKER, J.HUTTER, M.TETER PRB 54 1703 (1996)
 
 ***     DETSP| SIZE OF THE PROGRAM IS  kBYTES ***

 ***************************** ATOMS ****************************
   NR   TYPE        X(bohr)        Y(bohr)        Z(bohr)     MBL
    1      H       8.259993       7.558904       7.558904       3
    2      H       6.857816       7.558904       7.558904       3
 ****************************************************************

 NUMBER OF STATES:                                              1
 NUMBER OF ELECTRONS:                                     2.00000
 CHARGE:                                                   .00000
 ELECTRON TEMPERATURE(KELVIN):                             .00000
 OCCUPATION
  2.0

 

[...]

 

 
 ****************************************************************
 *   ATOM       MASS   RAGGIO NLCC              PSEUDOPOTENTIAL *
 *      H     1.0080   1.2000   NO                  S     LOCAL *
 ****************************************************************
 

This part of the output tells you which and how many atoms and electrons are used, what functional and what pseudopotentials were used, and what the values of some related parameters are.

 

Immediately after, you can find any information related to your parallel (in case you use a parallel executable) execution. Specifically the MPI information:

 

 PARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARA
  NCPU     NGW     NHG  PLANES  GXRAYS  HXRAYS ORBITALS Z-PLANES
     0    2135   17037      10     161     637       0       1
     1    2138   17072      11     160     636       0       1
     2    2142   17074      10     160     636       0       1
     3    2142   17078      11     160     636       0       1
     4    2144   17076      10     160     636       1       1
     5    2142   17088      11     160     636       0       1
     6    2142   17086      10     160     636       0       1
     7    2148   17094      11     160     636       0       1
                G=0 COMPONENT ON PROCESSOR :     0
 PARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARAPARA

 

 and OpenMP:

 OPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPEN
 NUMBER OF CPUS PER TASK                                        1
 OPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPENMPOPEN

 

where the number of MPI tasks (2 for this example)  and the number of CPU per task (1 in this example), as specified by the user, are summarized.

 

    
************************** SUPERCELL ***************************
 SYMMETRY:                                           SIMPLE CUBIC
 LATTICE CONSTANT(a.u.):                                 15.11781
 CELL DIMENSION:  15.1178  1.0000  1.0000   .0000   .0000   .0000
 VOLUME(OMEGA IN BOHR^3):                              3455.14726
 LATTICE VECTOR A1(BOHR):           15.1178      .0000      .0000
 LATTICE VECTOR A2(BOHR):             .0000    15.1178      .0000
 LATTICE VECTOR A3(BOHR):             .0000      .0000    15.1178
 RECIP. LAT. VEC. B1(2Pi/BOHR):       .0661      .0000      .0000
 RECIP. LAT. VEC. B2(2Pi/BOHR):       .0000      .0661      .0000
 RECIP. LAT. VEC. B3(2Pi/BOHR):       .0000      .0000      .0661
 REAL SPACE MESH:                    84           84           84
 WAVEFUNCTION CUTOFF(RYDBERG):                           70.00000
 DENSITY CUTOFF(RYDBERG):          (DUAL= 4.00)         280.00000
 NUMBER OF PLANE WAVES FOR WAVEFUNCTION CUTOFF:             17133
 NUMBER OF PLANE WAVES FOR DENSITY CUTOFF:                 136605
 ****************************************************************

 

This part of the output presents the settings read in from the &SYSTEM section of the input file and some derived parameters.

 

 [...]

 (K+E1+L+N+X)           TOTAL ENERGY =           -1.09689770 A.U.
 (K)                  KINETIC ENERGY =            0.81247072 A.U.
 (E1=A-S+R)     ELECTROSTATIC ENERGY =           -0.48640053 A.U.
 (S)                           ESELF =            0.66490380 A.U.
 (R)                             ESR =            0.17302593 A.U.
 (L)    LOCAL PSEUDOPOTENTIAL ENERGY =           -0.84879440 A.U.
 (N)      N-L PSEUDOPOTENTIAL ENERGY =            0.00000000 A.U.
 (X)     EXCHANGE-CORRELATION ENERGY =           -0.57417350 A.U.

 

After some output to report the setup of the initial guess for the electron structure, we now see a summary of the various energy contribution of to the total energy of the system, based on the initial guess. Now the program is ready to start the wavefunction optimization. The image illustrates, how the electron density is redistributed: density from the blue area is moved to the red area.

 

Starting from the initial guess based on atomic wavefunctions the wavefunction for the total system is now calculated with an optimization procedure. You can follow the progress of the optimization in the output file.

 

 NFI      GEMAX       CNORM           ETOT        DETOT      TCPU
   1  3.816E-02   2.886E-03      -1.096898    0.000E+00       .03
   2  8.838E-03   1.170E-03      -1.130522   -3.362E-02       .03
   3  2.644E-03   2.718E-04      -1.132363   -1.841E-03       .03
   4  5.300E-04   5.257E-05      -1.132456   -9.282E-05       .03
   5  1.357E-04   1.007E-05      -1.132459   -3.693E-06       .03
   6  3.758E-05   2.015E-06      -1.132460   -1.654E-07       .03
   7  6.721E-06   4.105E-07      -1.132460   -9.583E-09       .03
   8  6.526E-07   1.316E-07      -1.132460   -3.287E-10       .03
   9  1.064E-07   3.130E-08      -1.132460   -1.792E-11       .04
  10  1.702E-08   6.820E-09      -1.132460   -8.251E-13       .04

 

The columns have the following meaning:

  • NFI:    Step number (number of finite iterations)
  • GEMAX:    largest off-diagonal component
  • CNORM:    average of the off-diagonal components
  • ETOT:    total energy
  • DETOT:    change in total energy to the previous step
  • TCPU:    (CPU) time for this step.

 

And you can see that the calculation stops after the convergence criterion of 1.0d-7 has been reached for the GEMAX value.

    

****************************************************************
 *                                                              *
 *                        FINAL RESULTS                         *
 *                                                              *
 ****************************************************************

   ATOM          COORDINATES            GRADIENTS (-FORCES)
   1  H  8.2600  7.5589  7.5589   1.780E-02  1.506E-17  3.844E-17
   2  H  6.8578  7.5589  7.5589  -1.780E-02 -2.366E-17  1.459E-17
 
 ****************************************************************

 
 ELECTRONIC GRADIENT:
    MAX. COMPONENT =    7.63671E-09         NORM =    1.02554E-09
 NUCLEAR GRADIENT: 
    MAX. COMPONENT =    1.77985E-02         NORM =    1.02760E-02
 

 TOTAL INTEGRATED ELECTRONIC DENSITY
    IN G-SPACE =                                         2.000000
    IN R-SPACE =                                         2.000000

 (K+E1+L+N+X)           TOTAL ENERGY =           -1.13245953 A.U.
 (K)                  KINETIC ENERGY =            1.09007152 A.U.
 (E1=A-S+R)     ELECTROSTATIC ENERGY =            -.47319175 A.U.
 (S)                           ESELF =             .66490380 A.U.
 (R)                             ESR =             .17302593 A.U.
 (L)    LOCAL PSEUDOPOTENTIAL ENERGY =           -1.09902230 A.U.
 (N)      N-L PSEUDOPOTENTIAL ENERGY =             .00000000 A.U.
 (X)     EXCHANGE-CORRELATION ENERGY =            -.65031699 A.U.
 
 ****************************************************************

 

Here we have the final summary of the results from our single point calculation. Since we have requested the output of the (atomic) forces you can see them alongside the atom coordinates. Please note, that regardless of the input units, coordinates in the CPMD output are always in atomic units. Although the calculation started with the experimental H-H bond length there are still some significant forces in the direction of the molecular axis. A clear indication, that within the approximations used in this calculation the equilibrium H-H distance lies somewhere else (but not too far away).

    

 ================================================================
                      BIG MEMORY ALLOCATIONS 
 XF                158950                PSI               158950
 RHOE               79475                GNL                80320
 INZHP              76667                YF                158950
 ATWFR             100400                GK                 51111
 WORK              100400                SCR               113859
 ----------------------------------------------------------------
 [PEAK NUMBER   90]      PEAK MEMORY      1379357 =   11.0 MBytes
 ================================================================


 ****************************************************************
 *                                                              *
 *                            TIMING                            *
 *                                                              *
 ****************************************************************
 SUBROUTINE            CALLS         CPU TIME        ELAPSED TIME
     LOADPA                1              .18                 .18
     GLOSUM               98              .13                 .13
      ATRHO                1              .13                 .13
     FFTCOM               25              .09                 .09
   N-FFTCOM               37              .06                 .06
     XCENER               12              .06                 .06
      NUMPW                1              .03                 .03
      RGGEN                1              .03                 .03
     FORMFN                1              .02                 .02
    FFT-G/S              161              .02                 .02
    INVFFTN               24              .02                 .02
      FWFFT               12              .02                 .02
     INVFFT               13              .02                 .02
     FWFFTN               13              .01                 .01
     RHOOFR               11              .01                 .01
     EICALC               12              .01                 .01
    VOFRHOA               12              .01                 .01
     GORDER                1              .00                 .00
      ODIIS               11              .00                 .00
       VPSI               13              .00                 .00
      PHASE               25              .00                 .00
    VOFRHOB               12              .00                 .00
      PUTPS                1              .00                 .00
 ----------------------------------------------------------------
 TOTAL TIME                               .85                 .85
 ****************************************************************

       CPU TIME :    0 HOURS  0 MINUTES   .91 SECONDS     
   ELAPSED TIME :    0 HOURS  0 MINUTES   .91 SECONDS     
 ***      CPMD| SIZE OF THE PROGRAM IS  kBYTES ***

 PROGRAM CPMD ENDED AT:   Mon Jul 25 15:46:32 2011

 

In the final part of the output, we see some statistics regarding memory and CPU time usage. This is mainly of interest for CPMD developers, but it does not hurt to have an occasional look and see if the numbers are reasonable. Please note, that the retrieval of this information is highly platform dependent, and that on some platforms the output may be bogus or very unreliable.

 

Finally for parallel jobs, you will also get a summary on the performance of MPI (same consideration as above holds regarding the reliability of these numbers):

 

 ================================================================
 = COMMUNICATION TASK  AVERAGE MESSAGE LENGTH  NUMBER OF CALLS  =
 = SEND/RECEIVE               59868. BYTES                 21.  =
 = BROADCAST                   5567. BYTES                302.  =
 = GLOBAL SUMMATION             548. BYTES                153.  =
 = GLOBAL MULTIPLICATION          0. BYTES                  1.  =
 = ALL TO ALL COMM           496933. BYTES                 62.  =
 =                             PERFORMANCE          TOTAL TIME  =
 = SEND/RECEIVE             4043.849  MB/S            .000 SEC  =
 = BROADCAST                  52.110  MB/S            .032 SEC  =
 = GLOBAL SUMMATION            1.920  MB/S            .131 SEC  =
 = GLOBAL MULTIPLICATION        .000  MB/S            .001 SEC  =
 = ALL TO ALL COMM           207.264  MB/S            .149 SEC  =
 = SYNCHRONISATION                                    .077 SEC  =
 ================================================================

 

Other Output Files

 

Apart from the console output, our CPMD run created a few other files. Most importantly the restart file RESTART.1 and its companion file LATEST. The restart file contains the final state of the system when the program terminated. This is needed to start other calculations, which need a converged wavefunction as a starting point. The file GEOMETRY.xyz contains the coordinates of the atoms in a format, that can be read in by many molecular visualization programs. The other files (for instance GEOMETRY in this example) can be ignored.

Document Actions