Page 1 of 1

How to output charge populations during a MD simulation

Posted: Tue Jul 30, 2024 8:26 am
by xiancai
Dear VASP developers and users,

I am used to performing FPMD simulations using VASP, and now I want to output the (atomic) charge population during a FPMD simulation. I have noticed that adding IVDW=21 in the INCAR file enables Hirshfeld(-I) population analysis, but it seems that this option adds a vdW correction to the simulation, which may change the results. I am wondering if there is another way to output charge population in VASP?

Thank you for your time and I am looking forward to your reply.
Sincerely
Hua Tian

Re: How to output charge populations during a MD simulation

Posted: Tue Jul 30, 2024 9:47 am
by manuel_engel1
Dear Hua Tian,

Thanks for posting on the VASP forum. The IVDW=21 option will indeed change the results as described on the corresponding wiki page. Sadly, there are currently no built-in ways of calculating the charge population per atom in VASP.

A typical workaround is to run the MD one step at a time (or however many steps you want between charge analyses), and write out the charge density (CHGCAR file). Keep in mind that the CHGCAR does not contain the actual charge density of the current step in MD simulations, but rather an extrapolated charge density. For details, consult the MD section on the CHGCAR file wiki page. Therefore, make sure you run a standard DFT step for getting the actual charge density of the MD step. You can then use, for example, Bader to analyze the charge density to get what you want.

Re: How to output charge populations during a MD simulation

Posted: Tue Jul 30, 2024 10:57 am
by xiancai
Dear Dr. Manuel,

Thank you very much for your early and detailed reply!

Based on your reply and the corresponding wiki pages, the procedure to obtain the (atomic) charge population is as follows: (1) extract some frames from the FPMD trajectory; (2) perform single-point calculations for these frames to obtain the CHGCAR files; and (3) conduct (e.g.,) Bader charge analysis to obtain the charge populations.

The only one concern is that my FPMD simulations are spin-polarized (with ISYM = 0). In the single-point calculations, the final magnetic state strongly depends on the initial values for MAGMOM. I am unsure if this will influence the charge populations. On the other hand, I do not know the input MAGMOM values of the frames during the FPMD simulations, but I guess they are not the MAGMOM values in the INCAR file. Could you please provide some suggestions? Thank you for your time!

Sincerely,
Hua Tian

Re: How to output charge populations during a MD simulation

Posted: Tue Jul 30, 2024 12:37 pm
by manuel_engel1
Based on your reply and the corresponding wiki pages, the procedure to obtain the (atomic) charge population is as follows: (1) extract some frames from the FPMD trajectory; (2) perform single-point calculations for these frames to obtain the CHGCAR files; and (3) conduct (e.g.,) Bader charge analysis to obtain the charge populations.
Correct! This is the procedure I meant in my previous reply.

Regarding MAGMOM, this is not an easy problem to solve. You can try to set LORBIT=11 in the INCAR file. This writes the magnetization per atom (and atomic orbital type) into the OUTCAR file (look for "magnetization" at the end of each ionic step) and the vaspout.h5 file (in the dataset vaspout.h5/intermediate/ion_dynamics/magnetism/spin_moments/values). This might help you choose appropriate values for MAGMOM.

A different idea is to stop the MD whenever you need the analysis (for example, by setting NSW to the desired number of steps), copy the WAVECAR and CONTCAR files and restart a one-shot DFT calculation from the WAVECAR. This way, there is no need to specify MAGMOM as all the information is contained within the WAVECAR.

Re: How to output charge populations during a MD simulation

Posted: Tue Jul 30, 2024 5:52 pm
by xiancai
Dear Dr. Manuel,

Thank you very much for your guidance. I will try to set LORBIT=11 firstly.

Sincerely,
Hua Tian