Skip to content

Quick introduction to where to find things (in the code)

Andy Ohlin edited this page Jul 20, 2017 · 5 revisions

The first time you attempt to look into the ECCE code you may be a bit overwhelmed. It helps to have an idea of where different aspects of the code is located, so here is a very, very brief overview:

Version number

  • data/client/config/Version -- contains the version number of the code. Important to know and to updated.

Setting up computations

  • scripts/codereg -- you have a *theory.py and a *runtype.py for each computational code. To add new features, edit these files, in particular the runtype one.

Parsing output

  • scripts/parsers -- different rules/codes to parse the output -- and in input! -- are located here. ai.* is used to generate the input file before job submission
  • *.expt parses the output and generates .frag, .basis and .param files (job description files)

The most important files for bug fixes, however, are

  • the *.desc file -- this tells ECCE when a particular property has popped up in the output file and what script to call to extract the correct information, how often (all occurrences or the last one) etc.
  • the 'other' files, such as gauss-03.geomtrace, that get called by the *.desc file then parses the output, extracts the data and prints it so ECCE can retrieve it.

Adding support for new computational codes

Apart from needing to write perl parser scripts and put them in scripts/parsers, the following files need to be edit to add references to the new code:

  • build/server_admin/httpd.conf.ecce -- mime types
  • data/client/cap/*.edml -- a new file is needed
  • data/client/config/ResourceDescriptor.xml
  • data/client/config/ResourceDescriptorRxn.xml
  • data/client/pixmaps/calc*.xpm -- a new icon file is needed
  • scripts/codereg/*runtype.py -- new file is needed
  • scripts/codereg/*theory.py -- new file is needed
  • scripts/gensub
  • siteconfig/submit.site -- add specifics for new code, e.g. files to remove from scratch on completion of calc
  • src/wxgui/comm/WxCalcImport.c -- add reference to new code

The ResourceDescriptor.xml file is where the new code starts -- it references the .edml file which in turn references e.g. the *runtype.py and theory.py files, ai. and *.desc.

It's interesting to note that judging from the residual files present in the code (varying levels of) support for the following codes was once considered:

There are also references to G92 and G94.

In other words, there's plenty to look at if you want to add support for new codes, suggestions being adding GAMESS-US, Dalton and ORCA.

Queues

Queue manage support is handled by

  • siteconfig/QueueManagers
  • scripts/eccejobmonitor