-
Notifications
You must be signed in to change notification settings - Fork 5
Quick introduction to where to find things (in the code)
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:
- data/client/config/Version -- contains the version number of the code. Important to know and to updated.
- 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.
- 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.
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:
- ACESII -- current version is ACESIII, with ACES4 under development. http://www.qtp.ufl.edu/ACES/
- HONDO -- replaced by HONDOPLUS. Last version in 2013. https://t1.chem.umn.edu/hondoplus/
- MOLCAS -- Current. http://www.molcas.org/
- MOLPRO -- current? Last version in 2015. https://www.molpro.net/
- MELDEF-X -- Same generation as G98. Seems deprecated.
- GAMESS-US -- current. http://www.msg.ameslab.gov/gamess/
- SUPERMOLECULE -- code or method?
- TX93 -- code or method?
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.
Queue manage support is handled by
- siteconfig/QueueManagers
- scripts/eccejobmonitor