Friday, July 24, 2009

Some GAMESS input basics

Update 2 August 2009: I have changed the discussion regarding the SG1 keyword. New text is in italics.

I have planned some posts in which some details of the GAMESS input will become important, so this post is about the basic anatomy of a GAMESS input file, and some non-default settings that I use all the time.

Here is an input file for a single point energy calculation at the B3LYP/6-31G(d) level of theory for the H2 molecule:

$contrl runtyp=energy dfttyp=b3lyp $end
$basis gbasis=n31 ngauss=6 ndfunc=1 $end
$data
Title line: you can write anything here
c1
H 1.0 0.0 0.0 0.0
H 1.0 0.753 0.0 0.0
$end



• The order of the groups doesn’t matter, so you can put the $basis group below the $data group.

• You can have several groups of the same kind (e.g. two $contrl groups). If you have the same keyword in both groups, it is the value in the last group that counts. For example,

$contrl runtyp=energy dfttyp=b3lyp $end
$contrl runtyp=optimize $end

is perfectly legal, and will result in an geometry optimization.

• The order of the keywords within a group doesn’t matter.

$contrl runtyp=energy dfttyp=b3lyp $end

is the same as

$contrl dfttyp=b3lyp runtyp=energy $end

• Note that there is a space in front of any line starting with a $ sign. This is important and if you leave it out GAMESS will not read that line. Note you can use this to “uncomment” a line by adding, for example, a ! For example, this

$contrl runtyp=energy dfttyp=b3lyp $end
!$contrl runtyp=optimize $end

will result in a single point energy calculation

• You can use capital letters if you want.

• For parameters that can be true for false, you can use either “.true.” or “.t.” and “.false.” or “.f.” (there's an example below).

• A line can only be 80 characters long. Anything after that is ignored. It is perfectly legal to split a line, for example:

$contrl runtyp=energy
dfttyp=b3lyp $end


Some useful options

Almost all of the parameters have default (but there is no default basis set and no defaults in $data). For example, the default runtyp is energy, so

$contrl dfttyp=b3lyp $end

will result in a single point energy evaluation. If $contrl is missing entirely, GAMESS will compute a single point energy at the RHF level.

There is a few defaults that I almost always change

Single point energy calculations (not AM1 or PM3)

$scf dirscf=.t. $end

This tells GAMESS to recompute the integrals at each SCF step rather than reading them from hard disk. Most computers can recompute a number faster than they can find it on the hard disk.

DFT single point energy calculations

$dft sg1=.t. $end

Computing the DFT energy requires a numerical integration over a grid. The default grid is very fine (has a lot of points). Standard Grid 1 (sg1) is adequate for most purposes and much faster. Note that this leads to inaccurate gradients and should not be used for geometry optimizations.

DFT, AM1, and PM3 frequency calculations

$force nvib=2 $end

DFT and semiempirical Hessians (second energy derivatives) are computed numerically, by displacing each atom in the x, y, and z direction and computing the first derivative. This is usually not accurate enough. nvib=2 leads to a displacement in both the positive and negative x, y, and z direction resulting in more accurate frequencies.

Geometry optimizations

$statpt opttol=0.0005 nstep=50 $end
$contrl nzvar=1 $end
$zmat dlc=.t. auto=.t. $end


I think the default criterion for geometry convergence (0.0001) is too strict, and the default number of steps (2o) is too small. So I usually use 0.0005 and 50, respectively. Optimizing in internal coordinates instead of Cartesian coordinates (default) usually speeds up convergence, because the former are "more quadratic". nzvar=1 tells GAMESS to use internal coordinates and dlc and auto tells GAMESS to automatically generate delocalized internal coordinates.

Unfortunately, the DLC implementation in GAMESS only looks for covalent bonds, not H-bonds and such. So you have to specify these if you have specify non-covalently bonded molecules in the input file. For example, in the case of water dimer (see figure for numbering), you do it like this

$zmat nonvdw(1)=1,4 $end

Note that you don't have to specify the H-bond in HO-CH2-CH2-OH, since the OH groups are connected by covalent bonds.

So, an input file for a geometry optimization of the water dimer would look like what I show below. That might seem a lot to type, but the trick is of course to type is once, store it somewhere handy, and copy it into new files.

$contrl runtyp=optimize dfttyp=b3lyp $end
$basis gbasis=n31 ngauss=6 ndfunc=1 $end
$scf dirscf =.t. $end
$statpt opttol=0.0005 nstep=50 $end
$contrl nzvar=1 $end
$zmat dlc=.t. auto=.t. nonvdw(1)=1,4 $end
$DATA
Title
C1
O 8.0 -4.42170 -0.11056 -2.11879
H 1.0 -3.53334 -0.03874 -1.70405
H 1.0 -4.75257 0.79398 -2.01675
O 8.0 -2.06207 0.35222 -0.78539
H 1.0 -1.13417 0.41136 -1.06880
H 1.0 -1.98676 0.07447 0.14406
$END

55 comments:

NUchem said...

Jan,

As usual these posts are gold!

NUchem

Jan said...

Thank you! Flattery will get you everywhere :)

