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)
According to Julia documentation, it is best to avoid fields with abstract containers.
This is exactly what we do with our orbital structures:
Thus, it would be better (according to Julia documentation) to write
Thou, I doubt this would change performance since orbitals are very rarely created. (e.g. at the end of a computation)