Fermi.jl
Fermi.jl copied to clipboard
Orbitals objects are not within "best practices"
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)