compute_real_component Function

private function compute_real_component(initial_index_, final_index_, l_initial_, l_final_, s_matrix_real_) result(real_contribution_)

Computes the real part of the cross-section contribution for given indices.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: initial_index_

index pointing to the basis element involving initial state

integer(kind=int32), intent(in) :: final_index_

index pointing to the basis element involving final state

integer(kind=int32), intent(in) :: l_initial_

pre-collisional \(l\) value

integer(kind=int32), intent(in) :: l_final_

post-collisional \(l\) value

real(kind=dp), intent(in) :: s_matrix_real_(:,:)

real part of the S-matrix

Return Value real(kind=dp)

(output) contribution to the cross-section from real part of the S-matrix


Called by

proc~~compute_real_component~~CalledByGraph proc~compute_real_component compute_real_component proc~sum_cross_section_contributions sum_cross_section_contributions proc~sum_cross_section_contributions->proc~compute_real_component proc~compute_individual_cross_section compute_individual_cross_section proc~compute_individual_cross_section->proc~sum_cross_section_contributions proc~calculate_state_to_state_cross_section calculate_state_to_state_cross_section proc~calculate_state_to_state_cross_section->proc~compute_individual_cross_section program~scattering SCATTERING program~scattering->proc~calculate_state_to_state_cross_section

Contents


Source Code

      function compute_real_component(initial_index_, final_index_, l_initial_,&
         l_final_, s_matrix_real_) result(real_contribution_)
         !! Computes the real part of the cross-section contribution
         !! for given indices.
         !---------------------------------------------------------------------!
         integer(int32), intent(in) :: initial_index_
            !! index pointing to the basis element involving initial state
         integer(int32), intent(in) :: final_index_
            !! index pointing to the basis element involving final state
         integer(int32), intent(in) :: l_initial_
            !! pre-collisional \\(l\\) value
         integer(int32), intent(in) :: l_final_
            !! post-collisional \\(l\\) value
         real(dp), intent(in) :: s_matrix_real_(:,:)
            !! real part of the S-matrix
         real(dp) :: real_contribution_
            !! (output) contribution to the cross-section from real part
            !! of the S-matrix
         !---------------------------------------------------------------------!
         if (l_initial_ == l_final_) then
           if (initial_index_ == final_index_) then
               real_contribution_ = 1.0_dp - s_matrix_real_(initial_index_, final_index_)
           else
               real_contribution_ = - s_matrix_real_(initial_index_, final_index_)
           endif
         else
           real_contribution_ = - s_matrix_real_(initial_index_, final_index_)
         endif
      end function compute_real_component