Jan said...

Good news. It seems that nvib=2 and nstep=50 soon will become defaults in GAMESS.

nstep=50 only for energy minimizations. For TS searches it will stay 20, because you will likely need a new Hessian by then. More about this later.

TC said...

Very new to Gamess. Is there a way to create input files in chemdraw or other drawing program?

I loaded AscalaphQuantum and opened pdb files I created in chemdraw. But I noticed no bond order defined when I saved to a hin file.

I do not have strong background in source.

Just looking for quick way to run basis sets on small molecules(drugs) for thesis.

TC said...

If anyone can point me to some good trainging material online, I would be greatful! Looking at example input files is good but I need to start even more basic!
thanks!
TC

Jan said...

TC: I have made two posts where I use the on-line drawing programs PubChemEditor and Marvin Sketch to draw molecules and then import them into Avogadro where I can make GAMESS input files.

With regard to online training material: if you can be more specific about what you have in mind, perhaps I can help.

TC said...

Jan,
i have installed PC gamess but not sure how to run it. double clicking on exe just flashes a window...I am trying to use a gui ( agilemolecule quantum).

If you know of instruction that tell you what to do immediately following download that woudl be helpful.

TC

Jan said...

I have a mac so I can't help you with PCGAMESS.

The blog has many examples of using GAMESS and GAMESSQ, including one where I show how to download and use the program for the first time. It's for a mac, but I think it is much the same for a windows machine.

Slawomir Janicki said...

PC-GAMESS/Firefly runs on Macs now as well. See the download page.

To run ona PC you need to create or customize a batch file that tells GAMESS what input file to run and what version of MPI you use.

There are some GUIs for GAMESS, check the PC-GAMESS download page for a list of them.

Slawomir

Anonymous said...

May I ask for some help??

now I have made Gamess work with a calculation.
1-is there any way I can look at the progress in geometry as in gaussian with the gauss view and the check file???
2- I have downloaded Avogadro and Gamedit to see the output. Can any one help me or send me to any bolg that teaches how to read the out put??

Thank you so so much!!!
marianadennehy@hotmail.com

Jan said...

1-if you use GAMESSQ you can view the file in Jobs > View Logs, while the job is running.
2-after the job is finished you can view the geometries and energies by loading the file into MacMolPlt. See for example this post

Anonymous said...

Sir,

Would you kindly give some lessons on:1. zmat specifications
2. VSCF and CC-VSCF
calculations with some input
examples?

B. Hazra

Jan said...

B. Hazra -
1. Do you mean keywords in $zmat (if so, which ones?) or inputting a z-matrix?
2. A post on using vscf is planned as part of the "color figures from the book" series. But it will be a while before I get to that. You might want to post your request on the gamess google group.

Troels Linnet said...

Hi Jan.

Your blog has been severely fruitful in
learning Comp Chem.
I can add a suggestion for the input basic.

Each line in the input file is not allowed
to be longer that 80 characters.

The log file would say something like:
---------------
INCORRECT DATA VALUE FOUND
**** ERROR READING INPUT GROUP $ZMAT *****
THE PROBLEM IS WITH THIS INPUT LINE, NEAR THE X MARKER
-----------
because it does not find: $end keyword

This can become an issue if one i freezing or setting distance for many atoms.

Thanks again

Jan said...

Thanks, Troels! Though I knew about this, it turns out this restriction is not even in the manual (as far as I can tell). I have now mentioned it in the post.

SF said...
This comment has been removed by the author.
SF said...

Hi Jan
I was searching for some Gamess input file and I found your blog.I am happy to see it.May be you can help me.
I am using GAMESS for couple of yrs and still learning about it.I also use MacMolPlt to make input file & to view output files.
I need to run semiemperical calculations(AM1 & MM) for a protein and peptides.In MacMolPlt AM1 option is not working for me.
So please could to tell me how to do that.

Thanks
SF

Jan said...

I suggest posting your question to the GAMESS mailing list.

Please give as much detail there as possible. It is not clear what "In MacMolPlt AM1 option is not working for me" means.

SF said...
This comment has been removed by the author.
SF said...

thanks for the reply.
I have posted my query at Gamess mailing list.
Thanks

SF

Andrei said...

Hello,

I am relatively new to GAMESS and I have a question: is there a way that beeing given a molecular structure to print out in an text formatted file the energy, the first derivatives of the energy with respect to the internal coordinates and the second-order derivatives of the energy with respect to the internal coordinates?
Many thanks,
Andrei

Jan said...

Andrei, please submit your question to the GAMESS google group (see link further up).

