summaryrefslogtreecommitdiff
path: root/gsl-1.9/doc/specfunc-coulomb.texi
diff options
context:
space:
mode:
Diffstat (limited to 'gsl-1.9/doc/specfunc-coulomb.texi')
-rw-r--r--gsl-1.9/doc/specfunc-coulomb.texi151
1 files changed, 151 insertions, 0 deletions
diff --git a/gsl-1.9/doc/specfunc-coulomb.texi b/gsl-1.9/doc/specfunc-coulomb.texi
new file mode 100644
index 0000000..7114620
--- /dev/null
+++ b/gsl-1.9/doc/specfunc-coulomb.texi
@@ -0,0 +1,151 @@
+@cindex Coulomb wave functions
+@cindex hydrogen atom
+
+The prototypes of the Coulomb functions are declared in the header file
+@file{gsl_sf_coulomb.h}. Both bound state and scattering solutions are
+available.
+
+@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 bound
+state 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 state
+radial wavefunction,
+@comment
+@tex
+\beforedisplay
+$$
+R_n := {2 Z^{3/2} \over n^2} \left({2Z r \over n}\right)^l \sqrt{(n-l-1)! \over (n+l)!} \exp(-Z r/n) L^{2l+1}_{n-l-1}(2Z r / n).
+$$
+\afterdisplay
+@end tex
+@ifinfo
+
+@example
+R_n := 2 (Z^@{3/2@}/n^2) \sqrt@{(n-l-1)!/(n+l)!@} \exp(-Z r/n) (2Zr/n)^l
+ L^@{2l+1@}_@{n-l-1@}(2Zr/n).
+@end example
+
+@end ifinfo
+@noindent
+where @math{L^a_b(x)} is the generalized Laguerre polynomial (@pxref{Laguerre Functions}).
+The normalization is chosen such that the wavefunction @math{\psi} is
+given 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 Functions
+
+The Coulomb wave functions @math{F_L(\eta,x)}, @math{G_L(\eta,x)} are
+described in Abramowitz & Stegun, Chapter 14. Because there can be a
+large dynamic range of values for these functions, overflows are handled
+gracefully. If an overflow occurs, @code{GSL_EOVRFLW} is signalled and
+exponent(s) are returned through the modifiable parameters @var{exp_F},
+@var{exp_G}. The full solution can be reconstructed from the following
+relations,
+@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
+
+@example
+F_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
+@math{F'_L(\eta,x)},
+@c{$G'_{L-k}(\eta,x)$}
+@math{G'_@{L-k@}(\eta,x)}
+with respect to @math{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 in
+the 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 in
+the 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 Coulomb wave function @math{F_L(\eta,x)} for
+@math{L = Lmin \dots Lmin + kmax}, storing the results in @var{fc_array}.
+In the case of overflow 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 the
+results in @var{fc_array} and @var{gc_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_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 the
+results 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 the
+results in @var{fc_array}. In the case of overflow the exponent is
+stored in @var{F_exponent}. This function reduces to spherical Bessel
+functions in the limit @math{\eta \to 0}.
+@end deftypefun
+
+@node Coulomb Wave Function Normalization Constant
+@subsection Coulomb Wave Function Normalization Constant
+
+The Coulomb wave function normalization constant is defined in
+Abramowitz 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
+
+
+