Cartesius Library
orbitals_base.f90 File Reference

Data Types

type  orbitals_base::angularpart
 Angular parts of orbitals. More...
 
type  orbitals_base::angularpart_ptr
 
type  orbitals_base::slaterradialpart
 Radial parts of orbitals. More...
 
type  orbitals_base::orbital
 All the data fields necessary for orbitals. More...
 
type  orbitals_base::spinorbital
 
type  orbitals_base::orbital_ptr
 
type  orbitals_base::spinorbital_ptr
 
type  orbitals_base::orbitalbasis
 
type  orbitals_base::spinorbitalbasis
 
type  orbitals_base::orbitalexpansioncoefficient
 Orbital and its expansion coefficient. More...
 
type  orbitals_base::hybridatomicorbital
 
interface  orbitals_base::addhybridorbital
 
interface  orbitals_base::changehybridcoefficients
 
interface  orbitals_base::makehybridatomicorbital
 
interface  orbitals_base::trfmd_hybs_same
 
interface  orbitals_base::trfmd_hybs_same_ordered
 

Modules

module  orbitals_base
 Procedures for creating and manipulating atomic and hybrid orbitals.
 

Functions/Subroutines

type(angularpart) function, pointer orbitals_base::pangularpart (l, m)
 
integer function orbitals_base::l_and_m_index_sp (l, m)
 Returns an array index corresponding to the order s, px, py, pz, starting from 0. More...
 
subroutine orbitals_base::createatomicorbital (atom, idnum, n, l, m, set_of_primitives, ao)
 Function to make atomic orbital. More...
 
subroutine orbitals_base::setatomicorbitalexpansion (set_of_primitives, ao)
 Adds an orbital expansion to a basis in an atomic basis set based on the provided set_of_primitives More...
 
subroutine orbitals_base::addcreatedatomicorbital_ptr (atom, orb_ptr)
 Supplementary procedure to add an already created atomic orbital (given as a pointer to an orbital_ptr) to the hybrid list of the atom. More...
 
recursive subroutine orbitals_base::createsameorbitalattachedtonewatom (old, new, newAtom)
 Copies all of the data of the given orbital to the new orbital, changing the pAtom pointer. All coefficient pointers in the orbital expansions point to the location of the old expansion coefficients. More...
 
subroutine orbitals_base::createsameatomicorbitalsattachedtonewatom (old_orbitals_list, new_atom)
 Copies all orbitals in the list to the new atom, changing the pAtom pointer. All coefficient pointers in the orbital expansions point to the location of the old expansion coefficients. More...
 
recursive real function orbitals_base::eval_orbital_radial_part (orbital1, r)
 Find the value of the radial part of an orbital at given r value. More...
 
subroutine orbitals_base::getsizeofbasis (part, sizeOfBasis)
 Function which allows to get size of basis of AOs for some polyatomic particles in valence approximation. More...
 
subroutine orbitals_base::getatomicvalenceorbitals (atom, shell)
 Returns an array of orbitals of atoms lighter than Na. More...
 
subroutine orbitals_base::makeorbitalexpansioncoefficient (someOrbital, coef, oec)
 Generates a variable of type orbitalExpansionCoefficient. More...
 
subroutine orbitals_base::makemolecularorbital (id, orbitals, coefficients, mo)
 Creates a molecular orbital with an expansion over input orbitals with their coefficients. More...
 
subroutine orbitals_base::makespinorbitalwithspinalpha (num, someOrbital, AlphaSpinOrbital)
 
subroutine orbitals_base::makespinorbitalwithspinbeta (num, someOrbital, BetaSpinOrbital)
 
subroutine orbitals_base::generatespinorbitalsfrombasis (basis, spinOrbitals)
 Assigns every odd orbital in the basis spin alpha, and every even one - beta. More...
 
subroutine orbitals_base::sortorbitalarraybynumbers (orbitals)
 Sorts array of orbitals by ID's in ascending order. More...
 
subroutine orbitals_base::sortorbitallistbynumbers (orbitals)
 Sorts linked list of orbitals by ID's in ascending order. More...
 
logical function orbitals_base::sortkeyfororbitals (x1, x2)
 Returns TRUE of the ID of x1 is less than the ID of x2. More...
 
