Skip to content

Anharmonic Free Energy Update - #172

Merged
mjv500 merged 33 commits into
tdep-developers:mainfrom
ejmeitz:ethan-afe
Aug 18, 2026
Merged

Anharmonic Free Energy Update#172
mjv500 merged 33 commits into
tdep-developers:mainfrom
ejmeitz:ethan-afe

Conversation

@ejmeitz

@ejmeitz ejmeitz commented Mar 20, 2026

Copy link
Copy Markdown
Contributor

This PR takes code from Alois's anharmonic_free_energy branch which already fixed some bugs in the existing anharmonic_free_energy and fixes all the remaining bugs to the best of my knowledge.

The code calculates the first and second cumulant contributions (for F, S, U and Cv) and assumes that you are using self-consistent phonons. The constant correction terms (i.e., $$V_0$$) from the paper cannot be calculated in TDEP as it requires interfacing with LAMMPS or some other energy calculator.

This should match exactly with my own implementation that I used to collect data for a paper which was compared to ground truth values from TI. I will verify and then mark the PR as ready for review.

Example Output:

# Temperature:          0.800000000000E+02
 # Harmonic contribution
    # Free energy [eV/at]  Internal energy [eV/at]             Entropy [kB]       Heat capacity [kB]
          -0.002161720125           0.020681592720           3.313571612390           3.000000000000
 # First Cumulant Contribution
    # Free energy [eV/at]  Internal energy [eV/at]             Entropy [kB]       Heat capacity [kB]
           0.000055701287          -0.000055701287          -0.016159670355          -0.016159670355
 # Second Cumulant Contribution
    # Free energy [eV/at]  Internal energy [eV/at]             Entropy [kB]       Heat capacity [kB]
          -0.000787906127           0.000787906127           0.228581851748           0.228581851748

@ejmeitz
ejmeitz marked this pull request as ready for review March 30, 2026 19:10
@ejmeitz

ejmeitz commented Mar 30, 2026

Copy link
Copy Markdown
Contributor Author

@mjv500 @OrbitalC this is good to go. Just had some issues getting reference data for the tests. It seems the floating point error from using MPI or not when doing the sums matters.

@mjv500
mjv500 self-requested a review August 17, 2026 10:13
@mjv500

mjv500 commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

@ejmeitz looks quite good. I merged latest trunk. Nice addition of tests as well.

Namespace issue: lo_thermodynamic_helpers.f90 should be in libolle. Either it stays in the current position and you chop off the lo, or you move it to libolle/ in case other executables might use it someday.

once this is fixed we can merge

@ejmeitz

ejmeitz commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

@mjv500 All good. I removed the lo_ prefixes as the classes are specific to this algorithm. I also updated the citation with a link to the pre-print. I will try to remember to update that once its actually published.

@mjv500 mjv500 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all tests pass and overview of changes looks good

@mjv500
mjv500 merged commit 2a55478 into tdep-developers:main Aug 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants