Package schrodinger :: Package application :: Package matsci :: Package nano :: Module xtal :: Class Crystal
[hide private]
[frames] | no frames]

Class Crystal

object --+
         |
        Crystal

Main class for generating crystals.

Instance Methods [hide private]
 
__init__(self, asymmetric_unit, space_group=None, a_param=None, b_param=None, c_param=None, alpha_param=None, beta_param=None, gamma_param=None, ncella=1, ncellb=1, ncellc=1, origin=[0.0, 0.0, 0.0], bonding='none', bond_orders='none', translate='none', translate_type='atoms', cov_offset=0.45, fract_offset=0.0001, no_pbc_bonding=False, use_existing_pbc_bonds=False, logger=None)
Create an instance.
 
handleSettings(self)
Handle the settings of this crystal build.
bool
doBonding(self)
Determine if this script should handle the bonding both inside and between unit cells.
bool
doBondOrders(self)
Determine if this script should handle the assignment of bond orders both inside and between unit cells.
bool
doTranslation(self)
Determine if a translation to the first unit cell should be performed.
 
getLatticeParameters(self)
Get lattice parameters.
 
checkInputParams(self)
Check input parameters.
 
updateLatticeProperties(self)
Update the lattice properties for the asymmetric unit structure.
mmcrystal handle
setCrystalSymmetry(self)
Set the crystal symmetry.
 
determineBasisVectors(self)
Determine the lattice vectors in the cartesian basis and the cartesian vectors in the lattice basis.
 
buildCrystalUnitCell(self, mmcrystal_handle)
Build a crystal unit cell.
 
labelSymEquivPos(self)
Label the symmetry equivalent positions.
 
labelAsuAtoms(self, astructure)
Label the atoms that make up an ASU, i.e.
 
doPropertyEvaluation(self)
Compute some properties of the unit cell.
 
setStructureProperties(self)
Set some structure properties.
 
setChorusProperties(self, astructure, ncella=1, ncellb=1, ncellc=1)
Set the chorus structure properties on the given structure.
 
printCrystalParams(self)
Print some crystal parameters.
 
updateFractionals(self, next_cell, indexa, indexb, indexc)
Update the fractional coordinates of the next unit cell.
 
setAsuAtomsFalse(self, astructure)
Set the ASU atom labels to false for this structure.
 
buildCrystalSuperCell(self, ncella, ncellb, ncellc)
Build a crystal super cell.
 
