FermiQC / Fermi.jl

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

supporting AtomsBase #120

Open rkurchin opened 2 years ago

rkurchin commented 2 years ago

👋 Hi there!

As you may be aware, some of us over at JuliaMolSim have been developing AtomsBase, an interface package for specifying atomic geometries. I think Fermi.jl would be a great candidate to support AtomsBase and aid interoperability with other atomistic tools in Julia!

I thought I'd put this on your radar, and would be happy to discuss the best way to go about implementing the interface, and/or contribute to a PR to do so!

mfherbst commented 2 years ago

Quick comment: One thing I realised recently when thinking about the current state of AtomsBase is that for molecular systems a potential nuisance could be that we don't yet have custom system-level properties. Point is that charge/multiplicity are usually stored on the level of a full system for molecular structures (in contrast to solid-state systems where this is more commonly dealt with by atom-specific magnetic moments / charges). Not sure this is a blocker, but something one should probably fix in AtomsBase first if there is interest on the maintainer side of Fermi.jl to integrate with AtomsBase.

gustavojra commented 2 years ago

Hi there,

Sorry about the delay. Fermi currently uses Molecules.jl to handle description of atoms, more specifically handling XYZ type data. Do you guys have some minimal examples of AtomsBase usage? I could make it fit into Molecules.jl.

rkurchin commented 2 years ago

Ah, I didn't notice that, my apologies. Probably Molecules.jl would be the right place then; I should have filed this issue over there. For more details on AtomsBase you can see the docs. At a quick glance, I think the way to do it would be to make your Molecule type a subtype of AbstractSystem and dispatch the interface functions on that by pretty trivial analogy with our FlexibleSystem example.