23char map_log_fait_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Map/map_log_fait.C,v 1.3 2014/10/13 08:53:05 j_novak Exp $" ;
74 for (
int l=0 ; l<nz ; l++) {
79 Tbl* tb = (mti->
t)[l] ;
83 switch (type_var(l)) {
88 for (k=0 ; k<ip ; k++) {
89 for (j=0 ; j<it ; j++) {
90 for (i=0 ; i<ir ; i++) {
91 *p_r = alpha(l) * (g->
x)[i] + beta(l) ;
99 for (k=0 ; k<ip ; k++) {
100 for (j=0 ; j<it ; j++) {
101 for (i=0 ; i<ir ; i++) {
102 *p_r = 1./(alpha(l) * (g->
x)[i] + beta(l)) ;
110 cout <<
"Map_log_fait_r: unknown type_r !\n" ;
121 for (k=0 ; k<ip ; k++) {
122 for (j=0 ; j<it ; j++) {
123 for (i=0 ; i<ir ; i++) {
124 *p_r =
exp(alpha(l) * (g->
x)[i] + beta(l)) ;
131 cout <<
"Map_log_fait_r: unknown type_r !\n" ;
139 cout <<
"Map_log_fait_r: unknown type_r !\n" ;
155Mtbl* map_log_fait_tet(
const Map* cvi) {
167 for (
int l=0 ; l<nz ; l++) {
172 Tbl* tb = (mti->
t)[l] ;
174 double* p_r = tb->
t ;
175 for (k=0 ; k<ip ; k++) {
176 for (j=0 ; j<it ; j++) {
177 for (i=0 ; i<ir ; i++) {
193Mtbl* map_log_fait_phi(
const Map* cvi) {
196 const Map_log* cv =
static_cast<const Map_log*
>(cvi) ;
197 const Mg3d* mg = cv->get_mg() ;
201 Mtbl* mti =
new Mtbl(mg) ;
202 mti->set_etat_qcq() ;
205 for (
int l=0 ; l<nz ; l++) {
206 int ir = mg->get_nr(l);
207 int it = mg->get_nt(l);
208 int ip = mg->get_np(l);
209 const Grille3d* g = mg->get_grille3d(l) ;
210 Tbl* tb = (mti->t)[l] ;
212 double* p_r = tb->t ;
213 for (k=0 ; k<ip ; k++) {
214 for (j=0 ; j<it ; j++) {
215 for (i=0 ; i<ir ; i++) {
231Mtbl* map_log_fait_x(
const Map* cvi) {
234 const Mg3d* mg = cvi->
get_mg() ;
237 Mtbl* mti =
new Mtbl(mg) ;
239 *mti = (cvi->r) * (cvi->sint) * (cvi->cosp) ;
249Mtbl* map_log_fait_y(
const Map* cvi) {
252 const Mg3d* mg = cvi->
get_mg() ;
255 Mtbl* mti =
new Mtbl(mg) ;
257 *mti = (cvi->r) * (cvi->sint) * (cvi->sinp) ;
267Mtbl* map_log_fait_z(
const Map* cvi) {
270 const Mg3d* mg = cvi->
get_mg() ;
273 Mtbl* mti =
new Mtbl(mg) ;
275 *mti = (cvi->r) * (cvi->cost) ;
285Mtbl* map_log_fait_xa(
const Map* cvi) {
288 const Mg3d* mg = cvi->
get_mg() ;
291 Mtbl* mti =
new Mtbl(mg) ;
293 double r_phi = cvi->get_rot_phi() ;
294 double t_x = cvi->get_ori_x() ;
296 if ( fabs(r_phi) < 1.e-14 ) {
297 *mti = (cvi->x) + t_x ;
299 else if ( fabs(r_phi - M_PI) < 1.e-14 ) {
300 *mti = - (cvi->x) + t_x ;
303 Mtbl phi = cvi->phi + r_phi ;
304 *mti = (cvi->r) * (cvi->sint) *
cos(phi) + t_x ;
315Mtbl* map_log_fait_ya(
const Map* cvi) {
318 const Mg3d* mg = cvi->
get_mg() ;
321 Mtbl* mti =
new Mtbl(mg) ;
323 double r_phi = cvi->get_rot_phi() ;
324 double t_y = cvi->get_ori_y() ;
326 if ( fabs(r_phi) < 1.e-14 ) {
327 *mti = (cvi->y) + t_y ;
329 else if ( fabs(r_phi - M_PI) < 1.e-14 ) {
330 *mti = - (cvi->y) + t_y ;
333 Mtbl phi = cvi->phi + r_phi ;
334 *mti = (cvi->r) * (cvi->sint) *
sin(phi) + t_y ;
345Mtbl* map_log_fait_za(
const Map* cvi) {
348 const Mg3d* mg = cvi->
get_mg() ;
350 double t_z = cvi->get_ori_z() ;
353 Mtbl* mti =
new Mtbl(mg) ;
355 *mti = (cvi->r) * (cvi->cost) + t_z ;
365Mtbl* map_log_fait_sint(
const Map* cvi) {
368 const Map_log* cv =
static_cast<const Map_log*
>(cvi) ;
369 const Mg3d* mg = cv->
get_mg() ;
373 Mtbl* mti =
new Mtbl(mg) ;
374 mti->set_etat_qcq() ;
377 for (
int l=0 ; l<nz ; l++) {
378 int ir = mg->get_nr(l);
379 int it = mg->get_nt(l);
380 int ip = mg->get_np(l);
381 const Grille3d* g = mg->get_grille3d(l) ;
382 Tbl* tb = (mti->t)[l] ;
384 double* p_r = tb->t ;
385 for (k=0 ; k<ip ; k++) {
386 for (j=0 ; j<it ; j++) {
387 for (i=0 ; i<ir ; i++) {
388 *p_r =
sin(g->tet[j]) ;
399Mtbl* map_log_fait_cost(
const Map* cvi) {
402 const Map_log* cv =
static_cast<const Map_log*
>(cvi) ;
403 const Mg3d* mg = cv->
get_mg() ;
407 Mtbl* mti =
new Mtbl(mg) ;
408 mti->set_etat_qcq() ;
411 for (
int l=0 ; l<nz ; l++) {
412 int ir = mg->get_nr(l);
413 int it = mg->get_nt(l);
414 int ip = 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 (k=0 ; k<ip ; k++) {
420 for (j=0 ; j<it ; j++) {
421 for (i=0 ; i<ir ; i++) {
422 *p_r =
cos(g->tet[j]) ;
433Mtbl* map_log_fait_sinp(
const Map* cvi) {
436 const Map_log* cv =
static_cast<const Map_log*
>(cvi) ;
437 const Mg3d* mg = cv->
get_mg() ;
441 Mtbl* mti =
new Mtbl(mg) ;
442 mti->set_etat_qcq() ;
445 for (
int l=0 ; l<nz ; l++) {
446 int ir = mg->get_nr(l);
447 int it = mg->get_nt(l);
448 int ip = mg->get_np(l);
449 const Grille3d* g = mg->get_grille3d(l) ;
450 Tbl* tb = (mti->t)[l] ;
452 double* p_r = tb->t ;
453 for (k=0 ; k<ip ; k++) {
454 for (j=0 ; j<it ; j++) {
455 for (i=0 ; i<ir ; i++) {
456 *p_r =
sin(g->phi[k]) ;
467Mtbl* map_log_fait_cosp(
const Map* cvi) {
470 const Map_log* cv =
static_cast<const Map_log*
>(cvi) ;
471 const Mg3d* mg = cv->
get_mg() ;
475 Mtbl* mti =
new Mtbl(mg) ;
476 mti->set_etat_qcq() ;
479 for (
int l=0 ; l<nz ; l++) {
480 int ir = mg->get_nr(l);
481 int it = mg->get_nt(l);
482 int ip = mg->get_np(l);
483 const Grille3d* g = mg->get_grille3d(l) ;
484 Tbl* tb = (mti->t)[l] ;
486 double* p_r = tb->t ;
487 for (k=0 ; k<ip ; k++) {
488 for (j=0 ; j<it ; j++) {
489 for (i=0 ; i<ir ; i++) {
490 *p_r =
cos(g->phi[k]) ;
507Mtbl* map_log_fait_xsr(
const Map* cvi) {
510 const Map_log* cv =
static_cast<const Map_log*
>(cvi) ;
511 const Mg3d* mg = cv->
get_mg() ;
515 Mtbl* mti =
new Mtbl(mg) ;
516 mti->set_etat_qcq() ;
519 Tbl alpha = cv->alpha ;
520 Tbl beta = cv->beta ;
521 Itbl type_var = cv->type_var ;
524 for (
int l=0 ; l<nz ; l++) {
525 int ir = mg->get_nr(l);
526 int it = mg->get_nt(l) ;
527 int ip = mg->get_np(l) ;
528 const Grille3d* g = mg->get_grille3d(l) ;
529 Tbl* tb = (mti->t)[l] ;
531 double* p_r = tb->t ;
533 switch (type_var(l)) {
536 switch(mg->get_type_r(l)) {
539 for (k=0 ; k<ip ; k++) {
540 for (j=0 ; j<it ; j++) {
541 for (i=0 ; i<ir ; i++) {
542 *p_r = 1. / alpha(l) ;
550 for (k=0 ; k<ip ; k++) {
551 for (j=0 ; j<it ; j++) {
552 for (i=0 ; i<ir ; i++) {
553 *p_r = 1. / ( alpha(l) * (g->x)[i] + beta(l) ) ;
561 for (k=0 ; k<ip ; k++) {
562 for (j=0 ; j<it ; j++) {
563 for (i=0 ; i<ir ; i++) {
564 *p_r = 1. / alpha(l) ;
572 cout <<
"map_log_fait_xsr: unknown type_r !" << endl ;
580 switch (mg->get_type_r(l)) {
582 for (k=0 ; k<ip ; k++) {
583 for (j=0 ; j<it ; j++) {
584 for (i=0 ; i<ir ; i++) {
585 *p_r = 1. /
exp( alpha(l) * (g->x)[i] + beta(l) ) ;
593 cout <<
"map_log_fait_xsr: unknown type_r !" << endl ;
601 cout <<
"map_log_fait_xsr: unknown type_r !" << endl ;
616Mtbl* map_log_fait_dxdr(
const Map* cvi) {
619 const Map_log* cv =
static_cast<const Map_log*
>(cvi) ;
620 const Mg3d* mg = cv->
get_mg() ;
624 Mtbl* mti =
new Mtbl(mg) ;
625 mti->set_etat_qcq() ;
628 Tbl alpha = cv->alpha ;
629 Tbl beta = cv->beta ;
630 Itbl type_var = cv->type_var ;
633 for (
int l=0 ; l<nz ; l++) {
634 int ir = mg->get_nr(l);
635 int it = mg->get_nt(l) ;
636 int ip = mg->get_np(l) ;
637 const Grille3d* g = mg->get_grille3d(l) ;
638 Tbl* tb = (mti->t)[l] ;
640 double* p_r = tb->t ;
642 switch (type_var(l)) {
644 switch(mg->get_type_r(l)) {
647 for (k=0 ; k<ip ; k++) {
648 for (j=0 ; j<it ; j++) {
649 for (i=0 ; i<ir ; i++) {
650 *p_r = 1. / alpha(l) ;
659 for (k=0 ; k<ip ; k++) {
660 for (j=0 ; j<it ; j++) {
661 for (i=0 ; i<ir ; i++) {
662 *p_r = - 1. / alpha(l) ;
670 cout <<
"map_log_fait_dxdr: unknown type_r !" << endl ;
677 switch(mg->get_type_r(l)) {
679 for (k=0 ; k<ip ; k++) {
680 for (j=0 ; j<it ; j++) {
681 for (i=0 ; i<ir ; i++) {
682 *p_r = 1./ (alpha(l) *
exp(alpha(l) * (g->x)[i] + beta(l))) ;
690 cout <<
"map_log_fait_dxdr: unknown type_r !" << endl ;
697 cout <<
"map_log_fait_dxdr: unknown type_r !" << endl ;
714Mtbl* map_log_fait_drdt(
const Map* cvi) {
717 const Mg3d* mg = cvi->
get_mg() ;
720 Mtbl* mti =
new Mtbl(mg) ;
721 mti->set_etat_zero() ;
732Mtbl* map_log_fait_stdrdp(
const Map* cvi) {
735 const Mg3d* mg = cvi->
get_mg() ;
738 Mtbl* mti =
new Mtbl(mg) ;
739 mti->set_etat_zero() ;
750Mtbl* map_log_fait_srdrdt(
const Map* cvi) {
753 const Mg3d* mg = cvi->
get_mg() ;
756 Mtbl* mti =
new Mtbl(mg) ;
757 mti->set_etat_zero() ;
768Mtbl* map_log_fait_srstdrdp(
const Map* cvi) {
771 const Mg3d* mg = cvi->
get_mg() ;
774 Mtbl* mti =
new Mtbl(mg) ;
775 mti->set_etat_zero() ;
786Mtbl* map_log_fait_sr2drdt(
const Map* cvi) {
789 const Mg3d* mg = cvi->
get_mg() ;
792 Mtbl* mti =
new Mtbl(mg) ;
793 mti->set_etat_zero() ;
804Mtbl* map_log_fait_sr2stdrdp(
const Map* cvi) {
807 const Mg3d* mg = cvi->
get_mg() ;
810 Mtbl* mti =
new Mtbl(mg) ;
811 mti->set_etat_zero() ;
822Mtbl* map_log_fait_d2rdx2(
const Map* cvi) {
824 const Map_log* cv =
static_cast<const Map_log*
>(cvi) ;
825 const Mg3d* mg = cv->
get_mg() ;
829 Mtbl* mti =
new Mtbl(mg) ;
830 mti->set_etat_qcq() ;
833 Tbl alpha = cv->alpha ;
834 Tbl beta = cv->beta ;
835 Itbl type_var = cv->type_var ;
838 for (
int l=0 ; l<nz ; l++) {
839 int ir = mg->get_nr(l);
840 int it = mg->get_nt(l) ;
841 int ip = mg->get_np(l) ;
842 const Grille3d* g = mg->get_grille3d(l) ;
843 Tbl* tb = (mti->t)[l] ;
845 double* p_r = tb->t ;
847 switch (type_var(l)) {
849 switch(mg->get_type_r(l)) {
851 case RARE:
case FIN :
case UNSURR:
852 for (k=0 ; k<ip ; k++) {
853 for (j=0 ; j<it ; j++) {
854 for (i=0 ; i<ir ; i++) {
863 cout <<
"map_log_fait_d2rdx2: unknown type_r !" << endl ;
870 switch(mg->get_type_r(l)) {
872 for (k=0 ; k<ip ; k++) {
873 for (j=0 ; j<it ; j++) {
874 for (i=0 ; i<ir ; i++) {
875 *p_r =
exp (alpha(l) * (g->x)[i] + beta(l)) *
884 cout <<
"map_log_fait_d2rdx2: unknown type_r !" << endl ;
890 cout <<
"map_log_fait_d2rdx2: unknown type_r !" << endl ;
905Mtbl* map_log_fait_lapr_tp(
const Map* cvi) {
908 const Mg3d* mg = cvi->
get_mg() ;
911 Mtbl* mti =
new Mtbl(mg) ;
912 mti->set_etat_zero() ;
923Mtbl* map_log_fait_d2rdtdx(
const Map* cvi) {
926 const Mg3d* mg = cvi->
get_mg() ;
929 Mtbl* mti =
new Mtbl(mg) ;
930 mti->set_etat_zero() ;
941Mtbl* map_log_fait_sstd2rdpdx(
const Map* cvi) {
944 const Mg3d* mg = cvi->
get_mg() ;
947 Mtbl* mti =
new Mtbl(mg) ;
948 mti->set_etat_zero() ;
959Mtbl* map_log_fait_sr2d2rdt2(
const Map* cvi) {
962 const Mg3d* mg = cvi->
get_mg() ;
965 Mtbl* mti =
new Mtbl(mg) ;
966 mti->set_etat_zero() ;
977Mtbl* map_log_fait_dxdlnr(
const Map* cvi) {
980 const Map_log* cv =
static_cast<const Map_log*
>(cvi) ;
981 const Mg3d* mg = cv->
get_mg() ;
985 Mtbl* mti =
new Mtbl(mg) ;
986 mti->set_etat_qcq() ;
989 Tbl alpha = cv->alpha ;
990 Tbl beta = cv->beta ;
991 Itbl type_var = cv->type_var ;
994 for (
int l=0 ; l<nz ; l++) {
995 int ir = mg->get_nr(l);
996 int it = mg->get_nt(l) ;
997 int ip = mg->get_np(l) ;
998 Tbl* tb = (mti->t)[l] ;
1000 double* p_r = tb->t ;
1002 switch (type_var(l)) {
1004 switch(mg->get_type_r(l)) {
1006 case RARE:
case FIN:
1007 for (k=0 ; k<ip ; k++) {
1008 for (j=0 ; j<it ; j++) {
1009 for (i=0 ; i<ir ; i++) {
1010 *p_r = 1. / alpha(l) ;
1019 for (k=0 ; k<ip ; k++) {
1020 for (j=0 ; j<it ; j++) {
1021 for (i=0 ; i<ir ; i++) {
1022 *p_r = - 1. / alpha(l) ;
1030 cout <<
"map_log_fait_dxdr: unknown type_r !" << endl ;
1037 switch(mg->get_type_r(l)) {
1039 for (k=0 ; k<ip ; k++) {
1040 for (j=0 ; j<it ; j++) {
1041 for (i=0 ; i<ir ; i++) {
1042 *p_r = 1./ alpha(l) ;
1050 cout <<
"map_log_fait_dxdr: unknown type_r !" << endl ;
1057 cout <<
"map_log_fait_dxdr: unknown type_r !" << endl ;
3D grid class in one domain.
double * x
Array of values of at the nr collocation points.
double * tet
Array of values of at the nt collocation points.
Basic integer array class.
Logarithmic radial mapping.
Itbl type_var
Array (size: mg->nzone ) of the type of variable in each domain.
Tbl alpha
Array (size: mg->nzone ) of the values of in each domain.
Tbl beta
Array (size: mg->nzone ) of the values of in each domain.
Base class for coordinate mappings.
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
const Grille3d * get_grille3d(int l) const
Returns a pointer on the 3D mono-grid for domain no. l.
int get_np(int l) const
Returns the number of points in the azimuthal direction ( ) in domain no. l.
int get_nt(int l) const
Returns the number of points in the co-latitude direction ( ) in domain no. l.
int get_nzone() const
Returns the number of domains.
int get_nr(int l) const
Returns the number of points in the radial direction ( ) in domain no. l.
int get_type_r(int l) const
Returns the type of sampling in the radial direction in domain no.
const Mg3d * get_mg() const
Gives the Mg3d on which the Mtbl is defined.
Tbl ** t
Array (size nzone ) of pointers on the Tbl 's.
void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
double * t
The array of double.
Cmp exp(const Cmp &)
Exponential.
Cmp sin(const Cmp &)
Sine.
Cmp cos(const Cmp &)
Cosine.