orchestrate(self)
Orchestrate the construction of the crystal.

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables [hide private]
  SPACE_GROUP_KEY = 's_pdb_PDB_CRYST1_Space_Group'
  A_KEY = 'r_pdb_PDB_CRYST1_a'
  B_KEY = 'r_pdb_PDB_CRYST1_b'
  C_KEY = 'r_pdb_PDB_CRYST1_c'
  ALPHA_KEY = 'r_pdb_PDB_CRYST1_alpha'
  BETA_KEY = 'r_pdb_PDB_CRYST1_beta'
  GAMMA_KEY = 'r_pdb_PDB_CRYST1_gamma'
  SPACE_GROUP_ID_KEY = 'i_matsci_Space_Group_ID'
  CHORUS_BOX_BASE_KEY = 'r_chorus_box_'
  CHORUS_BOX_AX_KEY = 'r_chorus_box_ax'
  CHORUS_BOX_AY_KEY = 'r_chorus_box_ay'
  CHORUS_BOX_AZ_KEY = 'r_chorus_box_az'
  CHORUS_BOX_BX_KEY = 'r_chorus_box_bx'
  CHORUS_BOX_BY_KEY = 'r_chorus_box_by'
  CHORUS_BOX_BZ_KEY = 'r_chorus_box_bz'
  CHORUS_BOX_CX_KEY = 'r_chorus_box_cx'
  CHORUS_BOX_CY_KEY = 'r_chorus_box_cy'
  CHORUS_BOX_CZ_KEY = 'r_chorus_box_cz'
  CHORUS_BOX_A_KEYS = ['r_chorus_box_ax', 'r_chorus_box_ay', 'r_...
  CHORUS_BOX_B_KEYS = ['r_chorus_box_bx', 'r_chorus_box_by', 'r_...
  CHORUS_BOX_C_KEYS = ['r_chorus_box_cx', 'r_chorus_box_cy', 'r_...
  NUM_DECIMAL_COORDS = 4
  MSGWIDTH = 80
  GENERAL_VEC_1 = matrix([[ 1...
  GENERAL_VEC_2 = matrix([[ 0...
  GENERAL_VEC_3 = matrix([[ 0...
  F1F2F3_FORMAT = '(%.4f, %.4f, %.4f)'
  F1F2F3_KEY = 's_matsci_f1f2f3'
  F1_KEY = 'r_matsci_f1'
  F2_KEY = 'r_matsci_f2'
  F3_KEY = 'r_matsci_f3'
  FRACT_KEYS = ['r_matsci_f1', 'r_matsci_f2', 'r_matsci_f3']
  SYMMETRY_LABEL_KEY = 'i_matsci_Symmetry_Label'
  ASU_LABEL_KEY = 'b_matsci_ASU_Atom'
  CM_TO_ANGSTROM = 100000000.0
  UNIT_CELL_FORMULA_KEY = 's_m_Unit_Cell_Formula'
  UNIT_CELL_VOLUME_KEY = 'r_m_Unit_Cell_Volume/Ang.^3'
  UNIT_CELL_DENSITY_KEY = 'r_m_Unit_Cell_Density/g/cm^3'
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, asymmetric_unit, space_group=None, a_param=None, b_param=None, c_param=None, alpha_param=None, beta_param=None, gamma_param=None, ncella=1, ncellb=1, ncellc=1, origin=[0.0, 0.0, 0.0], bonding='none', bond_orders='none', translate='none', translate_type='atoms', cov_offset=0.45, fract_offset=0.0001, no_pbc_bonding=False, use_existing_pbc_bonds=False, logger=None)
(Constructor)

 

Create an instance.

Parameters:
  • asymmetric_unit (schrodinger.Structure.structure) - the ASU
  • space_group (str) - the full or short Hermann-Mauguin symbol of the space group
  • a_param (float) - the lattice parameter a in Angstrom
  • b_param (float) - the lattice parameter b in Angstrom
  • c_param (float) - the lattice parameter c in Angstrom
  • alpha_param (float) - the lattice parameter alpha in degrees
  • beta_param (float) - the lattice parameter beta in degrees
  • gamma_param (float) - the lattice parameter gamma in degrees
  • ncella (int) - the number of unit cells to generate along lattice vector a
  • ncellb (int) - the number of unit cells to generate along lattice vector b
  • ncellc (int) - the number of unit cells to generate along lattice vector c
  • origin (list) - the origin of the unit cell, i.e. list of three floats
  • bonding (str) - specifies how the bonding should be handled, takes a string in BONDING_CHOICES
  • bond_orders (str) - specifies how the bond orders should be handled, takes a string in BOND_ORDERS_CHOICES
  • translate (str) - specifies how the translation to the first unit cell should be handled, takes a string in TRANSLATE_CHOICES
  • translate_type (str) - specifies what to translate when translating
  • cov_offset (float) - the maximum distance for drawn bonds is the sum of the covalent radii of the two atoms plus this offset in angstrom
  • fract_offset (float) - the threshold used to compare floating point fractional coordinate values and in particular those that are on the cell boundary
  • no_pbc_bonding (bool) - disable the creation of PBC bonds
  • use_existing_pbc_bonds (bool) - rather than recalculating PBC bonds use existing PBC bonds
  • logger (logging.getLogger) - output logger
Overrides: object.__init__

doBonding(self)

 

Determine if this script should handle the bonding both inside and between unit cells.

Returns: bool
True if this script should handle the bonding, False otherwise.

doBondOrders(self)

 

Determine if this script should handle the assignment of bond orders both inside and between unit cells.

Returns: bool
True if this script should handle the assignment, False otherwise.

doTranslation(self)

 

Determine if a translation to the first unit cell should be performed.

Returns: bool
True if this translation should be performed, False otherwise.

setCrystalSymmetry(self)

 

Set the crystal symmetry.

Returns: mmcrystal handle
mmcrystal_handle, mmcrystal handle with symmetry set

determineBasisVectors(self)

 

Determine the lattice vectors in the cartesian basis and the cartesian vectors in the lattice basis. Also determine the reciprocal lattice vectors.

buildCrystalUnitCell(self, mmcrystal_handle)

 

Build a crystal unit cell.

Parameters:
  • mmcrystal_handle - mmcrystal handle with symmetry set

labelAsuAtoms(self, astructure)

 

Label the atoms that make up an ASU, i.e. the symmetry unique atoms.

Parameters:
  • astructure (schrodinger.Structure.structure) - the structure whose atoms will be labeled

doPropertyEvaluation(self)

 

Compute some properties of the unit cell. In order for the properties to be consistent with their standard definitions the provided unit cell must be void of the redundant edge, meaning that the fractionals must be defined on n < f < n + 1 rather than n < f <= n + 1, as well as any other redundancies.

setChorusProperties(self, astructure, ncella=1, ncellb=1, ncellc=1)

 

Set the chorus structure properties on the given structure.

Parameters:
  • astructure (schrodinger.structure.Structure) - the structure that needs the chorus properties
  • ncella (int) - the number of cells along a
  • ncellb (int) - the number of cells along b
  • ncellc (int) - the number of cells along c

updateFractionals(self, next_cell, indexa, indexb, indexc)

 

Update the fractional coordinates of the next unit cell.

Parameters:
  • next_cell (schrodinger.Structure.structure) - the structure object to be updated
  • indexa (int) - the a-position of this cell
  • indexb (int) - the b-position of this cell
  • indexc (int) - the c-position of this cell

setAsuAtomsFalse(self, astructure)

 

Set the ASU atom labels to false for this structure.

Parameters:
  • astructure (schrodinger.Structure.structure) - the structure object to be updated

buildCrystalSuperCell(self, ncella, ncellb, ncellc)

 

Build a crystal super cell.

Parameters:
  • ncella (int) - the number of unit cells to generate along lattice vector a
  • ncellb (int) - the number of unit cells to generate along lattice vector b
  • ncellc (int) - the number of unit cells to generate along lattice vector c

Class Variable Details [hide private]

CHORUS_BOX_A_KEYS

Value:
['r_chorus_box_ax', 'r_chorus_box_ay', 'r_chorus_box_az']

CHORUS_BOX_B_KEYS

Value:
['r_chorus_box_bx', 'r_chorus_box_by', 'r_chorus_box_bz']

CHORUS_BOX_C_KEYS

Value:
['r_chorus_box_cx', 'r_chorus_box_cy', 'r_chorus_box_cz']

GENERAL_VEC_1

Value:
matrix([[ 1.],
        [ 0.],
        [ 0.]])

GENERAL_VEC_2

Value:
matrix([[ 0.],
        [ 1.],
        [ 0.]])

GENERAL_VEC_3

Value:
matrix([[ 0.],
        [ 0.],
        [ 1.]])