Page 1 of 1

SSNEB with only Z relaxtion?

Posted: Fri Nov 27, 2020 1:53 pm
by zhifeng
Dear experts,

I would like to know if there some way to fix the supercell lattice parameters in the x and y directions but only to relax in the z direction in the SSNEB method.

I modified the constr_cell_relax.F file as below. This modification works to allow only the z direction relaxation in the normal vasp calculation by using ISIF = 3.
! relaxation in z direction only
SAVE=FCELL(3,3)
FCELL=0 ! F90 style: set the whole array to zero
FCELL(3,3)=SAVE

So I also modified constr_cell_relax.F like above during the compilling 5.3.5 with VTST. However, the output intermediate structures of the SSNEB calculation show that all the lattice parameters in x, y and z directions are changed.

I am wondering it is possible to use SSNEB with only changing the lattice parameter along z direction?

Best wishes,
zhifenh

Re: SSNEB with only Z relaxtion?

Posted: Fri Nov 27, 2020 9:18 pm
by graeme
Hi Zhifenh,

One option is to use the SSNEB through tsase. ASE provides the ability to apply such general constraints.

You could also modify neb.F in a similar way to how you modified constr_cell_relax.F. For example, around line 236 you could zero all the elements of the stress except for the 3,3 term.

Re: SSNEB with only Z relaxtion?

Posted: Sun Nov 29, 2020 11:34 pm
by zhifeng
Hi Graeme,

Thank you very much for your suggestion. It looks like ASE has a lot of functionality. However, we currently have no ASE software available on our HPC. I'll try to install ASE and use it in future work.

While for the second suggestion, here are the contents around line 236 in neb.F.
227 IF (cell_flag) THEN
228 ! remove rotation deg of freedom from cell
229 CALL sdotA(stress,h)
230 !IF (iu6>=0) THEN
231 ! WRITE(iu6,*) "NEBCELL: stress dot A"
232 ! WRITE(iu6,'(3F13.5)') stress
233 !ENDIF
234 stress(2,1)=0._q
235 stress(3,1)=0._q
236 stress(3,2)=0._q

I didn't find stress(3,3) in the neb.F file. Is that OK to modify the neb.F like following?
234 stress(2,1)=0.0
235 stress(3,1)=0.0
236 stress(3,2)=0.0

Thank you very much.

Best wishes,
Zhifenh

Re: SSNEB with only Z relaxtion?

Posted: Mon Nov 30, 2020 2:53 am
by graeme
You can install ASE locally - it does not have to be installed system-wide.

In regards to changing neb.F, stress is a 3x3 matrix. In our code it is an upper-diagonal matrix, which is why the following elements:
stress(2,1)=0._q
stress(3,1)=0._q
stress(3,2)=0._q
are set to zero. In your case, you can set all but the stress(3,3) element to zero.