Returns the probability of generating a single excitation using the pcpp excitation generator (does not account for pSingles)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=n_int), | intent(in) | :: | ilutI(0:NIfTot) | |||
| integer, | intent(in) | :: | ex(2) |
function calc_pgen_singles_pcpp(ilutI,ex) result(pgen) integer(n_int), intent(in) :: ilutI(0:NIfTot) integer, intent(in) :: ex(2) real(dp) :: pgen integer :: src integer :: elec_map(nel) ! First, get the probability to draw the target orbital given the source orbital pgen = single_hole_sampler(ex(1))%get_prob(ex(2)) ! Now, trace back what the originally drawn source orbital has been elec_map = create_elec_map(ilutI) src = custom_findloc(elec_map, ex(1)) ! And then add the probability of drawing that one pgen = pgen * single_elec_sampler%get_prob(src) end function calc_pgen_singles_pcpp