On Wed, Apr 25, 2018 at 10:51 AM, Geoffrey Hutchison <
geoff.hutchi...@gmail.com> wrote:

> I'm working on an implementation of force field plugins for avogadrolibs
> but I have some conceptual questions on where to put some of the code.
>
> Initially, I'd just put the bits into qtplugins directories, like the
> "workflow" scripts. (Some of the force fields will be in C++ and others can
> be loaded as Python scripts.)
>

I think this is ideal when developing something new.

>
> But I can imagine wanting charges and force field energies in lots of
> places - particularly charges. For example, it would be great to have popup
> menus listing all charge models in multiple places in the UI:
>
> - Properties -> Atom (partial charges in a table)
> - Surfaces -> Electrostatic Potential (partial charges to color the
> surface)
> - Properties -> Dipole Moment (or something like this)
>
> There seems to be a need for these in core classes, or at least qtgui
>
> Thus, I can imagine developing a PythonScriptLoader class that finds
> scripts of different types (generators, workflows, charges, forcefields,
> etc.) and stores them as lists/hashes. Right now, interfacescript.h and
> pythonscript.h live in qtgui.


> Does it make sense for chargemodel.h and/or forcefield.h to live in qtgui
> as well? (This suggests that inputgenerator files should be moved there
> too.)
>

This sounds reasonable, I was thinking about the molequeue library, and I
didn't want to add an extra dependency to Avogadro's GUI stuff. The
MoleQueue client code is in a couple of classes we could pull in, they just
depend on QtCore/QtNetwork. I think defaulting to adding a few new data
structures to the qtgui library would be good, and we could look at whether
any of that would be useful in core later, i.e. so that it is accessible to
file IO, server code, etc.

If we are OK with adding the QtNetwork dependency we could fold in the
MoleQueue integration classes, otherwise we could just ensure the network
code is kept separate from the input generation. I think this is the better
option, it has been a while but I can look at how much work that will be.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Avogadro-devel mailing list
Avogadro-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/avogadro-devel

Reply via email to