Class SpaceGroup

java.lang.Object
org.jmol.symmetry.SpaceGroup
All Implemented Interfaces:
Cloneable, HallInfo.HallReceiver
Direct Known Subclasses:
SpecialGroup

public class SpaceGroup extends Object implements Cloneable, HallInfo.HallReceiver
A general class to deal with Hermann-Mauguin or Hall names Bob Hanson 9/2006 references: International Tables for Crystallography Vol. A. (2002) http://www.iucr.org/iucr-top/cif/cifdic_html/1/cif_core.dic/Ispace_group_symop_operation_xyz.html http://www.iucr.org/iucr-top/cif/cifdic_html/1/cif_core.dic/Isymmetry_equiv_pos_as_xyz.html Hall symbols: https://cci.lbl.gov/sginfo/hall_symbols.html and https://cci.lbl.gov/cctbx/explore_symmetry.html (-)L [N_A^T_1] [N_A^T_2] ... [N_A^T_P] V(Nx Ny Nz) lattice types S and T are not supported here data table is from Syd Hall, private email, 9/4/2006, amended using * to indicate nonstandard H-M symbols or full names amended 2024.03.24 to add several ITA settings; full set of ITA settings are now encoded. NEVER ACCESS THESE METHODS DIRECTLY! ONLY THROUGH CLASS Symmetry
  • Field Details

  • Constructor Details

    • SpaceGroup

      protected SpaceGroup(int index, String strData, boolean doInit)
  • Method Details

    • createSpaceGroup

      public static SpaceGroup createSpaceGroup(int desiredSpaceGroupIndex, String name, Object data, int modDim)
    • getItaIndex

      public String getItaIndex()
    • getIndex

      public int getIndex()
    • setClegId

      public void setClegId(String cleg)
    • getClegId

      public String getClegId()
    • addSymmetry

      public int addSymmetry(String xyz, int opId, boolean allowScaling)
      Parameters:
      xyz -
      opId - generally 0; -1 for subsystems
      allowScaling - generally false; true for subsystems
      Returns:
      index
    • findSpaceGroupFromXYZ

      public static SpaceGroup findSpaceGroupFromXYZ(String xyzList)
    • dumpInfo

      public String dumpInfo()
      Returns:
      detailed information
    • addOperation

      protected int addOperation(String xyz0, int opId, boolean allowScaling)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • asString

      public String asString()
    • getDisplayName

      public String getDisplayName()
    • addLatticeVectors

      public boolean addLatticeVectors(Lst<float[]> lattvecs)
      Parameters:
      lattvecs - could be magnetic centering, in which case there is an additional lattice parameter that is time reversal
      Returns:
      true if successful
    • getMatrixOperation

      public M4 getMatrixOperation(int i)
      Description copied from interface: HallInfo.HallReceiver
      Get the 4x4 matrix for the kth operation. Translations must be in 12ths.
      Specified by:
      getMatrixOperation in interface HallInfo.HallReceiver
      Parameters:
      i -
      Returns:
      4x4 matrix, translations in integer 12ths
    • getMatrixOperationCount

      public int getMatrixOperationCount()
      Description copied from interface: HallInfo.HallReceiver
      Get the receiver's current operation count.
      Specified by:
      getMatrixOperationCount in interface HallInfo.HallReceiver
      Returns:
      number of operations
    • addHallOperationCheckDuplicates

      public boolean addHallOperationCheckDuplicates(M4 operation)
      Description copied from interface: HallInfo.HallReceiver
      Add a (possibly) new operation, checking for duplicates.
      Specified by:
      addHallOperationCheckDuplicates in interface HallInfo.HallReceiver
      Parameters:
      operation -
      Returns:
      true if added, false if duplicate
    • canonicalizeCleg

      public static String canonicalizeCleg(String t)
      adds :a,b,c;0,0,0 or ;0,0,0; does NOT change :h or :r
      Parameters:
      t -
      Returns:
      full CLEG
    • getHMName

      public String getHMName()
    • getITNo

      public static int getITNo(String name, int n)
    • isInRange

      public static boolean isInRange(float itno, int groupType, boolean allowSetIndex, boolean allow300)
    • getMax

      public static int getMax(int groupType)
    • getGroupTypePrefix

      public static String getGroupTypePrefix(int itno)
    • getExplicitSpecialGroupType

      public static int getExplicitSpecialGroupType(String name)
    • getSpecialGroupName

      public static String getSpecialGroupName(int type)
    • getImplicitSpecialGroupType

      public static int getImplicitSpecialGroupType(int itno)
    • hmEquals

      public static boolean hmEquals(String hm, String name, int type)
      Matches Hermann-Mauguin names for special types by ignoring spaces and some special treatment for plane groups.
      Parameters:
      hm -
      name -
      type -
      Returns:
      true if equivalent
    • createCompatibleUnitCell

      public boolean createCompatibleUnitCell(float[] params, float[] newParams, boolean allowSame)
      Create a unit cell compatible with
      Parameters:
      params -
      newParams -
      allowSame - true to allow same-distance a,b,c for lower-symmetry sg
      Returns:
      true if changes have occurred
    • isHexagonalSG

      public boolean isHexagonalSG(int n, float[] params)