Jmol.___JmolVersion="14.4.4_2016.04.11"

bug fix: qchem reader fails to switch to spherical D/F basis for second
structure
bug fix: pointGroup secondary axis in yellow is too hard to see -- using
"orange" instead


new feature: symop() options:
  symop(op)
    -- returns the 4x4 matrix representation of this operator
  symop(op, atom)
    -- returns the point generated by operator op on atom
    -- op may be a positive or negative integer indictating the operation
(or its reverse)
       to apply from the loaded space group -- for example, symop(3, @1) or
symop(-4, {atomindex=16})
    -- op may be a string such as "x+1/2,1/2-y,z" representing a specific
generic operation
  symop(atom1, atom2)
    -- returns the description of the first of possibly several operations
that take atom1 to atom2, for example:
       "2-fold screw axis|translation: 1/2 0 0"
  symop(atom1, atom2, n)
    -- returns the description of the nth operation that takes atom1 to
atom2
  symop(...point...)
    -- any place an atom can be used in symop(), one can substitute an xyz
coordinate.
    -- for example, symop(@1, {1/2 1/2 1/2})
  {atomset}.symop(...)
    -- when more than one model is loaded, prepending any symop function
with an atom set specifies which
       atoms, space group, and unit cell are being referenced. For example,
{2.1}.symop(5) operates only on
       atoms in the first model of the second loaded file, using the
appropriate space group and unit cell.
       In this way, "@1" will designate one atom only, provided only one
model is showing (using the FRAME/MODEL command).
       If only one model has been loaded, there is no need to use this
syntax; symop(...) will do the same.
  symop(..., outputType)
   -- All uses of symop() and {atomset}.symop() can be extended using a
final parameter that
     changes the default output described above to be something else.
Options for outputType include:

     "draw"    Returns the Jmol script illustrating this operation with
DRAW commands.

       $ print symop(3,"draw")
        draw ID draw_* delete
        draw ID draw_frame1X diameter 0.15{5.5172 1.9683 2.7802}{6.5172
1.9683 2.7802} color red
        ...

     "full"    Returns the tab-separated Jones-Faithful string and
descriptor for this operation.

       $ print symop(3,"full")
        -x,-y,-z(mx,my,mz)      Ci: 0 0 0

     "lattice" Returns the lattice type associated with the space group
involving this operation.

     "list"    Specifically when two atoms or points are specified, returns
a string list of all operations
               taking the first to the second.

       $ print symop(@3,@21,"list")
            5    x+1/2,-y+1/2,-z+1/2(-mx,my,mz)    2-fold screw
axis|translation: 1/2 0 0|time-reversed
            7    -x+1/2,y+1/2,z+1/2(-mx,my,mz)    n-glide
plane|translation: 0 1/2 1/2|time-reversed

               Note that this string can be turned into a standard array
using .lines.split("\t",true):

       $ print symop(@3,@21,"list").lines.split("\t",true)
          [
            5
            x+1/2,-y+1/2,-z+1/2(-mx,my,mz)
            2-fold screw axis|translation: 1/2 0 0|time-reversed
          ]
          [
            7
            -x+1/2,y+1/2,z+1/2(-mx,my,mz)
            n-glide plane|translation: 0 1/2 1/2|time-reversed
          ]

     "array"   Returns an associative array that contains critical
information relating to this operation.

       $ load =magndata/0.34
       $ print symop(3,"array")
        {
          "inversionCenter"  :  {0.0 0.0 0.0}
          "label"  :  "Ci: 0 0 0"
          "matrix"  :
          [
          [-1.0,    0.0,    0.0,    0.0]
          [0.0,    -1.0,    0.0,    0.0]
          [0.0,    0.0,    -1.0,    0.0]
          [0.0,    0.0,    0.0,    1.0] ]
          "timeReversal"  :  1
          "xyz"  :  "-x,-y,-z(mx,my,mz)"
          "xyzOriginal"  :  "-x,-y,-z,m"
         }

       In addition, all possible keys of this array may be used as well for
outputType. These include:

           "axisVector", "cartesianTranslation", "centeringVector",
"fractionalTranslation",
         "inversionCenter", "label", "matrix", "plane", "rotationAngle",
         "timeReversal", "unitTranslation", "xyz", and "xyzOriginal"

     Three of these that may be less than obvious are explained below:

     "centeringVector"  For operations that are pure lattice translations,
returns the vector
                        for this centering in fractional coordinates.

     "timeReversal"     This quantity is 0 for standard space groups.
Magnetic space group
                        operations also include the possibility of
inversion of the spin
                        along with any 3D symmetry operation. This
inversion characteristic
                        is referred to as "time reversal" and takes the
value of 1 or -1.

     "unitTranslation"  Symmetry operations involving two atoms may include
an extra
                        lattice translation if the two atoms are in
different unit cells.
                        This translation is above and beyond any fractional
lattice centering
                        that this operator incorporates for a face- or
body-centered space group.

new feature: show spacegroup/xxxxx

 -- selects lines from a space group report similar to the way show
state/xxxx works
 -- example:

  load =ams/quartz 1
  show spacegroup/Class

new feature: show/draw symop @1 @2
 -- gives full list of matching symmetry operations
 -- example:

    $ load =magndata/1.23 {444 555 1} packed
    $ show symop  @153 @299

    1    x+2,y,z2(mx,my,mz)    translation: 2 0 -2
    5    -x,-y,-z(mx,my,mz)    Ci: 0 0 0
    11    x+2,-y,-z(-mx,my,mz)    2-fold screw axis|translation: 2 0
0|time-reversed
    15    -x,y,z2(-mx,my,mz)    c-glide plane|translation: 0 0
-2|time-reversed

new feature: show/draw symop @1 @2 n
 -- shows or draws the nth symmetry operation relating atom 1 to atom 2
 -- example:

    $ load =magndata/1.23 {444 555 1} packed
    $ show symop  @153 @299 3

    11    x+2,-y,-z(-mx,my,mz)    2-fold screw axis|translation: 2 0
0|time-reversed

new feature: print pointgroup("spacegroup", @1)
 -- analyzes the point group (crystal class) of a crystal.
 -- uses three irrational-coordinate points to generate all possible
operators
 -- creates a map with keys (somewhat variable depending upon axes present):

    C2
    C3
    Ci
    Cs
    S6
    detail
    distanceTolerance
    linearTolerance
    nAtoms
    nC2
    nC3
    nCi
    nCn
    nCs
    nS6
    nSn
    nTotal
    name
    points
    principalAxis

new feature: draw SPACEGROUP
 -- draws all operations in space group

new feature: draw POINTGROUP SPACEGROUP
 -- draws crystal class symmetry operations for a space group
 -- uses point group style, with circular planes

new feature: @1.find("crystalClass", pt)
  -- generates a list of points based on a model's crystal class (point
group)
  -- uses @1 just to find the unit cell and space group
  -- optional pt is used as a generator (defaults to @1)
  -- example:
   load =ams/calcite 1
   x = @3.find("crystalClass")
   print pointgroup(x).name
   draw points @x
   polyhedra ID p {0 0 0} to @x



-- 
Robert M. Hanson
Larson-Anderson Professor of Chemistry
Chair, Department 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
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Jmol-users mailing list
Jmol-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to