If you are interested in just getting one model's auxiliary info, you can
use _M

$ load c:/temp/t.gamess
7 models
46 molecular orbitals in model 1.2
17 molecular orbitals in model 1.7

$ frame 1.7
$ print _M.keys
Energy
EnergyString
dipole
fileName
fileType
initialAtomCount
initialBondCount
moData
modelFileNumber
modelName
modelNumber
modelNumberDotted
modelProperties


>From JavaScript you would use:


info = Jmol.evaluateVar(jmolApplet0, "_M")

Should be relatively efficient.

Alternatively, if you want *instantaneous direct access to that Java object*
you can use

info = jmolApplet0._applet.viewer.ms.am[0].auxiliaryInfo

But two caveats:

1) You are bypassing the interfaces and tapping in to officially
"nonpublic" objects. Sometimes those underlying objects get name changes or
are otherwise refactored.

2) You are working with a transpiled Java Object. In this case,
java.util.Hashtable. You  have to use .get(key) to access its information:

jmolApplet0._applet.viewer.ms.getAuxiliaryInfo(6).__CLASS_NAME__
"java.util.Hashtable"

modata = jmolApplet0._applet.viewer.getAuxiliaryInfo(6).get("moData")
modata.__CLASS_NAME__
"java.util.Hashtable"

and deal with all of those values appropriately as well.








On Fri, Oct 21, 2016 at 7:54 PM, Mark Perri <per...@sonoma.edu> wrote:

> Dear users list,
>
>
> I'm trying to get MO energies and vibrational frequencies from a GAMESS
> output file that I read into JSmol.  Right now I use:
>
>
> var x = Jmol.getPropertyAsArray(jmolApplet0,"auxiliaryInfo");
>
>
> Then I iterate over every frame and look at x.models[i].moData.mos and
> x.models[i].modelProperties.Frequency
>
>
> But for a large file the getPropertyAsArray takes > 10 seconds and freezes
> Firefox while it's loading.  Reading the manual it seems that I can
> use getProperty asynchronously, but I don't understand how to use it
> properly.
>
>
> I set a message callback function to handle getProperty, but I'm not sure
> how to actually read in the moData.  It appears to be in arguments[1], but
> everything I try is undefined.  Here's an example of what I've tried.
>
>
> Thanks,
>
> Mark
>
>
> var Info = {
>     width: 450,
>     height: 450,
>     debug: false,
>     color: "white",
>     addSelectionOptions: false,
>     serverURL: "http://chemapps.stolaf.edu/jmol/jsmol/php/jsmol.php";,
>     use: "HTML5",
>     j2sPath: "/jsmol/j2s",
>     readyFunction: jmol_isReady,
>     script: script,
>     loadStructCallback: "onJSmolLoad",
>     messageCallback: "processFrames",
>     disableInitialConsole: true
> }
>
>
> function processFrames()
> {
>
>      for (i=0; i<arguments.length; i++)
>      {
>         console.log(arguments[i])  // I see the model data here, but I
> can't figure out how to access it.
>
>      }
>      console.log ("I've tried a few things here");
>     console.log(arguments[1].auxiliaryInfo.models[1]);
>     console.log ("But nothing's worked");
> }
>
>
> Jmol.script(jmolApplet0,'getProperty auxiliaryInfo')
>
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> _______________________________________________
> Jmol-users mailing list
> Jmol-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jmol-users
>
>


-- 
Robert M. Hanson
Larson-Anderson Professor of Chemistry
St. Olaf College
Northfield, MN
http://www.stolaf.edu/people/hansonr


If nature does not answer first what we want,
it is better to take what answer we get.

-- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Jmol-users mailing list
Jmol-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to