SSNEB with only Z relaxtion?

Vasp transition state theory tools

Moderator: moderators

Post Reply
zhifeng
Posts: 2
Joined: Fri Nov 27, 2020 1:24 pm

SSNEB with only Z relaxtion?

Post 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
graeme
Site Admin
Posts: 2291
Joined: Tue Apr 26, 2005 4:25 am
Contact:

Re: SSNEB with only Z relaxtion?

Post 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.
zhifeng
Posts: 2
Joined: Fri Nov 27, 2020 1:24 pm

Re: SSNEB with only Z relaxtion?

Post 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
graeme
Site Admin
Posts: 2291
Joined: Tue Apr 26, 2005 4:25 am
Contact:

Re: SSNEB with only Z relaxtion?

Post 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.
Post Reply