ForceBalance API  1.3
Automated optimization of force fields and empirical potentials
Classes | Functions | Variables
src.molecule Namespace Reference

Classes

class  ActuallyArcError
 
class  Molecule
 Lee-Ping's general file format conversion class. More...
 
class  MolfileTimestep
 Wrapper for the timestep C structure used in molfile plugins. More...
 
class  RawStreamHandler
 Exactly like output.StreamHandler except it does no extra formatting before sending logging messages to the stream. More...
 

Functions

def getElement (mass)
 
def elem_from_atomname (atomname)
 Given an atom name, attempt to get the element in most cases. More...
 
def unmangle (M1, M2)
 Create a mapping that takes M1's atom indices to M2's atom indices based on position. More...
 
def nodematch (node1, node2)
 
def isint (word)
 ONLY matches integers! If you have a decimal point? None shall pass! More...
 
def isfloat (word)
 Matches ANY number; it can be a decimal, scientific notation, integer, or what have you. More...
 
def CubicLattice (a)
 This function takes in three lattice lengths and three lattice angles, and tries to return a complete box specification. More...
 
def BuildLatticeFromLengthsAngles (a, b, c, alpha, beta, gamma)
 This function takes in three lattice lengths and three lattice angles, and tries to return a complete box specification. More...
 
def BuildLatticeFromVectors (v1, v2, v3)
 This function takes in three lattice vectors and tries to return a complete box specification. More...
 
def TopEqual (mol1, mol2)
 For the nanoreactor project: Determine whether two Molecule objects have the same topologies. More...
 
def MolEqual (mol1, mol2)
 Determine whether two Molecule objects have the same fragments by looking at elements and connectivity graphs. More...
 
def format_xyz_coord (element, xyz, tinker=False)
 Print a line consisting of (element, x, y, z) in accordance with .xyz file format. More...
 
def format_gro_coord (resid, resname, aname, seqno, xyz)
 Print a line in accordance with .gro file format, with six decimal points of precision. More...
 
def format_xyzgen_coord (element, xyzgen)
 Print a line consisting of (element, p, q, r, s, t, ...) where (p, q, r) are arbitrary atom-wise data (this might happen, for instance, with atomic charges) More...
 
def format_gro_box (box)
 Print a line corresponding to the box vector in accordance with .gro file format. More...
 
def is_gro_coord (line)
 Determines whether a line contains GROMACS data or not. More...
 
def is_charmm_coord (line)
 Determines whether a line contains CHARMM data or not. More...
 
def is_gro_box (line)
 Determines whether a line contains a GROMACS box vector or not. More...
 
def add_strip_to_mat (mat, strip)
 
def pvec (vec)
 
def grouper (n, iterable)
 Groups a big long iterable into groups of ten or what have you. More...
 
def even_list (totlen, splitsize)
 Creates a list of number sequences divided as evenly as possible. More...
 
def both (A, B, key)
 
def diff (A, B, key)
 
def either (A, B, key)
 
def EulerMatrix (T1, T2, T3)
 Constructs an Euler matrix from three Euler angles. More...
 
def ComputeOverlap (theta, elem, xyz1, xyz2)
 Computes an 'overlap' between two molecules based on some fictitious density. More...
 
def AlignToDensity (elem, xyz1, xyz2, binary=False)
 Computes a "overlap density" from two frames. More...
 
def AlignToMoments (elem, xyz1, xyz2=None)
 Pre-aligns molecules to 'moment of inertia'. More...
 
def get_rotate_translate (matrix1, matrix2)
 
def cartesian_product2 (arrays)
 Form a Cartesian product of two NumPy arrays. More...
 
def extract_int (arr, avgthre, limthre, label="value", verbose=True)
 Get the representative integer value from an array. More...
 
def extract_pop (M, verbose=True)
 Extract our best estimate of charge and spin-z from the comments section of a Molecule object created with Nanoreactor. More...
 
def arc (Mol, begin=None, end=None, RMSD=True, align=True)
 Get the arc-length for a trajectory segment. More...
 
