mirror of
https://github.com/QuantumPackage/qp2.git
synced 2025-01-10 13:08:19 +01:00
CSF-based davidson as an option0
This commit is contained in:
parent
b636fbfee9
commit
3a71cf0dc6
@ -34,6 +34,12 @@ doc: If |true|, a memory-mapped file may be used to store the W and S2 vectors i
|
|||||||
default: True
|
default: True
|
||||||
interface: ezfio,provider,ocaml
|
interface: ezfio,provider,ocaml
|
||||||
|
|
||||||
|
[csf_based]
|
||||||
|
type: logical
|
||||||
|
doc: If |true|, use the CSF-based algorithm
|
||||||
|
default: False
|
||||||
|
interface: ezfio,provider,ocaml
|
||||||
|
|
||||||
[distributed_davidson]
|
[distributed_davidson]
|
||||||
type: logical
|
type: logical
|
||||||
doc: If |true|, use the distributed algorithm
|
doc: If |true|, use the distributed algorithm
|
||||||
|
@ -56,9 +56,7 @@ END_PROVIDER
|
|||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
! Deactivated temporarily: bug in N_csf
|
do_csf = s2_eig .and. only_expected_s2 .and. csf_based
|
||||||
! do_csf = s2_eig .and. only_expected_s2 .and. (expected_s2 == 0.d0)
|
|
||||||
do_csf = .False.
|
|
||||||
|
|
||||||
if (diag_algorithm == "Davidson") then
|
if (diag_algorithm == "Davidson") then
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ subroutine u_0_H_u_0(e_0,u_0,n,keys_tmp,Nint,N_st,sze)
|
|||||||
do i=1,N_st
|
do i=1,N_st
|
||||||
norm = u_dot_u(u_0(1,i),n)
|
norm = u_dot_u(u_0(1,i),n)
|
||||||
if (norm /= 0.d0) then
|
if (norm /= 0.d0) then
|
||||||
e_0(i) = u_dot_v(v_0(1,i),u_0(1,i),n)
|
e_0(i) = u_dot_v(v_0(1,i),u_0(1,i),n) / dsqrt(norm)
|
||||||
else
|
else
|
||||||
e_0(i) = 0.d0
|
e_0(i) = 0.d0
|
||||||
endif
|
endif
|
||||||
|
@ -75,8 +75,8 @@ subroutine u_0_HS2_u_0(e_0,s_0,u_0,n,keys_tmp,Nint,N_st,sze)
|
|||||||
do i=1,N_st
|
do i=1,N_st
|
||||||
norm = u_dot_u(u_0(1,i),n)
|
norm = u_dot_u(u_0(1,i),n)
|
||||||
if (norm /= 0.d0) then
|
if (norm /= 0.d0) then
|
||||||
e_0(i) = u_dot_v(v_0(1,i),u_0(1,i),n)
|
e_0(i) = u_dot_v(v_0(1,i),u_0(1,i),n)/norm
|
||||||
s_0(i) = u_dot_v(s_vec(1,i),u_0(1,i),n)
|
s_0(i) = u_dot_v(s_vec(1,i),u_0(1,i),n)/norm
|
||||||
else
|
else
|
||||||
e_0(i) = 0.d0
|
e_0(i) = 0.d0
|
||||||
s_0(i) = 0.d0
|
s_0(i) = 0.d0
|
||||||
|
Loading…
Reference in New Issue
Block a user