mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-23 04:43:45 +01:00
added rotate mos
This commit is contained in:
parent
0d2a2fe327
commit
cc578279e7
@ -16,6 +16,6 @@
|
|||||||
# export OMP_NUM_THREADS=16
|
# export OMP_NUM_THREADS=16
|
||||||
|
|
||||||
# Name of the network interface to be chosen
|
# 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(bit_kind), reunion_of_core_inact_act_bitmask, (N_int,2)]
|
||||||
&BEGIN_PROVIDER [ integer, n_core_inact_act_orb ]
|
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Reunion of the core, inactive and active bitmasks
|
! Reunion of the core, inactive and active bitmasks
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i,j
|
integer :: i,j
|
||||||
|
|
||||||
n_core_inact_act_orb = 0
|
|
||||||
do i = 1, N_int
|
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,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),cas_bitmask(i,2,1))
|
reunion_of_core_inact_act_bitmask(i,2) = ior(reunion_of_core_inact_bitmask(i,2),act_bitmask(i,2))
|
||||||
n_core_inact_act_orb +=popcnt(reunion_of_core_inact_act_bitmask(i,1))
|
|
||||||
enddo
|
enddo
|
||||||
END_PROVIDER
|
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)]
|
BEGIN_PROVIDER [ integer(bit_kind), reunion_of_bitmask, (N_int,2)]
|
||||||
@ -563,8 +545,8 @@ END_PROVIDER
|
|||||||
END_DOC
|
END_DOC
|
||||||
integer :: i,j
|
integer :: i,j
|
||||||
do i = 1, N_int
|
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,1) = ior(act_bitmask(i,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,2) = ior(act_bitmask(i,2),inact_bitmask(i,2))
|
||||||
enddo
|
enddo
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
@ -194,3 +194,53 @@ END_PROVIDER
|
|||||||
|
|
||||||
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
|
do i = 1, N_det
|
||||||
print *, 'Determinant ', i
|
print *, 'Determinant ', i
|
||||||
call debug_det(psi_det(1,1,i),N_int)
|
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 *, ''
|
||||||
print *, ''
|
print *, ''
|
||||||
enddo
|
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