def EqualSpacing (Mol, frames=0, dx=0, RMSD=True, align=True)
 Equalize the spacing of frames in a trajectory with linear interpolation. More...
 
def AtomContact (xyz, pairs, box=None, displace=False)
 Compute distances between pairs of atoms. More...
 
def form_rot (q)
 Given a quaternion p, form a rotation matrix from it. More...
 
def axis_angle (axis, angle)
 Given a rotation axis and angle, return the corresponding 3x3 rotation matrix, which will rotate a (Nx3) array of xyz coordinates as x0_rot = np.dot(R, x0.T).T. More...
 
def main ()
 

Variables

 input = raw_input
 
dictionary FrameVariableNames
 
dictionary AtomVariableNames
 
dictionary MetaVariableNames
 
dictionary QuantumVariableNames = {'qcrems', 'qctemplate', 'charge', 'mult', 'qcsuf', 'qm_ghost', 'qm_bondorder'}
 
dictionary AllVariableNames = QuantumVariableNames | AtomVariableNames | MetaVariableNames | FrameVariableNames
 
string package = "ForceBalance"
 
 logger = getLogger("MoleculeLogger")
 
 handler = RawStreamHandler()
 
 module_name = __name__.replace('.molecule','')
 
list Radii
 
list Elements
 
 PeriodicTable
 
bool have_dcdlib = False
 
float bohr2ang = 0.529177210
 One bohr equals this many angstroms. More...
 
 splitter = re.compile(r'(\s+|\S+)')
 
 Box = namedtuple('Box',['a','b','c','alpha','beta','gamma','A','B','C','V'])
 
int radian = 180. / np.pi
 
 Alive
 

Function Documentation

◆ add_strip_to_mat()

def src.molecule.add_strip_to_mat (   mat,
  strip 
)

Definition at line 647 of file molecule.py.

◆ AlignToDensity()

def src.molecule.AlignToDensity (   elem,
  xyz1,
  xyz2,
  binary = False 
)

Computes a "overlap density" from two frames.

This function can be called by AlignToMoments to get rid of inversion problems

Definition at line 753 of file molecule.py.

Here is the call graph for this function:

◆ AlignToMoments()

def src.molecule.AlignToMoments (   elem,
  xyz1,
  xyz2 = None 
)

Pre-aligns molecules to 'moment of inertia'.

If xyz2 is passed in, it will assume that xyz1 is already aligned to the moment of inertia, and it simply does 180-degree rotations to make sure nothing is inverted.

Definition at line 765 of file molecule.py.

Here is the call graph for this function:

◆ arc()

def src.molecule.arc (   Mol,
  begin = None,
  end = None,
  RMSD = True,
  align = True 
)

Get the arc-length for a trajectory segment.

Uses RMSD or maximum displacement of any atom in the trajectory.

Parameters

Mol : Molecule Molecule object for calculating the arc length. begin : int Starting frame, defaults to first frame end : int Ending frame, defaults to final frame RMSD : bool Set to True to use frame-to-frame RMSD; otherwise use the maximum displacement of any atom

Returns

Arc : np.ndarray Arc length between frames in Angstrom, length is n_frames - 1

Definition at line 956 of file molecule.py.

◆ AtomContact()

def src.molecule.AtomContact (   xyz,
  pairs,
  box = None,
  displace = False 
)

Compute distances between pairs of atoms.

Parameters

xyz : np.ndarray N_frames*N_atoms*3 (3D) array of atomic positions If you only have a single set of positions, pass in xyz[np.newaxis, :] pairs : list List of 2-tuples of atom indices box : np.ndarray, optional N_frames*3 (2D) array of periodic box vectors If you only have a single set of positions, pass in box[np.newaxis, :] displace : bool If True, also return N_frames*N_pairs*3 array of displacement vectors

Returns

np.ndarray N_pairs*N_frames (2D) array of minimum image convention distances np.ndarray (optional) if displace=True, N_frames*N_pairs*3 array of displacement vectors

Definition at line 1045 of file molecule.py.

