Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Free energy for computations with temperature #105

Closed
antoine-levitt opened this issue Jan 18, 2020 · 6 comments · Fixed by #127
Closed

Free energy for computations with temperature #105

antoine-levitt opened this issue Jan 18, 2020 · 6 comments · Fixed by #127
Labels
feature New feature or request
Milestone

Comments

@antoine-levitt
Copy link
Member

In case of computations at finite temperature, the energy is not variational wrt the orbitals, which makes it harder to compute derivatives such as forces. We should instead compute the free energy, which has an entropic contribution.

@antoine-levitt antoine-levitt mentioned this issue Jan 19, 2020
2 tasks
@mfherbst
Copy link
Member

Do you talk about a complete free energy minimisation, i.e. minimising

F(ρ, {f_i}, T) = E(ρ, {f_i}) - T * S({f_i})

over all parameters or just minimise it for a given temperature T. The latter would just amount to adding the S term to our energy expression for direct minimisation and an additional set of gradient entries for the f_i no?

@antoine-levitt
Copy link
Member Author

I'm thinking of SCF. SCF at finite temperature amounts to minimizing the free energy, not the energy. In particular in means that the Hellmann-Feynman forces are not the derivative of the energy but of the free energy.

To implement it in direct minimization is more tricky.

@mfherbst
Copy link
Member

How can one understand that? Differentiating the free energy with respect to the orbitals obviously gets one the "normal" Kohn-Sham non-linear eigenproblem. So is differentiating F wrt. f_i gives the constraint of conservation of particle number? (haven't really check the literature on free energy methods yet).

@antoine-levitt
Copy link
Member Author

Solve min_gamma tr(H gamma) - T S(gamma) under the constraint 0 <= gamma <= 1 (needed to define S), gamma^* = gamma, tr(gamma) = N, S being the fermionic entropy of the density matrix gamma, and you get gamma = FD(H - mu), FD being the Fermi-Dirac distribution and mu the Lagrange multiplier of the constraint tr gamma = N. You can also see it as you do with f_i and phi_i: the stationarity wrt f_i is what gives you f_i = FD(eps_i - mu).

@mfherbst
Copy link
Member

Thanks!

@antoine-levitt
Copy link
Member Author

For other types of smearing functions f this also works, with a slightly different entropy term. See https://www.vasp.at/vasp-workshop/k-points.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants