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