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 $" ;
61 const Mg3d* mg = cv->get_mg() ;
74 for (
int l=0 ; l<nz ; l++) {
79 Tbl* tb = (mti->
t)[l] ;
88 for (k=0 ; k<ip ; k++) {
89 for (j=0 ; j<it ; j++) {
90 for (i=0 ; i<ir ; i++) {
99 for (k=0 ; k<ip ; k++) {
100 for (j=0 ; j<it ; j++) {
101 for (i=0 ; i<ir ; i++) {
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++) {
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) {
159 const Mg3d* mg = cv->get_mg() ;
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) {
197 const Mg3d* mg = cv->get_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() ;
239 *mti = (cvi->r) * (cvi->sint) * (cvi->cosp) ;
249Mtbl* map_log_fait_y(
const Map* cvi) {
252 const Mg3d* mg = cvi->get_mg() ;
257 *mti = (cvi->r) * (cvi->sint) * (cvi->sinp) ;
267Mtbl* map_log_fait_z(
const Map* cvi) {
270 const Mg3d* mg = cvi->get_mg() ;
275 *mti = (cvi->r) * (cvi->cost) ;
285Mtbl* map_log_fait_xa(
const Map* cvi) {
288 const Mg3d* mg = cvi->get_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 ;
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() ;
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 ;
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() ;
355 *mti = (cvi->r) * (cvi->cost) + t_z ;
365Mtbl* map_log_fait_sint(
const Map* cvi) {
369 const Mg3d* mg = cv->get_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) {
403 const Mg3d* mg = cv->get_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) {
437 const Mg3d* mg = cv->get_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) {
471 const Mg3d* mg = cv->get_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) {
511 const Mg3d* mg = cv->get_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) {
620 const Mg3d* mg = cv->get_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() ;
721 mti->set_etat_zero() ;
732Mtbl* map_log_fait_stdrdp(
const Map* cvi) {
735 const Mg3d* mg = cvi->get_mg() ;
739 mti->set_etat_zero() ;
750Mtbl* map_log_fait_srdrdt(
const Map* cvi) {
753 const Mg3d* mg = cvi->get_mg() ;
757 mti->set_etat_zero() ;
768Mtbl* map_log_fait_srstdrdp(
const Map* cvi) {
771 const Mg3d* mg = cvi->get_mg() ;
775 mti->set_etat_zero() ;
786Mtbl* map_log_fait_sr2drdt(
const Map* cvi) {
789 const Mg3d* mg = cvi->get_mg() ;
793 mti->set_etat_zero() ;
804Mtbl* map_log_fait_sr2stdrdp(
const Map* cvi) {
807 const Mg3d* mg = cvi->get_mg() ;
811 mti->set_etat_zero() ;
822Mtbl* map_log_fait_d2rdx2(
const Map* cvi) {
825 const Mg3d* mg = cv->get_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() ;
912 mti->set_etat_zero() ;
923Mtbl* map_log_fait_d2rdtdx(
const Map* cvi) {
926 const Mg3d* mg = cvi->get_mg() ;
930 mti->set_etat_zero() ;
941Mtbl* map_log_fait_sstd2rdpdx(
const Map* cvi) {
944 const Mg3d* mg = cvi->get_mg() ;
948 mti->set_etat_zero() ;
959Mtbl* map_log_fait_sr2d2rdt2(
const Map* cvi) {
962 const Mg3d* mg = cvi->get_mg() ;
966 mti->set_etat_zero() ;
977Mtbl* map_log_fait_dxdlnr(
const Map* cvi) {
981 const Mg3d* mg = cv->get_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.
Map_log(const Mg3d &mgrille, const Tbl &r_limits, const Itbl &typevar)
Standard Constructor.
friend Mtbl * map_log_fait_r(const Map *)
< Not implemented
Tbl beta
Array (size: mg->nzone ) of the values of in each domain.
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.
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.
Map(const Mg3d &)
Constructor from a multi-domain 3D grid.
Coord phi
coordinate centered on the grid