07 May 2012

144. [Fixed] Upgraded ECCE (6.2 -> 6.3) won't let you save input files, can't write basis etc.

Update 1/6/2012: As always there's a better, smarter way of doing this, and as usual it involves reading the manual, or in this case reading the documentation that comes with ecce:
"... you had issues upgrading from ECCE 6.2 to 6.3 in regards to ECCE not being able to find scripts it needed to generate input files such as creating basis sets. Your solution was the manual way for something that is a basic part of ECCE setup for users (maybe you've since figured this out). There is a $ECCE_HOME/scripts/runtime_setup.sh sh/bash environment setup script that you can invoke to set up the paths as needed. This is documented in the list of steps needed when you install ECCE after it is done extracting the distribution right before the install finishes. When you actually invoke ecce then the rest of the environment (such as putting the scripts/parsers directory in the path) is done by the ecce_env script."

From what I understand the path which is set is ECCE_HOME and $ECCE_HOME/scripts is the added to PATH. But that's not enough. I think the 'word too long' thingy is playing up again.

The problem:
After upgrading ecce from 6.2 to 6.3 I keep getting errors of this type after drawing a structure, and then choosing a basis set:

ERROR: Input files could not be generated--failed writing basis set
Calculation saved as small.

And yes, no input files are generated.

Since I launch ecce from the terminal, I get the following error messages when I try to launch nwchem jobs:

sh: 1: std2NWChem: not found

and gaussian jobs:
sh: 1: std2Gaussian-03: not found

Unrelated: I also get a lot of
Word too long.
Word too long.
Word too long.
Word too long.
which has to do with csh somehow. I am not a fan of csh.

My ecce-6.3/apps/siteconfig/CONFIG.beryllium looks correct.

The investigation:

First, in ecce-6.3
 cat */*/*/*|strings|grep std2
[..]
std2GAMESS(US)          - Script that translates basis set from standard
std2Gaussian-92         - Identical to std2Gaussian-94.
std2Gaussian-94         - Script that translates basis set from standard
std2NWChem              - Script that translates basis set from standard
[..]
At least now we know what its related to.
tail -n 9999 */*/*/*|strings|egrep "std2|<=="
==> apps/scripts/parsers/README <==
   "std2Gaussian-94".
std2GAMESS(US)          - Script that translates basis set from standard
std2Gaussian-92         - Identical to std2Gaussian-94.
std2Gaussian-94         - Script that translates basis set from standard
std2NWChem              - Script that translates basis set from standard
locate std2
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2Amica
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2GAMESS-UK
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2GAMESS-US
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2Gaussian-03
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2Gaussian-92
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2Gaussian-94
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2Gaussian-98
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2Hondo
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2Meldef
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2NWChem
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2aceII
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2molcas
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2molpro
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2supermolecule
/home/me/.ecce/ecce-6.3/apps/scripts/parsers/std2tx93
apps/scripts/ecce_env shows that ecce checks whether parsers is in path -- and adds the parsers directory if it isn't:

if (`echo $PATH | grep -c "${ECCE_HOME}/scripts/parsers"` == 0 ) then
  set path = (${ECCE_HOME}/scripts/parsers $path)
endif

Something seems to go wrong here.

The solution

Add this to ~/.bashrc
export ECCE_HOME=/home/me/.ecce/ecce-6.3/apps
export PATH=${ECCE_HOME}/scripts:
${ECCE_HOME}/scripts/parsers
:${PATH}

No comments:

Post a Comment