map_af_fait.C

00001 /*
00002  *   Copyright (c) 1999-2000 Jean-Alain Marck
00003  *   Copyright (c) 1999-2003 Eric Gourgoulhon
00004  *
00005  *   This file is part of LORENE.
00006  *
00007  *   LORENE is free software; you can redistribute it and/or modify
00008  *   it under the terms of the GNU General Public License as published by
00009  *   the Free Software Foundation; either version 2 of the License, or
00010  *   (at your option) any later version.
00011  *
00012  *   LORENE is distributed in the hope that it will be useful,
00013  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  *   GNU General Public License for more details.
00016  *
00017  *   You should have received a copy of the GNU General Public License
00018  *   along with LORENE; if not, write to the Free Software
00019  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00020  *
00021  */
00022 
00023 
00024 char map_af_fait_C[] = "$Header: /cvsroot/Lorene/C++/Source/Map/map_af_fait.C,v 1.10 2012/01/24 14:59:12 j_novak Exp $" ;
00025 
00026 /*
00027  * $Id: map_af_fait.C,v 1.10 2012/01/24 14:59:12 j_novak Exp $
00028  * $Log: map_af_fait.C,v $
00029  * Revision 1.10  2012/01/24 14:59:12  j_novak
00030  * Removed functions XXX_fait_xi()
00031  *
00032  * Revision 1.9  2012/01/17 10:33:02  j_penner
00033  * added a routine to construct the computational coordinate xi
00034  *
00035  * Revision 1.8  2008/10/03 09:05:29  j_novak
00036  * Improved the treatment of angular mapping in the computation of xsr
00037  *
00038  * Revision 1.7  2007/12/20 09:11:04  jl_cornou
00039  * Correction of an error in op_sxpun about Jacobi(0,2) polynomials
00040  *
00041  * Revision 1.6  2007/12/14 10:19:30  jl_cornou
00042  * *** empty log message ***
00043  *
00044  * Revision 1.5  2007/12/11 15:28:14  jl_cornou
00045  * Jacobi(0,2) polynomials partially implemented
00046  *
00047  * Revision 1.4  2006/06/09 14:58:48  j_novak
00048  * Added a hack in the case of pure angular grid for the Coord xsr in the shells.
00049  *
00050  * Revision 1.3  2003/10/15 10:34:46  e_gourgoulhon
00051  * Added new Coord's: drdt and stdrdp.
00052  *
00053  * Revision 1.2  2002/10/16 14:36:41  j_novak
00054  * Reorganization of #include instructions of standard C++, in order to
00055  * use experimental version 3 of gcc.
00056  *
00057  * Revision 1.1.1.1  2001/11/20 15:19:27  e_gourgoulhon
00058  * LORENE
00059  *
00060  * Revision 2.6  1999/10/15  09:16:38  eric
00061  * Changement prototypes: const.
00062  *
00063  * Revision 2.5  1999/10/14  14:27:26  eric
00064  * const.
00065  *
00066  * Revision 2.4  1999/09/30  12:56:10  eric
00067  * const Grille3d*
00068  *
00069  * Revision 2.3  1999/04/09  12:59:21  phil
00070  * correction de map_af_fait_dxdr
00071  *
00072  * Revision 2.2  1999/03/04  15:22:53  eric
00073  * *** empty log message ***
00074  *
00075  * Revision 2.1  1999/03/04  13:12:03  eric
00076  * Ajout des derivees du changement de variable
00077  *
00078  * Revision 2.0  1999/02/15  10:42:45  hyc
00079  * *** empty log message ***
00080  *
00081  * Revision 2.1  1999/02/15  09:59:50  hyc
00082  * *** empty log message ***
00083  *
00084  * Revision 2.0  1999/01/15  09:10:39  hyc
00085  * *** empty log message ***
00086  *
00087  *
00088  * $Header: /cvsroot/Lorene/C++/Source/Map/map_af_fait.C,v 1.10 2012/01/24 14:59:12 j_novak Exp $
00089  *
00090  */
00091 
00092 // Includes
00093 #include <assert.h>
00094 #include <stdlib.h>
00095 #include <math.h>
00096 
00097 #include "mtbl.h"
00098 #include "map.h"
00099 #include "proto.h"
00100 
00101             //----------------//
00102             // Coord. radiale //
00103             //----------------//
00104 
00105 Mtbl* map_af_fait_r(const Map* cvi) {
00106 
00107     // recup du changement de variable
00108     const Map_af* cv = static_cast<const Map_af*>(cvi) ;
00109     const Mg3d* mg = cv->get_mg() ;
00110     int nz = mg->get_nzone() ;
00111     
00112     // Le resultat
00113     Mtbl* mti = new Mtbl(mg) ;
00114     mti->set_etat_qcq() ;
00115     
00116     // Pour le confort
00117     double* alpha = cv->alpha ;
00118     double* beta = cv->beta ;
00119     
00120     int i, j, k ;
00121     for (int l=0 ; l<nz ; l++) {
00122     int ir = mg->get_nr(l);
00123     int it = mg->get_nt(l) ;
00124     int ip = mg->get_np(l) ;
00125     const Grille3d* g = mg->get_grille3d(l) ;
00126     Tbl* tb = (mti->t)[l] ;
00127     tb->set_etat_qcq() ;
00128     double* p_r = tb->t ;
00129     
00130     switch(mg->get_type_r(l)) {
00131         case FIN: case RARE: case FINJAC :
00132         for (k=0 ; k<ip ; k++) {
00133         for (j=0 ; j<it ; j++) {
00134             for (i=0 ; i<ir ; i++) {
00135             *p_r = alpha[l] * (g->x)[i] + beta[l] ;
00136             p_r++ ;
00137             }       // Fin de boucle sur r
00138         }   // Fin de boucle sur theta
00139         }       // Fin de boucle sur phi
00140         break ;
00141         
00142         case UNSURR:
00143         for (k=0 ; k<ip ; k++) {
00144         for (j=0 ; j<it ; j++) {
00145             for (i=0 ; i<ir ; i++) {
00146             *p_r = 1./(alpha[l] * (g->x)[i] + beta[l]) ;
00147             p_r++ ;
00148             }       // Fin de boucle sur r
00149         }   // Fin de boucle sur theta
00150         }       // Fin de boucle sur phi
00151         break ;
00152         
00153         default:
00154         cout << "Map_af_fait_r: unknown type_r !\n" ;
00155         abort () ;
00156         exit(-1) ;
00157         
00158     }       // Fin du switch
00159     }           // Fin de boucle sur zone
00160     
00161     // Termine
00162     return mti ;
00163 }
00164 
00165             //--------------//
00166             // Coord. Theta //
00167             //--------------//
00168 
00169 Mtbl* map_af_fait_tet(const Map* cvi) {
00170 
00171     // recup du changement de variable
00172     const Map_af* cv = static_cast<const Map_af*>(cvi) ;
00173     const Mg3d* mg = cv->get_mg() ;
00174     int nz = mg->get_nzone() ;
00175         
00176     // Le resultat
00177     Mtbl* mti = new Mtbl(mg) ;
00178     mti->set_etat_qcq() ;
00179     
00180     int i, j, k ;
00181     for (int l=0 ; l<nz ; l++) {
00182     int ir = mg->get_nr(l);
00183     int it = mg->get_nt(l);
00184     int ip = mg->get_np(l);
00185     const Grille3d* g = mg->get_grille3d(l) ;
00186     Tbl* tb = (mti->t)[l] ;
00187     tb->set_etat_qcq() ;
00188     double* p_r = tb->t ;
00189     for (k=0 ; k<ip ; k++) {
00190         for (j=0 ; j<it ; j++) {
00191         for (i=0 ; i<ir ; i++) {
00192             *p_r = (g->tet)[j] ;
00193             p_r++ ;
00194         }   // Fin de boucle sur r
00195         }   // Fin de boucle sur theta
00196     }   // Fin de boucle sur phi
00197     }   // Fin de boucle sur zone
00198 
00199     // Termine
00200     return mti ;    
00201 }
00202 
00203             //------------//
00204             // Coord. Phi //
00205             //------------//
00206 
00207 Mtbl* map_af_fait_phi(const Map* cvi) {
00208 
00209     // recup du changement de variable
00210     const Map_af* cv = static_cast<const Map_af*>(cvi) ;
00211     const Mg3d* mg = cv->get_mg() ;
00212     int nz = mg->get_nzone() ;
00213     
00214     // Le resultat
00215     Mtbl* mti = new Mtbl(mg) ;
00216     mti->set_etat_qcq() ;
00217     
00218     int i, j, k ;
00219     for (int l=0 ; l<nz ; l++) {
00220     int ir = mg->get_nr(l);
00221     int it = mg->get_nt(l);
00222     int ip = mg->get_np(l);
00223     const Grille3d* g = mg->get_grille3d(l) ;
00224     Tbl* tb = (mti->t)[l] ;
00225     tb->set_etat_qcq() ;
00226     double* p_r = tb->t ;
00227     for (k=0 ; k<ip ; k++) {
00228         for (j=0 ; j<it ; j++) {
00229         for (i=0 ; i<ir ; i++) {
00230             *p_r = (g->phi)[k] ;
00231             p_r++ ;
00232         }   // Fin de boucle sur r
00233         }   // Fin de boucle sur theta
00234     }   // Fin de boucle sur phi
00235     }   // Fin de boucle sur zone
00236    
00237     // Termine
00238     return mti ; 
00239 }
00240 
00241             //----------//
00242             // Coord. X //
00243             //----------//
00244 
00245 Mtbl* map_af_fait_x(const Map* cvi) {
00246 
00247     // recup de la grille
00248     const Mg3d* mg = cvi->get_mg() ;
00249     
00250     // Le resultat
00251     Mtbl* mti = new Mtbl(mg) ;
00252     
00253     *mti = (cvi->r) * (cvi->sint) * (cvi->cosp) ;
00254 
00255     // Termine
00256     return mti ;
00257 }
00258 
00259             //----------//
00260             // Coord. Y //
00261             //----------//
00262 
00263 Mtbl* map_af_fait_y(const Map* cvi) {
00264 
00265     // recup de la grille
00266     const Mg3d* mg = cvi->get_mg() ;
00267     
00268     // Le resultat
00269     Mtbl* mti = new Mtbl(mg) ;
00270     
00271     *mti = (cvi->r) * (cvi->sint) * (cvi->sinp) ;
00272    
00273     // Termine
00274     return mti ; 
00275 }
00276 
00277             //----------//
00278             // Coord. Z //
00279             //----------//
00280 
00281 Mtbl* map_af_fait_z(const Map* cvi) {
00282 
00283     // recup de la grille
00284     const Mg3d* mg = cvi->get_mg() ;
00285     
00286     // Le resultat
00287     Mtbl* mti = new Mtbl(mg) ;
00288     
00289     *mti = (cvi->r) * (cvi->cost) ;
00290     
00291     // Termine
00292     return mti ;
00293 }
00294 
00295             //--------------------//
00296             // Coord. X "absolue" //
00297             //--------------------//
00298 
00299 Mtbl* map_af_fait_xa(const Map* cvi) {
00300 
00301     // recup de la grille
00302     const Mg3d* mg = cvi->get_mg() ;
00303     
00304     // Le resultat
00305     Mtbl* mti = new Mtbl(mg) ;
00306     
00307     double r_phi = cvi->get_rot_phi() ; 
00308     double t_x = cvi->get_ori_x() ; 
00309 
00310     if ( fabs(r_phi) < 1.e-14 ) {   
00311     *mti = (cvi->x) + t_x ; 
00312     }
00313     else if ( fabs(r_phi - M_PI) < 1.e-14 ) {
00314     *mti = - (cvi->x) + t_x ;   
00315     }
00316     else {
00317     Mtbl phi = cvi->phi + r_phi ;
00318     *mti = (cvi->r) * (cvi->sint) * cos(phi) + t_x ;
00319     }
00320 
00321     // Termine
00322     return mti ;
00323 }
00324 
00325             //--------------------//
00326             // Coord. Y "absolue" //
00327             //--------------------//
00328 
00329 Mtbl* map_af_fait_ya(const Map* cvi) {
00330 
00331     // recup de la grille
00332     const Mg3d* mg = cvi->get_mg() ;
00333     
00334     // Le resultat
00335     Mtbl* mti = new Mtbl(mg) ;
00336     
00337     double r_phi = cvi->get_rot_phi() ; 
00338     double t_y = cvi->get_ori_y() ; 
00339 
00340     if ( fabs(r_phi) < 1.e-14 ) {   
00341     *mti = (cvi->y) + t_y ; 
00342     }
00343     else if ( fabs(r_phi - M_PI) < 1.e-14 ) {
00344     *mti = - (cvi->y) + t_y ;   
00345     }
00346     else {
00347     Mtbl phi = cvi->phi + r_phi ;
00348     *mti = (cvi->r) * (cvi->sint) * sin(phi) + t_y ;
00349     }
00350 
00351     // Termine
00352     return mti ;
00353 }
00354 
00355             //--------------------//
00356             // Coord. Z "absolue" //
00357             //--------------------//
00358 
00359 Mtbl* map_af_fait_za(const Map* cvi) {
00360 
00361     // recup de la grille
00362     const Mg3d* mg = cvi->get_mg() ;
00363     
00364     double t_z = cvi->get_ori_z() ; 
00365 
00366     // Le resultat
00367     Mtbl* mti = new Mtbl(mg) ;
00368     
00369     *mti = (cvi->r) * (cvi->cost) + t_z ; 
00370 
00371     // Termine
00372     return mti ;       
00373 }
00374 
00375             //---------------//
00376             // Trigonometrie //
00377             //---------------//
00378 
00379 Mtbl* map_af_fait_sint(const Map* cvi) {
00380 
00381     // recup du changement de variable
00382     const Map_af* cv = static_cast<const Map_af*>(cvi) ;
00383     const Mg3d* mg = cv->get_mg() ;
00384     int nz = mg->get_nzone() ;
00385     
00386     // Le resultat
00387     Mtbl* mti = new Mtbl(mg) ;
00388     mti->set_etat_qcq() ;
00389     
00390     int i, j, k ;
00391     for (int l=0 ; l<nz ; l++) {
00392     int ir = mg->get_nr(l);
00393     int it = mg->get_nt(l);
00394     int ip = mg->get_np(l);
00395     const Grille3d* g = mg->get_grille3d(l) ;
00396     Tbl* tb = (mti->t)[l] ;
00397     tb->set_etat_qcq() ;
00398     double* p_r = tb->t ;
00399     for (k=0 ; k<ip ; k++) {
00400         for (j=0 ; j<it ; j++) {
00401         for (i=0 ; i<ir ; i++) {
00402             *p_r = sin(g->tet[j]) ;
00403             p_r++ ;
00404         }   // Fin de boucle sur r
00405         }   // Fin de boucle sur theta
00406     }   // Fin de boucle sur phi
00407     }   // Fin de boucle sur zone
00408     
00409     // Termine
00410     return mti ;
00411 }
00412 
00413 Mtbl* map_af_fait_cost(const Map* cvi) {
00414 
00415     // recup du changement de variable
00416     const Map_af* cv = static_cast<const Map_af*>(cvi) ;
00417     const Mg3d* mg = cv->get_mg() ;
00418     int nz = mg->get_nzone() ;
00419     
00420     // Le resultat
00421     Mtbl* mti = new Mtbl(mg) ;
00422     mti->set_etat_qcq() ;
00423     
00424     int i, j, k ;
00425     for (int l=0 ; l<nz ; l++) {
00426     int ir = mg->get_nr(l);
00427     int it = mg->get_nt(l);
00428     int ip = mg->get_np(l);
00429     const Grille3d* g = mg->get_grille3d(l) ;
00430     Tbl* tb = (mti->t)[l] ;
00431     tb->set_etat_qcq() ;
00432     double* p_r = tb->t ;
00433     for (k=0 ; k<ip ; k++) {
00434         for (j=0 ; j<it ; j++) {
00435         for (i=0 ; i<ir ; i++) {
00436             *p_r = cos(g->tet[j]) ;
00437             p_r++ ;
00438         }   // Fin de boucle sur r
00439         }   // Fin de boucle sur theta
00440     }   // Fin de boucle sur phi
00441     }   // Fin de boucle sur zone
00442     
00443     // Termine
00444     return mti ;
00445 }
00446 
00447 Mtbl* map_af_fait_sinp(const Map* cvi) {
00448 
00449     // recup du changement de variable
00450     const Map_af* cv = static_cast<const Map_af*>(cvi) ;
00451     const Mg3d* mg = cv->get_mg() ;
00452     int nz = mg->get_nzone() ;
00453     
00454     // Le resultat
00455     Mtbl* mti = new Mtbl(mg) ;
00456     mti->set_etat_qcq() ;
00457     
00458     int i, j, k ;
00459     for (int l=0 ; l<nz ; l++) {
00460     int ir = mg->get_nr(l);
00461     int it = mg->get_nt(l);
00462     int ip = mg->get_np(l);
00463     const Grille3d* g = mg->get_grille3d(l) ;
00464     Tbl* tb = (mti->t)[l] ;
00465     tb->set_etat_qcq() ;
00466     double* p_r = tb->t ;
00467     for (k=0 ; k<ip ; k++) {
00468         for (j=0 ; j<it ; j++) {
00469         for (i=0 ; i<ir ; i++) {
00470             *p_r = sin(g->phi[k]) ;
00471             p_r++ ;
00472         }   // Fin de boucle sur r
00473         }   // Fin de boucle sur theta
00474     }   // Fin de boucle sur phi
00475     }   // Fin de boucle sur zone
00476     
00477     // Termine
00478     return mti ;
00479 }
00480 
00481 Mtbl* map_af_fait_cosp(const Map* cvi) {
00482 
00483     // recup du changement de variable
00484     const Map_af* cv = static_cast<const Map_af*>(cvi) ;
00485     const Mg3d* mg = cv->get_mg() ;
00486     int nz = mg->get_nzone() ;
00487     
00488     // Le resultat
00489     Mtbl* mti = new Mtbl(mg) ;
00490     mti->set_etat_qcq() ;
00491     
00492     int i, j, k ;
00493     for (int l=0 ; l<nz ; l++) {
00494     int ir = mg->get_nr(l);
00495     int it = mg->get_nt(l);
00496     int ip = mg->get_np(l);
00497     const Grille3d* g = mg->get_grille3d(l) ;
00498     Tbl* tb = (mti->t)[l] ;
00499     tb->set_etat_qcq() ;
00500     double* p_r = tb->t ;
00501     for (k=0 ; k<ip ; k++) {
00502         for (j=0 ; j<it ; j++) {
00503         for (i=0 ; i<ir ; i++) {
00504             *p_r = cos(g->phi[k]) ;
00505             p_r++ ;
00506         }   // Fin de boucle sur r
00507         }   // Fin de boucle sur theta
00508     }   // Fin de boucle sur phi
00509     }   // Fin de boucle sur zone
00510     
00511     // Termine
00512     return mti ;
00513 }
00514 
00515 /*
00516  ************************************************************************
00517  *  x/R dans le noyau,  1/R dans les coquilles,  (x-1)/U dans la ZEC
00518  ************************************************************************
00519  */
00520 
00521 Mtbl* map_af_fait_xsr(const Map* cvi) {
00522 
00523     // recup du changement de variable
00524     const Map_af* cv = static_cast<const Map_af*>(cvi) ;
00525     const Mg3d* mg = cv->get_mg() ;
00526     int nz = mg->get_nzone() ;
00527     
00528     // Le resultat
00529     Mtbl* mti = new Mtbl(mg) ;
00530     mti->set_etat_qcq() ;
00531         
00532     // Pour le confort
00533     double* alpha = cv->alpha ;
00534     double* beta = cv->beta ;
00535     
00536     int i, j, k ;
00537     for (int l=0 ; l<nz ; l++) {
00538     int ir = mg->get_nr(l);
00539     int it = mg->get_nt(l) ;
00540     int ip = mg->get_np(l) ;
00541     const Grille3d* g = mg->get_grille3d(l) ;
00542     Tbl* tb = (mti->t)[l] ;
00543     tb->set_etat_qcq() ;
00544     double* p_r = tb->t ;
00545     
00546     switch(mg->get_type_r(l)) {
00547     
00548         case RARE:
00549         assert(beta[l]==0) ;
00550         for (k=0 ; k<ip ; k++) {
00551         for (j=0 ; j<it ; j++) {
00552             for (i=0 ; i<ir ; i++) {
00553             *p_r = 1. / alpha[l] ;
00554             p_r++ ;
00555             }       // Fin de boucle sur r
00556         }   // Fin de boucle sur theta
00557         }       // Fin de boucle sur phi
00558         break ; 
00559 
00560         case FINJAC:
00561         for (k=0 ; k<ip ; k++) {
00562         for (j=0 ; j<it ; j++) {
00563             for (i=0 ; i<ir ; i++) {
00564             *p_r = 1. / alpha[l] ;
00565             p_r++ ;
00566             }       // Fin de boucle sur r
00567         }   // Fin de boucle sur theta
00568         }       // Fin de boucle sur phi
00569         break ; 
00570     
00571         case FIN: 
00572         for (k=0 ; k<ip ; k++) {
00573         for (j=0 ; j<it ; j++) {
00574             if (ir == 1) { //Some hack for angular grid case...
00575             *p_r = 1. / beta[l] ;
00576             p_r++ ;
00577             }
00578             else 
00579             for (i=0 ; i<ir ; i++) {
00580                 *p_r = 1. / ( alpha[l] * (g->x)[i] + beta[l] ) ;
00581                 p_r++ ;
00582             }       // Fin de boucle sur r
00583         }   // Fin de boucle sur theta
00584         }       // Fin de boucle sur phi
00585         break ;
00586         
00587         case UNSURR:
00588         assert(beta[l] == - alpha[l]) ;
00589         for (k=0 ; k<ip ; k++) {
00590         for (j=0 ; j<it ; j++) {
00591             for (i=0 ; i<ir ; i++) {
00592             *p_r = 1. / alpha[l] ;
00593             p_r++ ;
00594             }       // Fin de boucle sur r
00595         }   // Fin de boucle sur theta
00596         }       // Fin de boucle sur phi
00597         break ;
00598         
00599         default:
00600         cout << "map_af_fait_xsr: unknown type_r !" << endl ;
00601         abort() ;
00602         
00603     }       // Fin du switch
00604     }           // Fin de boucle sur zone
00605 
00606     // Termine
00607     return mti ;
00608 
00609 }
00610 
00611 /*
00612  ************************************************************************
00613  *              1/(dR/dx)       ( -1/(dU/dx) ds la ZEC )
00614  ************************************************************************
00615  */
00616 
00617 Mtbl* map_af_fait_dxdr(const Map* cvi) {
00618 
00619     // recup du changement de variable
00620     const Map_af* cv = static_cast<const Map_af*>(cvi) ;
00621     const Mg3d* mg = cv->get_mg() ;
00622     int nz = mg->get_nzone() ;
00623     
00624     // Le resultat
00625     Mtbl* mti = new Mtbl(mg) ;
00626     mti->set_etat_qcq() ;
00627     
00628     // Pour le confort
00629     double* alpha = cv->alpha ;
00630     
00631     int i, j, k ;
00632     for (int l=0 ; l<nz ; l++) {
00633     int ir = mg->get_nr(l);
00634     int it = mg->get_nt(l) ;
00635     int ip = mg->get_np(l) ;
00636     Tbl* tb = (mti->t)[l] ;
00637     tb->set_etat_qcq() ;
00638     double* p_r = tb->t ;
00639     
00640     switch(mg->get_type_r(l)) {
00641     
00642         case FIN: case RARE: case FINJAC :
00643         for (k=0 ; k<ip ; k++) {
00644         for (j=0 ; j<it ; j++) {
00645             for (i=0 ; i<ir ; i++) {
00646             *p_r = 1. / alpha[l] ;
00647             p_r++ ;
00648             }       // Fin de boucle sur r
00649         }   // Fin de boucle sur theta
00650         }       // Fin de boucle sur phi
00651         break ; 
00652             
00653         case UNSURR:
00654         for (k=0 ; k<ip ; k++) {
00655         for (j=0 ; j<it ; j++) {
00656             for (i=0 ; i<ir ; i++) {
00657             *p_r = - 1. / alpha[l] ;
00658             p_r++ ;
00659             }       // Fin de boucle sur r
00660         }   // Fin de boucle sur theta
00661         }       // Fin de boucle sur phi
00662         break ; 
00663             
00664 
00665         default:
00666         cout << "map_af_fait_dxdr: unknown type_r !" << endl ;
00667         abort() ;
00668     }       // Fin du switch
00669     }           // Fin de boucle sur zone
00670 
00671     // Termine
00672     return mti ;
00673 }
00674 
00675 /*
00676  ************************************************************************
00677  *              dR/dtheta
00678  ************************************************************************
00679  */
00680 
00681 Mtbl* map_af_fait_drdt(const Map* cvi) {
00682 
00683     // recup de la grille 
00684     const Mg3d* mg = cvi->get_mg() ;
00685     
00686     // Le resultat est nul : 
00687     Mtbl* mti = new Mtbl(mg) ;
00688     mti->set_etat_zero() ; 
00689 
00690     return mti ; 
00691 } 
00692 
00693 /*
00694  ************************************************************************
00695  *              1/sin(theta) dR/dphi
00696  ************************************************************************
00697  */
00698 
00699 Mtbl* map_af_fait_stdrdp(const Map* cvi) {
00700 
00701     // recup de la grille 
00702     const Mg3d* mg = cvi->get_mg() ;
00703     
00704     // Le resultat est nul : 
00705     Mtbl* mti = new Mtbl(mg) ;
00706     mti->set_etat_zero() ; 
00707 
00708     return mti ; 
00709 } 
00710 
00711 /*
00712  ************************************************************************
00713  *              1/R dR/dtheta
00714  ************************************************************************
00715  */
00716 
00717 Mtbl* map_af_fait_srdrdt(const Map* cvi) {
00718 
00719     // recup de la grille 
00720     const Mg3d* mg = cvi->get_mg() ;
00721     
00722     // Le resultat est nul : 
00723     Mtbl* mti = new Mtbl(mg) ;
00724     mti->set_etat_zero() ; 
00725 
00726     return mti ; 
00727 } 
00728 
00729 /*
00730  ************************************************************************
00731  *              1/(R sin(theta)) dR/dphi
00732  ************************************************************************
00733  */
00734 
00735 Mtbl* map_af_fait_srstdrdp(const Map* cvi) {
00736 
00737     // recup de la grille 
00738     const Mg3d* mg = cvi->get_mg() ;
00739     
00740     // Le resultat est nul : 
00741     Mtbl* mti = new Mtbl(mg) ;
00742     mti->set_etat_zero() ; 
00743 
00744     return mti ; 
00745 } 
00746 
00747 /*
00748  ************************************************************************
00749  *              1/R^2 dR/dtheta
00750  ************************************************************************
00751  */
00752 
00753 Mtbl* map_af_fait_sr2drdt(const Map* cvi) {
00754 
00755     // recup de la grille 
00756     const Mg3d* mg = cvi->get_mg() ;
00757     
00758     // Le resultat est nul : 
00759     Mtbl* mti = new Mtbl(mg) ;
00760     mti->set_etat_zero() ; 
00761 
00762     return mti ; 
00763 } 
00764 
00765 /*
00766  ************************************************************************
00767  *              1/(R^2 sin(theta)) dR/dphi
00768  ************************************************************************
00769  */
00770 
00771 Mtbl* map_af_fait_sr2stdrdp(const Map* cvi) {
00772 
00773     // recup de la grille 
00774     const Mg3d* mg = cvi->get_mg() ;
00775     
00776     // Le resultat est nul : 
00777     Mtbl* mti = new Mtbl(mg) ;
00778     mti->set_etat_zero() ; 
00779 
00780     return mti ; 
00781 } 
00782 
00783 /*
00784  ************************************************************************
00785  *              d^2R/dx^2
00786  ************************************************************************
00787  */
00788 
00789 Mtbl* map_af_fait_d2rdx2(const Map* cvi) {
00790 
00791     // recup de la grille 
00792     const Mg3d* mg = cvi->get_mg() ;
00793     
00794     // Le resultat est nul : 
00795     Mtbl* mti = new Mtbl(mg) ;
00796     mti->set_etat_zero() ; 
00797 
00798     return mti ; 
00799 } 
00800 
00801 /*
00802  *****************************************************************************
00803  *  1/R^2 (  1/sin(th) d/dth( sin(th) dR/dth ) + 1/sin(th)^2 d^2R/dphi^2  )         
00804  *****************************************************************************
00805  */
00806 
00807 Mtbl* map_af_fait_lapr_tp(const Map* cvi) {
00808 
00809     // recup de la grille 
00810     const Mg3d* mg = cvi->get_mg() ;
00811     
00812     // Le resultat est nul : 
00813     Mtbl* mti = new Mtbl(mg) ;
00814     mti->set_etat_zero() ; 
00815 
00816     return mti ; 
00817 } 
00818 
00819 /*
00820  ************************************************************************
00821  *              d^2R/dthdx
00822  ************************************************************************
00823  */
00824 
00825 Mtbl* map_af_fait_d2rdtdx(const Map* cvi) {
00826 
00827     // recup de la grille 
00828     const Mg3d* mg = cvi->get_mg() ;
00829     
00830     // Le resultat est nul : 
00831     Mtbl* mti = new Mtbl(mg) ;
00832     mti->set_etat_zero() ; 
00833 
00834     return mti ; 
00835 } 
00836 
00837 /*
00838  ************************************************************************
00839  *              1/sin(th) d^2R/dphidx
00840  ************************************************************************
00841  */
00842 
00843 Mtbl* map_af_fait_sstd2rdpdx(const Map* cvi) {
00844 
00845     // recup de la grille 
00846     const Mg3d* mg = cvi->get_mg() ;
00847     
00848     // Le resultat est nul : 
00849     Mtbl* mti = new Mtbl(mg) ;
00850     mti->set_etat_zero() ; 
00851 
00852     return mti ; 
00853 } 
00854 
00855 /*
00856  ************************************************************************
00857  *              d^2R/dtheta^2
00858  ************************************************************************
00859  */
00860 
00861 Mtbl* map_af_fait_sr2d2rdt2(const Map* cvi) {
00862 
00863     // recup de la grille 
00864     const Mg3d* mg = cvi->get_mg() ;
00865     
00866     // Le resultat est nul : 
00867     Mtbl* mti = new Mtbl(mg) ;
00868     mti->set_etat_zero() ; 
00869 
00870     return mti ; 
00871 } 
00872 

Generated on Tue Feb 7 01:35:17 2012 for LORENE by  doxygen 1.4.6