32 #include "ope_elementary.h" 39 Matrice _helmholtz_minus_pseudo_1d_mat_pas_prevu(
int,
int,
double,
double,
41 cout <<
"Operateur pas prevu..." << endl ;
54 Matrice _helmholtz_minus_pseudo_1d_mat_r_chebu_deux(
int,
int,
double,
double) ;
56 Matrice _helmholtz_minus_pseudo_1d_mat_r_chebu(
int n,
int l,
double masse,
57 double alpha,
double,
int puis) {
58 Matrice res(n-2, n-2) ;
62 res = _helmholtz_minus_pseudo_1d_mat_r_chebu_deux (n, l,masse, alpha) ;
72 Matrice _helmholtz_minus_pseudo_1d_mat_r_chebu_deux (
int n,
int l,
double masse,
76 Matrice res(n-2, n-2) ;
78 double* vect =
new double[n] ;
79 double* vect_bis =
new double[n] ;
80 double* vect_dd =
new double[n] ;
81 double* vect_d =
new double[n] ;
83 for (
int i=0 ; i<n-2 ; i++) {
84 for (
int j=0 ; j<n ; j++)
91 for (
int j=0 ; j<n ; j++)
92 vect_bis[j] = vect[j] ;
94 d2sdx2_1d (n, &vect_bis,
R_CHEBU) ;
95 mult2_xm1_1d_cheb (n, vect_bis, vect_dd) ;
98 for (
int j=0 ; j<n ; j++)
99 vect_bis[j] = vect[j] ;
101 dsdx_1d (n, &vect_bis,
R_CHEBU) ;
102 mult_xm1_1d_cheb (n, vect_bis, vect_d) ;
105 for (
int j=0 ; j<n ; j++)
106 vect_bis[j] = vect[j] ;
107 sx2_1d (n, &vect_bis,
R_CHEBU) ;
109 for (
int j=0 ; j<n-2 ; j++)
110 res.set(j,i) = vect_dd[j] + 2*vect_d[j] - l*(l-1)*vect[j] - masse*masse/alpha/alpha*vect_bis[j] ;
127 static Matrice (*helmholtz_minus_pseudo_1d_mat[
MAX_BASE])(int, int, double,
128 double, double, int);
135 helmholtz_minus_pseudo_1d_mat[i] = _helmholtz_minus_pseudo_1d_mat_pas_prevu ;
138 helmholtz_minus_pseudo_1d_mat[
R_CHEBU >>
TRA_R] = _helmholtz_minus_pseudo_1d_mat_r_chebu ;
double alpha
Parameter of the associated mapping.
int dzpuis
the associated dzpuis, if in the compactified domain.
double beta
Parameter of the associated mapping.
Matrice * ope_mat
Pointer on the matrix representation of the operator.
int base_r
Radial basis of decomposition.
#define TRA_R
Translation en R, used for a bitwise shift (in hex)
virtual void do_ope_mat() const
Computes the matrix of the operator.
double masse
The mass term.
int l_quant
quantum number
int nr
Number of radial points.
#define R_CHEBU
base de Chebychev ordinaire (fin), dev. en 1/r
#define MAX_BASE
Nombre max. de bases differentes.