LibBase API index¶
- class ChemicalSystem¶
A class representing a chemical system in the Amsterdam Modeling Suite
- __init__(*args, **kwargs)¶
Overloaded function.
__init__(self: scm.libbase._internal.ChemicalSystem) -> None
Creates a new, empty ChemicalSystem.
__init__(self: scm.libbase._internal.ChemicalSystem, system_block: str) -> None
Creates a new ChemicalSystem from a System block string.
__init__(self: scm.libbase._internal.ChemicalSystem, symbols: List[str], coords: numpy.ndarray[numpy.float64[m, 3]], eol_strings: Optional[List[str]] = None, charge: float = 0.0, lattice: scm.libbase._internal.Lattice = <scm.libbase._internal.Lattice object at 0x73b3c02a1fb0>, bonds: Optional[scm.libbase._internal.Bonds] = None, electrostatic_embedding: Optional[scm.libbase._internal.ElectrostaticEmbedding] = None) -> None
Creates a new ChemicalSystem from atom symbols, coordinates and (optionally) other data.
__init__(self: scm.libbase._internal.ChemicalSystem, atomic_numbers: List[int], coords: numpy.ndarray[numpy.float64[m, 3]], eol_strings: Optional[List[str]] = None, charge: float = 0.0, lattice: scm.libbase._internal.Lattice = <scm.libbase._internal.Lattice object at 0x73b3c02a41b0>, bonds: Optional[scm.libbase._internal.Bonds] = None, electrostatic_embedding: Optional[scm.libbase._internal.ElectrostaticEmbedding] = None) -> None
Creates a new ChemicalSystem from atomic numbers, coordinates and (optionally) other data.
- __len__(self: ChemicalSystem) int ¶
- __str__(self: ChemicalSystem) str ¶
Formats a ChemicalSystem into an AMS System block.
- add_all_atoms_to_region(self: ChemicalSystem, region: str) None ¶
Adds all of the system’s atoms to a region.
- add_atom(*args, **kwargs)¶
Overloaded function.
add_atom(self: scm.libbase._internal.ChemicalSystem, atom: scm.libbase._internal.Atom) -> None
Adds a copy of an Atom to a ChemicalSystem.
add_atom(self: scm.libbase._internal.ChemicalSystem, atom: scm.libbase._internal.Atom, coords: numpy.ndarray[numpy.float64[3, 1]], unit: str = ‘angstrom’) -> None
Adds a copy of an Atom to a ChemicalSystem.
add_atom(self: scm.libbase._internal.ChemicalSystem, Z: int, coords: numpy.ndarray[numpy.float64[3, 1]], unit: str = ‘angstrom’) -> None
Adds a new Atom of a given atomic number to the ChemicalSystem.
add_atom(self: scm.libbase._internal.ChemicalSystem, element: scm.libbase._internal.Element, coords: numpy.ndarray[numpy.float64[3, 1]], unit: str = ‘angstrom’) -> None
Adds a new Atom of a given Element to the ChemicalSystem.
add_atom(self: scm.libbase._internal.ChemicalSystem, symbol: str, coords: numpy.ndarray[numpy.float64[3, 1]], unit: str = ‘angstrom’) -> None
Adds a new Atom to the ChemicalSystem given its symbol.
- add_atom_to_region(*args, **kwargs)¶
Overloaded function.
add_atom_to_region(self: scm.libbase._internal.ChemicalSystem, atom: int, region: str) -> None
Adds an atom to a region.
add_atom_to_region(self: scm.libbase._internal.ChemicalSystem, atom: scm.libbase._internal.Atom, region: str) -> None
Adds an atom to a region.
- add_atoms_to_region(self: ChemicalSystem, atom_indices: numpy.ndarray[numpy.int32[m, 1]], region: str) None ¶
Adds multiple atoms to a region, given their atom indices.
- add_hydrogen_atoms(*args, **kwargs)¶
Overloaded function.
add_hydrogen_atoms(self: scm.libbase._internal.ChemicalSystem, atom_indices: List[int]) -> None
Add missing hydrogen atoms to organic compounds.
add_hydrogen_atoms(self: scm.libbase._internal.ChemicalSystem) -> None
Add missing hydrogen atoms to organic compounds.
- add_other(self: ChemicalSystem, other: ChemicalSystem) None ¶
Merges another ChemicalSystem into this one.
- align_to(self: ChemicalSystem, other: ChemicalSystem) None ¶
Translate and rotate the system to maximally align it with ‘other’.
- static all_from_input(input_file: scm.libbase._internal.InputFile) Dict[str, ChemicalSystem] ¶
Constructs and returns ChemicalSystems for all System (and LoadSystem) blocks in an InputFile.
- apply_strain(self: ChemicalSystem, strain_matrix: numpy.ndarray[numpy.float64[m, n]]) None ¶
Apply a strain deformation to a periodic system.
- apply_strain_voigt(self: ChemicalSystem, strain_voigt: List[float]) None ¶
Apply a strain deformation to a periodic system.
- atom_EOL_string(self: ChemicalSystem, atidx: int, skip: List[str] = []) str ¶
Returns the end-of-line string of an atom in the System%Atoms block given its index.
- atom_attributes_enabled(self: ChemicalSystem, group_prefix: str) bool ¶
Checks if a group of atomic properties is enabled or not.
- atom_index(self: ChemicalSystem, atom: Atom) int ¶
Given an Atom instance, returns its index in ChemicalSystem.atoms.
- atom_is_in_ring(*args, **kwargs)¶
Overloaded function.
atom_is_in_ring(self: scm.libbase._internal.ChemicalSystem, atom: int) -> bool
Checks if an atom is part of any ring.
atom_is_in_ring(self: scm.libbase._internal.ChemicalSystem, atom: scm.libbase._internal.Atom) -> bool
Checks if an atom is part of any ring.
- bond_cuts_molecule(*args, **kwargs)¶
Overloaded function.
bond_cuts_molecule(self: scm.libbase._internal.ChemicalSystem, from_atom: int, to_atom: int) -> bool
Checks if removing the bonds between two atoms would cut the graph into two disjoint subgraphs.
bond_cuts_molecule(self: scm.libbase._internal.ChemicalSystem, from_atom: scm.libbase._internal.Atom, to_atom: scm.libbase._internal.Atom) -> bool
Checks if removing the bonds between two atoms would cut the graph into two disjoint subgraphs.
- bounding_box_volume(self: ChemicalSystem, unit: str = 'angstrom3') float ¶
Volume of the bounding box.
- center_of_mass(self: ChemicalSystem, unit: str = 'angstrom') numpy.ndarray[numpy.float64[3, 1]] ¶
Position of the center of mass.
- check_molecule_symmetry(self: ChemicalSystem, label: str, tolerance: float = 1e-06) bool ¶
Checks if a molecule has a particular symmetry given by a Schoenflies symbol.
- contains_atom(self: ChemicalSystem, atom: Atom) bool ¶
Checks if an Atom instance is part of a ChemicalSystem.
- copy(self: ChemicalSystem) ChemicalSystem ¶
Creates a deep copy of the ChemicalSystem.
- density(self: ChemicalSystem, unit: str = 'dalton/angstrom3') float ¶
Returns the density of the system in the specified unit. Only valid for 3D periodic systems.
- deselect_all(self: ChemicalSystem) None ¶
Deselects all atoms, or in other words: clears the current selection.
- deselect_atom(*args, **kwargs)¶
Overloaded function.
deselect_atom(self: scm.libbase._internal.ChemicalSystem, arg0: int) -> None
Selects an atom given its index.
deselect_atom(self: scm.libbase._internal.ChemicalSystem, arg0: scm.libbase._internal.Atom) -> None
Selects an instance of an atom.
- deselect_atoms(self: ChemicalSystem, atom_indices: numpy.ndarray[numpy.int32[m, 1]]) None ¶
Deselects multiple atoms at once, given their atom indices.
- deselect_atoms_if(self: ChemicalSystem, pred: Callable[[Atom], bool]) None ¶
Deselects atoms based on a predicate function.
- determine_species(self: ChemicalSystem, comp: Callable[[Atom, Atom], bool]) Tuple[int, List[int], List[int]] ¶
Determines the present atomic species, based on a user defined comparator function.
- disable_atom_attributes(self: ChemicalSystem, group_prefix: str) None ¶
Disables the use of a group of atomic properties. Any set properties within the group will be discarded.
- distance_matrix(*args, **kwargs)¶
Overloaded function.
distance_matrix(self: scm.libbase._internal.ChemicalSystem, unit: str = ‘angstrom’) -> numpy.ndarray[numpy.float64[m, n]]
Returns the distance matrix between all atoms in the system.
distance_matrix(self: scm.libbase._internal.ChemicalSystem, atom_indices: numpy.ndarray[numpy.int32[m, 1]], unit: str = ‘angstrom’) -> numpy.ndarray[numpy.float64[m, n]]
Returns the distance matrix between a subset of atoms in the system.
distance_matrix(self: scm.libbase._internal.ChemicalSystem, from_indices: numpy.ndarray[numpy.int32[m, 1]], to_indices: numpy.ndarray[numpy.int32[m, 1]], unit: str = ‘angstrom’) -> numpy.ndarray[numpy.float64[m, n]]
Returns the distance matrix between two subsets of atoms in the system.
- do_regions_intersect(self: ChemicalSystem, regionA: str, regionB: str) bool ¶
Checks if two regions or region expressions intersect, i.e. have at least one atom in common.
- enable_atom_attributes(self: ChemicalSystem, group_prefix: str) None ¶
Enables the use of a group of atomic properties.
- extract_atoms(self: ChemicalSystem, atom_indices: List[int]) ChemicalSystem ¶
Returns a new system build from a subset of atoms.
- formula(self: ChemicalSystem) str ¶
Chemical formula in Hill notation, e.g. H2O or CH4.
- static from_in(filename: str, name: str = '') ChemicalSystem ¶
Constructs and returns a new ChemicalSystem from a (possibly named) System block in an AMS input file.
- static from_input(input_file: scm.libbase._internal.InputFile, prefix: str) ChemicalSystem ¶
Constructs and returns a new ChemicalSystem from an InputFile instance, given a prefix, e.g. ‘System[1]%’.
- static from_kf(*args, **kwargs)¶
Overloaded function.
from_kf(filename: str, section: str = ‘Molecule’) -> scm.libbase._internal.ChemicalSystem
Constructs and returns a new ChemicalSystem from a section on a KF file.
from_kf(kf: scm.libbase._internal.KFFile, section: str = ‘Molecule’) -> scm.libbase._internal.ChemicalSystem
Constructs and returns a new ChemicalSystem from a section on a KF file.
- static from_xyz(filename: str) ChemicalSystem ¶
Constructs and returns a new ChemicalSystem from an extended XYZ file.
- geometric_center(self: ChemicalSystem, unit: str = 'angstrom') numpy.ndarray[numpy.float64[3, 1]] ¶
Position of the geometric center.
- get_angle(*args, **kwargs)¶
Overloaded function.
get_angle(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, c: int, unit: str = ‘radians’) -> float
Measures the angle A-B-C between three atoms, given their indices.
get_angle(self: scm.libbase._internal.ChemicalSystem, a: scm.libbase._internal.Atom, b: scm.libbase._internal.Atom, c: scm.libbase._internal.Atom, unit: str = ‘radians’) -> float
Measures the angle A-B-C between three Atom instances.
- get_atoms_in_region(self: ChemicalSystem, region: str) numpy.ndarray[numpy.int32[m, 1]] ¶
Returns a sorted array of atom indices of all atoms in a region or region expression.
- get_atoms_outside_region(self: ChemicalSystem, region: str) numpy.ndarray[numpy.int32[m, 1]] ¶
Returns a sorted array of atom indices of all atoms outside of a region or region expression.
- get_dihedral(*args, **kwargs)¶
Overloaded function.
get_dihedral(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, c: int, d: int, unit: str = ‘radians’) -> float
Measures the dihedral angle A-B-C-D between four atoms, given their indices.
get_dihedral(self: scm.libbase._internal.ChemicalSystem, a: scm.libbase._internal.Atom, b: scm.libbase._internal.Atom, c: scm.libbase._internal.Atom, d: scm.libbase._internal.Atom, unit: str = ‘radians’) -> float
Measures the dihedral angle A-B-C-D between four Atom instances.
- get_distance(*args, **kwargs)¶
Overloaded function.
get_distance(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, unit: str = ‘angstrom’) -> float
Measures the distance between two atoms, given their indices.
get_distance(self: scm.libbase._internal.ChemicalSystem, a: scm.libbase._internal.Atom, b: scm.libbase._internal.Atom, unit: str = ‘angstrom’) -> float
Measures the distance between two Atom instances.
- get_distances_to_point(self: ChemicalSystem, point: numpy.ndarray[numpy.float64[3, 1]], unit: str = 'angstrom') numpy.ndarray[numpy.float64[m, 1]] ¶
Returns the distance of each atom from a given point.
- get_fractional_coordinate(self: ChemicalSystem, atom: Atom, unit: str = 'angstrom') numpy.ndarray[numpy.float64[3, 1]] ¶
Returns the fractional coordinate of a single atom with respect to the cell. In non-periodic directions the plain coordinates are returned in the specified unit.
- get_fractional_coordinates(self: ChemicalSystem, unit: str = 'angstrom') numpy.ndarray[numpy.float64[m, 3]] ¶
Returns the fractional coordinates of all atoms with respect to the cell. In non-periodic directions the plain coordinates are returned in the specified unit.
- static get_operands_in_region_expression(region_expression: str) List[str] ¶
Returns a sorted list of all unique operands used in a region expression.
- get_regions_of_atom(*args, **kwargs)¶
Overloaded function.
get_regions_of_atom(self: scm.libbase._internal.ChemicalSystem, atom: int) -> List[str]
Returns an alphabetically sorted list of the names of all regions an atom is part of.
get_regions_of_atom(self: scm.libbase._internal.ChemicalSystem, atom: scm.libbase._internal.Atom) -> List[str]
Returns an alphabetically sorted list of the names of all regions an atom is part of.
- get_selected_atoms(self: ChemicalSystem) numpy.ndarray[numpy.int32[m, 1]] ¶
Returns an array of indices of all selected atoms.
- get_species(self: ChemicalSystem, comp: Callable[[Atom, Atom], bool]) List[List[int]] ¶
Determines the present atomic species, based on a user defined comparator function.
- guess_bonds(self: ChemicalSystem) None ¶
Guesses bonds based on the atomic elements and the geometry. Keeps existing bonds.
- has_bonds(self: ChemicalSystem) bool ¶
Checks if the system has any bonding information.
- has_ghost_atoms(self: ChemicalSystem) bool ¶
Checks whether the ChemicalSystem contains any Ghost atoms.
- has_lattice(self: ChemicalSystem) bool ¶
Checks if the system has a lattice.
- has_region(self: ChemicalSystem, region: str) bool ¶
Checks if a region exists in the system, given its region name.
- has_same_atoms(*args, **kwargs)¶
Overloaded function.
has_same_atoms(self: scm.libbase._internal.ChemicalSystem, other: scm.libbase._internal.ChemicalSystem, properties: List[str] = []) -> bool
Checks if two systems have identical atoms in the same order.
has_same_atoms(self: scm.libbase._internal.ChemicalSystem, other: scm.libbase._internal.ChemicalSystem, comp: Callable[[scm.libbase._internal.Atom, scm.libbase._internal.Atom], bool]) -> bool
Checks if two systems have identical atoms in the same order given a user defined comparator.
- has_same_coords(self: ChemicalSystem, other: ChemicalSystem, tol: float = 0.001, unit: str = 'angstrom') bool ¶
Checks if the atomic coordinates of two systems are within a threshold of each other.
- has_same_geometry(self: ChemicalSystem, other: ChemicalSystem, tol: float = 0.001, unit: str = 'angstrom') bool ¶
Checks if the atomic coordinates and lattice vectors of two systems are within a threshold of each other.
- has_same_regions(self: ChemicalSystem, other: ChemicalSystem) bool ¶
Checks if two systems have identical regions, meaning region names and included atom indices.
- has_same_selection(self: ChemicalSystem, other: ChemicalSystem, consider_selection_order: bool = False) bool ¶
Checks if two systems have the same atom selection.
- inertia_tensor(self: ChemicalSystem) numpy.ndarray[numpy.float64[3, 3]] ¶
Returns the system’s inertia tensor as a 3x3 matrix (units amu*angstrom^2).
- invert_selection(self: ChemicalSystem) None ¶
Inverts the set of selected atoms.
- is_atom_in_region(*args, **kwargs)¶
Overloaded function.
is_atom_in_region(self: scm.libbase._internal.ChemicalSystem, atom: int, region: str) -> bool
Checks if an atom is in a region or region expression.
is_atom_in_region(self: scm.libbase._internal.ChemicalSystem, atom: scm.libbase._internal.Atom, region: str) -> bool
Checks if an atom is in a region or region expression.
- is_atom_outside_region(*args, **kwargs)¶
Overloaded function.
is_atom_outside_region(self: scm.libbase._internal.ChemicalSystem, atom: int, region: str) -> bool
Checks if an atom is outside of a region or region expression.
is_atom_outside_region(self: scm.libbase._internal.ChemicalSystem, atom: scm.libbase._internal.Atom, region: str) -> bool
Checks if an atom is outside of a region or region expression.
- is_atom_selected(*args, **kwargs)¶
Overloaded function.
is_atom_selected(self: scm.libbase._internal.ChemicalSystem, arg0: int) -> bool
Checks if an atom is currently selected, given its index.
is_atom_selected(self: scm.libbase._internal.ChemicalSystem, arg0: scm.libbase._internal.Atom) -> None
Checks if an instance of an atom is currently selected.
- is_linear(self: ChemicalSystem) bool ¶
Checks is a ChemicalSystem is linear.
- static is_valid_region_name(name: str) bool ¶
Checks if a string is a valid region name.
- make_conventional_cell(self: ChemicalSystem, precision: float = 0.1) ChemicalSystem ¶
Create a new system by converting a 2D or 3D cell to its conventional representation.
- make_primitive_cell(self: ChemicalSystem, precision: float = 0.1) ChemicalSystem ¶
Create a new system by converting a 2D or 3D cell to its primitive representation.
- make_selection_cappable(self: ChemicalSystem) None ¶
Extends the current selection but does not cross single bonds, unless they are to hydrogen atoms.
- make_slab_layers(self: ChemicalSystem, ref_atom: int, num_layers: int, miller: numpy.ndarray[numpy.int32[3, 1]], translate: float = 0.0, unit: str = 'angstrom') ChemicalSystem ¶
Create a new system which is a 2D slab, by slicing a 3D system, specifying the number of layers in the resulting slab.
- make_slab_thickness(self: ChemicalSystem, ref_atom: int, top: float, bottom: float, miller: numpy.ndarray[numpy.int32[3, 1]], translate: float = 0.0, unit: str = 'angstrom') ChemicalSystem ¶
Create a new system which is a 2D slab, by slicing a 3D system, specifying the upper and lower bound of the resulting slab.
- make_supercell(self: ChemicalSystem, supercell: numpy.ndarray[numpy.int32[m, 1]]) ChemicalSystem ¶
Create a supercell by scaling the lattice vectors.
- make_supercell_trafo(self: ChemicalSystem, supercell: numpy.ndarray[numpy.int32[m, n]]) ChemicalSystem ¶
Create a supercell by creating the matrix product of the lattice vectors and the supercell matrix.
- map_atoms(*args, **kwargs)¶
Overloaded function.
map_atoms(self: scm.libbase._internal.ChemicalSystem, start_range: float) -> Tuple[bool, numpy.ndarray[numpy.int32[m, 3]]]
Maps all atoms into a unit cell from [start_range:start_range+1] in fractional coordinates.
map_atoms(self: scm.libbase._internal.ChemicalSystem, start_range: numpy.ndarray[numpy.float64[m, 1]]) -> Tuple[bool, numpy.ndarray[numpy.int32[m, 3]]]
Maps all atoms into a unit cell from [start_range:start_range+1] in fractional coordinates.
- map_atoms_around_atom(*args, **kwargs)¶
Overloaded function.
map_atoms_around_atom(self: scm.libbase._internal.ChemicalSystem, atom: scm.libbase._internal.Atom) -> Tuple[bool, numpy.ndarray[numpy.int32[m, 3]]]
Map all atoms around the chosen atom that will be in the center of the new unit cell.
map_atoms_around_atom(self: scm.libbase._internal.ChemicalSystem, atom: int) -> Tuple[bool, numpy.ndarray[numpy.int32[m, 3]]]
Map all atoms around the chosen atom that will be in the center of the new unit cell.
- map_atoms_continuous(self: ChemicalSystem) bool ¶
Map all atoms that are bonded across the periodic boundary back.
- molecule_indices(self: ChemicalSystem) numpy.ndarray[numpy.int32[m, 1]] ¶
Returns a
num_atoms
sized array mapping the atoms to connected molecules of the system.
- molgraph_dijkstra(self: ChemicalSystem, from_atidx: int, dist_func: Callable[[int, int, Bond], float], to_atidx: int = -1) Tuple[List[float], List[int], List[bool]] ¶
General method implementing the Dijkstra algorithm on the molecular graph.
- moments_of_inertia(self: ChemicalSystem) Tuple[numpy.ndarray[numpy.float64[3, 1]], numpy.ndarray[numpy.float64[3, 3]]] ¶
Calculates the system’s moments of inertia and the corresponding principal axes (units amu*angstrom^2).
- moving_atoms_for_angle_change(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, c: int, policy: scm.libbase._internal.ChemicalSystem.InternalCoordinateManipulationPolicy = <InternalCoordinateManipulationPolicy.SecondPartMoves: 1>) numpy.ndarray[numpy.int32[m, 1]] ¶
Determines which atoms will move when changing the angle between three atoms.
- moving_atoms_for_dihedral_change(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, c: int, d: int, policy: scm.libbase._internal.ChemicalSystem.InternalCoordinateManipulationPolicy = <InternalCoordinateManipulationPolicy.SecondPartMoves: 1>) numpy.ndarray[numpy.int32[m, 1]] ¶
Determines which atoms will move when changing the dihedral between four atoms.
- moving_atoms_for_distance_change(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, policy: scm.libbase._internal.ChemicalSystem.InternalCoordinateManipulationPolicy = <InternalCoordinateManipulationPolicy.SecondPartMoves: 1>) numpy.ndarray[numpy.int32[m, 1]] ¶
Determines which atoms will move when changing the distance between two atoms.
- num_atoms_in_region(self: ChemicalSystem, region: str) int ¶
Returns the number of atoms in a region or region expression.
- num_atoms_outside_region(self: ChemicalSystem, region: str) int ¶
Returns the number of atoms outside of a region or region expression.
- num_molecules(self: ChemicalSystem) int ¶
Counts the number of connected molecules that are part of this system.
- num_selected_atoms(self: ChemicalSystem) int ¶
The number of currently selected atoms.
- perturb_coordinates(self: ChemicalSystem, noise_level: float, unit: str = 'angstrom') None ¶
Perturb the atomic coordinates by adding random numbers between to each Cartesian component.
- perturb_lattice(self: ChemicalSystem, noise_level: float) None ¶
Perturb the lattice vectors by applying a random strain.
- remove_all_regions(self: ChemicalSystem) None ¶
Removes all regions. All atoms will keep existing, but will not longer be part of any region.
- remove_atom(self: ChemicalSystem, atom_index: int) None ¶
Removes a single atom from the system, given its index.
- remove_atom_from_all_regions(*args, **kwargs)¶
Overloaded function.
remove_atom_from_all_regions(self: scm.libbase._internal.ChemicalSystem, atom: int) -> None
Removes an atom from all regions.
remove_atom_from_all_regions(self: scm.libbase._internal.ChemicalSystem, atom: scm.libbase._internal.Atom) -> None
Removes an atom from all regions.
- remove_atom_from_region(*args, **kwargs)¶
Overloaded function.
remove_atom_from_region(self: scm.libbase._internal.ChemicalSystem, atom: int, region: str) -> None
Removes an atom from a region.
remove_atom_from_region(self: scm.libbase._internal.ChemicalSystem, atom: scm.libbase._internal.Atom, region: str) -> None
Removes an atom from a region.
- remove_atoms(self: ChemicalSystem, atom_indices: numpy.ndarray[numpy.int32[m, 1]]) None ¶
Removes multiple atoms from the system, given their atom indices.
- remove_atoms_from_region(self: ChemicalSystem, atom_indices: numpy.ndarray[numpy.int32[m, 1]], region: str) None ¶
Adds multiple atoms to a region, given their atom indices.
- remove_region(self: ChemicalSystem, region: str) None ¶
Removes a region. Atoms in that region will keep existing, but will not longer be part of that region.
- reorder_atoms(self: ChemicalSystem, atom_order: List[int]) None ¶
Reorders the system’s atoms given a list of atom indices in the desired order.
- static rmsd(a: ChemicalSystem, b: ChemicalSystem, align: bool, unit: str = 'angstrom') float ¶
Computes the RMSD between two systems. ‘align’: whether or not the systems should be roto-translated as to maximize the RMSD.
- rotate(self: ChemicalSystem, rot_mat: numpy.ndarray[numpy.float64[3, 3]]) None ¶
Rotate the system according to the rotation matrix.
- rotation_axis_for_angle_change(self: ChemicalSystem, arg0: int, arg1: int, arg2: int) numpy.ndarray[numpy.float64[3, 1]] ¶
Determines the rotation axis for changing the angle between three atoms.
- static rotation_matrix_minimizing_rmsd(a: ChemicalSystem, b: ChemicalSystem) numpy.ndarray[numpy.float64[3, 3]] ¶
Given two chemical systems, returns the rotation matrix that minimizes the RMSD.
- select_all(self: ChemicalSystem) None ¶
Selects all atoms.
- select_atom(*args, **kwargs)¶
Overloaded function.
select_atom(self: scm.libbase._internal.ChemicalSystem, arg0: int) -> None
Selects an atom given its index.
select_atom(self: scm.libbase._internal.ChemicalSystem, arg0: scm.libbase._internal.Atom) -> None
Selects an instance of an atom.
- select_atom_close_to_origin(self: ChemicalSystem) None ¶
Selects the atom that is closest to the origin of the coordinate system.
- select_atoms(self: ChemicalSystem, atom_indices: numpy.ndarray[numpy.int32[m, 1]]) None ¶
Selects multiple atoms at once, given their atom indices.
- select_atoms_if(self: ChemicalSystem, pred: Callable[[Atom], bool]) None ¶
Selects atoms based on a predicate function.
- select_atoms_of_same_type(self: ChemicalSystem) None ¶
Selects all atoms whose element is the same as of a currently selected atom.
- select_connected(self: ChemicalSystem) None ¶
Selects all atoms bonded to the currently selected atoms.
- select_connected_if(self: ChemicalSystem, pred: Callable[[Atom, Atom, Bond], bool]) None ¶
Selects atoms bonded to the currently selected atoms based on a predicate function.
- select_molecule(self: ChemicalSystem) None ¶
Using the bonds, selects entire molecules that include any currently selected atom.
- select_molecule_if(self: ChemicalSystem, pred: Callable[[Atom, Atom, Bond], bool]) None ¶
Using the bonds and a predicate function, selects all molecules that include a currently selected atom.
- select_region(self: ChemicalSystem, region: str) None ¶
Selects atoms in a region or region expression.
- select_within_radius(self: ChemicalSystem, radius: float, unit: str = 'angstrom') None ¶
Selects all atoms within a given radius of any of the currently selected atoms.
- set_angle(*args, **kwargs)¶
Overloaded function.
set_angle(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, c: int, angle: float, policy: scm.libbase._internal.ChemicalSystem.InternalCoordinateManipulationPolicy = <InternalCoordinateManipulationPolicy.SecondPartMoves: 1>) -> None
Sets the angle between three atoms by moving atoms according to a policy.
set_angle(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, c: int, angle: float, unit: str, policy: scm.libbase._internal.ChemicalSystem.InternalCoordinateManipulationPolicy = <InternalCoordinateManipulationPolicy.SecondPartMoves: 1>) -> None
Sets the angle between three atoms by moving atoms according to a policy.
set_angle(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, c: int, angle: float, rotation_axis: numpy.ndarray[numpy.float64[3, 1]], moving_atoms: numpy.ndarray[numpy.int32[m, 1]]) -> None
Sets the angle between three atoms by moving a specified set of atoms.
set_angle(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, c: int, angle: float, unit: str, rotation_axis: numpy.ndarray[numpy.float64[3, 1]], moving_atoms: numpy.ndarray[numpy.int32[m, 1]]) -> None
Sets the angle between three atoms by moving a specified set of atoms.
- set_atom(self: ChemicalSystem, atom_index: int, atom: Atom) None ¶
Safe assignment of an Atom instance to atoms[atom_index].
- set_atoms_in_region(self: ChemicalSystem, atom_indices: numpy.ndarray[numpy.int32[m, 1]], region: str) None ¶
Creates or sets an entire region given the indices of the atoms to be part of the region.
- set_density(self: ChemicalSystem, target_density: float, unit: str = 'dalton/angstrom3') None ¶
Applies a uniform strain to match the specified target density. Only valid for 3D periodic systems.
- set_dihedral(*args, **kwargs)¶
Overloaded function.
set_dihedral(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, c: int, d: int, angle: float, policy: scm.libbase._internal.ChemicalSystem.InternalCoordinateManipulationPolicy = <InternalCoordinateManipulationPolicy.SecondPartMoves: 1>) -> None
Sets the dihedral between four atoms by moving atoms according to a policy.
set_dihedral(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, c: int, d: int, angle: float, unit: str, policy: scm.libbase._internal.ChemicalSystem.InternalCoordinateManipulationPolicy = <InternalCoordinateManipulationPolicy.SecondPartMoves: 1>) -> None
Sets the dihedral between four atoms by moving atoms according to a policy.
set_dihedral(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, c: int, d: int, angle: float, moving_atoms: numpy.ndarray[numpy.int32[m, 1]]) -> None
Sets the dihedral between four atoms by moving a specified set of atoms.
set_dihedral(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, c: int, d: int, angle: float, unit: str, moving_atoms: numpy.ndarray[numpy.int32[m, 1]]) -> None
Sets the dihedral between four atoms by moving a specified set of atoms.
- set_distance(*args, **kwargs)¶
Overloaded function.
set_distance(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, dist: float, policy: scm.libbase._internal.ChemicalSystem.InternalCoordinateManipulationPolicy = <InternalCoordinateManipulationPolicy.SecondPartMoves: 1>) -> None
Sets the distance between two atoms by moving atoms according to a policy.
set_distance(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, dist: float, unit: str, policy: scm.libbase._internal.ChemicalSystem.InternalCoordinateManipulationPolicy = <InternalCoordinateManipulationPolicy.SecondPartMoves: 1>) -> None
Sets the distance between two atoms by moving atoms according to a policy.
set_distance(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, dist: float, moving_atoms: numpy.ndarray[numpy.int32[m, 1]]) -> None
Sets the distance between two atoms by moving a specified set of atoms.
set_distance(self: scm.libbase._internal.ChemicalSystem, a: int, b: int, dist: float, unit: str, moving_atoms: numpy.ndarray[numpy.int32[m, 1]]) -> None
Sets the distance between two atoms by moving a specified set of atoms.
- set_fractional_coordinates(self: ChemicalSystem, frac_coords: numpy.ndarray[numpy.float64[m, 3]], unit: str = 'angstrom') None ¶
Sets the fractional coordinates of all atoms. In non-periodic directions the plain coordinates should be passed in the specified unit.
- set_lattice_displacements_from_minimum_image_convention(self: ChemicalSystem) None ¶
Applies the minimum image convention which sets the lattice_displacements for all bonds to be the shortest possible.
- set_num_lattice_vectors(self: ChemicalSystem, nvec: int) None ¶
Sets the number of lattice vectors.
- set_selected_atoms(self: ChemicalSystem, atom_indices: numpy.ndarray[numpy.int32[m, 1]]) None ¶
Sets the selection to the given atom indices. Any previous selection is cleared.
- shortest_path_between(*args, **kwargs)¶
Overloaded function.
shortest_path_between(self: scm.libbase._internal.ChemicalSystem, from_atom: int, to_atom: int, dist_func: Callable[[int, int, scm.libbase._internal.Bond], float]) -> Optional[List[int]]
Returns the shortest path between two atoms (using a custom distance function).
shortest_path_between(self: scm.libbase._internal.ChemicalSystem, from_atom: int, to_atom: int) -> Optional[List[int]]
Returns the shortest path between two atoms (measured in number of hops).
shortest_path_between(self: scm.libbase._internal.ChemicalSystem, from_atom: scm.libbase._internal.Atom, to_atom: scm.libbase._internal.Atom, dist_func: Callable[[int, int, scm.libbase._internal.Bond], float]) -> Optional[List[int]]
Returns the shortest path between two atoms (using a custom distance function).
shortest_path_between(self: scm.libbase._internal.ChemicalSystem, from_atom: scm.libbase._internal.Atom, to_atom: scm.libbase._internal.Atom) -> Optional[List[int]]
Returns the shortest path between two atoms (measured in number of hops).
- shortest_path_length_between(*args, **kwargs)¶
Overloaded function.
shortest_path_length_between(self: scm.libbase._internal.ChemicalSystem, from_atom: int, to_atom: int, dist_func: Callable[[int, int, scm.libbase._internal.Bond], float]) -> float
Returns the lengths of the shortest path between two atoms (measured using a custom distance function).
shortest_path_length_between(self: scm.libbase._internal.ChemicalSystem, from_atom: int, to_atom: int) -> float
Returns the length of the shortest path between two atoms (measured in number of hops).
shortest_path_length_between(self: scm.libbase._internal.ChemicalSystem, from_atom: scm.libbase._internal.Atom, to_atom: scm.libbase._internal.Atom, dist_func: Callable[[int, int, scm.libbase._internal.Bond], float]) -> float
Returns the lengths of the shortest path between two atoms (measured using a custom distance function).
shortest_path_length_between(self: scm.libbase._internal.ChemicalSystem, from_atom: scm.libbase._internal.Atom, to_atom: scm.libbase._internal.Atom) -> float
Returns the length of the shortest path between two atoms (measured in number of hops).
- shortest_path_lengths_from(*args, **kwargs)¶
Overloaded function.
shortest_path_lengths_from(self: scm.libbase._internal.ChemicalSystem, from_atom: int, dist_func: Callable[[int, int, scm.libbase._internal.Bond], float]) -> List[float]
Returns the lengths of all shortest paths from a source atom using a custom distance function.
shortest_path_lengths_from(self: scm.libbase._internal.ChemicalSystem, from_atom: int) -> List[float]
Returns the lengths (in number of hops) of all shortest paths from a source atom.
shortest_path_lengths_from(self: scm.libbase._internal.ChemicalSystem, from_atom: scm.libbase._internal.Atom, dist_func: Callable[[int, int, scm.libbase._internal.Bond], float]) -> List[float]
Returns the lengths of all shortest paths from a source atom using a custom distance function.
shortest_path_lengths_from(self: scm.libbase._internal.ChemicalSystem, from_atom: scm.libbase._internal.Atom) -> List[float]
Returns the lengths (in number of hops) of all shortest paths from a source atom.
- sort_atoms(self: ChemicalSystem, comp: Callable[[Atom, Atom], bool]) None ¶
Sorts the system’s atoms according to a user defined comparator function.
- sorted_atom_order(self: ChemicalSystem, comp: Callable[[Atom, Atom], bool]) List[int] ¶
Returns the atom order based on a user defined comparator function as a list of atom indices.
- split(self: ChemicalSystem, part_indices: numpy.ndarray[numpy.int32[m, 1]]) List[ChemicalSystem] ¶
Splits the system into parts and returns a list of these parts as separate systems.
- split_into_molecules(self: ChemicalSystem) List[ChemicalSystem] ¶
Splits the system into individual molecules based on the connectivity between atoms.
- squared_distance_matrix(*args, **kwargs)¶
Overloaded function.
squared_distance_matrix(self: scm.libbase._internal.ChemicalSystem, unit: str = ‘angstrom2’) -> numpy.ndarray[numpy.float64[m, n]]
Returns the matrix of squared distances between all atoms in the system.
squared_distance_matrix(self: scm.libbase._internal.ChemicalSystem, atom_indices: numpy.ndarray[numpy.int32[m, 1]], unit: str = ‘angstrom2’) -> numpy.ndarray[numpy.float64[m, n]]
Returns the matrix of squared distances between a subset of atoms in the system.
squared_distance_matrix(self: scm.libbase._internal.ChemicalSystem, from_indices: numpy.ndarray[numpy.int32[m, 1]], to_indices: numpy.ndarray[numpy.int32[m, 1]], unit: str = ‘angstrom2’) -> numpy.ndarray[numpy.float64[m, n]]
Returns the matrix of squared distances between two subsets of atoms in the system.
- symmetrize(self: ChemicalSystem) str ¶
Symmetrizes a system, using either
symmetrize_molecule
orsymmetrize_cell
, depending on periodicity.
- symmetrize_cell(self: ChemicalSystem, precision: float = 0.1) Tuple[int, str, str] ¶
Symmetrize a 3D cell and return the symmetry symbols (number, international symbol, schoenflies symbol).
- symmetrize_molecule(self: ChemicalSystem, tolerance: float = 0.05) str ¶
Symmetrizes and reorients a molecule.
- symmetrize_molecule_to(self: ChemicalSystem, label: str, tolerance: float = 0.05) None ¶
Symmetrizes a molecule to a particular symmetry given by a Schoenflies symbol.
- total_mass(self: ChemicalSystem) float ¶
Total mass in atomic mass units (dalton).
- translate(self: ChemicalSystem, shift: numpy.ndarray[numpy.float64[3, 1]], unit: str = 'angstrom') None ¶
Translates all atoms in the ChemicalSystem by a vector.
- write_in(self: ChemicalSystem, filename: str) None ¶
Writes a ChemicalSystem to file as an AMS System block.
- write_kf(*args, **kwargs)¶
Overloaded function.
write_kf(self: scm.libbase._internal.ChemicalSystem, filename: str, section: str = ‘Molecule’, omode: scm.libbase._internal.KFFile.OpenMode = <OpenMode.Any: 0>) -> None
Writes a ChemicalSystem to a section on a KF file.
write_kf(self: scm.libbase._internal.ChemicalSystem, kf: scm.libbase._internal.KFFile, section: str = ‘Molecule’) -> None
Writes a ChemicalSystem to a section on a KF file.
- write_xyz(self: ChemicalSystem, filename: str, extended_xyz_format: bool = True) None ¶
Writes a ChemicalSystem to an extended XYZ file.
- property adf_attribs¶
An optional list of all AtomAttributesADF for all atoms.
- property atoms¶
A list of all Atom instances that are part of this ChemicalSystem.
- property band_attribs¶
An optional list of all AtomAttributesBAND for all atoms.
- property bonds¶
The bonds of the system.
- property charge¶
The total charge of the system in in atomic units.
- property coords: AngstromCoordsArray¶
The coordinates of the atoms in Angstrom
- property dftb_attribs¶
An optional list of all AtomAttributesDFTB for all atoms.
- property electrostatic_embedding¶
The electrostatic embedding of the system.
- property forcefield_attribs¶
An optional list of all AtomAttributesForcefield for all atoms.
- property gui_attribs¶
An optional list of all AtomAttributesGUI for all atoms.
- property lattice¶
The lattice of the system.
- property num_atoms¶
The number of Atoms in the ChemicalSystem.
- property num_regions¶
Returns the number of regions used in the system.
- property qe_attribs¶
An optional list of all AtomAttributesQE for all atoms.
- property reaxff_attribs¶
An optional list of all AtomAttributesReaxFF for all atoms.
- property region_names¶
Returns a list of the names of all regions in the system.
- class InternalCoordinateManipulationPolicy¶
Members:
FirstPartMoves
SecondPartMoves
LighterPartMoves
HeavierPartMoves
- __init__(self: InternalCoordinateManipulationPolicy, value: int) None ¶
- property name¶
- class Element¶
- property Z¶
The atomic number of the element.
- property bond_guess_connectors¶
Number of connectors of an atom as used by the AMS bond guessing algorithm.
- property bond_guess_electro_negative¶
Whether or not an element is considered electronegative by the AMS bond guessing algorithm.
- property bond_guess_metallic¶
Whether or not an element is considered metallic by the AMS bond guessing algorithm.
- property color¶
The color of the element used in the AMS graphical user interface.
- property lone_pairs¶
The element’s number of lone pairs as used by the AMS bond guessing algorithm.
- property mass¶
The atomic mass (in Dalton) of the most abundant naturally occurring isotope of the element.
- property radius¶
The covalent radius of the element in angstrom.
- property symbol¶
The symbol of the element, e.g
C
for carbon.
- class Elements¶
- class Atom¶
-
- has_identical_attributes(self: Atom, other: Atom, properties: List[str] = []) bool ¶
Checks if two atoms have identical atomic properties.
- transmute(*args, **kwargs)¶
Overloaded function.
transmute(self: scm.libbase._internal.Atom, Z: int) -> None
Change the element of an atom given an atomic number.
transmute(self: scm.libbase._internal.Atom, element: scm.libbase._internal.Element) -> None
Change the element of an Atom of given an Element instance.
transmute(self: scm.libbase._internal.Atom, symbol: str) -> None
Change the element of an Atom given an element symbol.
- property Z¶
The atomic number of the atom.
- property adf¶
Atomic properties used by the ADF engine.
- property band¶
Atomic properties used by the BAND engine.
- property coords: AngstromCoordsArray¶
The coordinates of the atoms in Angstrom
- property dftb¶
Atomic properties used by the AMS DFTB engine.
- property element¶
Returns the atom’s element.
- property forcefield¶
Atomic properties used by the AMS Forcefield engine.
- property gui¶
Atomic properties used for visualization in the GUI.
- property is_ghost¶
Whether the atom is a Ghost atom.
- property mass¶
The mass of the atom in dalton.
- property qe¶
Atomic properties used by the AMS QuantumESPRESSO engine.
- property reaxff¶
Atomic properties used by the AMS ReaxFF engine.
- property symbol¶
The atom’s symbol (e.g. ‘C’ or ‘Au’). May be ‘Gh.C’ for ghost atoms.
- class Lattice¶
- cartesian_to_fractional(*args, **kwargs)¶
Overloaded function.
cartesian_to_fractional(self: scm.libbase._internal.Lattice, cartesian_coords: numpy.ndarray[numpy.float64[m, 1]], unit: str = ‘angstrom’) -> numpy.ndarray[numpy.float64[m, 1]]
Convert Cartesian coordinates to fractional coordinates for a single point. No conversion will take place in non-periodic directions.
cartesian_to_fractional(self: scm.libbase._internal.Lattice, cartesian_coords: numpy.ndarray[numpy.float64[m, n]], unit: str = ‘angstrom’) -> numpy.ndarray[numpy.float64[m, n]]
Convert Cartesian coordinates to fractional coordinates for a set of points. No conversion will take place in non-periodic directions.
- fractional_to_cartesian(*args, **kwargs)¶
Overloaded function.
fractional_to_cartesian(self: scm.libbase._internal.Lattice, cartesian_coords: numpy.ndarray[numpy.float64[m, 1]], unit: str = ‘angstrom’) -> numpy.ndarray[numpy.float64[m, 1]]
Convert fractional coordinates to Cartesian coordinates for a single point. No conversion will take place in non-periodic directions.
fractional_to_cartesian(self: scm.libbase._internal.Lattice, fractional_coords: numpy.ndarray[numpy.float64[m, n]], unit: str = ‘angstrom’) -> numpy.ndarray[numpy.float64[m, n]]
Convert fractional coordinates to Cartesian coordinates for a set of points. No conversion will take place in non-periodic directions.
- static from_kf(kf: scm.libbase._internal.KFFile, section: str) Lattice ¶
Constructs and returns a new Lattice from a section on a KF file.
- get_3x3_lattice_vectors(self: Lattice, unit: str = 'angstrom') numpy.ndarray[numpy.float64[m, 3]] ¶
Get the lattice vectors as a 3x3 matrix padded out with zeros.
- get_angles(self: Lattice, unit: str = 'rad') numpy.ndarray[numpy.float64[3, 1]] ¶
Get the angles between the lattice vectors (note: always returns 3 numbers).
- get_cell_depth(self: Lattice, unit: str = 'angstrom') numpy.ndarray[numpy.float64[3, 1]] ¶
Return unit cell depth, or thickness, in each dimension.
- get_lattice_translation(self: Lattice, d: numpy.ndarray[numpy.int32[m, 1]], unit: str = 'angstrom') numpy.ndarray[numpy.float64[3, 1]] ¶
Returns the overall translation given a multiple of the lattice vectors.
- get_lengths(self: Lattice, unit: str = 'angstrom') numpy.ndarray[numpy.float64[3, 1]] ¶
Get the length of the lattice vectors (note: always returns 3 numbers).
- get_reciprocal_lattice_vectors(self: Lattice, unit: str = 'angstrom-1') numpy.ndarray[numpy.float64[m, 3]] ¶
Get the reciprocal lattice vectors as a numpy array.
- get_volume(self: Lattice, unit: str = 'angstrom') float ¶
Get the volume of the unit cell (for 2D: area, for 1D length)
- is_close(*args, **kwargs)¶
Overloaded function.
is_close(self: scm.libbase._internal.Lattice, other: scm.libbase._internal.Lattice, tol: float = 0.001, unit: str = ‘angstrom’) -> bool
Checks if two sets of lattice vectors are close to each other. (Threshold on norm of vector difference.)
is_close(self: scm.libbase._internal.Lattice, other: scm.libbase._internal.Lattice, length_tol: float, angle_tol: float, length_unit: str = ‘angstrom’, angle_unit: str = ‘rad’) -> bool
Checks if two sets of lattice vectors are close to each other. (Thresholds on lengths and angles.)
- map_vector_to_central_cell(self: Lattice, vec: numpy.ndarray[numpy.float64[3, 1]], unit: str = 'angstrom') numpy.ndarray[numpy.float64[3, 1]] ¶
Maps a vector into the central cell, such that its fractional coordinates are in range [-0.5,+0.5). No mapping will take place in non-periodic directions.
- map_vectors_to_central_cell(self: Lattice, vecs: numpy.ndarray[numpy.float64[m, 3]], unit: str = 'angstrom') numpy.ndarray[numpy.float64[m, 3]] ¶
Maps a set of vectors into the central cell, such that their fractional coordinates are in range [-0.5,+0.5). No mapping will take place in non-periodic directions.
- write_kf(self: Lattice, kf: scm.libbase._internal.KFFile, section: str) None ¶
Writes a Lattice to a section on a KF file.
- property num_vectors¶
Returns the number of lattice vectors (i.e. the number of PBC).
- property vectors: AngstromCoordsArray¶
The lattice vectors in Angstrom
- class Bond¶
-
- property lattice_displacements¶
Lattice displacements for the second atom that is part of the bond.
- property order¶
The order of the bond: 1 = single bond, 1.5 = aromatic bond, 2 = double bond, 3 = triple bond.
- class Bonds¶
- add_bond(self: Bonds, from_atom: int, to_atom: int, bond: Bond) None ¶
Adds a bond between two atoms, given their indices.
- add_bonds(*args, **kwargs)¶
Overloaded function.
add_bonds(self: scm.libbase._internal.Bonds, from_atom: numpy.ndarray[numpy.int32[m, 1]], to_atom: numpy.ndarray[numpy.int32[m, 1]], bonds: scm.libbase._internal.BondList) -> None
Adds bonds between multiple atom pairs at the same time. All arguments should have the same length.
add_bonds(self: scm.libbase._internal.Bonds, from_atom: numpy.ndarray[numpy.int32[m, 1]], to_atom: numpy.ndarray[numpy.int32[m, 1]], orders: numpy.ndarray[numpy.float64[m, 1]]) -> None
Adds bonds between multiple atom pairs at the same time. All arguments should have the same length.
- any_bond_between(self: Bonds, from_atoms: List[int], to_atoms: List[int]) bool ¶
Checks if there is any direct bond between two groups of atoms.
- atoms_are_bonded(self: Bonds, from_atom: int, to_atom: int) bool ¶
Checks whether two atoms are bonded or not.
- static from_kf(kf: scm.libbase._internal.KFFile, section: str) Bonds ¶
Constructs and returns new Bonds from a section on a KF file.
- static from_list(num_atoms: int, num_lattice_vectors: int, from_atoms: numpy.ndarray[numpy.int32[m, 1]], to_atoms: numpy.ndarray[numpy.int32[m, 1]], bond_orders: numpy.ndarray[numpy.float64[m, 1]], lattice_displacements: numpy.ndarray[numpy.int32[m, n]] = array([], shape=(0, 0), dtype=int32), indexing: int = 0) Bonds ¶
Creates a set of bonds from lists of atom indices, bond orders and optional lattice displacements.
- static from_sparse(num_lattice_vectors: int, row_offset: numpy.ndarray[numpy.int32[m, 1]], column_index: numpy.ndarray[numpy.int32[m, 1]], bond_orders: numpy.ndarray[numpy.float64[m, 1]], lattice_displacements: numpy.ndarray[numpy.int32[m, n]] = array([], shape=(0, 0), dtype=int32), indexing: int = 0) Bonds ¶
Low level construction of a set of bonds directly from the (modified) CRS storage.
- get_atomic_valencies(self: Bonds) numpy.ndarray[numpy.float64[m, 1]] ¶
Returns the atomic valencies, i.e. the sum of all bond orders, for each atom.
- get_bonded_atoms(self: Bonds, atom: int) List[int] ¶
Returns a list of atom indices that are bonded to the given atom index.
- get_bonds_between_atoms(self: Bonds, from_atom: int, to_atom: int) Iterator ¶
Returns an iterator over the bonds between the given atoms.
- get_bonds_for_atom(self: Bonds, from_atom: int) Iterator ¶
Returns an iterator over all bonds from a particular atom given by its index.
- num_bonds(*args, **kwargs)¶
Overloaded function.
num_bonds(self: scm.libbase._internal.Bonds) -> int
Returns the total number of bonds between all atoms.
num_bonds(self: scm.libbase._internal.Bonds, atom: int) -> int
Returns the total number of bonds of an atom, given its index.
num_bonds(self: scm.libbase._internal.Bonds, from_atom: int, to_atom: int) -> int
Returns the total number of bonds between two atoms, given their indices.
- remove_bond(*args, **kwargs)¶
Overloaded function.
remove_bond(self: scm.libbase._internal.Bonds, bond: int) -> None
Removes a bond, given its index in the .bonds attribute.
remove_bond(self: scm.libbase._internal.Bonds, bond: scm.libbase._internal.Bond) -> None
Removes a bond from the set.
- remove_bonds(self: Bonds, bidx: List[int]) None ¶
Removes multiple bonds at once, given their indices in the .bonds attribute.
- remove_bonds_between_atoms(self: Bonds, from_atom: int, to_atom: int) None ¶
Removes the bonds between two atoms, gived their indices.
- remove_bonds_to_atom(self: Bonds, atom: int) None ¶
Removes all bonds to a particular atom, given its index.
- remove_bonds_to_atoms(self: Bonds, remove_atoms: numpy.ndarray[numpy.int32[m, 1]]) None ¶
Removes all bonds for a list of atoms given by their indices.
- write_kf(self: Bonds, kf: scm.libbase._internal.KFFile, section: str, write_list_format: bool = True) None ¶
Writes Bonds to a section on a KF file.
- property bond_index¶
Bonds are stored as sparse matrix in a modified Compressed Sparse Row format: The index in row_offset represents from_atom, and the value is an offset in column_index and bonds. The values in column_index represent to_atom. Because there can be duplicate indices (periodic bonds), it is not strictly a CSR matrix.
- property bonds¶
Bonds are stored as sparse matrix in a modified Compressed Sparse Row format: The index in row_offset represents from_atom, and the value is an offset in column_index and bonds. The values in column_index represent to_atom. Because there can be duplicate indices (periodic bonds), it is not strictly a CSR matrix.
- property column_index¶
Bonds are stored as sparse matrix in a modified Compressed Sparse Row format: The index in row_offset represents from_atom, and the value is an offset in column_index and bonds. The values in column_index represent to_atom. Because there can be duplicate indices (periodic bonds), it is not strictly a CSR matrix.
- property num_atoms¶
The total number of atoms in the system.
- property num_lattice_vectors¶
The number of lattice vectors of the system.
- property row_offset¶
Bonds are stored as sparse matrix in a modified Compressed Sparse Row format: The index in row_offset represents from_atom, and the value is an offset in column_index and bonds. The values in column_index represent to_atom. Because there can be duplicate indices (periodic bonds), it is not strictly a CSR matrix.