23char map_et_fait_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Map/map_et_fait.C,v 1.9 2014/10/13 08:53:04 j_novak Exp $" ;
78Mtbl* map_et_fait_r(
const Map* cvi) {
81 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
82 const Mg3d* mg = cv->
get_mg() ;
86 Mtbl* mti =
new Mtbl(mg) ;
90 const double* alpha = cv->alpha ;
91 const double* beta = cv->beta ;
92 const Valeur& ff = cv->ff ;
93 const Valeur& gg = cv->gg ;
95 for (
int l=0 ; l<nz ; l++) {
97 const Grille3d* g = mg->get_grille3d(l) ;
99 const Tbl& aa = *((cv->aa)[l]) ;
100 const Tbl& bb = *((cv->bb)[l]) ;
102 Tbl* tb = (mti->t)[l] ;
104 double* p_r = tb->t ;
106 int np = mg->get_np(l) ;
107 int nt = mg->get_nt(l) ;
108 int nr = mg->get_nr(l) ;
110 switch(mg->get_type_r(l)) {
112 case FIN:
case RARE: {
114 for (
int k=0 ; k<np ; k++) {
115 for (
int j=0 ; j<nt ; j++) {
116 for (
int i=0 ; i<nr ; i++) {
117 *p_r = alpha[l] * ( (g->x)[i]
118 + aa(i) * ff(l, k, j, 0)
119 + bb(i) * gg(l, k, j, 0)
129 for (
int k=0 ; k<np ; k++) {
130 for (
int j=0 ; j<nt ; j++) {
131 for (
int i=0 ; i<nr ; i++) {
132 *p_r = 1./( alpha[l] * (
133 (g->x)[i] + aa(i) * ff(l, k, j, 0)
144 cout <<
"map_et_fait_r: Unknown type_r !" << endl ;
159Mtbl* map_et_fait_tet(
const Map* cvi) {
162 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
163 const Mg3d* mg = cv->
get_mg() ;
167 Mtbl* mti =
new Mtbl(mg) ;
168 mti->set_etat_qcq() ;
170 for (
int l=0 ; l<nz ; l++) {
171 int nr = mg->get_nr(l);
172 int nt = mg->get_nt(l);
173 int np = mg->get_np(l);
174 const Grille3d* g = mg->get_grille3d(l) ;
175 Tbl* tb = (mti->t)[l] ;
177 double* p_r = tb->t ;
178 for (
int k=0 ; k<np ; k++) {
179 for (
int j=0 ; j<nt ; j++) {
180 for (
int i=0 ; i<nr ; i++) {
196Mtbl* map_et_fait_phi(
const Map* cvi) {
199 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
200 const Mg3d* mg = cv->
get_mg() ;
204 Mtbl* mti =
new Mtbl(mg) ;
205 mti->set_etat_qcq() ;
207 for (
int l=0 ; l<nz ; l++) {
208 int nr = mg->get_nr(l);
209 int nt = mg->get_nt(l);
210 int np = mg->get_np(l);
211 const Grille3d* g = mg->get_grille3d(l) ;
212 Tbl* tb = (mti->t)[l] ;
214 double* p_r = tb->t ;
215 for (
int k=0 ; k<np ; k++) {
216 for (
int j=0 ; j<nt ; j++) {
217 for (
int i=0 ; i<nr ; i++) {
233Mtbl* map_et_fait_x(
const Map* cvi) {
236 const Mg3d* mg = cvi->
get_mg() ;
239 Mtbl* mti =
new Mtbl(mg) ;
241 *mti = (cvi->r) * (cvi->sint) * (cvi->cosp) ;
251Mtbl* map_et_fait_y(
const Map* cvi) {
254 const Mg3d* mg = cvi->
get_mg() ;
257 Mtbl* mti =
new Mtbl(mg) ;
259 *mti = (cvi->r) * (cvi->sint) * (cvi->sinp) ;
269Mtbl* map_et_fait_z(
const Map* cvi) {
272 const Mg3d* mg = cvi->
get_mg() ;
275 Mtbl* mti =
new Mtbl(mg) ;
277 *mti = (cvi->r) * (cvi->cost) ;
287Mtbl* map_et_fait_xa(
const Map* cvi) {
290 const Mg3d* mg = cvi->
get_mg() ;
293 Mtbl* mti =
new Mtbl(mg) ;
295 double r_phi = cvi->get_rot_phi() ;
296 double t_x = cvi->get_ori_x() ;
298 if ( fabs(r_phi) < 1.e-14 ) {
299 *mti = (cvi->x) + t_x ;
301 else if ( fabs(r_phi - M_PI) < 1.e-14 ) {
302 *mti = - (cvi->x) + t_x ;
305 Mtbl phi = cvi->phi + r_phi ;
306 *mti = (cvi->r) * (cvi->sint) *
cos(phi) + t_x ;
317Mtbl* map_et_fait_ya(
const Map* cvi) {
320 const Mg3d* mg = cvi->
get_mg() ;
323 Mtbl* mti =
new Mtbl(mg) ;
325 double r_phi = cvi->get_rot_phi() ;
326 double t_y = cvi->get_ori_y() ;
328 if ( fabs(r_phi) < 1.e-14 ) {
329 *mti = (cvi->y) + t_y ;
331 else if ( fabs(r_phi - M_PI) < 1.e-14 ) {
332 *mti = - (cvi->y) + t_y ;
335 Mtbl phi = cvi->phi + r_phi ;
336 *mti = (cvi->r) * (cvi->sint) *
sin(phi) + t_y ;
347Mtbl* map_et_fait_za(
const Map* cvi) {
350 const Mg3d* mg = cvi->
get_mg() ;
352 double t_z = cvi->get_ori_z() ;
355 Mtbl* mti =
new Mtbl(mg) ;
357 *mti = (cvi->r) * (cvi->cost) + t_z ;
367Mtbl* map_et_fait_sint(
const Map* cvi) {
370 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
371 const Mg3d* mg = cv->
get_mg() ;
375 Mtbl* mti =
new Mtbl(mg) ;
376 mti->set_etat_qcq() ;
378 for (
int l=0 ; l<nz ; l++) {
379 int nr = mg->get_nr(l);
380 int nt = mg->get_nt(l);
381 int np = mg->get_np(l);
382 const Grille3d* g = mg->get_grille3d(l) ;
383 Tbl* tb = (mti->t)[l] ;
385 double* p_r = tb->t ;
386 for (
int k=0 ; k<np ; k++) {
387 for (
int j=0 ; j<nt ; j++) {
388 for (
int i=0 ; i<nr ; i++) {
389 *p_r =
sin(g->tet[j]) ;
400Mtbl* map_et_fait_cost(
const Map* cvi) {
403 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
404 const Mg3d* mg = cv->
get_mg() ;
408 Mtbl* mti =
new Mtbl(mg) ;
409 mti->set_etat_qcq() ;
411 for (
int l=0 ; l<nz ; l++) {
412 int nr = mg->get_nr(l);
413 int nt = mg->get_nt(l);
414 int np = mg->get_np(l);
415 const Grille3d* g = mg->get_grille3d(l) ;
416 Tbl* tb = (mti->t)[l] ;
418 double* p_r = tb->t ;
419 for (
int k=0 ; k<np ; k++) {
420 for (
int j=0 ; j<nt ; j++) {
421 for (
int i=0 ; i<nr ; i++) {
422 *p_r =
cos(g->tet[j]) ;
433Mtbl* map_et_fait_sinp(
const Map* cvi) {
436 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
437 const Mg3d* mg = cv->
get_mg() ;
441 Mtbl* mti =
new Mtbl(mg) ;
442 mti->set_etat_qcq() ;
444 for (
int l=0 ; l<nz ; l++) {
445 int nr = mg->get_nr(l);
446 int nt = mg->get_nt(l);
447 int np = mg->get_np(l);
448 const Grille3d* g = mg->get_grille3d(l) ;
449 Tbl* tb = (mti->t)[l] ;
451 double* p_r = tb->t ;
452 for (
int k=0 ; k<np ; k++) {
453 for (
int j=0 ; j<nt ; j++) {
454 for (
int i=0 ; i<nr ; i++) {
455 *p_r =
sin(g->phi[k]) ;
466Mtbl* map_et_fait_cosp(
const Map* cvi) {
469 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
470 const Mg3d* mg = cv->
get_mg() ;
474 Mtbl* mti =
new Mtbl(mg) ;
475 mti->set_etat_qcq() ;
477 for (
int l=0 ; l<nz ; l++) {
478 int nr = mg->get_nr(l);
479 int nt = mg->get_nt(l);
480 int np = mg->get_np(l);
481 const Grille3d* g = mg->get_grille3d(l) ;
482 Tbl* tb = (mti->t)[l] ;
484 double* p_r = tb->t ;
485 for (
int k=0 ; k<np ; k++) {
486 for (
int j=0 ; j<nt ; j++) {
487 for (
int i=0 ; i<nr ; i++) {
488 *p_r =
cos(g->phi[k]) ;
505Mtbl* map_et_fait_xsr(
const Map* cvi) {
508 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
509 const Mg3d* mg = cv->
get_mg() ;
513 Mtbl* mti =
new Mtbl(mg) ;
514 mti->set_etat_qcq() ;
517 const double* alpha = cv->alpha ;
518 const double* beta = cv->beta ;
519 const Valeur& ff = cv->ff ;
520 const Valeur& gg = cv->gg ;
521 const Tbl& asx = cv->aasx ;
522 const Tbl& bsx = cv->bbsx ;
523 const Tbl& asxm1 = cv->zaasx ;
525 for (
int l=0 ; l<nz ; l++) {
526 int nr = mg->get_nr(l);
527 int nt = mg->get_nt(l) ;
528 int np = mg->get_np(l) ;
529 const Grille3d* g = mg->get_grille3d(l) ;
531 const Tbl& aa = *((cv->aa)[l]) ;
532 const Tbl& bb = *((cv->bb)[l]) ;
534 Tbl* tb = (mti->t)[l] ;
536 double* p_r = tb->t ;
538 switch(mg->get_type_r(l)) {
542 for (
int k=0 ; k<np ; k++) {
543 for (
int j=0 ; j<nt ; j++) {
544 for (
int i=0 ; i<nr ; i++) {
545 *p_r = 1. / ( alpha[l] * ( 1. + asx(i) * ff(l, k, j, 0)
546 + bsx(i) * gg(l, k, j, 0)
556 for (
int k=0 ; k<np ; k++) {
557 for (
int j=0 ; j<nt ; j++) {
558 for (
int i=0 ; i<nr ; i++) {
559 *p_r = 1. / ( alpha[l] * ( (g->x)[i]
560 + aa(i) * ff(l, k, j, 0)
561 + bb(i) * gg(l, k, j, 0)
571 assert(beta[l] == - alpha[l]) ;
572 for (
int k=0 ; k<np ; k++) {
573 for (
int j=0 ; j<nt ; j++) {
574 for (
int i=0 ; i<nr ; i++) {
575 *p_r = 1. / ( alpha[l] * ( 1.
576 + asxm1(i) * ff(l, k, j, 0)
586 cout <<
"map_et_fait_xsr: unknown type_r !" << endl ;
int get_nzone() const
Returns the number of domains.
const Mg3d * get_mg() const
Gives the Mg3d on which the Mtbl is defined.
Cmp sin(const Cmp &)
Sine.
Cmp cos(const Cmp &)
Cosine.