Hex  2.2
Hydrogen-electron collision solver
Functions
scatamp-dir.cpp File Reference
#include <map>
#include <string>
#include <vector>
#include "hex-interpolate.h"
#include "hex-chebyshev.h"
#include "hex-special.h"
#include "hex-version.h"
#include "../quantities.h"
#include "../utils.h"
Include dependency graph for scatamp-dir.cpp:

Functions

 createNewScatteringQuantity (ScatteringAmplitudeDir, "scatamp-dir") std
 
void hex_scattering_amplitude_dir (int ni, int li, int mi, int nf, int lf, int mf, int S, double E, int N, double alpha, double beta, double gamma, double *angles, double *result)
 Scattering anplitude for non-aligned impact direction (C). More...
 
void hex_scattering_amplitude_dir_ (int *ni, int *li, int *mi, int *nf, int *lf, int *mf, int *S, double *E, int *N, double *alpha, double *beta, double *gamma, double *angles, double *result)
 Scattering anplitude for non-aligned impact direction (Fortran). More...
 

Function Documentation

◆ createNewScatteringQuantity()

createNewScatteringQuantity ( ScatteringAmplitudeDir  ,
"scatamp-dir"   
)

◆ hex_scattering_amplitude_dir()

void hex_scattering_amplitude_dir ( int  ni,
int  li,
int  mi,
int  nf,
int  lf,
int  mf,
int  S,
double  E,
int  N,
double  alpha,
double  beta,
double  gamma,
double *  angles,
double *  result 
)

C prototype.

See hex_scattering_amplitude_dir_ for theory.

Parameters
niInitial atomic principal quantum number.
liInitial atomic orbital quantum number.
miInitial atomic magnetic quantum number.
nfFinal atomic principal quantum number.
lfFinal atomic orbital quantum number.
mfFinal atomic magnetic quantum number.
STotal spin (0 = singlet, 1 = triplet).
EImpact energy in Rydbergs.
NSample count.
alphaImpact angle (first of Euler angles).
betaImpact angle (second of Euler angles).
gammaImpact angle (third of Euler angles).
anglesReal array of length N containing scattering angles.
resultComplex array of length N (or real array of length 2N) to contain the amplitudes.

◆ hex_scattering_amplitude_dir_()

void hex_scattering_amplitude_dir_ ( int *  ni,
int *  li,
int *  mi,
int *  nf,
int *  lf,
int *  mf,
int *  S,
double *  E,
int *  N,
double *  alpha,
double *  beta,
double *  gamma,
double *  angles,
double *  result 
)

This function will evaluate the scattering amplitude when the projectile is coming in a direction different from the quantization axis, i.e. when

\[ \mathbf{k}_i \neq (0, 0, k_i) \,. \]

In that case the of the scattering amplitude can be computed using Wigner d-function and all possible amplitudes from scattering between various magnetic levels. The reason for this is that such situation is equivalent to a change of the quantization axis by the same amount. To be precise, it is

\[ T_{n_f l_f m_f \leftarrow n_i l_i m_i} = \sum_{m_i' m_f'} D_{m_i' m_i}^{l_i} D_{m_f' m_f}^{l_f \ast} T_{n_f l_f m_f' \leftarrow n_i l_i m_i'} \,. \]

Fortran prototype equivalent to

subroutine scattering_amplitude (ni,li,mi,nf,lf,mf,S,E,N,angles,result)
integer, intent(in) :: ni,li,mi
integer, intent(in) :: nf,lf,mf
integer, intent(int) :: s,n
double precision, intent(in) :: e
double precision, dimension(N) :: angles
double precision, dimension(2*N) :: result
Parameters
niInitial atomic principal quantum number.
liInitial atomic orbital quantum number.
miInitial atomic magnetic quantum number.
nfFinal atomic principal quantum number.
lfFinal atomic orbital quantum number.
mfFinal atomic magnetic quantum number.
STotal spin (0 = singlet, 1 = triplet).
EImpact energy in Rydbergs.
NSample count.
alphaImpact angle (first of Euler angles).
betaImpact angle (second of Euler angles).
gammaImpact angle (third of Euler angles).
anglesReal array of length N containing scattering angles.
resultComplex array of length N (or real array of length 2N) to contain the amplitudes.