[Pw_forum] ph.x v3.2 on NEC SX-8

Axel Kohlmeyer akohlmey at cmm.chem.upenn.edu
Fri Dec 29 17:28:13 CET 2006

On Fri, 29 Dec 2006 wlyim at puccini.che.pitt.edu wrote:

WL> Thank Axel for fruitful discussion.
WL> The larger nrxx index in NEC is come from the "good_fft_dimension"  
WL> subroutine, and nrxx=25x24x37 (=22200), instead of 24x24x36 in INTEL. 
WL> I found that I cannot simply neglect the "zero" elements after I tried two 
WL> things:
WL> 1. masked the overflow error can pass through the phq_setup step, but 
WL> after the whole phonon cycles, it hanged at some point;
WL> 2. modified the dmxc_spin subroutine and kept the extra array zero. The 
WL> program can run till the end but the result was wrong.

right. the unusable elements will be scattered across the array, so 
just setting the last block to zero will not help. i'd change the
loop to only compute the derivative if there is significant density
(i.e. check the rhotot or rhoup/rhodw arrays, respectively).
actually, if you look at the non-spinpolarized case, this has
already been implemented. it also tries to handle negative densities...

WL> Till now, I cannot find a way to solve the ph.x problem in NEC (pw.x
WL> works). I will be appreciated if someone will address this issue.

there may be two more options that you want to try out:

a) you can set the fft grid dimensions (in the pw.x input 
already) manually (see: Docs/INPUT_PW). i would try:

nr1=25, nr2=25, nr3=37  
as some comment in the NEC fft driver suggests, that it needs 
odd grid dimensions.

b) you can try to use the internal FFT by changing
DFLAGS to not contain -DASL and add -D__FFTW and -D__USE_INTERNAL_FFTW
instead. (see: include/defs.h.README)


Axel Kohlmeyer   akohlmey at cmm.chem.upenn.edu   http://www.cmm.upenn.edu
   Center for Molecular Modeling   --   University of Pennsylvania
Department of Chemistry, 231 S.34th Street, Philadelphia, PA 19104-6323
tel: 1-215-898-1582,  fax: 1-215-573-6233,  office-tel: 1-215-898-5425
If you make something idiot-proof, the universe creates a better idiot.

More information about the users mailing list