DFTK.jl icon indicating copy to clipboard operation
DFTK.jl copied to clipboard

Figure out an API for eigensolvers/SCF/solvers

Open antoine-levitt opened this issue 6 years ago • 2 comments

Ref https://github.com/mfherbst/DFTK.jl/pull/30 Something like

struct Eigensolver
    tol
    maxiter
    precon # Promises to implement precon(ham) -> P
    solver # Promises to implement solver(A,X0,P,tol=tol,maxiter=maxiter)
end

default_eigensolver(tol=1e-6, maxiter=100) = Eigensolver(tol, maxiter, lobpcg_hyper)

antoine-levitt avatar Oct 28 '19 15:10 antoine-levitt

Something like https://github.com/mauro3/Parameters.jl could help

antoine-levitt avatar Dec 10 '19 19:12 antoine-levitt

We really need to do this at one point. Something like

solver = Solver(basis, DensityMixing(; mixing, eigensolver); occupation_scheme, rho_init, psi_init)
scfres = solve(solver)

? That seems to be the pattern used in the SciML solvers.

antoine-levitt avatar Jul 23 '22 07:07 antoine-levitt

closing discussion in favour of #790.

mfherbst avatar Nov 23 '22 13:11 mfherbst