wavevector_squared_from_energy Function

public function wavevector_squared_from_energy(energy_) result(k_)

returns the squared wavevector, \(k_{a}^{2}\), given the energy of a given state, \(E_{a}\); calls etot() function; atomic units in the whole function \( k_{a} = \sqrt(2 \mu (E_{tot} - E_{a}) \) since it uses reduced_mass and total_energy(), the function checks if units are already converted

Arguments

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

energy of a given state, \( E_{a} \), in a.u.

Return Value real(kind=dp)

wavevector, \(k_{a}\), in a.u.


Calls

proc~~wavevector_squared_from_energy~~CallsGraph proc~wavevector_squared_from_energy wavevector_squared_from_energy proc~total_energy total_energy proc~wavevector_squared_from_energy->proc~total_energy proc~write_error write_error proc~wavevector_squared_from_energy->proc~write_error proc~write_message write_message proc~write_error->proc~write_message

Called by

proc~~wavevector_squared_from_energy~~CalledByGraph proc~wavevector_squared_from_energy wavevector_squared_from_energy proc~calculate_single_pes_matrix_element calculate_single_pes_matrix_element proc~calculate_single_pes_matrix_element->proc~wavevector_squared_from_energy proc~save_open_basis_levels save_open_basis_levels proc~save_open_basis_levels->proc~wavevector_squared_from_energy proc~print_channels print_channels proc~print_channels->proc~wavevector_squared_from_energy proc~prepare_wavevector_array prepare_wavevector_array proc~prepare_wavevector_array->proc~wavevector_squared_from_energy proc~calculate_k_matrix calculate_k_matrix proc~calculate_k_matrix->proc~wavevector_squared_from_energy proc~calculate_largest_wavevector calculate_largest_wavevector proc~calculate_largest_wavevector->proc~wavevector_squared_from_energy proc~calculate_pes_matrix calculate_pes_matrix proc~calculate_pes_matrix->proc~calculate_single_pes_matrix_element program~scattering SCATTERING program~scattering->proc~save_open_basis_levels program~scattering->proc~print_channels program~scattering->proc~prepare_wavevector_array program~scattering->proc~calculate_k_matrix program~scattering->proc~calculate_largest_wavevector proc~numerov numerov program~scattering->proc~numerov proc~initial_setup initial_setup proc~initial_setup->proc~calculate_pes_matrix proc~general_propagation_step general_propagation_step proc~general_propagation_step->proc~calculate_pes_matrix proc~numerov->proc~initial_setup proc~numerov->proc~general_propagation_step proc~handle_final_propagation_steps handle_final_propagation_steps proc~numerov->proc~handle_final_propagation_steps proc~handle_final_propagation_steps->proc~general_propagation_step

Contents


Source Code

      function wavevector_squared_from_energy(energy_) result(k_)
         !! returns the squared wavevector, \\(k_{a}^{2}\\),
         !! given the energy of a given state, \\(E_{a}\\);
         !! calls etot() function; atomic units in the whole function
         !! \\( k_{a} = \sqrt(2 \mu (E_{tot} - E_{a}) \\)
         !! since it uses reduced_mass and total_energy(), the function checks
         !! if units are already converted
         !---------------------------------------------------------------------!
         real(dp), intent(in) :: energy_
            !! energy of a given state, \\( E_{a} \\), in a.u.
         real(dp) :: k_
            !! wavevector, \\(k_{a}\\), in a.u.
         !---------------------------------------------------------------------!
         if (units_converted) then
            k_ = 2*reduced_mass*(total_energy() - energy_)
         else
            call write_error("wavevector_squared_from_energy called " //       &
               "but units are not converted yet")
         endif
         !---------------------------------------------------------------------!
      end function wavevector_squared_from_energy