From c5cc7e4d47c2489859fbec4f5dca588883a6442b Mon Sep 17 00:00:00 2001 From: Emmanuel Giner Date: Fri, 17 Mar 2017 11:40:48 +0100 Subject: [PATCH] New version of FOBOCI --- plugins/FOBOCI/density_matrix.irp.f | 1 + plugins/FOBOCI/fobo_scf.irp.f | 7 +++++-- .../FOBOCI/foboci_lmct_mlct_threshold_old.irp.f | 1 + plugins/FOBOCI/generators_restart_save.irp.f | 15 +++++++++++++++ plugins/FOBOCI/routines_foboci.irp.f | 4 ++++ 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/plugins/FOBOCI/density_matrix.irp.f b/plugins/FOBOCI/density_matrix.irp.f index 42138c00..5a06d5d7 100644 --- a/plugins/FOBOCI/density_matrix.irp.f +++ b/plugins/FOBOCI/density_matrix.irp.f @@ -17,6 +17,7 @@ integer :: degree_respect_to_HF_l,index_ref_generators_restart double precision :: inv_coef_ref_generators_restart integer :: i + print*, 'providing the one_body_dm_mo_alpha_generators_restart' do i = 1, N_det_generators_restart ! Find the reference determinant for intermediate normalization diff --git a/plugins/FOBOCI/fobo_scf.irp.f b/plugins/FOBOCI/fobo_scf.irp.f index 8be36b8a..3860493c 100644 --- a/plugins/FOBOCI/fobo_scf.irp.f +++ b/plugins/FOBOCI/fobo_scf.irp.f @@ -26,7 +26,8 @@ subroutine routine_fobo_scf print*,'' character*(64) :: label label = "Natural" - do i = 1, 1 + do i = 1, 10 + call initialize_mo_coef_begin_iteration print*,'*******************************************************************************' print*,'*******************************************************************************' print*,'FOBO-SCF Iteration ',i @@ -52,8 +53,10 @@ subroutine routine_fobo_scf endif call FOBOCI_lmct_mlct_old_thr(i) call save_osoci_natural_mos -! call damping_SCF + call damping_SCF call diag_inactive_virt_and_update_mos + call reorder_active_orb + call save_mos call clear_mo_map call provide_properties enddo diff --git a/plugins/FOBOCI/foboci_lmct_mlct_threshold_old.irp.f b/plugins/FOBOCI/foboci_lmct_mlct_threshold_old.irp.f index 3d8dfb08..5b549fc3 100644 --- a/plugins/FOBOCI/foboci_lmct_mlct_threshold_old.irp.f +++ b/plugins/FOBOCI/foboci_lmct_mlct_threshold_old.irp.f @@ -40,6 +40,7 @@ subroutine FOBOCI_lmct_mlct_old_thr(iter) logical :: lmct double precision, allocatable :: psi_singles_coef(:,:) logical :: exit_loop + call update_generators_restart_coef allocate( zero_bitmask(N_int,2) ) do i = 1, n_inact_orb lmct = .True. diff --git a/plugins/FOBOCI/generators_restart_save.irp.f b/plugins/FOBOCI/generators_restart_save.irp.f index eba9f0ad..669c899d 100644 --- a/plugins/FOBOCI/generators_restart_save.irp.f +++ b/plugins/FOBOCI/generators_restart_save.irp.f @@ -74,3 +74,18 @@ END_PROVIDER &BEGIN_PROVIDER [ double precision, psi_coef_generators, (10000,N_states) ] END_PROVIDER + +subroutine update_generators_restart_coef + implicit none + call set_generators_to_generators_restart + call set_psi_det_to_generators + call diagonalize_CI + integer :: i,j,k,l + do i = 1, N_det_generators_restart + do j = 1, N_states + psi_coef_generators_restart(i,j) = psi_coef(i,j) + enddo + enddo + soft_touch psi_coef_generators_restart + provide one_body_dm_mo_alpha_generators_restart +end diff --git a/plugins/FOBOCI/routines_foboci.irp.f b/plugins/FOBOCI/routines_foboci.irp.f index 26ce3b12..cda7dd75 100644 --- a/plugins/FOBOCI/routines_foboci.irp.f +++ b/plugins/FOBOCI/routines_foboci.irp.f @@ -329,6 +329,10 @@ end subroutine initialize_density_matrix_osoci implicit none + call set_generators_to_generators_restart + call set_psi_det_to_generators + call diagonalize_CI + one_body_dm_mo_alpha_osoci = one_body_dm_mo_alpha_generators_restart one_body_dm_mo_beta_osoci = one_body_dm_mo_beta_generators_restart integer :: i