Skip to content

Quantum#40

Merged
vegardjervell merged 118 commits into
mainfrom
quantum
Nov 18, 2025
Merged

Quantum#40
vegardjervell merged 118 commits into
mainfrom
quantum

Conversation

@vegardjervell

Copy link
Copy Markdown
Collaborator

Contains basically all the stuff related to "The limits of the FH corrections"

Short summary:

  • Quantum mechanical methods for calculation of second virials and collision integrals
    • Including tabulated values of bound state energies computed using MolCas VibRot
  • Several new multiparameter (ab initio) interaction potentials
  • Functionality for quasi-symbolic differentiation
  • Feynman-Hibbs correction of arbitrary potentials to arbitrary order
  • Functionality for tabulating potentials (gives a solid speed-up for the heavy multiparameter potentials)

Basic structure:

  • The Quantum class inherits from Spherical and implements all our quantum mechanical calculations
    • If you set_quantum_active(false), calls will forwarded to Spherical, which does the same old classical calculations.
    • The multiparameter classes ( ModTangToennies, Patowski, and HFD_B2) now inherit from Quantum instead of Spherical
  • Feynman-Hibbs corrections are implemented as the template class FH_Corrected in extensions.h
    • The template requires that the underlying potential implements potential_dn, which is the n'th derivative of the potential.
    • See multiparam.h for example usage of the FH_Corrected template.
    • See multiparam.cpp for examples on how to implement arbitrary order derivatives.
  • In extensions.h we now also have the Tabulated template class, which can be used to quickly create a tabulated version of some other model. For example: Tabulated<Patowski, 1000, 1>, will create a class identical to the Patowski class, which uses 1000 tabulated points for the potential and first and second derivative, with first order (1) interpolation between points.
  • The quasi-symbolic differentiation is implemented in Factorials.(h|cpp). I have a more fleshed-out implementation that is more or less completely general (can handle pretty much any analytical function) over in a different repo. That implementation is also ported to Fortran and Python, which is nice.
  • The fluid files (fluids/) have been supplemented with fluids/E_bound/*.dat and fluids/E_bound/*.phase_shifts. These are tables of bound-state energies (computed using MolCas) and phase shifts (computed using KineticGas). The former is required in order to calculate second virial coefficients. The latter is just nice to have, since these calculations are expensive.
  • Fluids now have the Quantum field in the fluid file, which contains information required for classes inheriting from Quantum. This includes the half_spin(i.e. spin multiplied by two) which determines whether the species is a Boson or a Fermion, and the E_bound (or alternatively, has_E_bound_file: true) which contains the bound state energies in Kelvin.

RDF is giving a lot of nan, but at least stuff is running now
…to potential

Implemented AT_Sutherland for easy initialisation of AT-corrected Sutherland-potentials.
…r to be correctly implemented now.

Cross sections computed for He4-He4, He4-He3, and He3-He3 reproduce those reported by Meeks et al. J. Chem. Phys. (1994),
https://doi.org/10.1063/1.466370

This serves as a test that Bosons, Fermions and distinguishable particles are treated correctly.
…um collision integrals. Refactored sanitizing function for mole fractions for clearer naming.
…caching issue where QuantumMie was using density-dependent caches for collision integrals and transfer lengths.
… figures from the paper for the potential curve."
…t integration over energy was cut off too early.
@vegardjervell

Copy link
Copy Markdown
Collaborator Author

Just pinging @johanslo since reading the top-level description of this PR might be nice to get a quick overview of some new functionality that could turn out to be useful.

@vegardjervell vegardjervell merged commit 4545e40 into main Nov 18, 2025
@vegardjervell vegardjervell mentioned this pull request Nov 21, 2025
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.

1 participant