Anonymous said...

Dear Jan,

I GAMESS, how can I fix the coordinates of selected atoms input in cartesian coordinates in a "constrained" geometry optimization?

For example using the water dimer, how can I optimize the structure but fixing the O...O distance? That is the O....O distance is fixed but allowing other atoms to optimize.

Cheers

John

Jan said...

John - if you want to keep a distance fixed, I suggest using the ifzmat option in $zmat. See this post for more info.

Anonymous said...

I want to underline that your explanation is fantastic.
Now I have to do some calculations whit DFT and i have problem whit input file created whit Avogadro.
I explain well:in the log file i have this message

--------------------------
R-B3LYP SCF CALCULATION
--------------------------

OVERLAPPING STORAGE FOR H,S,Q MATRICES, TO SAVE 226128 WORDS.
ADDING THIS AMOUNT MAY IMPROVE EFFICIENCY SOMEWHAT.
***** ERROR: MEMORY REQUEST EXCEEDS AVAILABLE MEMORY
PROCESS NO. 0 WORDS REQUIRED= 1088382 AVAILABLE= 1000000
EXECUTION OF GAMESS TERMINATED -ABNORMALLY- AT Fri Oct 8 15:13:01 2010
863632 WORDS OF DYNAMIC MEMORY USED


I just try to make this calculations on a big server but the error is the same.

p.s The molecules are sugar, not so little

Tanks a lot and sorry for my english

Jan said...

You need to increase memory a little: $system mwords=2 $end.

Have a look at this post.

Jan said...

PS. Glad to hear you find the blog useful.

-oh said...

Hi Jan
I noticed that the $DATA that's punched out to the .dat is not formatted properly. Or at least whenever I try to restart from that punch I get errors. Could you do a step by step tutorial for the best way to restart? I've been getting a lot of "failed to locate stationary point".
Currently I duplicate the original .inp, edit the headers (all the $ cards) adding HESS=READ.
Then I hunt for the best coordinates in the .log file and then copy the corresponding $HESS from the .dat punch.
For geometry optimizations is there anything I need to do with $VIB, $VEC or $GRAD groups?
Can you recommend a quicker way to put together a restart .inp? (I use gamessQ)
Thank you!

Jan said...

Is this the kind of thing you are looking for?

Anonymous said...

Dear Jen,

I have a quick question. Is it possible to compute the normal modes
(FREQ calculation) of a molecule in its singlet/triplet excited state
with TD-DFT? Also, will this calculation run in parallel?

I know that other TD-DFT codes have a numerical implementation for the
computation of the normal modes of excited states, and that the
computation of the normal modes runs only in one-processor. So, I'd be
interested in knowing the details of the implementation of the TD-DFT
frequency calculation in GAMESS. What is the reference for that?

So, assuming that it is possible to do a FREQ calculation for excited
states with TDDFT, do the following input lines make sense?

$CONTRL SCFTYP=RHF RUNTYP=OPTIMIZE TDDFT=excite DFTTYP=BLYP $END
$STATPT HSSEND=.T. $END
$TDDFT NSTATE=5 MULT=1 IROOT=1 $END

Thanks,

Jan said...

I have no direct experience with these options, so I can only advise you to do a test run and consult the manual

Anonymous said...

Dear Jan,
Plz provide me the sample input keyword for RVS SCF calculation in gamess.

Thanks & regards
Debasish

Anonymous said...

Hello,

Does anyone know how to generate the zmatrix in avogadro or in Gview for excited states.?

Thanks

Jan said...

Avogadro uses a force field to refine the structure. But the force field is parameterized for ground state structures. Only quantum programs can give you excited state structures, and the best initial guess structure is likely the ground state structure.

Anonymous said...

Hi Jan,

Thanks. That is what I was wondering. But I do know Gauss View can be used to generate excited state structures. z matrix did not work as it requires an integer which I do not understand. Our server allows us to use CIS method excited structures. Do you know any other program to generate excited states?

Anonymous said...

Hi all,

I don't know if it's appropriate to post my queries here but I'm new to gamess and got many problems during my trial run and seeking for help.

1) I'm trying to optimize the geometry for a metal complex which has been optimized by gaussian. However, it seems in GAMESS the SCF energy kept oscillating at the third and fourth decimal places and cannot converge. Is there any solution to this?

2) I've been trying an excited state run but it keeps having the problem of "PWRT: NODE 7 ENCOUNTERED I/O ERROR WRITING UNIT 8
A fatal error occurred on DDI Process 7." I've tried to increase the MWORDS used as it seems to be a memory problem but the problem persists.

3) I've seen that from CI calculations there is a way to calculate spin-orbit coupling and transition moment for triplet state of heavy metal complexes. However, I would like to ask if there's a way to find the triplet transition moment for heavy metal complexes with DFT calculations? Or is CI calculations the only way?

