forked from abacusmodeling/abacus-develop
-
Notifications
You must be signed in to change notification settings - Fork 154
Closed
Labels
Features NeededThe features are indeed needed, and developers should have sophisticated knowledgeThe features are indeed needed, and developers should have sophisticated knowledge
Description
What's this issue for?
- updating new developments
- asking questions
- being linked when modifying the existing code for the new feature
Problem 1: How can we get ground state infomation from ESolver_KS for beyond DFT methods?
The ground state information means wavefunction psi::Psi and band energy pelec->ekb.
Of course, we can write a file that will be read in the excited-state solver. But I think there should be a more elegant way like this:
// in Driver::driver_run():
psi::Psi ks_psi = p_esolver->get_psi();
ESolver_LRTDDFT(ks_psi);
However, this is not supported in the current program framework using polymorphism, because Psi is in the derived class and a pointer to the base class cannot get it.
Also, I don't think it's a reasonable way to let ESolver_LRTDDFT be a child class of ESolver_KS (from both code structure and physics points of view).
Are there any better solutions other than write-and-read or putting Psi into the base class ESolver?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Features NeededThe features are indeed needed, and developers should have sophisticated knowledgeThe features are indeed needed, and developers should have sophisticated knowledge