Cartesius Library
hybrids Module Reference

Data Types

type  hybridization_angles
 
type  hybridization_angles_ptr
 
type  hybridization_quaternions
 

Functions/Subroutines

subroutine create_geminals_corresponding_to_bonds (system, system_copies, geminals)
 
subroutine construct_hybrids_from_geometry (system, system_copies)
 
subroutine getjacobianglesfromhybridizationmatrix (hybmat, angles)
 Calculates Jacobi hybridization angles based on the given SO(4) matrtix mat. More...
 
subroutine gethybridizationmatrixfromjacobiangles (JacobiAngles, hybridizationMatrix)
 
subroutine getfirstderivativeofhybridizationmatrix (numberOfAngle, JacobiAngles, dHybridizationMatrix)
 
subroutine getsecondderivativeofhybridizationmatrix (num1, num2, JacobiAngles, ddHybridizationMatrix)
 
subroutine set_hybridization_angles (someParticle)
 Sets the hybridization angles of the atom from the hybrid coefficients attached to it. If the determinant of the hybridization matrix is negative, rotates the order of hybrids in its list, which changes the sign. More...
 
type(hybridization_angles) function, pointer getparticlehybridizationangles (someParticle)
 Returns the hybridization angles from the particle's attribute list. More...
 
subroutine update_hybrids_from_angles (someParticle)
 
type(hybridization_quaternions) function hybridization_quaternions_from_angles (ang)
 Calculates hybridization quaternions corresponding to Jacobi angles for an SO(4) rotation. More...
 
real function, dimension(6) hybridization_angles_from_quaternions (quats)
 Calculates SO(4) Jacobi angles from the hybridization quaternions. More...
 
real function, dimension(4, 4) hybridization_matrix_from_quaternions (quats)
 Calculates hybridization matrix based on the hybridization quaternions. More...
 
type(hybridization_quaternions) function hybridization_quatertions_from_matrix (mat)
 Calculates hybridization quaternions corresponding to given SO(4) rotation matrix. More...
 
type(hybridization_angles) function, pointer hybridization_angles_from_polymorphic (x)
 

Function/Subroutine Documentation

◆ construct_hybrids_from_geometry()

subroutine hybrids::construct_hybrids_from_geometry ( type(node), intent(inout)  system,
type(node), dimension(:), intent(inout)  system_copies 
)
Here is the call graph for this function:

◆ create_geminals_corresponding_to_bonds()

subroutine hybrids::create_geminals_corresponding_to_bonds ( type(node), intent(inout)  system,
type(node), dimension(:), intent(inout)  system_copies,
type(electronic_group), dimension(:), intent(out), allocatable, target  geminals 
)
Here is the call graph for this function:

◆ getfirstderivativeofhybridizationmatrix()

subroutine hybrids::getfirstderivativeofhybridizationmatrix ( integer, intent(in)  numberOfAngle,
real, dimension(6), intent(in)  JacobiAngles,
real, dimension(4,4), intent(out)  dHybridizationMatrix 
)

◆ gethybridizationmatrixfromjacobiangles()

subroutine hybrids::gethybridizationmatrixfromjacobiangles ( real, dimension(6), intent(in)  JacobiAngles,
real, dimension(4,4), intent(out)  hybridizationMatrix 
)

◆ getjacobianglesfromhybridizationmatrix()

subroutine hybrids::getjacobianglesfromhybridizationmatrix ( real, dimension(4,4), intent(in)  hybmat,
real, dimension(6), intent(out)  angles 
)

Calculates Jacobi hybridization angles based on the given SO(4) matrtix mat.

Todo:
Check for inconsistencies caused by the non-bijective nature of this transformation.

◆ getparticlehybridizationangles()

type(hybridization_angles) function, pointer hybrids::getparticlehybridizationangles ( type(particle someParticle)

Returns the hybridization angles from the particle's attribute list.

Here is the call graph for this function:

◆ getsecondderivativeofhybridizationmatrix()

subroutine hybrids::getsecondderivativeofhybridizationmatrix ( integer, intent(in)  num1,
integer, intent(in)  num2,
real, dimension(6), intent(in)  JacobiAngles,
real, dimension(4,4), intent(out)  ddHybridizationMatrix 
)

◆ hybridization_angles_from_polymorphic()

type(hybridization_angles) function, pointer hybrids::hybridization_angles_from_polymorphic ( class(*), pointer  x)

◆ hybridization_angles_from_quaternions()

real function, dimension(6) hybrids::hybridization_angles_from_quaternions ( type(hybridization_quaternions), intent(in)  quats)

Calculates SO(4) Jacobi angles from the hybridization quaternions.

Note
First turns the quaternions into a hybridization matrix and then calcualtes the angles with getJacobiAnglesFromHybridizationMatrix
Here is the call graph for this function:

◆ hybridization_matrix_from_quaternions()

real function, dimension(4,4) hybrids::hybridization_matrix_from_quaternions ( type(hybridization_quaternions), intent(in)  quats)

Calculates hybridization matrix based on the hybridization quaternions.

◆ hybridization_quaternions_from_angles()

type(hybridization_quaternions) function hybrids::hybridization_quaternions_from_angles ( real, dimension(6), intent(in)  ang)

Calculates hybridization quaternions corresponding to Jacobi angles for an SO(4) rotation.

◆ hybridization_quatertions_from_matrix()

type(hybridization_quaternions) function hybrids::hybridization_quatertions_from_matrix ( real, dimension(4,4), intent(in)  mat)

Calculates hybridization quaternions corresponding to given SO(4) rotation matrix.

Note
Does so by first calculating the Jacobi angles for this matrix, and then converting them to quaternions with hybridization_quaternions_from_angles
Here is the call graph for this function:

◆ set_hybridization_angles()

subroutine hybrids::set_hybridization_angles ( type(particle), intent(inout)  someParticle)

Sets the hybridization angles of the atom from the hybrid coefficients attached to it. If the determinant of the hybridization matrix is negative, rotates the order of hybrids in its list, which changes the sign.

Here is the call graph for this function:

◆ update_hybrids_from_angles()

subroutine hybrids::update_hybrids_from_angles ( type(particle someParticle)
Here is the call graph for this function: