mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-22 20:34:58 +01:00
added rotate mos
This commit is contained in:
parent
0d2a2fe327
commit
cc578279e7
@ -16,6 +16,6 @@
|
||||
# export OMP_NUM_THREADS=16
|
||||
|
||||
# Name of the network interface to be chosen
|
||||
# export QP_NIC=ib0
|
||||
export QP_NIC=lo
|
||||
|
||||
|
||||
|
@ -466,35 +466,17 @@ END_PROVIDER
|
||||
|
||||
|
||||
BEGIN_PROVIDER [integer(bit_kind), reunion_of_core_inact_act_bitmask, (N_int,2)]
|
||||
&BEGIN_PROVIDER [ integer, n_core_inact_act_orb ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Reunion of the core, inactive and active bitmasks
|
||||
END_DOC
|
||||
integer :: i,j
|
||||
|
||||
n_core_inact_act_orb = 0
|
||||
do i = 1, N_int
|
||||
reunion_of_core_inact_act_bitmask(i,1) = ior(reunion_of_core_inact_bitmask(i,1),cas_bitmask(i,1,1))
|
||||
reunion_of_core_inact_act_bitmask(i,2) = ior(reunion_of_core_inact_bitmask(i,2),cas_bitmask(i,2,1))
|
||||
n_core_inact_act_orb +=popcnt(reunion_of_core_inact_act_bitmask(i,1))
|
||||
reunion_of_core_inact_act_bitmask(i,1) = ior(reunion_of_core_inact_bitmask(i,1),act_bitmask(i,1))
|
||||
reunion_of_core_inact_act_bitmask(i,2) = ior(reunion_of_core_inact_bitmask(i,2),act_bitmask(i,2))
|
||||
enddo
|
||||
END_PROVIDER
|
||||
BEGIN_PROVIDER [ integer, list_core_inact_act, (n_core_inact_act_orb)]
|
||||
&BEGIN_PROVIDER [ integer, list_core_inact_act_reverse, (mo_num)]
|
||||
implicit none
|
||||
integer :: occ_inact(N_int*bit_kind_size)
|
||||
integer :: itest,i
|
||||
occ_inact = 0
|
||||
call bitstring_to_list(reunion_of_core_inact_act_bitmask(1,1), occ_inact(1), itest, N_int)
|
||||
list_inact_reverse = 0
|
||||
do i = 1, n_core_inact_act_orb
|
||||
list_core_inact_act(i) = occ_inact(i)
|
||||
list_core_inact_act_reverse(occ_inact(i)) = i
|
||||
enddo
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ integer(bit_kind), reunion_of_bitmask, (N_int,2)]
|
||||
@ -563,8 +545,8 @@ END_PROVIDER
|
||||
END_DOC
|
||||
integer :: i,j
|
||||
do i = 1, N_int
|
||||
reunion_of_cas_inact_bitmask(i,1) = ior(cas_bitmask(i,1,1),inact_bitmask(i,1))
|
||||
reunion_of_cas_inact_bitmask(i,2) = ior(cas_bitmask(i,2,1),inact_bitmask(i,2))
|
||||
reunion_of_cas_inact_bitmask(i,1) = ior(act_bitmask(i,1),inact_bitmask(i,1))
|
||||
reunion_of_cas_inact_bitmask(i,2) = ior(act_bitmask(i,2),inact_bitmask(i,2))
|
||||
enddo
|
||||
END_PROVIDER
|
||||
|
||||
|
@ -194,3 +194,53 @@ END_PROVIDER
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [integer, n_inact_act ]
|
||||
implicit none
|
||||
n_inact_act = (n_inact_orb+n_act_orb)
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [integer, list_inact_act, (n_inact_act)]
|
||||
integer :: i,itmp
|
||||
itmp = 0
|
||||
do i = 1, n_inact_orb
|
||||
itmp += 1
|
||||
list_inact_act(itmp) = list_inact(i)
|
||||
enddo
|
||||
do i = 1, n_act_orb
|
||||
itmp += 1
|
||||
list_inact_act(itmp) = list_act(i)
|
||||
enddo
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [integer, n_core_inact_act_orb ]
|
||||
implicit none
|
||||
n_core_inact_act_orb = (n_core_orb + n_inact_orb + n_act_orb)
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [integer, list_core_inact_act, (n_core_inact_act_orb)]
|
||||
&BEGIN_PROVIDER [ integer, list_core_inact_act_reverse, (n_core_inact_act_orb)]
|
||||
integer :: i,itmp
|
||||
itmp = 0
|
||||
do i = 1, n_core_orb
|
||||
itmp += 1
|
||||
list_core_inact_act(itmp) = list_core(i)
|
||||
enddo
|
||||
do i = 1, n_inact_orb
|
||||
itmp += 1
|
||||
list_core_inact_act(itmp) = list_inact(i)
|
||||
enddo
|
||||
do i = 1, n_act_orb
|
||||
itmp += 1
|
||||
list_core_inact_act(itmp) = list_act(i)
|
||||
enddo
|
||||
|
||||
integer :: occ_inact(N_int*bit_kind_size)
|
||||
occ_inact = 0
|
||||
call bitstring_to_list(reunion_of_core_inact_act_bitmask(1,1), occ_inact(1), itest, N_int)
|
||||
list_inact_reverse = 0
|
||||
do i = 1, n_core_inact_act_orb
|
||||
list_core_inact_act_reverse(occ_inact(i)) = i
|
||||
enddo
|
||||
END_PROVIDER
|
||||
|
@ -27,7 +27,7 @@ subroutine routine
|
||||
do i = 1, N_det
|
||||
print *, 'Determinant ', i
|
||||
call debug_det(psi_det(1,1,i),N_int)
|
||||
print '(4E20.12,X)', dabs(psi_coef(i,k), k=1,N_states)
|
||||
print '(4E20.12,X)', (psi_coef(i,k), k=1,N_states)
|
||||
print *, ''
|
||||
print *, ''
|
||||
enddo
|
||||
|
18
src/tools/rotate_mos.irp.f
Normal file
18
src/tools/rotate_mos.irp.f
Normal file
@ -0,0 +1,18 @@
|
||||
program rotate_mos
|
||||
implicit none
|
||||
integer :: iorb,jorb
|
||||
read(5,*)iorb,jorb
|
||||
double precision, allocatable :: mo_coef_tmp(:,:)
|
||||
allocate(mo_coef_tmp(ao_num,mo_num))
|
||||
mo_coef_tmp = mo_coef
|
||||
integer :: i,j
|
||||
double precision :: dsqrt2_inv
|
||||
dsqrt2_inv = 1.d0/dsqrt(2.d0)
|
||||
do i = 1, ao_num
|
||||
mo_coef(i,iorb) = dsqrt2_inv * ( mo_coef_tmp(i,iorb) + mo_coef_tmp(i,jorb) )
|
||||
mo_coef(i,jorb) = dsqrt2_inv * ( mo_coef_tmp(i,iorb) - mo_coef_tmp(i,jorb) )
|
||||
enddo
|
||||
touch mo_coef
|
||||
call save_mos
|
||||
|
||||
end
|
Loading…
Reference in New Issue
Block a user