📄 specfunc-coulomb.texi
字号:
@cindex Coulomb wave functions@cindex hydrogen atomThe Coulomb functions are declared in the header file@file{gsl_sf_coulomb.h}. Both bound state and scattering solutions areavailable.@menu* Normalized Hydrogenic Bound States:: * Coulomb Wave Functions:: * Coulomb Wave Function Normalization Constant:: @end menu@node Normalized Hydrogenic Bound States@subsection Normalized Hydrogenic Bound States@deftypefun double gsl_sf_hydrogenicR_1 (double @var{Z}, double @var{r})@deftypefunx int gsl_sf_hydrogenicR_1_e (double @var{Z}, double @var{r}, gsl_sf_result * @var{result})These routines compute the lowest-order normalized hydrogenic boundstate radial wavefunction @c{$R_1 := 2Z \sqrt{Z} \exp(-Z r)$}@math{R_1 := 2Z \sqrt@{Z@} \exp(-Z r)}.@end deftypefun@deftypefun double gsl_sf_hydrogenicR (int @var{n}, int @var{l}, double @var{Z}, double @var{r})@deftypefunx int gsl_sf_hydrogenicR_e (int @var{n}, int @var{l}, double @var{Z}, double @var{r}, gsl_sf_result * @var{result})These routines compute the @var{n}-th normalized hydrogenic bound stateradial wavefunction,@tex\beforedisplay$$R_n := {2 Z^{3/2} \over n^2} \left({2Z \over n}\right)^l \sqrt{(n-l-1)! \over (n+l)!} \exp(-Z r/n) L^{2l+1}_{n-l-1}(2Z/n r).$$\afterdisplay@end tex@ifinfo@exampleR_n := 2 (Z^@{3/2@}/n^2) \sqrt@{(n-l-1)!/(n+l)!@} \exp(-Z r/n) (2Z/n)^l L^@{2l+1@}_@{n-l-1@}(2Z/n r). @end example@end ifinfo@noindentThe normalization is chosen such that the wavefunction @math{\psi} isgiven by @c{$\psi(n,l,r) = R_n Y_{lm}$}@math{\psi(n,l,r) = R_n Y_@{lm@}}.@end deftypefun@node Coulomb Wave Functions@subsection Coulomb Wave FunctionsThe Coulomb wave functions @math{F_L(\eta,x)}, @math{G_L(\eta,x)} aredescribed in Abramowitz & Stegun, Chapter 14. Because there can be alarge dynamic range of values for these functions, overflows are handledgracefully. If an overflow occurs, @code{GSL_EOVRFLW} is signalled andexponent(s) are returned through the modifiable parameters @var{exp_F},@var{exp_G}. The full solution can be reconstructed from the followingrelations,@tex\beforedisplay$$\eqalign{ F_L(\eta,x) &= fc[k_L] * \exp(exp_F)\cr G_L(\eta,x) &= gc[k_L] * \exp(exp_G)\cr\cr F_L'(\eta,x) &= fcp[k_L] * \exp(exp_F)\cr G_L'(\eta,x) &= gcp[k_L] * \exp(exp_G)}$$\afterdisplay@end tex@ifinfo@exampleF_L(eta,x) = fc[k_L] * exp(exp_F)G_L(eta,x) = gc[k_L] * exp(exp_G)F_L'(eta,x) = fcp[k_L] * exp(exp_F)G_L'(eta,x) = gcp[k_L] * exp(exp_G)@end example@end ifinfo@noindent@deftypefun int gsl_sf_coulomb_wave_FG_e (double @var{eta}, double @var{x}, double @var{L_F}, int @var{k}, gsl_sf_result * @var{F}, gsl_sf_result * @var{Fp}, gsl_sf_result * @var{G}, gsl_sf_result * @var{Gp}, double * @var{exp_F}, double * @var{exp_G})This function computes the coulomb wave functions @math{F_L(\eta,x)},@c{$G_{L-k}(\eta,x)$} @math{G_@{L-k@}(\eta,x)} and their derivatives with respect to @math{x},@math{F'_L(\eta,x)} @c{$G'_{L-k}(\eta,x)$}@math{G'_@{L-k@}(\eta,x)}. The parameters are restricted to @math{L,L-k > -1/2}, @math{x > 0} and integer @math{k}. Note that @math{L}itself is not restricted to being an integer. The results are stored inthe parameters @var{F}, @var{G} for the function values and @var{Fp},@var{Gp} for the derivative values. If an overflow occurs,@code{GSL_EOVRFLW} is returned and scaling exponents are stored inthe modifiable parameters @var{exp_F}, @var{exp_G}.@end deftypefun@deftypefun int gsl_sf_coulomb_wave_F_array (double @var{L_min}, int @var{kmax}, double @var{eta}, double @var{x}, double @var{fc_array}[], double * @var{F_exponent})This function computes the function @math{F_L(eta,x)} for @math{L = Lmin\dots Lmin + kmax} storing the results in @var{fc_array}. In the case ofoverflow the exponent is stored in @var{F_exponent}.@end deftypefun@deftypefun int gsl_sf_coulomb_wave_FG_array (double @var{L_min}, int @var{kmax}, double @var{eta}, double @var{x}, double @var{fc_array}[], double @var{gc_array}[], double * @var{F_exponent}, double * @var{G_exponent})This function computes the functions @math{F_L(\eta,x)},@math{G_L(\eta,x)} for @math{L = Lmin \dots Lmin + kmax} storing theresults in @var{fc_array} and @var{gc_array}. In the case of overflow theexponents are stored in @var{F_exponent} and @var{G_exponent}.@end deftypefun@deftypefun int gsl_sf_coulomb_wave_FGp_array (double @var{L_min}, int @var{kmax}, double @var{eta}, double @var{x}, double @var{fc_array}[], double @var{fcp_array}[], double @var{gc_array}[], double @var{gcp_array}[], double * @var{F_exponent}, double * @var{G_exponent})This function computes the functions @math{F_L(\eta,x)},@math{G_L(\eta,x)} and their derivatives @math{F'_L(\eta,x)},@math{G'_L(\eta,x)} for @math{L = Lmin \dots Lmin + kmax} storing theresults in @var{fc_array}, @var{gc_array}, @var{fcp_array} and @var{gcp_array}.In the case of overflow the exponents are stored in @var{F_exponent} and @var{G_exponent}.@end deftypefun@deftypefun int gsl_sf_coulomb_wave_sphF_array (double @var{L_min}, int @var{kmax}, double @var{eta}, double @var{x}, double @var{fc_array}[], double @var{F_exponent}[])This function computes the Coulomb wave function divided by the argument@math{F_L(\eta, x)/x} for @math{L = Lmin \dots Lmin + kmax}, storing theresults in @var{fc_array}. In the case of overflow the exponent isstored in @var{F_exponent}. This function reduces to spherical Besselfunctions in the limit @math{\eta \to 0}.@end deftypefun@node Coulomb Wave Function Normalization Constant@subsection Coulomb Wave Function Normalization ConstantThe Coulomb wave function normalization constant is defined inAbramowitz 14.1.7.@deftypefun int gsl_sf_coulomb_CL_e (double @var{L}, double @var{eta}, gsl_sf_result * @var{result})This function computes the Coulomb wave function normalization constant@math{C_L(\eta)} for @math{L > -1}.@end deftypefun@deftypefun int gsl_sf_coulomb_CL_array (double @var{Lmin}, int @var{kmax}, double @var{eta}, double @var{cl}[])This function computes the coulomb wave function normalization constant@math{C_L(\eta)} for @math{L = Lmin \dots Lmin + kmax}, @math{Lmin > -1}.@end deftypefun
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -