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

Integration of EG-XC into Mess #20

Open
9 tasks
ESEberhard opened this issue Oct 23, 2024 · 1 comment
Open
9 tasks

Integration of EG-XC into Mess #20

ESEberhard opened this issue Oct 23, 2024 · 1 comment

Comments

@ESEberhard
Copy link

Fix Ups

Runtime / Memory Related Issues

  • Implement Density Fitting for ERI-tensors
  • Only use double precision where it is needed

Extending the SCF submodule

  • The current SCF implementation seems limited to hatree fock calculations, which should be extended to DFT. I consider the work by Lehtola et al. a great guide to the numerics of DFT methods in finite basis sets.
  • More sophisticated initial guesses required e.g. minao see pyscf
    • Should be implemented in a runtime-aware way
  • Add convergence acceleration methods like Direct Inversion of the Iterative Subspace (DIIS) see psi4 explanation
    • (Unit) test for a larger molecule with a larger basis (this is typically when these methods like DIIS are required to avoid energy oscillations along the solver trajectory).

Programming Interface

  • Common interface for optimizers (SCF and direct minimization)
  • Interface for learnable XC-Functionals, including learnable parameters and nuclei positions
      class XCEnergyProtocol(Protocol):
        def __call__(
            self, 
            params: NnParams,
            density_matrix: jax.Array,
            nuclei_positions: jax.Array,
            ao_value_grid: jax.Array
        ) -> jax.Array:
            ...
    the explicit dependence of $E_{XC}$ on the denstity matrix $P$ is required to obtain the exchange correlation potential $V_{XC} = \frac{\partial E_{XC}}{\partial P}$
@hatemhelal
Copy link
Member

Thank you for preparing this and these all make sense at a high-level to me.

The current SCF implementation seems limited to hatree fock calculations

The current SCF implementation was an initial prototype so is quite limited in functionality. At the time I thought it would be nice to compare SCF to direct minimisation but to do this correctly I think it would need DIIS as well as extending direct minimisation that aren't currently available in the minimise interface. Let us know if that sounds interesting and we could coordinate.

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

No branches or pull requests

2 participants