SpaceGroup
Date: 2019-10-22

org.jmol.symmetry

## Class SpaceGroup

- java.lang.Object
- - org.jmol.symmetry.SpaceGroup

-     class SpaceGroup
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `(package private) char` | `ambiguityType`
    `private static java.lang.String` | `ambiguousNames`
    `(package private) char` | `axisChoice`
    `private static java.lang.String[]` | `canonicalSeitzList`
    `(package private) java.lang.String` | `crystalClass`
    `(package private) boolean` | `doNormalize`
    `(package private) SymmetryOperation[]` | `finalOperations`
    `(package private) HallInfo` | `hallInfo`
    `(package private) java.lang.String` | `hallSymbol`
    `(package private) java.lang.String` | `hmSymbol`
    `(package private) java.lang.String` | `hmSymbolAbbr`
    `(package private) java.lang.String` | `hmSymbolAbbrShort`
    `(package private) java.lang.String` | `hmSymbolAlternative`
    `(package private) java.lang.String` | `hmSymbolExt`
    `(package private) java.lang.String` | `hmSymbolFull`
    `private static java.util.Map<java.lang.Integer,javajs.util.Lst<SpaceGroup>>` | `htByOpCount`
    `(package private) int` | `index`
    `private java.util.Map<java.lang.String,java.lang.Object>` | `info`
    `(package private) java.lang.String` | `intlTableNumber`
    `(package private) java.lang.String` | `intlTableNumberExt`
    `(package private) java.lang.String` | `intlTableNumberFull`
    `(package private) boolean` | `isBilbao`
    `(package private) boolean` | `isBio`
    `(package private) boolean` | `isSSG`
    `private static java.lang.String` | `lastInfo`
    `(package private) int` | `latticeOp`
    `(package private) int` | `latticeParameter`
    `(package private) java.lang.String` | `latticeType`
    `private int` | `modDim`
    `(package private) java.lang.String` | `name`
    `private static int` | `NAME_HALL`
    `private static int` | `NAME_HM`
    `private static int` | `NAME_UNK`
    `private java.lang.Integer` | `nHallOperators`
    `(package private) int` | `operationCount`
    `(package private) SymmetryOperation[]` | `operations`
    `private static SpaceGroup[]` | `SG`
    `private static int` | `sgIndex`
    `private static java.lang.String[]` | `STR_SG` intlNo:options;nOps;schoenflies;hermannMauguin;Hall;BilbaoFlag
    `(package private) char` | `uniqueAxis`
    `(package private) java.util.Map<java.lang.String,java.lang.Integer>` | `xyzList`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `private` | `SpaceGroup(int index, java.lang.String cifLine, boolean doInit)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `(package private) boolean` | `addLatticeVectors(javajs.util.Lst<float[]> lattvecs)`
    `private int` | `addOp(SymmetryOperation op, java.lang.String xyz0, boolean isSpecial)`
    `private int` | `addOperation(java.lang.String xyz0, int opId, boolean allowScaling)`
    `(package private) int` | `addSymmetry(java.lang.String xyz, int opId, boolean allowScaling)`
    `(package private) int` | `addSymmetrySM(java.lang.String xyz, javajs.util.M4 operation)`
    `private void` | `buildSpaceGroup(java.lang.String cifLine)`
    `private int` | `checkXYZlist(java.lang.String xyz)`
    `private static SpaceGroup` | `createSGFromList(java.lang.String name, javajs.util.Lst<?> data)`
    `(package private) static SpaceGroup` | `createSpaceGroup(int desiredSpaceGroupIndex, java.lang.String name, java.lang.Object data, int modDim)`
    `private static SpaceGroup` | `createSpaceGroupN(java.lang.String name)`
    `private static SpaceGroup[]` | `createSpaceGroups()`
    `private static SpaceGroup` | `determineSpaceGroup(java.lang.String name, float a, float b, float c, float alpha, float beta, float gamma, int lastIndex)`
    `private static int` | `determineSpaceGroupIndex(java.lang.String name, float a, float b, float c, float alpha, float beta, float gamma, int lastIndex)`
    `private static SpaceGroup` | `determineSpaceGroupN(java.lang.String name)`
    `(package private) static SpaceGroup` | `determineSpaceGroupNA(java.lang.String name, float[] unitCellParams)`
    `private static SpaceGroup` | `determineSpaceGroupNS(java.lang.String name, SpaceGroup sg)`
    `private static char` | `determineUniqueAxis(float a, float b, float c, float alpha, float beta, float gamma)`
    `private static java.lang.String` | `dumpAll()`
    `private static java.lang.String` | `dumpAllSeitz()`
    `private java.lang.Object` | `dumpCanonicalSeitzList()`
    `(package private) java.lang.String` | `dumpInfo()`
    `(package private) java.lang.Object` | `dumpInfoObj()`
    `private static SpaceGroup` | `findSpaceGroup(int opCount, java.lang.String s)`
    `private void` | `generateAllOperators(HallInfo h)`
    `private void` | `generateOperatorsFromXyzInfo(java.lang.String xyzInfo)`
    `private static java.lang.String` | `getCanonicalSeitz(int i)`
    `private java.lang.String` | `getCanonicalSeitzList()`
    `(package private) SpaceGroup` | `getDerivedSpaceGroup()`
    `(package private) static java.lang.Object` | `getInfo(SpaceGroup sg, java.lang.String spaceGroup, SymmetryInterface cellInfo, boolean asMap)`
    `private java.util.Map<java.lang.String,java.lang.Object>` | `getInfo(SymmetryInterface cellInfo)`
    `(package private) java.lang.String` | `getLatticeDesignation()`
    `(package private) java.lang.String` | `getName()`
    `(package private) static SpaceGroup` | `getNull(boolean doInit, boolean doNormalize, boolean doFinalize)`
    `(package private) javajs.util.M4` | `getOperation(int i)`
    `(package private) int` | `getOperationCount()`
    `(package private) int` | `getSiteMultiplicity(javajs.util.P3 pt, UnitCell unitCell)`
    `private static SpaceGroup[]` | `getSpaceGroups()`
    `(package private) java.lang.String` | `getXyz(int i, boolean doNormalize)`
    `private void` | `init(boolean addXYZ)`
    `(package private) void` | `newPoint(int i, javajs.util.P3 atom1, javajs.util.P3 atom2, int transX, int transY, int transZ)`
    `(package private) void` | `setFinalOperations(javajs.util.P3[] atoms, int atomIndex, int count, boolean doNormalize)`
    `private void` | `setHMSymbol(java.lang.String name)`
    `private void` | `setLattice(char latticeCode, boolean isCentrosymmetric)`
    `(package private) void` | `setLatticeParam(int latticeParameter)`
    `void` | `setName(java.lang.String name)`
    `private static java.lang.String` | `toCap(java.lang.String s, int n)`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### index

          int index

    - #### isSSG

          boolean isSSG

    - #### name

          java.lang.String name

    - #### hallSymbol

          java.lang.String hallSymbol

    - #### crystalClass

          java.lang.String crystalClass

    - #### hmSymbol

          java.lang.String hmSymbol

    - #### hmSymbolFull

          java.lang.String hmSymbolFull

    - #### hmSymbolExt

          java.lang.String hmSymbolExt

    - #### hmSymbolAbbr

          java.lang.String hmSymbolAbbr

    - #### hmSymbolAlternative

          java.lang.String hmSymbolAlternative

    - #### hmSymbolAbbrShort

          java.lang.String hmSymbolAbbrShort

    - #### ambiguityType

          char ambiguityType

    - #### uniqueAxis

          char uniqueAxis

    - #### axisChoice

          char axisChoice

    - #### intlTableNumber

          java.lang.String intlTableNumber

    - #### intlTableNumberFull

          java.lang.String intlTableNumberFull

    - #### intlTableNumberExt

          java.lang.String intlTableNumberExt

    - #### hallInfo

          HallInfo hallInfo

    - #### latticeParameter

          int latticeParameter

    - #### operations

          SymmetryOperation[] operations

    - #### finalOperations

          SymmetryOperation[] finalOperations

    - #### operationCount

          int operationCount

    - #### latticeOp

          int latticeOp

    - #### xyzList

          java.util.Map<java.lang.String,java.lang.Integer> xyzList

    - #### modDim

          private int modDim

    - #### doNormalize

          boolean doNormalize

    - #### isBio

          boolean isBio

    - #### isBilbao

          boolean isBilbao

    - #### latticeType

          java.lang.String latticeType

    - #### nHallOperators

          private java.lang.Integer nHallOperators

    - #### info

          private java.util.Map<java.lang.String,java.lang.Object> info

    - #### canonicalSeitzList

          private static java.lang.String[] canonicalSeitzList

    - #### NAME_UNK

          private static final int NAME_UNK

      See Also:
        Constant Field Values

    - #### NAME_HM

          private static final int NAME_HM

      See Also:
        Constant Field Values

    - #### NAME_HALL

          private static final int NAME_HALL

      See Also:
        Constant Field Values

    - #### sgIndex

          private static int sgIndex

    - #### ambiguousNames

          private static java.lang.String ambiguousNames

    - #### lastInfo

          private static java.lang.String lastInfo

    - #### SG

          private static SpaceGroup[] SG

    - #### htByOpCount

          private static java.util.Map<java.lang.Integer,javajs.util.Lst<SpaceGroup>> htByOpCount

    - #### STR_SG

          private static java.lang.String[] STR_SG

      intlNo:options;nOps;schoenflies;hermannMauguin;Hall;BilbaoFlag

  - ### Constructor Detail

    - #### SpaceGroup

          private SpaceGroup(int index,
                             java.lang.String cifLine,
                             boolean doInit)

  - ### Method Detail

    - #### getNull

          static SpaceGroup getNull(boolean doInit,
                                    boolean doNormalize,
                                    boolean doFinalize)

    - #### init

          private void init(boolean addXYZ)

    - #### createSpaceGroup

          static SpaceGroup createSpaceGroup(int desiredSpaceGroupIndex,
                                             java.lang.String name,
                                             java.lang.Object data,
                                             int modDim)

    - #### createSGFromList

          private static SpaceGroup createSGFromList(java.lang.String name,
                                                     javajs.util.Lst<?> data)

      Parameters:
        `name` -
        `data` - Lst or Lst
      Returns:
        a new SpaceGroup if successful or null

    - #### addSymmetry

          int addSymmetry(java.lang.String xyz,
                          int opId,
                          boolean allowScaling)

    - #### setFinalOperations

          void setFinalOperations(javajs.util.P3[] atoms,
                                  int atomIndex,
                                  int count,
                                  boolean doNormalize)

    - #### getOperationCount

          int getOperationCount()

    - #### getOperation

          javajs.util.M4 getOperation(int i)

    - #### getXyz

          java.lang.String getXyz(int i,
                                  boolean doNormalize)

    - #### newPoint

          void newPoint(int i,
                        javajs.util.P3 atom1,
                        javajs.util.P3 atom2,
                        int transX,
                        int transY,
                        int transZ)

    - #### getInfo

          static java.lang.Object getInfo(SpaceGroup sg,
                                          java.lang.String spaceGroup,
                                          SymmetryInterface cellInfo,
                                          boolean asMap)

    - #### getInfo

          private java.util.Map<java.lang.String,java.lang.Object> getInfo(SymmetryInterface cellInfo)

    - #### dumpInfo

          java.lang.String dumpInfo()

      Returns:
        detailed information

    - #### dumpInfoObj

          java.lang.Object dumpInfoObj()

      Returns:
        detailed information

    - #### getName

          java.lang.String getName()

    - #### getLatticeDesignation

          java.lang.String getLatticeDesignation()

    - #### setLatticeParam

          void setLatticeParam(int latticeParameter)

    - #### dumpCanonicalSeitzList

          private java.lang.Object dumpCanonicalSeitzList()

      Returns:
        either a String or a SpaceGroup, depending on index.

    - #### getDerivedSpaceGroup

          SpaceGroup getDerivedSpaceGroup()

      Returns:
        a known space group or null

    - #### getCanonicalSeitzList

          private java.lang.String getCanonicalSeitzList()

    - #### findSpaceGroup

          private static SpaceGroup findSpaceGroup(int opCount,
                                                   java.lang.String s)

    - #### dumpAll

          private static final java.lang.String dumpAll()

    - #### dumpAllSeitz

          private static final java.lang.String dumpAllSeitz()

    - #### getCanonicalSeitz

          private static java.lang.String getCanonicalSeitz(int i)

    - #### setLattice

          private void setLattice(char latticeCode,
                                  boolean isCentrosymmetric)

    - #### createSpaceGroupN

          private static final SpaceGroup createSpaceGroupN(java.lang.String name)

    - #### addOperation

          private int addOperation(java.lang.String xyz0,
                                   int opId,
                                   boolean allowScaling)

    - #### checkXYZlist

          private int checkXYZlist(java.lang.String xyz)

    - #### addOp

          private int addOp(SymmetryOperation op,
                            java.lang.String xyz0,
                            boolean isSpecial)

    - #### generateOperatorsFromXyzInfo

          private void generateOperatorsFromXyzInfo(java.lang.String xyzInfo)

    - #### generateAllOperators

          private void generateAllOperators(HallInfo h)

    - #### addSymmetrySM

          int addSymmetrySM(java.lang.String xyz,
                            javajs.util.M4 operation)

    - #### determineSpaceGroupN

          private static final SpaceGroup determineSpaceGroupN(java.lang.String name)

    - #### determineSpaceGroupNS

          private static final SpaceGroup determineSpaceGroupNS(java.lang.String name,
                                                                SpaceGroup sg)

    - #### determineSpaceGroupNA

          static final SpaceGroup determineSpaceGroupNA(java.lang.String name,
                                                        float[] unitCellParams)

    - #### determineSpaceGroup

          private static final SpaceGroup determineSpaceGroup(java.lang.String name,
                                                              float a,
                                                              float b,
                                                              float c,
                                                              float alpha,
                                                              float beta,
                                                              float gamma,
                                                              int lastIndex)

    - #### determineSpaceGroupIndex

          private static final int determineSpaceGroupIndex(java.lang.String name,
                                                            float a,
                                                            float b,
                                                            float c,
                                                            float alpha,
                                                            float beta,
                                                            float gamma,
                                                            int lastIndex)

    - #### determineUniqueAxis

          private static final char determineUniqueAxis(float a,
                                                        float b,
                                                        float c,
                                                        float alpha,
                                                        float beta,
                                                        float gamma)

    - #### buildSpaceGroup

          private void buildSpaceGroup(java.lang.String cifLine)

    - #### setHMSymbol

          private void setHMSymbol(java.lang.String name)

    - #### toCap

          private static java.lang.String toCap(java.lang.String s,
                                                int n)

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### getSpaceGroups

          private static SpaceGroup[] getSpaceGroups()

    - #### createSpaceGroups

          private static SpaceGroup[] createSpaceGroups()

    - #### addLatticeVectors

          boolean addLatticeVectors(javajs.util.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

    - #### getSiteMultiplicity

          int getSiteMultiplicity(javajs.util.P3 pt,
                                  UnitCell unitCell)

    - #### setName

          public void setName(java.lang.String name)