dressedFactor Function

public function dressedFactor(fmu) result(fmup)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: fmu

Return Value real(kind=dp)


Contents

Source Code


Source Code

    function dressedFactor(fmu) result(fmup)
        implicit none
        real(dp), intent(in) :: fmu
        real(dp) :: fmup
#ifdef CMPLX_
        routine_name("dressedFactor")
        call stop_all(this_routine, "not implemented for complex")
        unused_var(fmu)
        fmup = 0._dp
#else
        real(dp) :: eCorr, e0Inits, enOffset
        if (tInitsRDMRef .and. tSetupInitsEst .and. sum(abs(proje_iter)) > eps) then
            ! initiator-only reference energy
            e0Inits = inits_estimates%energy_num(1) / inits_estimates%norm(1)
            ! correlation energy
            eCorr = sum(proje_iter) / inum_runs + Hii - e0Inits
            enOffset = (Hii - e0Inits) / eCorr
            fmup = enOffset + fmu * (inum_runs * eCorr) / (sum(proje_iter))
        else
            fmup = fmu
        end if
#endif
    end function dressedFactor