Giter VIP home page Giter VIP logo

Comments (5)

ericchansen avatar ericchansen commented on July 28, 2024

I'm also unsure about that feature, but it sounds like a really good idea. Starting each MacroModel job is definitely the bottle neck.

It would work as long as every structure in the file needs the same datatypes extracted. We'd have to come up with some way to assign relative energies properly, but other than that, it'd be fairly straight forward.

Any ideas on how we do this? Notice anything in their API?

from q2mm.

arosale4 avatar arosale4 commented on July 28, 2024

I have been seeing what macromodel is capable of and it seems we might be able to implement something like this. There are only a few problems:

  1. Vibrational analysis can not be done on multiple structures in the same *.mae file, so these will still have to be ran independently.
  2. It seems that a *.mae file with 3 structures will output another *.mae file with the three optimized structures in the same order, and if the *.mmo option is given then it will give a single file with all three structures in order. It does look like there is an option to make multiple *.mmo's but they would follow the naming scheme that macromodel defines.

I'll keep looking into this to see if we can use this because running a minimization followed by energy calculation of 30 structures in a single file takes less than a second to finish.

from q2mm.

ericchansen avatar ericchansen commented on July 28, 2024

Just in case you haven't already, you may want to look into filetypes.Mae.write_com (writes .q2mm.com file according to datatypes requested) and its relation to filetypes.Mae._index_output_mae and filetypes.Mae._index_output_mmo. They're both lists that keep track of where output structures are. It recognizes that certain commands (like MINI, ELST, etc.) produce certain output, and updates these two lists to ensure we know the ordering of the structures.

These lists are then used by filetypes.select_structures to cherry pick the right structures needed for the given datatype.

For example, using options like -me and -meo simultaneously takes a 3 structure input .mae and gives you a 6 structure output q2mm.mae. This leads to

filetypes.Mae._index_output_mae = ['pre', 'opt']

and the ordering in .q2mm.mae goes

  1. Structure 1 SP
  2. Structure 1 geometry optimization
  3. Structure 2 SP
  4. Structure 2 geo.
  5. Structure 3 SP
  6. Structure 3 geo.

from q2mm.

arosale4 avatar arosale4 commented on July 28, 2024

TL,DR Unless we have multiple licenses to use with MacroModel we really can't take advantage of serial calculations in any meaningful way.

So I'm not sure why I have not realized this before and I am not sure if you (Eric) have known this or not. If we want to compare geometric data or charges we can just use one file and the code already handles them well in both loop.py and compare.py.

With file1.mae containing struct1, file2.mae containing struct 2, file3.mae containing struct 3 and file4.mae containg struct's 1-3, then you get the following. Submitting this will be slow:

python compare.py -c ' -mt file1.mae file2.mae file3.mae' -r ' -jt file1.mae file2.mae file3.mae'

While this command will give the same result but 3 times faster:

python compare.py -c ' -mt file4.mae' -r ' -jt file4.mae'

I think we can do the same thing with energies. Regardless if you do a single energy command (-me) or multiple energy commands (-me and -meo) the code already picks up the correct energies for file4.mae. I think a simple way to use one file would be to use a reference data file (file4.txt with some command X) that contains all of those energies. So it would look like this:

python compare.py -c ' -me file4.mae -meo file4.mae' -r ' -Xe file4.txt -Xeo file4.txt'

But since there are not too many structures to compare with energies this probably won't save much time.

As for eigenvalues and hessian elements we can't do anything about speeding them up from what I gather. The RHHO macromodel command, that does the vibrational analysis, can not be done in a serial manner, or at-least using the BGIN/END or AUTO commands.

from q2mm.

ericchansen avatar ericchansen commented on July 28, 2024

Reference energies don't need to load MacroModel, so that won't help with time savings. That's simply reading a .mae file.

You could speed up calculating MacroModel energies by putting them all in one file, but you would need some other file that says how the energies are grouped. Let me know if you need more explanation.

from q2mm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.