diff --git a/plugins/Full_CI_ZMQ/EZFIO.cfg b/plugins/Full_CI_ZMQ/EZFIO.cfg index 613241cf..a0b71e6b 100644 --- a/plugins/Full_CI_ZMQ/EZFIO.cfg +++ b/plugins/Full_CI_ZMQ/EZFIO.cfg @@ -12,7 +12,7 @@ interface: ezfio type: integer doc: Save data at each iteration : 1(Append) | 2(Overwrite) | 3(NoSave) interface: ezfio,ocaml -default: 3 +default: 2 [n_iter] interface: ezfio diff --git a/scripts/generate_h_apply.py b/scripts/generate_h_apply.py index c7714e8a..a7e95e06 100755 --- a/scripts/generate_h_apply.py +++ b/scripts/generate_h_apply.py @@ -33,7 +33,6 @@ filter_only_1h2p_double filter_only_2h2p_single filter_only_2h2p_double filterhole -filter_integrals filter_only_1h1p_double filter_only_1h1p_single filterparticle diff --git a/src/Determinants/H_apply.irp.f b/src/Determinants/H_apply.irp.f index ef396f9c..f2243d25 100644 --- a/src/Determinants/H_apply.irp.f +++ b/src/Determinants/H_apply.irp.f @@ -303,7 +303,7 @@ subroutine fill_H_apply_buffer_no_selection(n_selected,det_buffer,Nint,iproc) enddo do j=1,N_states do i=1,N_selected - H_apply_buffer(iproc)%coef(i+H_apply_buffer(iproc)%N_det,j) = 0.d0 + H_apply_buffer(iproc)%coef(i+H_apply_buffer(iproc)%N_det,j) = 1.e-8 enddo enddo H_apply_buffer(iproc)%N_det = new_size diff --git a/src/Utils/extrapolation.irp.f b/src/Utils/extrapolation.irp.f new file mode 100644 index 00000000..feb550bb --- /dev/null +++ b/src/Utils/extrapolation.irp.f @@ -0,0 +1,31 @@ +subroutine extrapolate_data(N_data, data, pt2, output) + implicit none + BEGIN_DOC + ! Extrapolate the data to the FCI limit + END_DOC + integer, intent(in) :: N_data + double precision, intent(in) :: data(N_data) + double precision, intent(in) :: pt2(N_data) + double precision, intent(out) :: output(N_data) + + double precision :: data_rev(N_data), pt2_rev(N_data) + integer :: ifit, i,j + double precision :: ab(2), x(N_data,2), x_inv(2,N_data), y(N_data) + + do i=1,N_data + data_rev(N_data+1-i) = data(i) + pt2_rev(N_data+1-i) = pt2(i) + enddo + + do i=1,N_data + y(i) = data_rev(i) + x(i,1) = 1.d0 + x(i,2) = pt2_rev(i) + enddo + do ifit=2,N_data + call get_pseudo_inverse(x,size(x,1),ifit,2,x_inv,size(x_inv,1)) + ab = matmul(x_inv(1:2,1:ifit),y(1:ifit)) + output(ifit) = ab(1) + enddo + +end