GC3Apps provide a script drive execution of multiple gamess jobs each of them with a different input file. It uses the generic gc3libs.cmdline.SessionBasedScript framework.
The purpose of GAMESS is to execute several concurrent runs of GAMESS each with separate input file. These runs are performed in parallel using every available GC3Pie parameters.
The purpose of GAMESS Testing Suite is to simplify testing procedure for GAMESS users. Tests are defined inside INP files as comments of a special syntax. The user controls whether tests should be called or not and on which version of GAMESS.
Example of execution:
where -N indicates it is a new GC3Pie session (job) -C indicates that the session will not terminate until all the jobs are terminated normally. Each 20 seconds a report on execution is generated to standard output. -R specifies the version of GAMESS.
The user edits GAMESS input files by introducing two types of testing scenario encoded in a special syntax. The Software analyzes GAMESS OUTPUT files and executes the test by comparing the correct value with the one found in the OUTPUT file. There are two testing scenario that have been provided:
1. Extraction of a specific value from a given target line (see TestLine class and grepAndAnalyze method).
2. Extraction of a specific value from the line AFTER a target line (see TestNextLine and grepAndFollow method).
Target lines that contain the value of interest is extracted with a regular expression (regex statement). If regex extracts many lines the user has a chance to specify which one to select (option head or tail). Once the line has been selected it is divided into separable strings a string that represent the value of interest is selected with positionInLine parameter.
! EXAM01.
! ggamess test: grepLinesAndAnalyze(“FINAL s+ RHF”, “tail”, 5, -37.2380397698, app.tolE, “Eerr”)
! ggamess test: grepAndFollow(“OVERLAPs +LOW”, “head”,”head”, 8, 0.64506, app.tolO, “Oerr”) ! ggamess test: grepLinesAndAnalyze(“RMS s+ G”, “tail”, 8, .0000004, app.tolG, “Gerr”)
$CONTRL SCFTYP=RHF RUNTYP=OPTIMIZE
COORD=ZMT NZVAR=0 $END
$SYSTEM TIMLIM=1 $END
$STATPT OPTTOL=1.0E-5 $END
$BASIS GBASIS=STO NGAUSS=2 $END
$GUESS GUESS=HUCKEL $END
$DATA Methylene...1-A-1 state...RHF/STO-2G
Cnv 2
C
H
H
1 rCH
1 rCH 2 aHCH rCH=1.09
aHCH=110.0
$END
The following lines added to the GAMESS INP files define the tests. There can be multiple lines in each file.
!ggamess test: grepLinesAndAnalyze(REGEX, MATCHEDLINE, POSITIONINLINE, VALUE, TOLERANCE, LABEL)
! ggamess test: grepAndFollow(REGEX, MATCHEDLINE, FOLLOWINGLINE POSITIONINLINE, VALUE, TOLERANCE, LABEL)
where:
Note: sometimes the extracted line does not contain target value (VALUEOUT) and the line after MATCHEDLINE must be specified. FOLLOWINGLINE is responsible for that.
Specifies the index of the column that corresponds to a target value. REGEX, MATCHEDLINE and POSITIONINLINE define a value (VALUEOUT) from GAMESS output file that will be compared with VALUE up to given tolerance TOL.
The validation must meet the following equation encoded in this pseudo code:
IF ABS(VALUE – VALUEOUT) > TOL TEST IS NOT ACCEPTED
ELSE TEST IS ACCEPTED
The parameters will be explained on two examples: !ggamess test: grepLinesAndAnalyze(“RMS s+ G”, “tail”, 8, .0000004, GamessTst.tolG, “Gerr”) !ggamess test: grepAndFollow(“OVERLAPs+LOW”, “head”,”head”, 8, 0.64506, GamessTst.tolO, “Oerr”)
MATCHEDLINE = “head” will extract the first line from group of lines found by regex. MATCHEDLINE = “8” will extract the 8th line from group of lines found by regex.
If GAMESS terminates correctly GAMESS output file is automatically analyzed according to the tests defined in a given INP file.
./ggamess.py test/data/ -N -s new -R 2012R1 -vvv
gc3.gc3libs: INFO: Running the remaining 43 tests.
test/data/exam43.inp: Eerr=0.00E+00 Passed.
test/data/exam26.inp: Gerr=0.00E+00 Passed.
test/data/exam33.inp: EAerr=0.00E+00 Passed.
test/data/exam23.inp: EBerr=0.00E+00 Passed.
test/data/exam28.inp: EXCerreV=3.67E-01 Passed.
test/data/exam07.inp: OSCerr=5.00E-03 Passed.
test/data/exam40.inp: Gerr=2.05E-02 Passed.
test/data/exam03.inp: Eerr=0.00E+00 Passed.
test/data/exam35.inp: Gerr=0.00E+00 Passed.
test/data/exam06.inp: Eerr=0.00E+00 Passed.
test/data/exam17.inp: Gerr=0.00E+00 Passed.
test/data/exam16.inp: Eerr=0.00E+00 Passed.
test/data/exam01.inp: Eerr=0.00E+00 Passed.
Following files have been added to or modified in GC3Pie: