getMinus_semiStart Function

public function getMinus_semiStart(nSwitches, bVal, semiStart) result(minusWeight)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: nSwitches
real(kind=dp), intent(in) :: bVal
type(WeightData_t), intent(in) :: semiStart

Return Value real(kind=dp)


Contents

Source Code


Source Code

    function getMinus_semiStart(nSwitches, bVal, semiStart) result(minusWeight)
        real(dp), intent(in) :: nSwitches, bVal
        type(WeightData_t), intent(in) :: semiStart
        real(dp) :: minusWeight
        character(*), parameter :: this_routine = "getMinus_semiStart"

        ASSERT(nSwitches >= 0.0_dp)
        ! change b value treatment, by just checking if excitations is
        ! technically possible if b == 0

        minusWeight = semiStart%F * semiStart%zero + semiStart%G * semiStart%minus + &
                      nSwitches / max(1.0_dp, bval) * (semiStart%F * semiStart%plus + semiStart%G * semiStart%zero)

        ASSERT(minusWeight >= 0.0_dp)

    end function getMinus_semiStart