add_k_vec Function

private pure function add_k_vec(this, k_1, k_2) result(k_out)

Type Bound

lattice

Arguments

Type IntentOptional Attributes Name
class(lattice), intent(in) :: this
integer, intent(in) :: k_1(3)
integer, intent(in) :: k_2(3)

Return Value integer, (3)


Contents

Source Code


Source Code

    pure function add_k_vec(this, k_1, k_2) result(k_out)
        class(lattice), intent(in) :: this
        integer, intent(in) :: k_1(3), k_2(3)
        integer :: k_out(3)
#ifdef DEBUG_
        character(*), parameter :: this_routine = "add_k_vec"
#endif

        ASSERT(allocated(this%mult_table))
        ASSERT(allocated(this%k_to_sym))

        k_out = this%sym_to_k(this%mult_table( &
                              this%k_to_sym(k_1(1), k_1(2), k_1(3)), &
                              this%k_to_sym(k_2(1), k_2(2), k_2(3))), :)

    end function add_k_vec