21 char ope_sec_order_solp_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Ope_elementary/Ope_sec_order/ope_sec_order_solp.C,v 1.3 2014/10/13 08:53:36 j_novak Exp $" ;
32 #include "ope_elementary.h"
39 Tbl _cl_sec_order_pas_prevu (
const Tbl &so) {
41 cout <<
"Linear combination for Sec_order not implemented..." << endl ;
50 Tbl _cl_sec_order_r_cheb (
const Tbl& source) {
56 for (
int i=0 ; i<n-2 ; i++) {
57 barre.set(i) = ((1+dirac)*source(i)-source(i+2))
63 for (
int i=0 ; i<n-4 ; i++)
64 res.set(i) = barre(i)-barre(i+2) ;
74 Tbl cl_sec_order (
const Tbl &source,
int base_r) {
77 static Tbl (*cl_sec_order[
MAX_BASE])(
const Tbl &) ;
84 cl_sec_order[i] = _cl_sec_order_pas_prevu ;
87 cl_sec_order[
R_CHEB >>
TRA_R] = _cl_sec_order_r_cheb ;
90 Tbl res(cl_sec_order[base_r](source)) ;
102 Tbl _solp_sec_order_pas_prevu (
const Matrice &,
const Matrice &,
104 cout <<
" Solution particuliere pas prevue in sec_order..... : "<< endl ;
115 Tbl _solp_sec_order_r_cheb (
const Matrice &lap,
const Matrice &nondege,
119 int dege = n-nondege.get_dim(0) ;
122 Tbl source_aux (cl_sec_order (source,
R_CHEB)) ;
126 for (
int i=0 ; i<n-dege ; i++)
127 so.set(i) = source_aux(i) ;
129 Tbl auxi(nondege.inverse(so)) ;
133 for (
int i=dege ; i<n ; i++)
134 res.set(i) = auxi(i-dege) ;
136 for (
int i=0 ; i<dege ; i++)
157 solp_sec_order[i] = _solp_sec_order_pas_prevu ;
160 solp_sec_order[
R_CHEB >>
TRA_R] = _solp_sec_order_r_cheb ;