mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-08-29 20:23:40 +02:00
Modify exc degree in cipsi
This commit is contained in:
parent
8da63eeb7d
commit
cfd41fc13d
@ -16,6 +16,12 @@ doc: Maximum number of allowed open shells. Using -1 selects all determinants
|
|||||||
interface: ezfio,ocaml,provider
|
interface: ezfio,ocaml,provider
|
||||||
default: -1
|
default: -1
|
||||||
|
|
||||||
|
[excitation_ref]
|
||||||
|
type: integer
|
||||||
|
doc: 1: Hartree-Fock determinant, 2:All determinants of the dominant configuration
|
||||||
|
interface: ezfio,ocaml,provider
|
||||||
|
default: 1
|
||||||
|
|
||||||
[excitation_max]
|
[excitation_max]
|
||||||
type: integer
|
type: integer
|
||||||
doc: Maximum number of excitation with respect to the Hartree-Fock determinant. Using -1 selects all determinants
|
doc: Maximum number of excitation with respect to the Hartree-Fock determinant. Using -1 selects all determinants
|
||||||
|
@ -676,34 +676,48 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d
|
|||||||
logical :: do_cycle
|
logical :: do_cycle
|
||||||
if (excitation_max >= 0) then
|
if (excitation_max >= 0) then
|
||||||
do_cycle = .True.
|
do_cycle = .True.
|
||||||
|
if (excitation_ref == 1) then
|
||||||
|
call get_excitation_degree(HF_bitmask,det(1,1),degree,N_int)
|
||||||
|
do_cycle = do_cycle .and. (degree > excitation_max)
|
||||||
|
else if (excitation_ref == 2) then
|
||||||
do k=1,N_dominant_dets_of_cfgs
|
do k=1,N_dominant_dets_of_cfgs
|
||||||
call get_excitation_degree(dominant_dets_of_cfgs(1,1,k),det(1,1),degree,N_int)
|
call get_excitation_degree(dominant_dets_of_cfgs(1,1,k),det(1,1),degree,N_int)
|
||||||
do_cycle = do_cycle .and. (degree > excitation_max)
|
do_cycle = do_cycle .and. (degree > excitation_max)
|
||||||
enddo
|
enddo
|
||||||
|
endif
|
||||||
if (do_cycle) cycle
|
if (do_cycle) cycle
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
if (excitation_alpha_max >= 0) then
|
if (excitation_alpha_max >= 0) then
|
||||||
do_cycle = .True.
|
do_cycle = .True.
|
||||||
|
if (excitation_ref == 1) then
|
||||||
|
call get_excitation_degree_spin(HF_bitmask,det(1,1),degree,N_int)
|
||||||
|
do_cycle = do_cycle .and. (degree > excitation_max)
|
||||||
|
else if (excitation_ref == 2) then
|
||||||
do k=1,N_dominant_dets_of_cfgs
|
do k=1,N_dominant_dets_of_cfgs
|
||||||
call get_excitation_degree(dominant_dets_of_cfgs(1,1,k),det(1,1),degree,N_int)
|
call get_excitation_degree_spin(dominant_dets_of_cfgs(1,1,k),det(1,1),degree,N_int)
|
||||||
do_cycle = do_cycle .and. (degree > excitation_alpha_max)
|
do_cycle = do_cycle .and. (degree > excitation_alpha_max)
|
||||||
enddo
|
enddo
|
||||||
|
endif
|
||||||
if (do_cycle) cycle
|
if (do_cycle) cycle
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
if (excitation_beta_max >= 0) then
|
if (excitation_beta_max >= 0) then
|
||||||
do_cycle = .True.
|
do_cycle = .True.
|
||||||
|
if (excitation_ref == 1) then
|
||||||
|
call get_excitation_degree_spin(HF_bitmask,det(1,2),degree,N_int)
|
||||||
|
do_cycle = do_cycle .and. (degree > excitation_max)
|
||||||
|
else if (excitation_ref == 2) then
|
||||||
do k=1,N_dominant_dets_of_cfgs
|
do k=1,N_dominant_dets_of_cfgs
|
||||||
call get_excitation_degree(dominant_dets_of_cfgs(1,1,k),det(1,1),degree,N_int)
|
call get_excitation_degree(dominant_dets_of_cfgs(1,2,k),det(1,2),degree,N_int)
|
||||||
do_cycle = do_cycle .and. (degree > excitation_beta_max)
|
do_cycle = do_cycle .and. (degree > excitation_beta_max)
|
||||||
enddo
|
enddo
|
||||||
|
endif
|
||||||
if (do_cycle) cycle
|
if (do_cycle) cycle
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
Hii = diag_H_mat_elem_fock(psi_det_generators(1,1,i_generator),det,fock_diag_tmp,N_int)
|
Hii = diag_H_mat_elem_fock(psi_det_generators(1,1,i_generator),det,fock_diag_tmp,N_int)
|
||||||
|
|
||||||
w = 0d0
|
w = 0d0
|
||||||
|
Loading…
Reference in New Issue
Block a user