Shared-library interface with FHI-aims, allowing for split communicator
Recently, I've been working on how to use the FHI-aims shared library build through Python, and managed to build a sensible working approach thus: mpi4py_aims_interface.py
I was now wondering if this is something that can be incorporated into the FHI-aims calculator object in ASE, with the goal of being able to use task-farming approaches with e.g. NEB using this infrastructure.
What would be the best way to implement this? Naively, I'd probably create a hidden function to run FHI-aims as a shared library when e.g. the communicator object has been defined for the calculator, e.g. from ase.parallel import world; FHIaims(..., comm=world, ...)
, as a first step. Does this seem sensible? Are there alternative approaches and/or templates I should be looking at?
(Down the road there will be aspects such as working directories to consider for split communicators, but one step at a time!)
Thanks in advance for your help.