FermiQC / Fermi.jl

Fermi quantum chemistry program
MIT License
134 stars 24 forks source link

Orbitals objects are not within "best practices" #105

Open gustavojra opened 3 years ago

gustavojra commented 3 years ago

According to Julia documentation, it is best to avoid fields with abstract containers.

This is exactly what we do with our orbital structures:

struct RHFOrbitals <: AbstractRestrictedOrbitals
    molecule::Molecule
    basis::String
    eps::AbstractArray{Float64,1}
    sd_energy::Float64
    C::AbstractArray{Float64,2}
end

Thus, it would be better (according to Julia documentation) to write

struct RHFOrbitals{A} <: AbstractRestrictedOrbitals
    molecule::Molecule
    basis::String
    eps::AbstractArray{Float64,1}
    sd_energy::Float64
    C::A
end

Thou, I doubt this would change performance since orbitals are very rarely created. (e.g. at the end of a computation)