From 17d20c6880a8fcc4e9fa2441a3e32eace8286238 Mon Sep 17 00:00:00 2001 From: eginer Date: Thu, 30 Jun 2022 18:02:04 +0200 Subject: [PATCH] removed stupid bug in scf_utils/scf_density_matrix_ao.irp.f in the case of elec_beta_num==0 --- src/davidson/EZFIO.cfg | 2 +- src/scf_utils/scf_density_matrix_ao.irp.f | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/davidson/EZFIO.cfg b/src/davidson/EZFIO.cfg index b7fb633c..8696d72e 100644 --- a/src/davidson/EZFIO.cfg +++ b/src/davidson/EZFIO.cfg @@ -68,5 +68,5 @@ interface: ezfio,provider,ocaml type: Threshold doc: Thresholds of non-symetric Davidson's algorithm interface: ezfio,provider,ocaml -default: 1.e-5 +default: 1.e-6 diff --git a/src/scf_utils/scf_density_matrix_ao.irp.f b/src/scf_utils/scf_density_matrix_ao.irp.f index 55fa8e7c..6154c333 100644 --- a/src/scf_utils/scf_density_matrix_ao.irp.f +++ b/src/scf_utils/scf_density_matrix_ao.irp.f @@ -3,11 +3,13 @@ BEGIN_PROVIDER [double precision, SCF_density_matrix_ao_alpha, (ao_num,ao_num) ] BEGIN_DOC ! $C.C^t$ over $\alpha$ MOs END_DOC - - call dgemm('N','T',ao_num,ao_num,elec_alpha_num,1.d0, & - mo_coef, size(mo_coef,1), & - mo_coef, size(mo_coef,1), 0.d0, & - SCF_density_matrix_ao_alpha, size(SCF_density_matrix_ao_alpha,1)) + SCF_density_matrix_ao_alpha = 0.d0 + if(elec_alpha_num.gt.0)then + call dgemm('N','T',ao_num,ao_num,elec_alpha_num,1.d0, & + mo_coef, size(mo_coef,1), & + mo_coef, size(mo_coef,1), 0.d0, & + SCF_density_matrix_ao_alpha, size(SCF_density_matrix_ao_alpha,1)) + endif END_PROVIDER @@ -16,11 +18,13 @@ BEGIN_PROVIDER [ double precision, SCF_density_matrix_ao_beta, (ao_num,ao_num) BEGIN_DOC ! $C.C^t$ over $\beta$ MOs END_DOC - + SCF_density_matrix_ao_beta = 0.d0 + if(elec_beta_num.gt.0)then call dgemm('N','T',ao_num,ao_num,elec_beta_num,1.d0, & mo_coef, size(mo_coef,1), & mo_coef, size(mo_coef,1), 0.d0, & SCF_density_matrix_ao_beta, size(SCF_density_matrix_ao_beta,1)) + endif END_PROVIDER