◆ axis_angle()

def src.molecule.axis_angle (   axis,
  angle 
)

Given a rotation axis and angle, return the corresponding 3x3 rotation matrix, which will rotate a (Nx3) array of xyz coordinates as x0_rot = np.dot(R, x0.T).T.

Parameters

axis : numpy.ndarray 1D array with 3 elements representing the rotation axis angle : float The angle of the rotation

Returns

numpy.array 3x3 rotation matrix

Definition at line 1133 of file molecule.py.

Here is the call graph for this function:

◆ both()

def src.molecule.both (   A,
  B,
  key 
)

Definition at line 685 of file molecule.py.

◆ BuildLatticeFromLengthsAngles()

def src.molecule.BuildLatticeFromLengthsAngles (   a,
  b,
  c,
  alpha,
  beta,
  gamma 
)

This function takes in three lattice lengths and three lattice angles, and tries to return a complete box specification.

Definition at line 437 of file molecule.py.

◆ BuildLatticeFromVectors()

def src.molecule.BuildLatticeFromVectors (   v1,
  v2,
  v3 
)

This function takes in three lattice vectors and tries to return a complete box specification.

The hash function is something we can use to discard two things that are obviously not equal. Here we neglect the hash. Return a list of the sorted atom numbers in this graph. Return a string of atoms, which serves as a rudimentary 'fingerprint' : '99,100,103,151' . Return an array of the elements. For instance ['H' 'C' 'C' 'H']. Create an Empirical Formula Get a list of the coordinates.

Definition at line 452 of file molecule.py.

◆ cartesian_product2()

def src.molecule.cartesian_product2 (   arrays)

Form a Cartesian product of two NumPy arrays.

Definition at line 824 of file molecule.py.

◆ ComputeOverlap()

def src.molecule.ComputeOverlap (   theta,
  elem,
  xyz1,
  xyz2 
)

Computes an 'overlap' between two molecules based on some fictitious density.

Good for fine-tuning alignment but gets stuck in local minima.

Definition at line 736 of file molecule.py.

Here is the call graph for this function:

◆ CubicLattice()

def src.molecule.CubicLattice (   a)

This function takes in three lattice lengths and three lattice angles, and tries to return a complete box specification.

Definition at line 417 of file molecule.py.

◆ diff()

def src.molecule.diff (   A,
  B,
  key 
)

Definition at line 688 of file molecule.py.

◆ either()

def src.molecule.either (   A,
  B,
  key 
)

Definition at line 699 of file molecule.py.

◆ elem_from_atomname()

def src.molecule.elem_from_atomname (   atomname)

Given an atom name, attempt to get the element in most cases.

Definition at line 298 of file molecule.py.

◆ EqualSpacing()

def src.molecule.EqualSpacing (   Mol,
  frames = 0,
  dx = 0,
  RMSD = True,
  align = True 
)

Equalize the spacing of frames in a trajectory with linear interpolation.

This is done in a very simple way, first calculating the arc length between frames, then creating an equally spaced array, and interpolating all Cartesian coordinates along this equally spaced array.

This is intended to be used on trajectories with smooth transformations and ensures that concatenated frames containing both optimization coordinates and dynamics trajectories don't have sudden changes in their derivatives.

Parameters

Mol : Molecule Molecule object for equalizing the spacing. frames : int Return a Molecule object with this number of frames. RMSD : bool Use RMSD in the arc length calculation.

Returns

Mol1 : Molecule New molecule object, either the same one (if frames > len(Mol)) or with equally spaced frames.

Definition at line 995 of file molecule.py.

Here is the call graph for this function:

◆ EulerMatrix()

def src.molecule.EulerMatrix (   T1,
  T2,
  T3 
)

Constructs an Euler matrix from three Euler angles.

Definition at line 708 of file molecule.py.

◆ even_list()

def src.molecule.even_list (   totlen,
  splitsize 
)

Creates a list of number sequences divided as evenly as possible.

Definition at line 667 of file molecule.py.

◆ extract_int()