logical function orbitals_base::sortkeyfororbitalpointers (x1, x2)
 Returns TRUE of the ID of x1 is less than the ID of x2. More...
 
logical function orbitals_base::sortkeyforspinorbitals (x1, x2)
 
logical function orbitals_base::sortkeyforexpansioncoefficients (x1, x2)
 
subroutine orbitals_base::whatisorbitaltype (someOrbital, typeName)
 
logical function orbitals_base::isatomicorbital (someOrbital)
 If pAtom and pY pointers are associated, returns true. More...
 
logical function orbitals_base::ismolecularorbital (someOrbital)
 If pAtom pointer is not associated, but the orbital expansion is, returns true. More...
 
logical function orbitals_base::ishybridatomicorbital (someOrbital)
 Is the pAtom and orbital exoansion pointers are associated, but the pY is not, returns true. More...
 
subroutine orbitals_base::whatisspinorbitaltype (someSpinOrbital, typeName)
 
logical function orbitals_base::isspinatomicorbital (someSpinOrbital)
 
logical function orbitals_base::isspinmolecularorbital (someSpinOrbital)
 
logical function orbitals_base::issameorbitals (orbital1, orbital2)
 
logical function orbitals_base::issamespinorbitals (spinOrbital1, spinOrbital2)
 
logical function orbitals_base::do_aos_belong_to_same_particle (orbital1, orbital2)
 Checks if atomic orbitals belong to the same particles or different. More...
 
subroutine orbitals_base::orbitallisttoarrayptr (orbital_list, orbital_array)
 Converts list of orbitals to allocatable array of type orbital_ptr. More...
 
subroutine orbitals_base::orbitallisttoarray (orbital_list, orbital_array)
 Converts list of orbitals to type orbitalsBasis. More...
 
subroutine orbitals_base::orbitalarrayptrtolist (orbital_array, orbital_list)
 Converts array of type orbital_ptr to list. More...
 
subroutine orbitals_base::orbitalarraytolist (orbital_array, orbital_list)
 Converts orbitalBasis to list of orbitals. More...
 
type(orbital) function, pointer orbitals_base::orbital_from_polymorphic (x)
 Converts a polymorphic pointer to an orbital pointer if possible, else returns a null-pointer. More...
 
type(orbital_ptr) function, pointer orbitals_base::orbital_ptr_from_polymorphic (x)
 Converts a polymorphic pointer to an orbital_ptr pointer if possible, else returns a null-pointer. More...
 
type(orbitalexpansioncoefficient) function, pointer orbitals_base::orbital_expansion_coef_from_polymorphic (x)
 Converts a polymorphic pointer to an OrbitalExpansionCoefficient pointer if possible, else returns a null-pointer. More...
 
logical function orbitals_base::isorbitalprimitive (orb)
 Checks if orbital is atomic primitive (not a linear combination of STOs or others). More...
 
type(list) function, pointer orbitals_base::getorbitals (someParticle)
 Returns the particle's orbitals contained in AttributeList. More...
 
type(list) function, pointer orbitals_base::getorbitalswithangularnumber (someParticle, l)
 From the list returned by GetOrbitals, creates a list of orbitals with given angular number l. More...
 
type(orbital) function, pointer orbitals_base::getorbitalwithquantumnumbers (someParticle, n, l, m)
 
type(list) function, pointer orbitals_base::getsorbitals (someParticle)
 From the list returned by GetOrbitals, creates a list of orbitals with angular number zero. More...
 
type(list) function, pointer orbitals_base::getporbitals (someParticle)
 From the list returned by GetOrbitals, creates a list of orbitals with angular number one. More...
 
type(list) function, pointer orbitals_base::getdorbitals (someParticle)
 From the list returned by GetOrbitals, creates a list of orbitals with angular number two. More...
 
type(list) function, pointer orbitals_base::getforbitals (someParticle)
 From the list returned by GetOrbitals, creates a list of orbitals with angular number three. More...
 
type(orbital_ptr) function, dimension(0:3) orbitals_base::getsandporbitals_array_fn (someParticle)
 Returns an array of orbital pointers to s, px, py, pz. If any of the orbitals are not present, the corresponding pointer is null. More...
 
