56 Cmp raccord_c1(
const Cmp& uu,
int l1) {
58 const Map_radial* mpi =
dynamic_cast<const Map_radial*
>( uu.get_mp() ) ;
62 "raccord_c1 : The mapping does not belong to the class Map_radial !" 67 const Map_radial& mp = *mpi ;
69 const Mg3d& mg = *(mp.get_mg()) ;
72 int nz = mg.get_nzone() ;
82 Mtbl r2 = mp.r * mp.r ;
86 Valeur& va = resu.va ;
91 va.c->set_etat_qcq() ;
92 va.c->t[l1]->set_etat_qcq() ;
94 int np = mg.get_np(l1) ;
95 int nt = mg.get_nt(l1) ;
96 assert( mg.get_np(l0) == np ) ;
97 assert( mg.get_nt(l0) == nt ) ;
98 assert( mg.get_np(l2) == np ) ;
99 assert( mg.get_nt(l2) == nt ) ;
101 int nr0 = mg.get_nr(l0) ;
102 int nr1 = mg.get_nr(l1) ;
104 for (
int k=0; k<np; k++) {
105 for (
int j=0; j<nt; j++) {
106 double lam0 = uu(l0, k, j, nr0-1) ;
107 double lam1 = uu.dsdr()(l0, k, j, nr0-1) / dxdr(l1, k, j, 0) ;
108 double mu0 = uu(l2, k, j, 0) ;
109 double mu1 = uu.dsdr()(l2, k, j, 0) / dxdr(l1, k, j, nr1-1) ;
111 if ( mg.get_type_r(l2) == UNSURR ) {
112 mu1 /= r2(l2, k, j, 0) ;
115 double s0 = 0.25 * (mu0 + lam0) ;
116 double s1 = 0.25 * (mu1 + lam1) ;
117 double d0 = 0.25 * (mu0 - lam0) ;
118 double d1 = 0.25 * (mu1 - lam1) ;
120 double a0 = 2. * s0 - d1 ;
121 double a1 = 3. * d0 - s1 ;
123 double a3 = s1 - d0 ;
125 for (
int i=0; i<nr1; i++) {
126 double x = mg.get_grille3d(l1)->x[i] ;
127 va.set(l1, k, j, i) = a0 + x * ( a1 + x * ( a2 + x * a3 ) ) ;
140 Scalar raccord_c1(
const Scalar& uu,
int l1) {
143 return Scalar( raccord_c1(cuu, l1) ) ;