32 #include "ope_elementary.h" 36 Matrice _cl_helmholtz_minus_2d_pas_prevu (
const Matrice & source,
int) {
37 cout <<
"Combinaison lineaire pas prevu..." << endl ;
48 Matrice _cl_helmholtz_minus_2d_r_cheb (
const Matrice &source,
int) {
50 assert (n == source.get_dim(1)) ;
51 Matrice barre(source) ;
53 for (
int i=0 ; i<n-2 ; i++) {
54 for (
int j=0 ; j<n ; j++)
55 barre.set(i, j) = ((1+dirac)*source(i, j)-source(i+2, j))
61 for (
int i=0 ; i<n-4 ; i++)
62 for (
int j=0 ; j<n ; j++)
63 res.set(i, j) = barre(i, j)-barre(i+2, j) ;
72 Matrice _cl_helmholtz_minus_2d_r_chebu_deux (
const Matrice&) ;
75 Matrice _cl_helmholtz_minus_2d_r_chebu (
const Matrice &source,
int puis) {
77 assert (n == source.get_dim(1)) ;
84 res = _cl_helmholtz_minus_2d_r_chebu_deux(source) ;
96 Matrice _cl_helmholtz_minus_2d_r_chebu_deux (
const Matrice &source) {
99 assert (n == source.get_dim(1)) ;
101 Matrice barre(source) ;
103 for (
int i=0 ; i<n-2 ; i++) {
104 for (
int j=0 ; j<n ; j++)
105 barre.set(i, j) = ((1+dirac)*source(i, j)-source(i+2, j)) ;
106 if (i==0) dirac = 0 ;
109 Matrice tilde(barre) ;
110 for (
int i=0 ; i<n-4 ; i++)
111 for (
int j=0 ; j<n ; j++)
112 tilde.set(i, j) = (barre(i, j)-barre(i+2, j)) ;
115 for (
int i=0 ; i<n-4 ; i++)
116 for (
int j=0 ; j<n ; j++)
117 bis.set(i, j) = (tilde(i, j)+tilde(i+1, j)) ;
120 for (
int i=0 ; i<n-4 ; i++)
121 for (
int j=0 ; j<n ; j++)
122 res.set(i, j) = (bis(i, j)-bis(i+1, j)) ;
142 cl_helmholtz_minus_2d[i] = _cl_helmholtz_minus_2d_pas_prevu ;
145 cl_helmholtz_minus_2d[
R_CHEB >>
TRA_R] = _cl_helmholtz_minus_2d_r_cheb ;
146 cl_helmholtz_minus_2d[
R_CHEBU >>
TRA_R] = _cl_helmholtz_minus_2d_r_chebu ;
Matrice * ope_cl
Pointer on the banded-matrix of the operator.
virtual void do_ope_cl() const
Computes the banded-matrix of the operator.
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)
int get_dim(int i) const
Returns the dimension of the matrix.
int dzpuis
the associated dzpuis, if in the compactified domain.
virtual void do_ope_mat() const
Computes the matrix of the operator.
#define R_CHEBU
base de Chebychev ordinaire (fin), dev. en 1/r
#define MAX_BASE
Nombre max. de bases differentes.
#define R_CHEB
base de Chebychev ordinaire (fin)