type(list) function, pointer orbitals_base::gethybridorbitals (someParticle)
 Returns the hybrid orbitals of the atom in the form a list. More...
 
type(orbitalbasis) function orbitals_base::gethybridorbitalsarray (someParticle)
 Returns the hybrid orbitals of the atom in the form of an array (type orbitalBasis). More...
 
type(orbital) function, pointer orbitals_base::gethybridorbital_from_coeffs (someParticle, coeffs)
 
subroutine orbitals_base::makehybridatomicorbital_from_array_noid (coefs, atom, hybridOrbital)
 Creates a new hybrid orbital with the expansion coefficients (in an array). More...
 
subroutine orbitals_base::makehybridatomicorbital_from_array_ptr_noid (coefs, atom, hybridOrbital)
 Creates a new hybrid orbital with the expansion coefficients pointing to the given data locations. More...
 
subroutine orbitals_base::makehybridatomicorbital_from_array (id, coefs, atom, hybridOrbital)
 Creates a new hybrid orbital with the given expansion coefficients (in an array). Contains an id field for backwards compatibility. More...
 
subroutine orbitals_base::makehybridatomicorbital_from_vals (id, s, px, py, pz, atom, hybridOrbital)
 Creates a new hybrid orbital with the given expansion coefficients. Contains an id field for backwards compatibility. More...
 
subroutine orbitals_base::addhybridorbital_from_array (atom, coefs, outputHybrid)
 Creates a new hybrid with given coefficients (in an array) and adds it to the hybrid list of the atom. More...
 
subroutine orbitals_base::addhybridorbital_from_vals (atom, s, px, py, pz, outputHybrid)
 Creates a new hybrid with given coefficients and adds it to the hybrid list of the atom. More...
 
subroutine orbitals_base::addhybridorbital_from_array_ptr (atom, coefs, outputHybrid)
 Creates a new hyrbid with coefficients pointing to the given data locations and adds it to the hybrid list of the atom. More...
 
subroutine orbitals_base::addcreatedhybridorbital_ptr (atom, hybrid_ptr)
 Supplementary procedure to add an already created hybrid (given as a pointer to an orbital_ptr) to the hybrid list of the atom. More...
 
subroutine orbitals_base::createsamehybridorbitalsattachedtonewatom (old_hybrids_list, new_atom)
 Creates hybrids on the new atom with coefficients pointing to the old data locations. More...
 
real function, dimension(0:3) orbitals_base::gethybridorbitalcoeffs (hybrid)
 Returns an array of coefficients of the given hybrid. More...
 
type(real_ptr) function, dimension(0:3) orbitals_base::gethybridorbitalcoeffs_ptr (hybrid)
 Returns an array of pointers to the data locations of the coefficients of the given hybrid. More...
 
type(quaternion) function, pointer orbitals_base::gethybridorbitalquaternion (hybrid)
 Returns the coefficients of the hybrid in quaternion form. More...
 
subroutine orbitals_base::changehybridcoefficients_from_array (hybrid, new_coefs)
 Changes the coeffiecients of the given hybrid. More...
 
subroutine orbitals_base::changehybridcoefficients_from_array_ptr (hybrid, new_coefs)
 Changes the data location of the coeffiecients of the given hybrid. More...
 
subroutine orbitals_base::changehybridcoefficients_from_vals (hybrid, s, px, py, pz)
 Changes the coeffiecients of the given hybrid. More...
 
subroutine orbitals_base::deallocatehybridcoefficients (hybrid)
 
subroutine orbitals_base::normalize_hybrid_order (atom)
 If the determinant of the hybridization matrix is negative, rotates the order of hybrids, which changes the sign. More...
 
subroutine orbitals_base::set_image_hybrid_coeffs_explicit_list (trfm, pim_hybs, im_hybs)
 
subroutine orbitals_base::set_image_hybrid_coeffs_implicit (pim_atom, im_atom)
 
logical function orbitals_base::trfmd_hybs_same_explicit_list (trfm, pim_hyblist, im_hyblist)
 Given the explicit transformation matrix, returns true if the image hybrid list contains every image of the preimage hybrids (in any order) More...
 
