From 8e8d2ca22948dcfe757707fca5dc03484742300a Mon Sep 17 00:00:00 2001 From: Kevin Gasperich Date: Fri, 14 May 2021 10:53:10 -0500 Subject: [PATCH] fixed complex 1rdm in AO basis to be state-specific instead of average --- src/determinants/density_matrix_cplx.irp.f | 30 ++++++++++++++++++++++ src/tools/save_one_e_dm_cplx.irp.f | 4 +-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/determinants/density_matrix_cplx.irp.f b/src/determinants/density_matrix_cplx.irp.f index e5d74347..e9ec7e0f 100644 --- a/src/determinants/density_matrix_cplx.irp.f +++ b/src/determinants/density_matrix_cplx.irp.f @@ -309,6 +309,36 @@ END_PROVIDER END_PROVIDER + BEGIN_PROVIDER [ complex*16, one_e_dm_ao_alpha_complex_nst, (ao_num,ao_num,N_states) ] +&BEGIN_PROVIDER [ complex*16, one_e_dm_ao_beta_complex_nst, (ao_num,ao_num,N_states) ] + BEGIN_DOC + ! One body density matrix on the |AO| basis : $\rho_{AO}(\alpha), \rho_{AO}(\beta)$. + END_DOC + implicit none + integer :: i,j,k,l,ist + complex*16 :: mo_alpha,mo_beta + + one_e_dm_ao_alpha_complex_nst = (0.d0,0.d0) + one_e_dm_ao_beta_complex_nst = (0.d0,0.d0) + do ist = 1,N_states + do k = 1, ao_num + do l = 1, ao_num + do i = 1, mo_num + do j = 1, mo_num + mo_alpha = one_e_dm_mo_alpha_complex(j,i,ist) + mo_beta = one_e_dm_mo_beta_complex(j,i,ist) + ! if(dabs(dm_mo).le.1.d-10)cycle + one_e_dm_ao_alpha_complex_nst(l,k,ist) += dconjg(mo_coef_complex(k,i)) * mo_coef_complex(l,j) * mo_alpha + one_e_dm_ao_beta_complex_nst(l,k,ist) += dconjg(mo_coef_complex(k,i)) * mo_coef_complex(l,j) * mo_beta + enddo + enddo + enddo + enddo + enddo + +END_PROVIDER + + !============================================! ! ! ! kpts ! diff --git a/src/tools/save_one_e_dm_cplx.irp.f b/src/tools/save_one_e_dm_cplx.irp.f index 3d0e6d6c..fdf00053 100644 --- a/src/tools/save_one_e_dm_cplx.irp.f +++ b/src/tools/save_one_e_dm_cplx.irp.f @@ -22,6 +22,6 @@ subroutine routine_save_one_e_dm_cplx END_DOC call ezfio_set_aux_quantities_data_one_e_dm_alpha_mo_complex(one_e_dm_mo_alpha_complex) call ezfio_set_aux_quantities_data_one_e_dm_beta_mo_complex(one_e_dm_mo_beta_complex) - call ezfio_set_aux_quantities_data_one_e_dm_alpha_ao_complex(one_e_dm_ao_alpha_complex) - call ezfio_set_aux_quantities_data_one_e_dm_beta_ao_complex(one_e_dm_ao_beta_complex) + call ezfio_set_aux_quantities_data_one_e_dm_alpha_ao_complex(one_e_dm_ao_alpha_complex_nst) + call ezfio_set_aux_quantities_data_one_e_dm_beta_ao_complex(one_e_dm_ao_beta_complex_nst) end