the output occupation of ks state is wrong?
Describe the bug
I am trying use this feature(https://github.com/deepmodeling/abacus-develop/issues/4714) with the examples shipped with ABACUS.
Why the occupation number at the 1st ionic step is not the same as istate.info?
There is no laser stimulation at all.
Expected behavior
No response
To Reproduce
No response
Environment
No response
Additional Context
No response
Task list for Issue attackers (only for developers)
- [ ] Verify the issue is not a duplicate.
- [ ] Describe the bug.
- [ ] Steps to reproduce.
- [ ] Expected behavior.
- [ ] Error message.
- [ ] Environment details.
- [ ] Additional context.
- [ ] Assign a priority level (low, medium, high, urgent).
- [ ] Assign the issue to a team member.
- [ ] Label the issue with relevant tags.
- [ ] Identify possible related issues.
- [ ] Create a unit test or automated test to reproduce the bug (if applicable).
- [ ] Fix the bug.
- [ ] Test the fix.
- [ ] Update documentation (if necessary).
- [ ] Close the issue and inform the reporter (if applicable).
As I have mentioned in #4714, index is not the ionic step.
istate.info is the result of the final ion step.
@lyb9812 Could you explain this question?
You can obtain the ks occupation of TDDFT per MD step from running_md.log using the develop branch.
In the running_md.log, the occupation number is unchanged during MD.
but in the example(https://github.com/deepmodeling/abacus-develop/issues/4714), the occupation number is changing during MD.
Maybe in the example I share, the occupation number is about how many electrons occupy the KS energy level in the ground state?
@AsTonyshment could you look into the issue?
I will have a look very soon.
@Satinelamp What do you mean by "occupation" (that you require for)? In fact, in the usual context, when we refer to "occupation", we mean $f_{j\boldsymbol{k}}$, which does not change with time after setting ocp_set. However, in RT-TDDFT, we can study the so-called "number of excitations". There are two mainstream schemes to represent the number of excitations (see figure below):
- Projecting $\psi_{i\boldsymbol{k}}(t)$ onto the adiabatic ground state of the eigenfunctions of $\hat{H}(t)$
- Projecting $\psi_{i\boldsymbol{k}}(t)$ onto the reference ground state at $t = 0$
I think No.2 is easier to implement.
The second definition works for us when studying the photocatalytic cases.
Okay, I will have a look at this issue.
to be more specific, i think for a ultrafast process, e.g. 0-100fs, the second definition is good. but if we are considering the time scale in 100-1000fs, maybe the 1st definition is needed. In other subtle cases like proton coupling electron transfer, maybe the 1st definition works better than the 2nd one. But anyway, currently, the 2nd definition will work for us.
Seems that we have a solution in #5477