def src.molecule.extract_int (   arr,
  avgthre,
  limthre,
  label = "value",
  verbose = True 
)

Get the representative integer value from an array.

The integer value is the rounded mean. Perform sanity checks to ensure the array isn't overly "non-integer".

Parameters

arr : numpy.ndarray NumPy array containing a series of floating point values where we'd like to extract the representative integer value. avgthre : float If the average deviates from the closest integer by more than this amount, do not pass. limthre : float If any element in this array deviates from the closest integer by more than this amount, do not pass. label : str Descriptive name of this variable, used only in printout. verbose : bool Print information in case array makes excursions larger than the threshold

Returns

int Representative integer value for the array. passed : bool Indicates whether the array mean and/or maximum deviations stayed with the thresholds.

Definition at line 860 of file molecule.py.

◆ extract_pop()

def src.molecule.extract_pop (   M,
  verbose = True 
)

Extract our best estimate of charge and spin-z from the comments section of a Molecule object created with Nanoreactor.

Note that spin-z is 1.0 if there is one unpaired electron (not one/half) because the unit is in terms of populations.

This function is intended to work on atoms that are extracted from an ab initio MD trajectory, where the Mulliken charge and spin populations are not exactly integers. It attempts to return the closest integer but it will sometimes fail.

If the number of electrons and spin-z are inconsistent, then return -999,-999 (indicates failure).

 Parameters
 ----------
 M : Molecule
     Molecule object that we're getting charge and spin from, with a known comment syntax
     Reaction: formula CHO -> CO+H atoms ['0-2'] -> ['0-1','2'] frame 219482 charge -0.742 sz +0.000 sz^2 0.000

 Returns
 -------
 chg : int
     Representative integer net charge of this Molecule, or -999 if inconsistent
 spn : int
     Representative integer spin-z of this Molecule (one unpaired electron: sz=1), or -999 if inconsistent

Definition at line 906 of file molecule.py.

Here is the call graph for this function:

◆ form_rot()

def src.molecule.form_rot (   q)

Given a quaternion p, form a rotation matrix from it.

Parameters

q : numpy.ndarray 1D array with 3 elements representing the rotation quaterion. Elements of quaternion are : [cos(a/2), sin(a/2)*axis[0..2]]

Returns

numpy.array 3x3 rotation matrix

Definition at line 1093 of file molecule.py.

◆ format_gro_box()

def src.molecule.format_gro_box (   box)

Print a line corresponding to the box vector in accordance with .gro file format.

Parameters
[in]boxBox NamedTuple

Definition at line 598 of file molecule.py.

◆ format_gro_coord()

def src.molecule.format_gro_coord (   resid,
  resname,
  aname,
  seqno,
  xyz 
)

Print a line in accordance with .gro file format, with six decimal points of precision.

Nine decimal points of precision are necessary to get forces below 1e-3 kJ/mol/nm.

Parameters
[in]residThe number of the residue that the atom belongs to
[in]resnameThe name of the residue that the atom belongs to
[in]anameThe name of the atom
[in]seqnoThe sequential number of the atom
[in]xyzA 3-element array containing x, y, z coordinates of that atom

Definition at line 577 of file molecule.py.

◆ format_xyz_coord()

def src.molecule.format_xyz_coord (   element,
  xyz,
  tinker = False 
)

Print a line consisting of (element, x, y, z) in accordance with .xyz file format.

Parameters
[in]elementA chemical element of a single atom
[in]xyzA 3-element array containing x, y, z coordinates of that atom

Definition at line 546 of file molecule.py.

◆ format_xyzgen_coord()

def src.molecule.format_xyzgen_coord (   element,
  xyzgen 
)

Print a line consisting of (element, p, q, r, s, t, ...) where (p, q, r) are arbitrary atom-wise data (this might happen, for instance, with atomic charges)

Parameters
[in]elementA chemical element of a single atom
[in]xyzgenA N-element array containing data for that atom

Definition at line 589 of file molecule.py.

◆ get_rotate_translate()

def src.molecule.get_rotate_translate (   matrix1,
  matrix2 
)

