Hamiltonian Direct \(H\times\vec{v}\)

In the module ed_hamiltonian_normal_direct_hxv we implement different functions according to the value of the variable ed_total_ud, which distinguish between conservation of total or orbital resolved spin occupations and the serial or parallel case.

Description

Constructs and applies on-the-fly each term of the sector Hamiltonian to the input vector \(\vec{w} = H\times \vec{v}\) in a Arpack/Lanczos framework.

Quick access

Routines:

directmatvec_normal_main(), directmatvec_normal_orbs(), directmatvec_mpi_normal_main(), directmatvec_mpi_normal_orbs()

Used modules

Subroutines and functions

subroutine  ed_hamiltonian_normal_direct_hxv/directmatvec_normal_main(nloc, vin, hv)

Serial version of the direct, on-the-fly matrix-vector product \(\vec{w}=H\times\vec{v}\) used in Arpack/Lanczos algorithm for ed_total_ud = True This procedures evaluates the non-zero terms of any part of the global Hamiltonian and applies them to the input vector using serial algorithm.

Options:

nloc [integer] – Global dimension of the problem. size(v)=Nloc=size(Hv)

Parameters:
  • vin (nloc) [real] – input vector (passed by Arpack/Lanczos) \(\vec{v}\)

  • hv (nloc) [real] – output vector (required by Arpack/Lanczos) \(\vec{w}\)

subroutine  ed_hamiltonian_normal_direct_hxv/directmatvec_normal_orbs(nloc, vin, hv)

Serial version of the direct, on-the-fly matrix-vector product \(\vec{w}=H\times\vec{v}\) used in Arpack/Lanczos algorithm for ed_total_ud = False This procedures evaluates the non-zero terms of any part of the global Hamiltonian and applies them to the input vector using serial algorithm.

Options:

nloc [integer] – Global dimension of the problem. size(v)=Nloc=size(Hv)

Parameters:
  • vin (nloc) [real] – input vector (passed by Arpack/Lanczos) \(\vec{v}\)

  • hv (nloc) [real] – output vector (required by Arpack/Lanczos) \(\vec{w}\)

subroutine  ed_hamiltonian_normal_direct_hxv/directmatvec_mpi_normal_main(nloc, vin, hv)

MPI parallel version of the direct, on-the-fly matrix-vector product \(\vec{w}=H\times\vec{v}\) used in P-Arpack/P-Lanczos algorithm for ed_total_ud = True This procedures evaluates the non-zero terms of any part of the global Hamiltonian and applies them to a part of the vector own by the thread using parallel algorithm.

Options:

nloc [integer] – Local dimension of the vector chunk. size(v)=Nloc with \(\sum_p\) Nloc = Dim

Parameters:
  • vin (nloc) [real] – input vector (passed by Arpack/Lanczos) \(\vec{v}\)

  • hv (nloc) [real] – output vector (required by Arpack/Lanczos) \(\vec{w}\)

subroutine  ed_hamiltonian_normal_direct_hxv/directmatvec_mpi_normal_orbs(nloc, vin, hv)

MPI parallel version of the direct, on-the-fly matrix-vector product \(\vec{w}=H\times\vec{v}\) used in P-Arpack/P-Lanczos algorithm for ed_total_ud = False This procedures evaluates the non-zero terms of any part of the global Hamiltonian and applies them to a part of the vector own by the thread using parallel algorithm.

Options:

nloc [integer] – Local dimension of the vector chunk. size(v)=Nloc with \(\sum_p\) Nloc = Dim

Parameters:
  • vin (nloc) [real] – input vector (passed by Arpack/Lanczos) \(\vec{v}\)

  • hv (nloc) [real] – output vector (required by Arpack/Lanczos) \(\vec{w}\)