> On the current gOpenMol homepage it is mentioned that the new > PC Gamess version supports the creation of Cube Files like > Gaussian does. > Is that right ? If, yes how can i do that ? You should add the following lines to your PC GAMESS/Firefly job: $ELDENS IEDEN=1 $END $ELPOT IEPOT=1 $END $CUBE CUBE=.T. mesh=coarse $END This will produce cube info for both density and ESP. You can choose to specify only $ELDENS or $ELPOT group, or both. Also, you can use MORB=xxx in the $ELDENS group to generatedensity(not MO itself!) for only MO # xxx. The valid values for mesh keyword in $cube group are: coarse, medium, fine. There are several other keywords in the $cube group, allowing one to finer control grid parameters, namely:

CUBE DOCUMENTATION: OVERVIEW: The CUBE capability provides the ability to punch a 3 dimensional grid of electrostatic potential or electron density information suitable for 3D isosufacing or 3D volumetric rendering. The cube output data are in the standard 'cube' format used by Gaussian and are suitable for use as input to a wide variety of available visualization programs (e.g. gOpenMol, ReView 3, Molden, etc). INPUT: Cube input to PC GAMESS/Firely is performed using the $CUBE namelist in combination with the properties namelists $ELPOT or/ and $ELDENS. Specific $CUBE namelist variables and their definitions are as follow: VARIABLE VALUES DEFINITION cube t or f A logical flag that enables (t) ordisables (f) the generation of cube data. Default is f(false). mesh Specifies desired density of points along each side of the cube. coarse 40 points medium 80 points (the default) fine 100 points Using these mesh values as an initial guess, The cube generation program attempts to provide a common size of increment along each axis to minimize distortion in the visualization. In the process, the actual number of points along each axis may differ slightly from that listed here. nxcube >0 The user input density of points along each x side of the cube. Default is 0. This is an integer variable. nycube >0 The user input density of points along each y side of the cube. Default is 0. This is an integer variable. nzcube >0 The user input density of points along each z side of the cube. Default is 0. This is an integer variable. Note: if nxcube, nycube and nzcube are all equal to 0, all cube input will be ignored except for cube and mesh. All the cube parameters will be generated internally using the value of mesh as described previously. x0cube The x-coordinate of the cube origin. The default is 0.0 This is a floating point variable. Units are bohr (au). y0cube The y-coordinate of the cube origin. The default is 0.0 This is a floating point variable. Units are bohr (au). z0cube The z-coordinate of the cube origin. The default is 0.0 This is a floating point variable. Units are bohr (au). xincub > 0.0 The increment (or interval size) along the x-axis of the cube. The default is 0.0 This is a floating point variable. Units are bohr (au). yincub > 0.0 The increment (or interval size) along the y-axis of the cube. The default is 0.0 This is a floating point variable. Units are bohr (au). zincub > 0.0 The increment (or interval size) along the z-axis of the cube. The default is 0.0 This is a floating point variable. Units are bohr (au). OUTPUT: If $ELPOT group is provided with IEPOT = 1 and the $CUBE group is provided with cube=.t., then a 3D "cube" format info on electrostatic potential data will be punched. The structure of the data follows the GAUSSIAN format: Title record for density source information NAtoms, x0cube, y0cube, z0cube nxcube, xincub, 0., 0. nycube, 0., yincub, 0. nzcube, 0., 0., zincub IA1, Chg1, X1, Y1, Z1 Atomic number, charge, and coordinates of the first atom ... IAn, Chgn, Xn, Yn, Zn Atomic number, charge, and coordinates of the last atom. (nxcube*nycube) records, each of length nzcube values of the potential at each point in the grid Note that a separate write is used for each record. If one wishes to read the values of the potential back into an array dimensioned X(nzcube,nycube,nxcube) code like the following Fortran loop may be used: Do 10 I1 = 1, nxcube Do 10 I2 = 1, nycube Read(n,'(6E13.5)') (X(I3,I2,I1),I3=1,nzcube) 10 Continue where n is the unit number corresponding to the cube file. Similarly, if $ELDENS group is provided with IEDEN = 1, MORB = 0 and the $CUBE group is provided with cube=.t., then a 3D "cube" of total density data will be punched. The structure of the data follows the GAUSSIAN format as discussed previously.

Note, the implementation of the "cube" density data generations with the PC GAMESS v. 6.0 was very slow. The performance of this code was increased dramatically for the PC GAMESS versions 6.1 and above. !The following sample input file will punch 8 $cube groups: !RHF density /RHF density ESP !MP2 density/MP2 density ESP !at initial and final geometries. $CONTRL SCFTYP=RHF MPLEVL=2 RUNTYP=optimize $END $SYSTEM TIMLIM=200 MEMORY=10000000 $END $BASIS GBASIS=N21 NGAUSS=3 $END $GUESS GUESS=HUCKEL $END $ELDENS IEDEN=1 $END $ELPOT IEPOT=1 $END $CUBE CUBE=.T. MESH=coarse $END $DATA Water...RHF/3-21G...exp.geom...R(OH)=0.95781,A(HOH)=104.4776 Cnv 2 OXYGEN 8.0 HYDROGEN 1.0 0.0 0.7572157 0.5865358 $END

PC GAMESS v. 6.1 specific documentation