Definition at line 788 of file molecule.py.

◆ getElement()

def src.molecule.getElement (   mass)

Definition at line 293 of file molecule.py.

◆ grouper()

def src.molecule.grouper (   n,
  iterable 
)

Groups a big long iterable into groups of ten or what have you.

Definition at line 661 of file molecule.py.

◆ is_charmm_coord()

def src.molecule.is_charmm_coord (   line)

Determines whether a line contains CHARMM data or not.

Parameters
[in]lineThe line to be tested

Definition at line 625 of file molecule.py.

Here is the call graph for this function:

◆ is_gro_box()

def src.molecule.is_gro_box (   line)

Determines whether a line contains a GROMACS box vector or not.

Parameters
[in]lineThe line to be tested

Definition at line 638 of file molecule.py.

Here is the call graph for this function:

◆ is_gro_coord()

def src.molecule.is_gro_coord (   line)

Determines whether a line contains GROMACS data or not.

Parameters
[in]lineThe line to be tested

Definition at line 610 of file molecule.py.

Here is the call graph for this function:

◆ isfloat()

def src.molecule.isfloat (   word)

Matches ANY number; it can be a decimal, scientific notation, integer, or what have you.

Definition at line 406 of file molecule.py.

◆ isint()

def src.molecule.isint (   word)

ONLY matches integers! If you have a decimal point? None shall pass!

Definition at line 401 of file molecule.py.

◆ main()

def src.molecule.main ( )

Definition at line 4663 of file molecule.py.

◆ MolEqual()

def src.molecule.MolEqual (   mol1,
  mol2 
)

Determine whether two Molecule objects have the same fragments by looking at elements and connectivity graphs.

This is less strict than TopEqual (i.e. more often returns True).

Definition at line 534 of file molecule.py.

Here is the call graph for this function:

◆ nodematch()

def src.molecule.nodematch (   node1,
  node2 
)

Definition at line 395 of file molecule.py.

◆ pvec()

def src.molecule.pvec (   vec)

Definition at line 656 of file molecule.py.

◆ TopEqual()

def src.molecule.TopEqual (   mol1,
  mol2 
)

For the nanoreactor project: Determine whether two Molecule objects have the same topologies.

Definition at line 521 of file molecule.py.

Here is the call graph for this function:

◆ unmangle()

def src.molecule.unmangle (   M1,
  M2 
)

Create a mapping that takes M1's atom indices to M2's atom indices based on position.

If we start with atoms in molecule "PDB", and the new molecule "M" contains re-numbered atoms, then this code works:

M.elem = list(np.array(PDB.elem)[unmangled])

Definition at line 380 of file molecule.py.

Variable Documentation

◆ Alive

src.molecule.Alive

Definition at line 481 of file molecule.py.

◆ AllVariableNames

dictionary src.molecule.AllVariableNames = QuantumVariableNames | AtomVariableNames | MetaVariableNames | FrameVariableNames

Definition at line 180 of file molecule.py.

◆ AtomVariableNames

dictionary src.molecule.AtomVariableNames
Initial value:
1 = {'elem', 'partial_charge', 'atomname', 'atomtype', 'tinkersuf', 'resid', 'resname', 'qcsuf',
2  'qm_ghost', 'chain', 'altloc', 'icode', 'terminal'}

Definition at line 161 of file molecule.py.

◆ bohr2ang

float src.molecule.bohr2ang = 0.529177210

One bohr equals this many angstroms.

Definition at line 369 of file molecule.py.

◆ Box

src.molecule.Box = namedtuple('Box',['a','b','c','alpha','beta','gamma','A','B','C','V'])

Definition at line 413 of file molecule.py.

◆ Elements

