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
ed_hamiltonian_normal_common
: Global variables related to sector Hamiltonian construction. It contains thevector_transpose_mpi()
implementing the MPIAllv-2-Allv
parallel matrix transposition.
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}\)