As to the expanded cube capabilities, they are as follows. There are several new keywords in the $ELDENS group, namely: spind =.f.(default)/.t. - calculate spin density if available diffd =.f.(default)/.t. - calculate delta density skiphf=.t.(default)/.f. - skip (HF - initial guess) delta density calculation derivs(1)=0,0,0(default) - any combination of up to three numbers 0,1 & 2. Defines the level of derivatives required. 0 means density, 1 means the density gradient (or its norm), 2 - density Laplacian. Also, the 'where' variable of the $ELPOT and $ELDENS groups can be assigned value cube: where= cube . The where=cube is the default in the presence of the $cube group. Thus, it is not necessary to use $cube cube=.t. $end, it is enough simply to use $cube $end. Finally, the 'mesh' variable can be assigned value 'ultra' (200 points). As an example, see the input lines below.

PC GAMESS v. 6.4 specific documentation

There are several new keywords in the $ELDENS group, namely: grdfld= .f.(default)/.t. - modifies density gradient calculations so that the 3-component vector gradient field is written (by default, the norm of the gradient is written). icorbs - integer array - indices of alpha MOs (positive) and (if available) beta MOs/NOs (negative) for which to calculate the values of orbitals (not the density!). Most of other $cube-related options are disabled in the presence of ICORBS array. In the punch file, the inner loop of the printout is over different MOs, then over z coordinate, etc... uhfnos= .f.(default)/.t. modifies icorbs array entries so that negative entries are treated as requests to calculate UHF NOs, not UHF beta orbitals. Example 1: $CONTRL SCFTYP=RHF RUNTYP=optimize CITYP=GUGA $END $SYSTEM TIMLIM=3000 MEMORY=30000000 $END $CIDRT NFZC=1 NDOC=4 NVAL=57 NEXT=0 IEXCIT=2 GROUP=C2V $END $BASIS GBASIS=TZV NDFUNC=3 NPFUNC=3 DIFFSP=.T. DIFFS=.T. $END $CUBE MESH=coarse $END $ELDENS IEDEN=1 spind=.f. diffd=.t. skiphf=.f. derivs(1)=0,1,2 $END $STATPT OPTTOL=1D-5 $END $DATA H2O CNV 2 O 8.0 0.0000000000 0.0000000000 0.7205815395 H 1.0 0.0000000000 0.7565140024 0.1397092302 $END Example 2: $CONTRL SCFTYP=RHF RUNTYP=optimize CITYP=GUGA $END $SYSTEM TIMLIM=3000 MEMORY=30000000 $END $CIDRT NFZC=1 NDOC=4 NVAL=57 NEXT=0 IEXCIT=2 GROUP=C2V $END $BASIS GBASIS=TZV NDFUNC=3 NPFUNC=3 DIFFSP=.T. DIFFS=.T. $END $CUBE MESH=ultra $END $ELDENS IEDEN=1 spind=.f. diffd=.t. skiphf=.t. derivs(1)=0,2 $END $STATPT OPTTOL=1D-5 $END $DATA H2O CNV 2 O 8.0 0.0000000000 0.0000000000 0.7205815395 H 1.0 0.0000000000 0.7565140024 0.1397092302 $END Example 3: $CONTRL SCFTYP=UHF RUNTYP=energy icharg=+1 mult=2 $END $SYSTEM TIMLIM=3000 MEMORY=30000000 $END $BASIS GBASIS=TZV NDFUNC=3 NPFUNC=3 DIFFSP=.T. DIFFS=.T. $END $CUBE MESH=coarse $END ! Request to calculate first 9 alpha and 7 beta orbitals. ! Minus sign means beta orbitals if available, or natural orbitals, ! if available. Note that program will rearrange MOs to simplify processing. ! The order of MOs here is not important. ! Look into punch cube printout to find the actual order of orbitals. $ELDENS IEDEN=1 ICORBS(1)=1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,-7,8,9 $END $DATA H2O CNV 2 O 8.0 0.0000000000 0.0000000000 0.7205815395 H 1.0 0.0000000000 0.7565140024 0.1397092302 $END Example 4: $CONTRL SCFTYP=ROHF RUNTYP=energy icharg=+1 mult=2 $END $SYSTEM TIMLIM=3000 MEMORY=30000000 $END $BASIS GBASIS=TZV NDFUNC=3 NPFUNC=3 DIFFSP=.T. DIFFS=.T. $END $CUBE MESH=coarse $END $ELDENS IEDEN=1 MORB=4 $END $DATA H2O CNV 2 O 8.0 0.0000000000 0.0000000000 0.7205815395 H 1.0 0.0000000000 0.7565140024 0.1397092302 $END Example 5: $CONTRL SCFTYP=UHF RUNTYP=energy icharg=+1 mult=2 $END $SYSTEM TIMLIM=3000 MEMORY=30000000 $END $BASIS GBASIS=TZV NDFUNC=3 NPFUNC=3 DIFFSP=.T. DIFFS=.T. $END $CUBE MESH=coarse $END $ELDENS IEDEN=1 spind=.t. grdfld=.t. derivs(1)=0,1,2 $END $DATA H2O CNV 2 O 8.0 0.0000000000 0.0000000000 0.7205815395 H 1.0 0.0000000000 0.7565140024 0.1397092302 $END

Last updated: March 18, 2009