project_hamiltonian_lanczos Subroutine

public subroutine project_hamiltonian_lanczos(this, basis_index)

Arguments

Type IntentOptional Attributes Name
type(LanczosCalcType), intent(inout) :: this
integer, intent(in) :: basis_index

Contents


Source Code

    subroutine project_hamiltonian_lanczos(this, basis_index)
        type(LanczosCalcType), intent(inout) :: this
        integer, intent(in) :: basis_index

        if (this%super%t_store_subspace_basis) then
            if (iprocindex == root) then
                call multiply_hamil_and_vector(this%super, this%super%basis_vectors(:, basis_index), this%lanczos_vector)
            else
                call multiply_hamil_and_vector(this%super, this%super%basis_vectors(:, basis_index), this%super%temp_out)
            end if
        else
            if (iprocindex == root) then
                call multiply_hamil_and_vector(this%super, this%current_v, this%lanczos_vector)
            else
                call multiply_hamil_and_vector(this%super, this%current_v, this%super%temp_out)
            end if
        end if
    end subroutine project_hamiltonian_lanczos