cepa_shift_cc Function

private function cepa_shift_cc(run, ex_level)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: run
integer, intent(in) :: ex_level

Return Value real(kind=dp)


Contents

Source Code


Source Code

    real(dp) function cepa_shift_cc(run, ex_level)
        ! this routine should get used when we want to adapt the cepa-shift
        ! with biasing through the occupation of the higher order
        ! excitations
        integer, intent(in) :: run, ex_level
        if (ex_level == 1) then
            cepa_shift_cc = cepa_shift_single(run) * cc_singles_factor()
        else if (ex_level == 2) then
            cepa_shift_cc = cepa_shift_double(run) * cc_doubles_factor()
        else
            if (t_apply_full_cepa) then
                if (ex_level == 3) then
                    ! i guess the shift could be the same for triples, just the
                    ! factor changes
                    cepa_shift_cc = cepa_shift_double(run) * cc_triples_factor()
                else if (ex_level == 4) then
                    cepa_shift_cc = cepa_shift_double(run) * cc_quads_factor()
                else
                    ! the farther one goes out the less occupied the excited space
                    ! becomes.. so maybe it is fair to assume to apply the
                    ! full shift..
                    cepa_shift_cc = cepa_shift_double(run)
                end if
            else
                cepa_shift_cc = 0.0_dp
            end if
        end if

    end function cepa_shift_cc