Using NWChem as an external program


Clicked A Few Times
Hello,
we want to use NWChem as an external program for energy calculations in our Monte Carlo simulations. We are looking at the possibilities of using NWChem externally, currently there are three :

1) For each calculation, generate an input file, launch NWChem and gather outputs. This requires the least effort and is portable, but is ineffective. There is a substational overhead in doing many NWChem program launches and generating files.

2) Using NWChem as a static or shared library. Is it possible to c ompile NWChem as a library?

3) Using some sort of inter-process communication between our program and a running instance of NWChem. I have read that NWChem uses Babel for communication across modules, so would it be possible to create Babel interface?

I kindly ask you for opinions on options 2 and 3. Did anyone tried something like this before? Any tips on programmer documentation? Thank you.

Best regards,
Martin Stachon
VSB-Technical University of Ostrava

Forum Vet
geninterface
Hi Martin,

I would recommend you take a look at the directory src/geninterface . These routines were written to interface with the VENUS direct dynamics code, when NWChem is the compute engine for energy, gradient, hessian, and frequencies. As you need only energies, this should be pretty easy to utilize the infrastructure there. In the end, VENUS uses the libraries of NWChem and links against them (i.e. like option 2. you are suggesting).

Two of the main developers, Marat Valiev (and also Eric Bylaska), are developing and using approaches more similar to 3. that allow for a more loose coupling between codes, but those are in the development stage. You are more than welcome to contact them and work with them to utilize that infrastructure.

Thanks,

Bert

Clicked A Few Times
geninterface
Thanks Bert. I will check both options.

Have a nice day,
Martin


Forum >> NWChem's corner >> Running NWChem