list src.molecule.Elements
Initial value:
1 = ["None",'H','He',
2  'Li','Be','B','C','N','O','F','Ne',
3  'Na','Mg','Al','Si','P','S','Cl','Ar',
4  'K','Ca','Sc','Ti','V','Cr','Mn','Fe','Co','Ni','Cu','Zn','Ga','Ge','As','Se','Br','Kr',
5  'Rb','Sr','Y','Zr','Nb','Mo','Tc','Ru','Rh','Pd','Ag','Cd','In','Sn','Sb','Te','I','Xe',
6  'Cs','Ba','La','Ce','Pr','Nd','Pm','Sm','Eu','Gd','Tb','Dy','Ho','Er','Tm','Yb',
7  'Lu','Hf','Ta','W','Re','Os','Ir','Pt','Au','Hg','Tl','Pb','Bi','Po','At','Rn',
8  'Fr','Ra','Ac','Th','Pa','U','Np','Pu','Am','Cm','Bk','Cf','Es','Fm','Md','No','Lr','Rf','Db','Sg','Bh','Hs','Mt']

Definition at line 240 of file molecule.py.

◆ FrameVariableNames

dictionary src.molecule.FrameVariableNames
Initial value:
1 = {'xyzs', 'comms', 'boxes', 'qm_hessians', 'qm_grads', 'qm_energies', 'qm_interaction',
2  'qm_espxyzs', 'qm_espvals', 'qm_extchgs', 'qm_mulliken_charges', 'qm_mulliken_spins', 'qm_zpe',
3  'qm_entropy', 'qm_enthalpy', 'qm_bondorder'}

Definition at line 145 of file molecule.py.

◆ handler

src.molecule.handler = RawStreamHandler()

Definition at line 215 of file molecule.py.

◆ have_dcdlib

bool src.molecule.have_dcdlib = False

Definition at line 307 of file molecule.py.

◆ input

src.molecule.input = raw_input

Definition at line 31 of file molecule.py.

◆ logger

src.molecule.logger = getLogger("MoleculeLogger")

Definition at line 213 of file molecule.py.

◆ MetaVariableNames

dictionary src.molecule.MetaVariableNames
Initial value:
1 = {'fnm', 'ftype', 'qcrems', 'qctemplate', 'qcerr', 'charge', 'mult', 'bonds', 'topology',
2  'molecules'}

Definition at line 175 of file molecule.py.

◆ module_name

src.molecule.module_name = __name__.replace('.molecule','')

Definition at line 222 of file molecule.py.

◆ package

string src.molecule.package = "ForceBalance"

Definition at line 189 of file molecule.py.

◆ PeriodicTable

