Module for classes and methods that represents molecular orbitals.
Base class for Orbitals. Can handle certain basic fields, their setting
and validation. More complex Orbital objects should then inherit from
position – the absolute position (three floats) units in angstrom
x_orientation – x,y,z unit vector defining polar angle theta
in spherical coordinates unitless
z_orientation – x,y,z unit vector defining azimuthal angle phi
in spherical coordinates unitless
orientation_spin – x,y,z unit vector defining the spin orientation
diffusivity – Float controls the radial term in orbital equation
units are reciprocal Angstrom.
Initialize self. See help(type(self)) for accurate signature.
list of weak references to the object (if defined)
Checks all the input_dict and tries to validate them, to ensure
that they have been properly set raises Exceptions indicating any
problems that should arise during the validation
input_dict – a dictionary of inputs
input_dict: the original dictionary with all validated kyes
validated_dict: a dictionary containing all the input keys
which have now been validated.
returns the internal keys as a dictionary
Sets the orbital_dict, which can vary depending on the particular
implementation of this base class.
init_dict – the initialization dictionary
Classes for describing atomic orbitals.
Contains general Orbital class.
For subclasses of Orbital, see submodules.
Validate that the value is a float
Validate that the value is a float or is None
Validate that the value is an int
Validate that the value is a int or is None
Validate that the value is a list of three floats
Validate that the value is a list of three floats or is None
A module defining hydrogen-like orbitals that are real valued (rather than
Orbitals for hydrogen, largely follows the conventions used by wannier90
Object to handle the generation of real hydrogen orbitals and their
hybrids, has methods for producing s, p, d, f, and sp, sp2, sp3, sp3d,
sp3d2 hybrids. This method does not deal with the cannonical hydrogen
orbitals which contain imaginary components.
The orbitals described here are chiefly concerned with the symmetric
aspects of the oribitals without the context of space. Therefore
diffusitivity, position and atomic labels should be handled in the
Following the notation of table 3.1, 3.2 of Wannier90 user guide
A brief description of what is meant by each of these labels:
radial_nodes – the number of radial nodes (or inflections) if no
radial nodes are supplied, defaults to 0
angular_momentum – Angular quantum number, using real orbitals
magnetic_number – Magnetic quantum number, using real orbitals
spin – spin, up (1) down (-1) or unspecified (0)
The conventions regarding L and M correpsond to those used in
wannier90 for all L greater than 0 the orbital is not hyrbridized
see table 3.1 and for L less than 0 the orbital is hybridized see
table 3.2. M then indexes all the possible orbitals from 0 to 2L for
L > 0 and from 0 to (-L) for L < 0.
Validates the keys otherwise raise ValidationError. Does basic
validation from the parent followed by validations for the
quantum numbers. Raises exceptions should the input_dict fail the
valiation or if it contains any unsupported keywords.
input_dict – the dictionary of keys to be validated
a validated dictionary
Returns the orbital_name correponding to the angular_momentum alone,
or to both angular_number with magnetic_number. For example using
angular_momentum=1 and magnetic_number=1 will return “Px”
Returns all the angular and magnetic numbers corresponding to name.
For example, using “P” as name will return all quantum numbers
associated with a “P” orbital, while “Px” will return only one set
of quantum numbers, the ones associated with “Px”
Validate the value of the kind_name
Validate the value of the angular momentum
Validate the value of the magnetic number
Validate the value of the number of radial nodes
Validate the value of the spin