Skip to content
Snippets Groups Projects
Commit 198b87aa authored by root's avatar root
Browse files

Update files

parent 98f961bb
No related branches found
No related tags found
No related merge requests found
.jmolConsole {
/*
* top: 10px !important;
* left: 10px !important;
*/
z-index: 2147483647 !important;
}
.jmolPopupMenu {
/*
* top: 10px !important;
* left: 10px !important;
*/
z-index: 2147483647 !important;
}
.jmolPopupMenu a
{
color: #222222;
font-size: 10px;
}
.jmolPopupMenu, .jmolPopupMenu .ui-corner-all
{
border-top-left-radius: 5px;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
line-height: 0.9;
}
.jmolPopupMenu .ui-state-hover, .jmolPopupMenu .ui-state-focus
{
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #79b7e7;
border-right-color: #79b7e7;
border-bottom-color: #79b7e7;
border-left-color: #79b7e7;
border-image-source: none;
border-image-slice: 100% 100% 100% 100%;
border-image-width: 1 1 1 1;
border-image-outset: 0 0 0 0;
border-image-repeat: stretch stretch;
background-color: #d0e5f5;
background-image: none;
background-repeat: repeat;
background-attachment: scroll;
background-position: 0% 0%;
background-clip: border-box;
background-origin: padding-box;
background-size: auto auto;
color: #1d5987;
}
.jmolPopupMenu .ui-menu-item a
{
display: block;
padding-top: 0.05em;
padding-right: 0.4em;
padding-bottom: 0.05em;
padding-left: 0.4em;
white-space: nowrap;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: transparent;
border-right-color: transparent;
border-bottom-color: transparent;
border-left-color: transparent;
border-image-source: none;
border-image-slice: 100% 100% 100% 100%;
border-image-width: 1 1 1 1;
border-image-outset: 0 0 0 0;
border-image-repeat: stretch stretch;
}
.jmolPopupMenu input[type="checkbox"]
{
vertical-align: middle;
}
/* basic yui CSS for JSmol popup menu*/
.ui-menu-item hr,
.ui-menu-item ul,
.ui-menu-item li,
.ui-menu-item a,
.ui-menu-item label
{
font-size: 10px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
}
.jmolPanelImg
{
height: 16px;
width: 16px;
margin: 2px 2px 0px 0px;
}
.jmolPanelControl
{
margin: 2px 2px 0px 0px;
}
#jmolApplet0_appletdiv p
{
margin-top: 0em;
margin-bottom: 0em;
}
#jmolApplet0_infodiv
{
top: 0px !important;
}
.jmolwrapper
{
height:100%;
width:100%;
overflow:hidden;
margin:0;
padding:0;
}
#jmolstructure
{
width:100%;
}
#jmolpanel
{
width: 100%;
background-color: lightgray;
padding: 0 0 2 2;
}
.bgblack {
background-color: black;
color: white;
}
.bgwhite {
background-color: white;
}
.bglightgrey {
background-color: lightgray;
}
Clazz.declarePackage ("J.adapter.readers.xml");
Clazz.load (["J.adapter.readers.xml.XmlCmlReader"], "J.adapter.readers.xml.XmlMOReader", ["java.util.Hashtable", "JU.AU", "$.Lst", "$.PT", "J.adapter.readers.quantum.MOReader", "J.adapter.smarter.Resolver", "J.quantum.QS", "JU.Logger"], function () {
c$ = Clazz.decorateAsClass (function () {
this.moReader = null;
this.skipMOs = false;
this.htSlaterIDs = null;
this.basisData = null;
this.basisId = null;
this.isSpherical = false;
this.minL = 0;
this.maxL = 0;
this.basisIds = null;
this.basisAtoms = null;
this.orbOcc = 0;
this.orbEnergy = 0;
this.gaussianCount = 0;
this.slaterCount = 0;
this.coefCount = 0;
this.groupCount = 0;
this.lstGaussians = null;
this.moCount = 0;
this.calcType = null;
this.iModelMO = 0;
this.dclist = null;
this.dslist = null;
this.fclist = null;
this.fslist = null;
this.iHaveCoefMaps = false;
this.maxContraction = 0;
Clazz.instantialize (this, arguments);
}, J.adapter.readers.xml, "XmlMOReader", J.adapter.readers.xml.XmlCmlReader);
Clazz.overrideMethod (c$, "processXml",
function (parent, saxReader) {
this.htModelAtomMap = new java.util.Hashtable ();
this.processXml2 (parent, saxReader);
}, "J.adapter.readers.xml.XmlReader,~O");
Clazz.defineMethod (c$, "processStartMO",
function (localName) {
if (localName.equals ("molecule")) {
var method = this.atts.get ("method");
if (method != null) this.calcType = method + "(" + this.atts.get ("basis") + ")";
return true;
}if (localName.equals ("basisset")) {
this.iModelMO = this.asc.iSet;
this.lstGaussians = new JU.Lst ();
this.htSlaterIDs = new java.util.Hashtable ();
this.coefCount = this.groupCount = this.gaussianCount = this.slaterCount = 0;
if (this.moReader == null && !this.skipMOs) {
var rdr = J.adapter.smarter.Resolver.getReader ("MO", this.parent.htParams);
if ((Clazz.instanceOf (rdr, String))) {
this.skipMOs = true;
} else {
this.moReader = rdr;
this.moReader.asc = this.asc;
if (this.iHaveCoefMaps) {
var m = this.moReader.getDfCoefMaps ();
if (this.dclist != null) J.quantum.QS.createDFMap (m[4], this.dclist, "DXX DYY DZZ DXY DXZ DYZ", 2);
if (this.dslist != null) J.quantum.QS.createDFMap (m[3], this.dslist, "d0 d1+ d1- d2+ d2-", 2);
if (this.fclist != null) J.quantum.QS.createDFMap (m[6], this.fclist, "XXX YYY ZZZ XYY XXY XXZ XZZ YZZ YYZ XYZ", 2);
if (this.fslist != null) J.quantum.QS.createDFMap (m[5], this.fslist, "f0 f1+ f1- f2+ f2- f3+ f3-", 2);
}}}if (this.moReader != null) this.moReader.calculationType = this.calcType;
return true;
}if (this.moReader != null) {
if (localName.equals ("basisgroup")) {
this.groupCount++;
this.basisId = this.atts.get ("id");
this.isSpherical = "spherical".equalsIgnoreCase (this.atts.get ("angular"));
this.minL = JU.PT.parseInt (this.atts.get ("minl"));
this.maxL = JU.PT.parseInt (this.atts.get ("maxl"));
var nContractions = JU.PT.parseInt (this.atts.get ("contractions"));
var n = nContractions * (this.isSpherical ? this.minL * 2 + 1 : Clazz.doubleToInt (this.minL * (this.minL + 3) / 2) + 1);
this.htModelAtomMap.put (this.basisId + "_count", Integer.$valueOf (n));
return true;
}if (localName.equals ("basisexponents") || localName.equals ("basiscontraction")) {
this.setKeepChars (true);
return true;
}if (localName.equals ("orbital") && this.gaussianCount > 0) {
this.orbOcc = JU.PT.parseFloat (this.atts.get ("occupation"));
this.orbEnergy = JU.PT.parseFloat (this.atts.get ("energy"));
this.setKeepChars (true);
return true;
}}return false;
}, "~S");
Clazz.defineMethod (c$, "processEndMO",
function (localName) {
if (this.moReader != null) {
if (localName.equals ("basisexponents")) {
this.basisData = new JU.Lst ();
this.basisData.addLast (JU.PT.parseFloatArray (this.chars.toString ()));
this.setKeepChars (false);
return true;
}if (localName.equals ("basiscontraction")) {
var data = JU.PT.parseFloatArray (this.chars.toString ());
this.basisData.addLast (data);
if (this.basisData.size () > this.maxContraction) this.maxContraction = this.basisData.size ();
this.setKeepChars (false);
return true;
}if (localName.equals ("basisgroup")) {
var otype;
switch (this.minL) {
case 0:
otype = (this.maxL == 1 ? "L" : "S");
break;
case 1:
otype = "P";
break;
default:
otype = (this.minL <= 7 ? "SPDFGHI".substring (this.minL, this.minL + 1) : "?");
if (this.isSpherical) otype = (2 * (this.minL) + 1) + otype;
}
this.lstGaussians.addLast (this.basisData);
var nPrimitives = this.basisData.get (0).length;
for (var i = 1, n = this.basisData.size (); i < n; i++) {
this.htSlaterIDs.put (this.basisId + "_" + i, Clazz.newIntArray (-1, [-1, this.moReader.getQuantumShellTagID (otype), this.gaussianCount, nPrimitives]));
this.gaussianCount += nPrimitives;
}
return true;
}if (localName.equals ("basisset")) {
this.buildSlaters ();
return true;
}if (localName.equals ("orbital")) {
if (this.gaussianCount == 0) return true;
var coef = JU.PT.parseFloatArray (this.chars.toString ());
if (this.moCount == 0) {
if (coef.length != this.coefCount) {
JU.Logger.error ("Number of orbital coefficients (" + coef.length + ") does not agree with expected number (" + this.coefCount + ")");
this.moReader = null;
return this.skipMOs = true;
}JU.Logger.info (this.coefCount + " coefficients found");
}this.moReader.addCoef ( new java.util.Hashtable (), coef, null, this.orbEnergy, this.orbOcc, this.moCount++);
this.setKeepChars (false);
return true;
}if (localName.equals ("orbitals")) {
this.moReader.setMOData (true);
JU.Logger.info ("XmlMOReader created\n " + this.gaussianCount + " gaussians\n " + this.slaterCount + " slaters\n " + this.groupCount + " groups\n " + this.coefCount + " orbital coefficients\n " + this.moCount + " orbitals");
return true;
}if (this.state == 19) {
if (localName.equals ("bases")) {
this.basisIds = this.getXlink (this.atts.get ("href"), "basisGroup", false);
} else if (localName.equals ("atoms")) {
this.basisAtoms = this.getXlink (this.atts.get ("href"), "atom", true);
} else if (localName.equals ("association")) {
this.state = 6;
for (var i = this.basisAtoms.length; --i >= 0; ) {
var a = this.htModelAtomMap.get (this.basisAtoms[i]);
if (a == null) {
JU.Logger.error ("XmlMOReader atom not found; orbitals skipped: " + a);
this.moReader = null;
return this.skipMOs = true;
}this.htModelAtomMap.put (this.basisAtoms[i] + "_basis", this.basisIds);
}
this.slaterCount += this.basisIds.length * this.basisAtoms.length;
}return true;
}}return false;
}, "~S");
Clazz.defineMethod (c$, "buildSlaters",
function () {
var gaussians = JU.AU.newFloat2 (this.gaussianCount);
for (var i = 0, p = 0, n = this.lstGaussians.size (); i < n; i++) {
this.basisData = this.lstGaussians.get (i);
var exp = this.basisData.get (0);
for (var ii = 1, nn = this.basisData.size (); ii < nn; ii++) {
var coef = this.basisData.get (ii);
for (var j = 0; j < exp.length; j++) gaussians[p++] = Clazz.newFloatArray (-1, [exp[j], coef[j], 0]);
}
}
this.moReader.gaussians = gaussians;
var slaters = new JU.Lst ();
var modelID = this.htModelAtomMap.get ("" + this.iModelMO);
var i0 = this.asc.getAtomSetAtomIndex (this.iModelMO);
for (var i = 0, n = this.asc.getAtomSetAtomCount (this.iModelMO); i < n; i++) {
var ids = this.htModelAtomMap.get (modelID + this.asc.atoms[i0 + i].atomName + "_basis");
if (ids == null) continue;
for (var k = 0; k < ids.length; k++) {
var key = ids[k] + "_count";
this.coefCount += (this.htModelAtomMap.get (key)).intValue ();
for (var kk = 1; kk < this.maxContraction; kk++) {
var slater = this.htSlaterIDs.get (ids[k] + "_" + kk);
if (slater == null) break;
slater = JU.AU.arrayCopyI (slater, -1);
this.moReader.shells = slaters;
slater[0] = i;
slaters.addLast (slater);
}
}
}
});
Clazz.defineMethod (c$, "getXlink",
function (href, key, addMoleculeID) {
var p = href.indexOf (key + "[") + 1;
var tokens = JU.PT.split (href.substring (p), "'");
var data = new Array (Clazz.doubleToInt (tokens.length / 2));
var molID = (addMoleculeID ? JU.PT.getQuotedAttribute (href.substring (0, p).$replace ('\'', '"'), "molecule[@id") : "");
for (var i = 1, pt = 0; i < tokens.length; i += 2) data[pt++] = molID + tokens[i];
return data;
}, "~S,~S,~B");
});
Clazz.declarePackage ("J.quantum");
Clazz.load (["J.quantum.QuantumCalculation"], "J.quantum.QuantumPlaneCalculation", null, function () {
c$ = Clazz.declareType (J.quantum, "QuantumPlaneCalculation", J.quantum.QuantumCalculation);
});
js/jsmol/jcse/arrowleft.png