src.molecule.PeriodicTable
Initial value:
1 = OrderedDict([("H", 1.007975), ("He", 4.002602), # First row
2  ("Li", 6.9675), ("Be", 9.0121831), ("B", 10.8135), ("C", 12.0106), ("N", 14.006855), ("O", 15.99940), ("F", 18.99840316), ("Ne", 20.1797), # Second row Li-Ne
3  ("Na", 22.98976928), ("Mg", 24.3055), ("Al", 26.9815385), ("Si", 28.085), ("P", 30.973762), ("S", 32.0675), ("Cl", 35.4515), ("Ar", 39.948), # Third row Na-Ar
4  ("K", 39.0983), ("Ca", 40.078), ("Sc", 44.955908), ("Ti", 47.867), ("V", 50.9415), ("Cr", 51.9961), ("Mn", 54.938044), ("Fe", 55.845), ("Co", 58.933194), # Fourth row K-Kr
5  ("Ni", 58.6934), ("Cu", 63.546), ("Zn", 65.38), ("Ga", 69.723), ("Ge", 72.63), ("As", 74.921595), ("Se", 78.971), ("Br", 79.904), ("Kr", 83.798),
6  ("Rb", 85.4678), ("Sr", 87.62), ("Y", 88.90584), ("Zr", 91.224), ("Nb", 92.90637), ("Mo", 95.95), ("Tc", 98.), ("Ru", 101.07), ("Rh", 102.9055), # Fifth row Rb-Xe
7  ("Pd", 106.42), ("Ag", 107.8682), ("Cd", 112.414), ("In", 114.818), ("Sn", 118.71), ("Sb", 121.76), ("Te", 127.6), ("I", 126.90447), ("Xe", 131.293),
8  ("Cs", 132.905452), ("Ba", 137.327), ("La", 138.90547), ("Ce", 140.116), ("Pr", 140.90766), ("Nd", 144.242), ("Pm", 145.), ("Sm", 150.36), # Sixth row Cs-Rn
9  ("Eu", 151.964), ("Gd", 157.25), ("Tb", 158.92535), ("Dy", 162.5), ("Ho", 164.93033), ("Er", 167.259), ("Tm", 168.93422), ("Yb", 173.054),
10  ("Lu", 174.9668), ("Hf", 178.49), ("Ta", 180.94788), ("W", 183.84), ("Re", 186.207), ("Os", 190.23), ("Ir", 192.217), ("Pt", 195.084),
11  ("Au", 196.966569), ("Hg", 200.592), ("Tl", 204.3835), ("Pb", 207.2), ("Bi", 208.9804), ("Po", 209.), ("At", 210.), ("Rn", 222.),
12  ("Fr", 223.), ("Ra", 226.), ("Ac", 227.), ("Th", 232.0377), ("Pa", 231.03588), ("U", 238.02891), ("Np", 237.), ("Pu", 244.), # Seventh row Fr-Og
13  ("Am", 241.), ("Cm", 243.), ("Bk", 247.), ("Cf", 249.), ("Es", 252.), ("Fm", 257.), ("Md", 258.), ("No", 259.),
14  ("Lr", 262.), ("Rf", 267.), ("Db", 268.), ("Sg", 271.), ("Bh", 272.), ("Hs", 270.), ("Mt", 276.), ("Ds", 281.),
15  ("Rg", 280.), ("Cn", 285.), ("Nh", 284.), ("Fl", 289.), ("Mc", 288.), ("Lv", 293.), ("Ts", 292.), ("Og", 294.)])

Definition at line 261 of file molecule.py.

◆ QuantumVariableNames

dictionary src.molecule.QuantumVariableNames = {'qcrems', 'qctemplate', 'charge', 'mult', 'qcsuf', 'qm_ghost', 'qm_bondorder'}

Definition at line 178 of file molecule.py.

◆ radian

int src.molecule.radian = 180. / np.pi

Definition at line 414 of file molecule.py.

◆ Radii

list src.molecule.Radii
Initial value:
1 = [0.31, 0.28, # H and He
2  1.28, 0.96, 0.84, 0.76, 0.71, 0.66, 0.57, 0.58, # First row elements
3  0.00, 1.41, 1.21, 1.11, 1.07, 1.05, 1.02, 1.06, # Second row elements
4  # 1.66, 1.41, 1.21, 1.11, 1.07, 1.05, 1.02, 1.06, # Second row elements
5  2.03, 1.76, 1.70, 1.60, 1.53, 1.39, 1.61, 1.52, 1.50,
6  1.24, 1.32, 1.22, 1.22, 1.20, 1.19, 1.20, 1.20, 1.16, # Third row elements, K through Kr
7  2.20, 1.95, 1.90, 1.75, 1.64, 1.54, 1.47, 1.46, 1.42,
8  1.39, 1.45, 1.44, 1.42, 1.39, 1.39, 1.38, 1.39, 1.40, # Fourth row elements, Rb through Xe
9  2.44, 2.15, 2.07, 2.04, 2.03, 2.01, 1.99, 1.98,
10  1.98, 1.96, 1.94, 1.92, 1.92, 1.89, 1.90, 1.87, # Fifth row elements, s and f blocks
11  1.87, 1.75, 1.70, 1.62, 1.51, 1.44, 1.41, 1.36,
12  1.36, 1.32, 1.45, 1.46, 1.48, 1.40, 1.50, 1.50, # Fifth row elements, d and p blocks
13  2.60, 2.21, 2.15, 2.06, 2.00, 1.96, 1.90, 1.87, 1.80, 1.69]

Definition at line 225 of file molecule.py.

◆ splitter

src.molecule.splitter = re.compile(r'(\s+|\S+)')

Definition at line 410 of file molecule.py.