utility_rotate_diag Function

public function utility_rotate_diag(mat, rot, dim)

Uses

  • proc~~utility_rotate_diag~~UsesGraph proc~utility_rotate_diag utility_rotate_diag module~w90_constants w90_constants proc~utility_rotate_diag->module~w90_constants

Rotates the dim x dim matrix 'mat' according to (rot)^dagger.mat.rot, where 'rot' is a unitary matrix. Computes only the diagonal elements of rotated matrix.

Arguments

Type IntentOptional AttributesName
complex(kind=dp) :: mat(dim,dim)
complex(kind=dp) :: rot(dim,dim)
integer :: dim

Return Value complex(kind=dp) (dim)


Calls

proc~~utility_rotate_diag~~CallsGraph proc~utility_rotate_diag utility_rotate_diag proc~utility_zgemm_new utility_zgemm_new proc~utility_rotate_diag->proc~utility_zgemm_new proc~utility_matmul_diag utility_matmul_diag proc~utility_rotate_diag->proc~utility_matmul_diag

Called by

proc~~utility_rotate_diag~~CalledByGraph proc~utility_rotate_diag utility_rotate_diag proc~spin_get_s spin_get_S proc~spin_get_s->proc~utility_rotate_diag proc~spin_get_moment_k spin_get_moment_k proc~spin_get_moment_k->proc~utility_rotate_diag proc~wham_get_deleig_a wham_get_deleig_a proc~wham_get_deleig_a->proc~utility_rotate_diag proc~spin_get_nk spin_get_nk proc~spin_get_nk->proc~utility_rotate_diag proc~k_path k_path proc~k_path->proc~spin_get_nk proc~gyrotropic_get_k_list gyrotropic_get_k_list proc~gyrotropic_get_k_list->proc~spin_get_s proc~k_slice k_slice proc~k_slice->proc~spin_get_nk proc~berry_get_kubo_k berry_get_kubo_k proc~berry_get_kubo_k->proc~spin_get_nk proc~gyrotropic_main gyrotropic_main proc~gyrotropic_main->proc~gyrotropic_get_k_list proc~berry_main berry_main proc~berry_main->proc~berry_get_kubo_k

Contents

Source Code


Source Code

  function utility_rotate_diag(mat, rot, dim)
    !===========================================================!
    !                                                           !
    !! Rotates the dim x dim matrix 'mat' according to
    !! (rot)^dagger.mat.rot, where 'rot' is a unitary matrix.
    !! Computes only the diagonal elements of rotated matrix.
    !                                                           !
    !===========================================================!

    use w90_constants, only: dp

    integer          :: dim
    complex(kind=dp) :: utility_rotate_diag(dim)
    complex(kind=dp) :: mat(dim, dim)
    complex(kind=dp) :: rot(dim, dim)
    complex(kind=dp) :: tmp(dim, dim)

    call utility_zgemm_new(rot, mat, tmp, 'C', 'N')
    utility_rotate_diag = utility_matmul_diag(tmp, rot, dim)

  end function utility_rotate_diag