Source code for pymopac.API.api_types

from ctypes import *
from typing import List

[docs] class MopacSystem(Structure): """ Defines the atomistic system and MOPAC job options. Attributes: natom (int): Number of atoms in the system. natom_move (int): Number of atoms allowed to move. charge (int): Net charge of the system. spin (int): Number of spin excitations. model (int): Semiempirical model (PM7=0, PM6-D3H4=1, etc.). epsilon (float): Dielectric constant for COSMO solvent. atom (POINTER(c_int)): Pointer to atomic numbers array (size `natom`). coord (POINTER(c_double)): Pointer to atomic coordinates array (size `3*natom`). nlattice (int): Number of lattice vectors. nlattice_move (int): Number of moveable lattice vectors. pressure (float): External hydrostatic pressure (GPa). lattice (POINTER(c_double)): Pointer to lattice vectors array (size `3*nlattice`). tolerance (float): Relative numerical tolerance. max_time (int): Time limit in seconds. """ _fields_ = [ ("natom", c_int), ("natom_move", c_int), ("charge", c_int), ("spin", c_int), ("model", c_int), ("epsilon", c_double), ("atom", POINTER(c_int)), ("coord", POINTER(c_double)), ("nlattice", c_int), ("nlattice_move", c_int), ("pressure", c_double), ("lattice", POINTER(c_double)), ("tolerance", c_double), ("max_time", c_int) ]
[docs] class MopacProperties(Structure): """ Stores the calculated ground-state properties and job information. Attributes: heat (float): Heat of formation (kcal/mol). dipole (float[3]): Dipole moment vector (Debye). charge (POINTER(c_double)): Pointer to atomic partial charges array (size `natom`). coord_update (POINTER(c_double)): Pointer to updated coordinates array (size `3*natom_move`). coord_deriv (POINTER(c_double)): Pointer to heat gradients array (size `3*natom_move`). freq (POINTER(c_double)): Pointer to vibrational frequencies array (size `3*natom_move`). disp (POINTER(c_double)): Pointer to displacement vectors array (size `3*natom_move, 3*natom_move`). bond_index (POINTER(c_int)): Pointer to CSC format bond matrix indices array (size `natom+1`). bond_atom (POINTER(c_int)): Pointer to bonded atoms list (size `bond_index[natom]`). bond_order (POINTER(c_double)): Pointer to bond orders array (size `bond_index[natom]`). lattice_update (POINTER(c_double)): Pointer to updated lattice vectors array (size `3*nlattice_move`). lattice_deriv (POINTER(c_double)): Pointer to lattice gradients array (size `3*nlattice_move`). stress (float[6]): Stress tensor in Voigt form. nerror (int): Number of error messages. error_msg (POINTER(POINTER(c_char))): Pointer to error messages array (size `nerror`). """ _fields_ = [ ("heat", c_double), ("dipole", c_double * 3), ("charge", POINTER(c_double)), ("coord_update", POINTER(c_double)), ("coord_deriv", POINTER(c_double)), ("freq", POINTER(c_double)), ("disp", POINTER(c_double)), ("bond_index", POINTER(c_int)), ("bond_atom", POINTER(c_int)), ("bond_order", POINTER(c_double)), ("lattice_update", POINTER(c_double)), ("lattice_deriv", POINTER(c_double)), ("stress", c_double * 6), ("nerror", c_int), ("error_msg", POINTER(POINTER(c_char))) ]
[docs] class MopacState(Structure): """ Represents an electronic state using standard molecular orbitals. Attributes: mpack (int): Number of packed matrix elements. uhf (int): Unrestricted HF flag (0 = restricted, 1 = unrestricted). pa (POINTER(c_double)): Pointer to alpha density matrix array (size `mpack`). pb (POINTER(c_double)): Pointer to beta density matrix array (size `mpack`, NULL if `uhf=0`). """ _fields_ = [ ("mpack", c_int), ("uhf", c_int), ("pa", POINTER(c_double)), ("pb", POINTER(c_double)) ]
[docs] class MozymeState(Structure): """ Represents an electronic state using localized molecular orbitals. Attributes: numat (int): Number of real atoms. nbonds (POINTER(c_int)): Pointer to Lewis bonds per atom array (size `numat`). ibonds (POINTER(c_int)): Pointer to Lewis-bonded atoms array (size `9*numat`). iorbs (POINTER(c_int)): Pointer to orbitals per atom array (size `numat`). noccupied (int): Number of occupied molecular orbitals. ncf (POINTER(c_int)): Pointer to atoms in occupied localized molecular orbitals (size `noccupied`). nvirtual (int): Number of virtual molecular orbitals. nce (POINTER(c_int)): Pointer to atoms in virtual localized molecular orbitals (size `nvirtual`). icocc_dim (int): Size of `icocc` array. icocc (POINTER(c_int)): Pointer to atom indices in occupied LMOs array (size `icocc_dim`). icvir_dim (int): Size of `icvir` array. icvir (POINTER(c_int)): Pointer to atom indices in virtual LMOs array (size `icvir_dim`). cocc_dim (int): Size of `cocc` array. cocc (POINTER(c_double)): Pointer to occupied LMO coefficients array (size `cocc_dim`). cvir_dim (int): Size of `cvir` array. cvir (POINTER(c_double)): Pointer to virtual LMO coefficients array (size `cvir_dim`). """ _fields_ = [ ("numat", c_int), ("nbonds", POINTER(c_int)), ("ibonds", POINTER(c_int)), ("iorbs", POINTER(c_int)), ("noccupied", c_int), ("ncf", POINTER(c_int)), ("nvirtual", c_int), ("nce", POINTER(c_int)), ("icocc_dim", c_int), ("icocc", POINTER(c_int)), ("icvir_dim", c_int), ("icvir", POINTER(c_int)), ("cocc_dim", c_int), ("cocc", POINTER(c_double)), ("cvir_dim", c_int), ("cvir", POINTER(c_double)) ]
class ModelNumber: """Enumeration of model numbers for semiempirical methods.""" PM7 = 0 PM6_D3H4 = 1 PM6_ORG = 2 PM6 = 3 AM1 = 4 RM1 = 5