logical function orbitals_base::trfmd_hybs_same_explicit (trfm, preim_atom, im_atom)
 Given the explicit transformation matrix, returns true if the image atom's hybrid list contains every image of the preimage atom's hybrids (in any order) More...
 
logical function orbitals_base::trfmd_hybs_same_implicit (preim_atom, im_atom)
 Same as above, but computes the transformation matrix from the spaceTree. More...
 
subroutine orbitals_base::reorder_hyblist_for_transform_list (trfm, pim_hyblist, im_hyblist)
 Reorders the elements of the image list so that applying the given transform to preimage hybrids results gives the image hybrids in the same order. More...
 
logical function orbitals_base::trfmd_hybs_same_ordered_explicit_list (trfm, pim_hyblist, im_hyblist)
 Given the explicit transformation matrix, returns true if the image hybrid list contains every image of the preimage hybrids (in the same order). More...
 
logical function orbitals_base::trfmd_hybs_same_ordered_explicit (trfm, preim_atom, im_atom)
 Given the explicit transformation matrix, returns true if the image atom's hybrid list contains every image of the preimage atom's hybrids (in the same order). More...
 
logical function orbitals_base::trfmd_hybs_same_ordered_implicit (preim_atom, im_atom)
 Same as above, but computes the transformation matrix from the spaceTree. More...
 
subroutine orbitals_base::writehybridstoatom (atom, hybridMatrix, carbonHybrids)
 
subroutine orbitals_base::rewritehybridscoefficients (atom, hyb)
 Changes all of the hybrid coefficients of this atom based on the given matrix. More...
 
subroutine orbitals_base::writehybridizationmatrixtoatom (atom)
 Adds the hybridization matrix (taken from the already present hybrid expansions) to the attribute list of the atom. More...
 
real function, dimension(4, 4) orbitals_base::gethybridizationmatrix_from_list (hybrids_list)
 Returns the hybridization matrix defined in the given hybrids list. More...
 
subroutine orbitals_base::getatomichybridizationmatrix (atom, hybMatrix)
 Returns the hybridization matrix of the atom. More...
 
subroutine orbitals_base::getatomichybridizationmatrix_lab (atom, hybMatrix)
 Returns the hybridization matrix in the laboratory frame. More...
 
recursive subroutine orbitals_base::deallocate_orbital (pOrbital)
 Deallocates a non-hybrid orbital or orbital_ptr. An orbital is assumed to be dependent only on primitives (or itself be a primitive), so its orbital expansion is completely deallocated. More...
 
subroutine orbitals_base::deallocate_hybrid (pOrbital)
 Deallocates a hybrid orbital. Does not deallocate its non-hybrid orbitals. More...
 
subroutine orbitals_base::deallocate_molecular_orbital (pOrbital)
 Deallocates a molecular orbital. Does not deallocate its consituent orbitals. More...
 
subroutine orbitals_base::deallocate_spinorbital (pSpinOrbital)
 Deallocates a spinOrbital or a spinOrbital_ptr. More...
 
subroutine orbitals_base::deallocate_orbitalexpansioncoefficient (pOEC)
 Deallocates an orbital expansion coefficient. Deallocation of the orbital it points to should be done on its own. More...
 

Variables

character(len=3), public orbitals_base::typeofbasis
 
type(angularpart), dimension(0:0), target, save, public orbitals_base::sangularparts = [AngularPart(0,0)]
 
type(angularpart), dimension(-1:1), target, save, public orbitals_base::pangularparts = [AngularPart(1,-1), AngularPart(1,0), AngularPart(1,1)]
 
type(angularpart), dimension(-2:2), target, save, public orbitals_base::dangularparts = [AngularPart(2,-2), AngularPart(2,-1), AngularPart(2,0), AngularPart(2,1), AngularPart(2,2)]
 
type(angularpart), dimension(-3:3), target, save, public orbitals_base::fangularparts = [AngularPart(3,-3), AngularPart(3,-2), AngularPart(3,-1), AngularPart(3,0), AngularPart(3,1), AngularPart(3,2), AngularPart(3,3)]
 
type(angularpart_ptr), dimension(:), allocatable, protected orbitals_base::allangularparts
 
integer, target, save, public orbitals_base::spinalpha = 1
 
integer, target, save, public orbitals_base::spinbeta = -1