Thank you for your help!
Eli

Jan said...

I suggest posting your questions, with many more details, on the Google GAMESS group: http://groups.google.com/group/gamess?hl=en

Anonymous said...

Dear Jan,

I ran the 2(H2O) example in your post. It runs fine, but the following
question puzzles me.

In the GAMESS manual, it is said that the nzvar has to be set to 3*N-6
for a nonlinear molecule if zmat is used. Hence, for your example,
N=2*3=6, nzvar=3*N-3=12.

Why would your input file with
$contrl nzvar=1 $end
runs fine?

I rerun the example with the above line changed to be
$contrl nzvar=12 $end
and get virtually the same results.
Does it mean that what the manual says is not serious?

Thank you.

Tsung-Lung Li

Anonymous said...

I am getting the following warning while finding out the energy. I have set the runtyp=gradeint in $contrl.

POSSIBLE LINEAR DEPENDENCE PROBLEMS DETECTED, INPUT QMTTOL= 1.0E-06,
WITH 2 OVERLAP EIGENVALUES LYING BETWEEN 1.0E-05 AND QMTTOL.
IF YOU EXPERIENCE SCF CONVERGENCE DIFFICULTIES WITH THE DENSITY ALMOST BUT
NOT QUITE CONVERGED, YOU MAY NEED TO LOOSEN -QMTTOL- BY A FACTOR 5 TO 10.

Jan said...

if (SCF convergence problems) then
ignore the message.
else
do what the message says
end if

Anonymous said...

I did what the message said

set conv=0.10D-02 fdiff=.F. diis=.T. in $SCF
icut=11 maxit=100 in $contrl

I am interested in the time comparison. The problem is it takes too much time to complete the job.

Scott McCann said...

Dear Jan:
I am very new to the syntax of GAMESS. I have used other modeling softwares, but I've spent an awfully long time looking for the following: I want to run two (or more) sequential calculations using the same input file, including reading force constants and geometry. Is this possible to do in GAMESS?

Thanks,
Scott

Jan H. Jensen said...

Do you mean a geometry optimization followed by a Hessian calculation? If so you can use hssend=.t. in $statpt

Scott McCann said...

Jan:
Thank you for the response; I appreciate the feedback. I should have elaborated a bit more, but what I am actually aiming to do is run multiple geometry optimizations on the same molecule, but changing the charge and multiplicity at each step. Something analogous to "Link1" in Gaussian. Is this possible? Thanks in advance!

Scott

Jan H. Jensen said...

I don't think that is possible in GAMESS. Perhaps scripts can accomplish this?

Scott McCann said...

Jan:
Thank you for your correspondence! If I do find a way to accomplish this, I will let you know if you like.

Scott

Jan H. Jensen said...

Scott, yes, please. Thanks, Jan

rituparna said...

I want to know is it possible to calculate only electronic contribution to the electrostatic potential ( i.e., not the total ) on a particular atomic coordinate in GAMESS?how to do it?

S Chopra said...

Dear sir i have just started using firefly. I wish to know if i can simulate thin films in it and can study temperature dependence of its energy etc.?? Also plz tell me how to write a batch file for firefly...

S Chopra said...

Sir i m using LUVEAT for making input file.....but whenever i open a builder from it, luceat hangs..and comes back once builder is closed..plz help... also i cant see firefly's output file...

S Chopra said...

Sir i m using LUVEAT for making input file.....but whenever i open a builder from it, luceat hangs..and comes back once builder is closed..plz help... also i cant see firefly's output file...

S Chopra said...

I m using firefly8 on i3 2330m win7 32 bit.. it shows only 25% cpu usage...thr r 4 cores and only one is used..i get the mrssage that " operating sytem doesnt support AVX" does this have to do with 25% cpu usge? I read somewhere that win7 sp1 supports avx. So should i install sp1? Or is HTT disabled??

S Chopra said...

I m using firefly8 on i3 2330m win7 32 bit.. it shows only 25% cpu usage...thr r 4 cores and only one is used..i get the mrssage that " operating sytem doesnt support AVX" does this have to do with 25% cpu usge? I read somewhere that win7 sp1 supports avx. So should i install sp1? Or is HTT disabled??

Anonymous said...

Hi Jan!

Thank you for this blog; it is actually really useful. Can I come back to the question of Tsung-Lung Li though and ask why you use nzvar=1 instead of nzvar=3N-6?

Thank you,
Sebastian.

Jan Jensen said...

Glad to hear you find the blog useful.

nzvar=1 works only if you use delocalized coordinates (dlc=.t.). If you use a zmatrix or explicitly define the internal coordinates in $zmat, then nzvar must equal 3N-6 (or 5 for linear molecules).

nzvar=3N-6 also works for dlc=.t., as does any non-zero integer. I use nzvar=1 for convenience.