229 B

js/jsmol/jcse/arrowright.png

170 B

<!DOCTYPE HTML>
<html>
<head>
<title>Jmol Crystal Symmetry Explorer</title>
<script type="text/javascript" src="../JSmol.min.js"></script>
<script type="text/javascript" src="../js/Jmol2.js"></script>
<script type="text/javascript">
Jmol.Info.jarPath = "../java"
Jmol.Info.j2sPath = "../j2s"
datadir = "../data"
//jmolInitialize("../java/","JmolAppletSigned0.jar")
jmolSetMenuCssClass('" style="font-style:italic"')
var Models = "=1blu {1 1 1}|P31 2 1,\
nepheline.cif|P 61,\
troilite.cif|P -6 2 c,\
quartz.cif|P 32 2 1,\
-00=---------------------------,\
-99=---------------------------,\
-01=04369a.cif |P n m a,\
-02=AgFUPMOS.cif|P 21/n,\
diamond.cif|F d -3 m:2,\
dickite.cif|C 1 c 1,\
gold.cif|F m -3 m,\
-03=kuds0105a.ccdc.cif |P 21 21 21,\
calcite.cif 1 packed|R -3 c:h,\
Ti2O3.cif|R -3 c:h,\
icsd_200866.cif 1 packed|P 63/m m c,\
icsd_250072.cif|P -6,\
icsd_26520.cif|P 63 m c,\
maleic.cif 5 {1 1 1}|P 21/c,\
nacl.cif|F m -3 m,\
-04=nank0104a.ccdc.cif |F d d 2,\
-05=sebi0105c.ccdc.cif |P 21 21 21\
".split(",")
var modelSelectHtml
var defaultScript = ""
/*
http://chemapps.stolaf.edu/jmol/docs/examples-11/showsym.htm
Jmol Crystal Symmetry Explorer
Bob Hanson, 8/21/2009
for the 238th American Chemical Society National Meeting, Washington, D.C.
This page graphically displays symmetry operators for a model.
You can load any of the examples here or any file of your own.
*/
/// initial HTML for the page
selectedModel = ""
function getModelSelectHtml() {
Models = Models.sort()
var xxxx = document.location.search
var isDefault = true
if (xxxx.indexOf("?load") == 0) {
defaultScript = unescape(xxxx.substring(1))
isDefault = false
} else if (xxxx.length > 1) {
selectedModel = xxxx
if (xxxx.indexOf(" ") < 0)xxxx += " packed"
isDefault = false
defaultScript = 'set echo top left;echo loading ' + selectedModel + '...;refresh;load ' + xxxx + ';echo "";'
}
var s = "<select id='modelselect' onchange=getModel() onkeypress=\"setTimeout('getModel()',50)\"><option value=''>select a model</option>"
if (!isDefault) {
var S = selectedModel.split("/")
s += "<option selected value='"+selectedModel+"'>" + S[S.length - 1] + "</option>"
}
for (var i = 0; i < Models.length; i++) {
var S = Models[i];
if (S.indexOf("-") == 0)
S = S.split("=")[1]
S = S.split("|")
var m = S[0];
var sg = S[1];
if (sg)sg = " (" + sg + ")"
var isSelected = (m.indexOf("*")>=0 && isDefault)
m = m.replace(/\*/,"")
if (m.indexOf(" ") < 0)m += " packed"
if (isSelected)selectedModel = m
var n = m.split(".")[0].split(" ")[0]
var f = (n.indexOf("=") == 0 ? "\"" + m.replace(/ /,'" '): datadir + "/" + m)
if (m.indexOf("----") >= 0)f = "zap";
s += "<option value='" + f + "' " + (isSelected ? " selected": "") + ">" + n.replace(/\=/,"") + "</option>"
}
s += "</select>"
modelSelectHtml = s
if (selectedModel && selectedModel.indexOf("/") < 0) selectedModel = datadir + "/" + selectedModel
if (selectedModel && !defaultScript)defaultScript = "load " + selectedModel
}getModelSelectHtml()
//// user actions from selections
function getModel(justCheck) {
var d = document.getElementById("modelselect")
if (d.selectedIndex == 0)return
var model = d[d.selectedIndex].value
if (!model || justCheck && model == selectedModel)return
selectedModel = model
var cmd = (model == "zap" ? model : "load " + model);
document.getElementById("jmolCmd0").value=cmd
jmolScript(cmd)
}
function getTxtOp() {
getSelect(document.getElementById("txtop").value)
}
function getSelect(symop) {
var d = document.getElementById("atomselect")
var atomi = d.selectedIndex
var pt00 = d[d.selectedIndex].value
var showatoms = (document.getElementById("chkatoms").checked || atomi == 0)
jmolScript("display " + (showatoms ? "all" : "none"))
var d = document.getElementById("symselect")
var iop = parseInt(d[d.selectedIndex].value)
if (!iop && !symop) symop = document.getElementById("txtop").value
if (!symop) {
if (!iop) {
jmolScript("select *;color opaque;draw sym_* delete")
return
}
symop = d[d.selectedIndex].text.split("(")[1].split(")")[0]
document.getElementById("txtop").value = symop
}
if (pt00.indexOf("{") < 0)pt00 = "{atomindex=" + pt00 + "}"
var d = document.getElementById("selopacity")
var opacity = parseFloat(d[d.selectedIndex].value)
if (opacity < 0) opacity = 1
var script = "select *;color atoms translucent " + (1-opacity)
script += ";draw symop \"" + symop + "\" " + pt00 + ";"
if (atomi == 0) {
script += ";select symop=1555 or symop=" + iop + "555;color opaque;"
} else if (atomi >= 3) {
script += ";pt1 = " + pt00 + ";pt2 = all.symop(\"" + symop + "\",pt1).uxyz.xyz;select within(0.2,pt1) or within(0.2, pt2);color opaque;"
}
secho = SymInfo[symop]
if (!secho){
secho = jmolEvaluate("all.symop('" + symop + "',{0 0 0},'draw')").split("\n")[0]
if (secho.indexOf("//") == 0) {
secho = secho.substring(2)
} else {
secho = symop
}
}
script = "set echo top right;echo " + secho + ";" + script
jmolScript(script)
}
function doarrow(x) {
var d = document.getElementById("symselect")
x += d.selectedIndex
if (x < 0 || x >= d.length) return
d.selectedIndex = x
getSelect()
}
/// Jmol callbacks
function errorCallback(a, b, msg) {
alert(msg)
}
function loadstructCallback() {
document.getElementById("note").style.display = "block"
document.getElementById("loading").style.display = "block"
setTimeout('getSymInfo()',100) // need the timeout to get another thread or this will lock
}
function pickCallback(a,b,i) {
var d = document.getElementById("atomselect")
d.selectedIndex = i + 3
document.getElementById("chkatoms").checked = true
getSelect()
}
SymInfo = {}
function getSymInfo() {
// update all of the model-specific page items
SymInfo = {}
var s = ""
var info = jmolEvaluate('script("show spacegroup")')
if (info.indexOf("x,") < 0) {
s = "no space group"
} else {
var S = info.split("\n")
var hm = "?"
var itcnumber = "?"
var hallsym = "?"
var latticetype = "?"
var nop = 0
var slist = ""
for (var i = 0; i < S.length; i++) {
var line = S[i].split(":")
if (line[0].indexOf("Hermann-Mauguin symbol") == 0)
s += "<br>" + S[i].replace(/Hermann\-Mauguin/,"<a href=http://en.wikipedia.org/wiki/Hermann%E2%80%93Mauguin_notation target=_blank>Hermann-Mauguin</a>")
else if (line[0].indexOf("international table number") == 0)
s += "<br>" + S[i].replace(/international table number/,"<a href=http://it.iucr.org/ target=_blank>international table</a> number")
else if (line[0].indexOf("Hall symbol") == 0)
s += "<br>" + S[i].replace(/Hall symbol/,"<a href=http://cci.lbl.gov/sginfo/hall_symbols.html target=_blank>Hall</a> symbol")
else if (line[0].indexOf("lattice type") == 0)
s += "<br>" + S[i].replace(/lattice type/,"<a href=http://cst-www.nrl.navy.mil/bind/static/lattypes.html target=_blank>lattice type</a>")
else if (line[0].indexOf(" symmetry operations") >= 0)
nop = parseInt(line[0])
else if (nop > 0 && line[0].indexOf(",") >= 0)
slist += "\n" + S[i]
}
s += "<br><br><a href=javascript:doarrow(-1)><img align=bottom src=arrowleft.png border=0 /></a> "
s += nop + " operators"
s += " <a href=javascript:doarrow(1)><img align=bottom src=arrowright.png border=0 /></a>"
var S = slist.split("\n")
var n = 0;
var i = -1;while (S[++i].indexOf(",") < 0){}
s += "<br><select id='symselect' onchange=getSelect() onkeypress=\"setTimeout('getSelect()',50)\"><option value=0>select a symmetry operation</option>"
for (;i < S.length;i++)
if (S[i].indexOf("x") >= 0) {
var sopt = S[i].split("|")[0].split("\t")
SymInfo[sopt[1]] = S[i].replace(/\t/,": ").replace(/\t/,"|")
sopt = sopt[0] + ": " + sopt[2] + " (" + sopt[1] + ")"
s += "<option value='" + parseInt(sopt) + "'>" + sopt + "</option>"
}
s += "</select>"
s += "</br><input type=text id=txtop width=30 value='1-x,1-y,1-z' /><a href=javascript:getTxtOp()>show</a>"
var info = jmolEvaluate('{*}.label("#%i %a {%[fxyz]/1}")').split("\n")
var nPoints = info.length
var nBase = jmolEvaluate('{symop=1555}.length')
s += "<br><select id='atomselect' onchange=getSelect() onkeypress=\"setTimeout('getSelect()',50)\"><option value=0>base atoms</option>"
s += "<option value='{0 0 0}'>{0 0 0}</option>"
s += "<option value='{1/2 1/2 1/2}'>{1/2 1/2 1/2}</option>"
for (var i = 0; i < nPoints; i++)
s+= "<option value=" + i + (i == 0 ? " selected" : "") + ">" + info[i] + "</option>"
s += "</select>"
s += "</br><input type=checkbox id=chkatoms onchange=getSelect() />show atoms"
s += " opacity:<select id=selopacity onchange=getSelect() onkeypress=\"setTimeout('getSelect()',50)\">"
+ "<option value=0.0>0%</option>"
+ "<option value=0.2 selected>20%</option>"
+ "<option value=0.4>40%</option>"
+ "<option value=0.6>60%</option>"
+ "<option value=1.0>100%</option>"
+ "</select>"
}
document.getElementById("syminfo").innerHTML = s
}
</script>
</head>
<body onload="document.getElementById('modelselect').selectedIndex=0">
<table><tr>
<td align=center valign=top style="width:170px">
<h3>Jmol Crystal Symmetry Explorer</h3>
<div id=loading style="display:none">
<script type="text/javascript">
jmolBr()
jmolSetButtonCssClass('" style="width:160px')
jmolBr()
jmolButton("load \"\" 1 FILTER 'MOLECULAR'","molecular units")
jmolBr()
jmolButton("load \"\" {1 1 1}", "unpacked cell")
jmolBr()
jmolButton("load \"\" 1 packed","packed cell")
jmolBr()
jmolButton("load \"\" 1 {455 655 1}","3x1x1 set")
jmolBr()
jmolButton("load \"\" 1 {545 565 1}","1x3x1 set")
jmolBr()
jmolButton("load \"\" 1 {554 556 1}","1x1x3 set")
jmolBr()
jmolButton("load \"\" 1 {445 665 1}","3x3x1 plane")
jmolBr()
jmolButton("load \"\" 1 {454 656 1}","3x1x3 plane")
jmolBr()
jmolButton("load \"\" 1 {544 566 1}","1x3x3 plane")
jmolBr()
jmolButton("load \"\" 1 {444 666 1}","3x3x3 cube")
jmolBr()
jmolButton("backgroundcolor = (backgroundcolor = '[x000000]' ? 'white' : 'black')","switch background")
jmolBr()
</script>
</div>
<br>
Produced especially for the 238th ACS Meeting in Washington, D.C., <a href=http://oasys2.confex.com/acs/238nm/techprogram/P1283308.HTM target=_blank>Teaching Molecular Structure Using Jmol</a>
presented by <a target=_blank href=http://stolaf.edu/people/hansonr>Bob Hanson</a>, Aug. 19, 2009.
<br>
<br>
<a href=http://xrayweb.chem.ou.edu/notes/symmetry.html target=_blank>Symmetry in Crystallography</a>
</td>
<td align=center valign=top>
<script type="text/javascript">
jmolApplet(["600","600"],';background white;set errorCallback "errorCallback";set loadstructcallback "loadstructCallback";set pickCallback "pickCallback";set zoomlarge false;' + defaultScript)
jmolSetButtonCssClass('" style="width:100px')
jmolBr()
jmolButton("console")
jmolCommandInput()
</script>
</td><td valign=top>
<script type="text/javascript">
document.write(modelSelectHtml)
</script>
<div id='syminfo'></div>
<br>
<br>
<div id=note style="display:none;width:250px">
Note that all symmetry operations relating to this model are also accessible from the <a href=sympop.png target=_blank>pop-up menu</a> (click on the "JSmol" logo).
</div>
<br>
<br>
<script type="text/javascript">
jmolSetButtonCssClass('" style="width:160px')
jmolButton("if (!url) { url = ''};var x = prompt('Enter a URL for a structure file',url);if (x=='null') { quit }; url = x; load @url 1 packed","Load URL")
jmolBr()
jmolButton("load file \"?\" 1 packed","Load FILE")
jmolBr()
jmolButton("script ?.spt","Load SCRIPT")
jmolBr()
jmolButton("write FILE ?","Save FILE")
jmolBr()
jmolButton("write STATE ?.spt","Save STATE")
jmolBr()
jmolButton("write IMAGE ?.jpg","Save JPG")
jmolBr()
jmolButton("write IMAGE ?.png","Save PNG")
jmolBr()
jmolButton("write ?.jmol","Save JMOL")
jmolBr()
</script>
</td></tr>
</table>
</body>
</html>
<html>
<body>
<a href=explore.htm><img src=sympop.png></a>
</body>
</html>
\ No newline at end of file
js/jsmol/jcse/sympop.png

86.8 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment