I am connected to a supercomputer via SSH and my cluster uses Linux Scientific, I am using the Bash (Unix Shell), I load the modules of Gaussian 09 and Gaussview. I am trying to print orbital densities for a very large tetramer system, but when I try to generate the orbitals on Gaussview, the system crashes because of insufficient memory. On the internet, I found that using the "cubegen" keyword I can generate the cube files of the orbitals. The keyword gives me the power to modify the amount of memory but I do not know how. I go to interactive mode so I can use computational resources directly and on the command shell I do the following: (I try changing Gaussian's memory's environmental variable directly at the folder I am at)
GAUSS_MEMDEF=16gb
then,
cubegen 16000000 MO=HOMO xxx.fchk xxx.cub 0 h
But it still crashes with the following message,
Out-of-memory error in routine DecCub-RdMO (IEnd= 34279201 MxCore= 33546152)
Use %mem=33MW to provide the minimum amount of memory required to complete this step.
Error termination via Lnk1e at Wed Sep 28 16:41:41 2016.
Segmentation fault (core dumped)
How can I solve this problem? How can I allocate memory to Gaussian from the command window (I do not know where Gaussian folders are located since I just load it as a module, given that the software is already installed on the system)
echo $0
to see which shell you are using. $\endgroup$GAUSS_MEMDEF=33000000 cubegen bla-bla
should work fine, at least in Bash shell. IIRC,GAUSS_MEMDEF
is set in words, so since the error message says 33MW are needed, use the value33000000
, or a bit more, say,35000000
. $\endgroup$cubegen nprocs kind fchkfile cubefile npts format cubefile2
, so the second number should be the number of processes you'd like to use not the memory. $\endgroup$GAUSS_MEMDEF=16gb cubgen [...]
should also work fine. It must be set immediately before the command though. As a over the thumb rule you can use 1MW are about 8MB for a 64 bit machine. $\endgroup$