PSPW code seems to be completely broken


Clicked A Few Times
We are using NWchem on regular basis and in ordinary calculations with gaussian basis it replaces Gaussian perfectly for us. It is also much more convenient in terms of input and output, so we really love it.

However the PSPW code seems to be completely broken - it fails to optimize the simple unit cell of MoS2 and produces different results depending on how we provide atomic coordinates (absolute or fractional) which is obviously a nonsense. In addition the code is doing something very weird when working with fractional coordinates - the unit cell becomes rotate by 90deg on output with no reason. The same system optimizes perfectly fine in espresso, so the problem is not system-related.
We also failed to understand the status of 2D and 1D periodicity - does it work or not? If not why to keep surface and polymer keywords?
My suggestion is to mark PSPW module and other similar work in progress parts as unstable in documentation. The users like us are spending a lot of time trying to understand what's wrong until realize that the code is just unstable and not production-ready.

Gets Around
Not sure...I'll try to get some time this weekend to look at the the problem

In the meantime you can try using the nwchem input available at the following link

[1]

Gets Around
https://arrows.emsl.pnnl.gov/api/crystal_input/1010993

Gets Around
The above input seems to work. That being said, the unit cell for gamma point calculation is to small and the unit cell wants to expand. However, with monkhorst-pack 4 4 1 the system seems better.

Clicked A Few Times
Could you please comment on the input below. This is our production system, which is optimized perfectly fine in espresso, but fails in nwchem regardless of what we do. It either produces NaN during optimization or the layer of MoS2 explodes and flies apart. This behavior seems to be completely inconsistent and random.

title "MoS2 optimization"
echo
 
scratch_dir ./scratch
permanent_dir ./perm
 
start cell1
 
memory heap 6000 mb
#memory stack 5000 mb
 
#**** Enter the geometry using fractional coordinates ****
geometry center noautosym noautoz print units angstrom
system surface
   lat_a 9.495
   lat_b 9.495
   lat_c 24.4
   alpha 90.00 
   beta  90.00 
   gamma 60.00
 end

Mo   0.97211   0.22304   10.952
 S   0.97217   0.41542    9.490
 S   0.97217   0.41542   12.336
Mo   0.97216   0.55637   10.952
 S   0.97222   0.74876    9.490
 S   0.97222   0.74876   12.336
Mo   0.97210   0.88971   10.952
 S   0.97217   0.08210    9.490
 S   0.97217   0.08210   12.336
Mo   0.30544   0.22304   10.952
 S   0.30551   0.41542    9.490
 S   0.30551   0.41542   12.336
Mo   0.30549   0.55637   10.952
 S   0.30556   0.74876    9.490
 S   0.30556   0.74876   12.336
Mo   0.30544   0.88971   10.952
 S   0.30550   0.08210    9.490
 S   0.30550   0.08210   12.336
Mo   0.63877   0.22304   10.952
 S   0.63884   0.41542    9.490
 S   0.63884   0.41542   12.336
Mo   0.63882   0.55637   10.952
 S   0.63878   0.74876    9.490
 S   0.63878   0.74876   12.336
Mo   0.63877   0.88971   10.952
 S   0.63883   0.08210    9.490
 S   0.63883   0.08210   12.336

# cb
 C   0.29896   0.70972    3.974
 C   0.33903   0.76627    5.122
 C   0.41945   0.85505    5.008
 C   0.45993   0.88740    3.747
 C   0.42005   0.83109    2.599
 C   0.33949   0.74219    2.712
Cl   0.19815   0.59833    4.116
 H   0.30790   0.74134    6.099
 H   0.45044   0.89859    5.895
 H   0.52216   0.95611    3.659
 H   0.45134   0.85614    1.623
 H   0.30885   0.69878    1.821

end
 
nwpw 
  SIMULATION_CELL
    ngrid 32 32 32
  end

  ewald_rcut 3.0
  ewald_ncut 8 #The default value of 1 needs to be increased for small cells to 8
  
  #lmbfgs
  #xc pbe96
end
 
driver 
  clear 
  maxiter 10000
end

#set nwpw:cif_filename mos2-surf.opt  # create a CIF file containing optimization history 
#set includestress .true.           # this option tells driver to optimize the unit cell

# For point charges
#set pspw_APC:Gc 2.5
#set pspw_APC:nga 3
#set pspw_APC:gamma 0.6 0.9 1.35

task pspw energy #optimize

Clicked A Few Times
similar problems
I have some pspw calculations that produce NaN values immediately in the first step of scf. This doesn't happen for most geometries, but for some, it happens reproducibly.

== Energy Calculation ==


          ====== Grassmann conjugate gradient iteration ======
     >>>  ITERATION STARTED AT Mon Mar 27 19:52:08 2017  <<<
    iter.           Energy         DeltaE       DeltaRho 
    ------------------------------------------------------
     -  15 steepest descent iterations performed
      10                 NaN            NaN            NaN


It doens't look like my unit cell is strange:

 supercell:
      cell_name:  cell_default                                      
      lattice:    a1=<  28.346   0.000   0.000 >
                  a2=<   0.000  28.535   0.000 >
                  a3=<   0.000   0.000  28.724 >
      reciprocal: b1=<   0.222   0.000  -0.000 >
                  b2=<  -0.000   0.220  -0.000 >
                  b3=<   0.000   0.000   0.219 >
      lattice:    a=      28.346 b=     28.535 c=      28.724
                  alpha=  90.000 beta=  90.000 gamma=  90.000
                  omega=     23233.2


And it doesn't look like my geometry is messed up:
 ==============================================================================
                                internuclear distances
 ------------------------------------------------------------------------------
       center one      |      center two      | atomic units |  angstroms
 ------------------------------------------------------------------------------
    2 C                |   1 O                |     2.35387  |     1.24561
    3 O                |   2 C                |     2.45155  |     1.29730
    4 C                |   3 O                |     2.68045  |     1.41843
    5 C                |   4 C                |     2.69524  |     1.42626
    6 O                |   2 C                |     2.68121  |     1.41883
    6 O                |   5 C                |     2.45521  |     1.29924
    7 H                |   4 C                |     2.21754  |     1.17347
    8 H                |   4 C                |     2.21892  |     1.17420
   11 Ni               |   1 O                |     3.24492  |     1.71714
 ------------------------------------------------------------------------------
                         number of included internuclear distances:          9
 ==============================================================================


I haven't changed any other settings from a simulation that does run without problems. Any pointers?

Gets Around
You're ngrid isn't synched very well with the lattice. You should just enter cutoff energies and let the code figure out the grid.

Gets Around
You're ngrid isn't synched very well with the lattice. You should just enter cutoff energies and let the code figure out the grid.


Forum >> NWChem's corner >> Feedback