00001 /* 00002 * Copyright (c) 1999-2001 Eric Gourgoulhon 00003 * Copyright (c) 1999-2001 Philippe Grandclement 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 op_sxm1_C[] = "$Header: /cvsroot/Lorene/C++/Source/Non_class_members/Operators/op_sxm1.C,v 1.1.1.1 2001/11/20 15:19:29 e_gourgoulhon Exp $" ; 00025 00026 /* 00027 * Ensemble des routines de base pour l'operateur 1/(x-1) Id 00028 * (Utilisation interne) 00029 * 00030 * Prototype : 00031 * --------- 00032 * void _sxm1_XXXX(Tbl * tb, int& base) 00033 * 00034 * Entree/Sortie : 00035 * ------------- 00036 * tb pointeur sur le Tbl d'entree-sortie 00037 * 00038 * Entree : 00039 * ------ 00040 * base base de travail 00041 * 00042 */ 00043 00044 /* 00045 * $Id: op_sxm1.C,v 1.1.1.1 2001/11/20 15:19:29 e_gourgoulhon Exp $ 00046 * $Log: op_sxm1.C,v $ 00047 * Revision 1.1.1.1 2001/11/20 15:19:29 e_gourgoulhon 00048 * LORENE 00049 * 00050 * Revision 2.2 1999/11/15 16:39:47 eric 00051 * Tbl::dim est desormais un Dim_tbl et non plus un Dim_tbl*. 00052 * 00053 * Revision 2.1 1999/04/26 16:02:21 phil 00054 * changement commentaire (!) 00055 * 00056 * Revision 2.0 1999/04/26 15:54:52 phil 00057 * *** empty log message *** 00058 * 00059 * 00060 * $Header: /cvsroot/Lorene/C++/Source/Non_class_members/Operators/op_sxm1.C,v 1.1.1.1 2001/11/20 15:19:29 e_gourgoulhon Exp $ 00061 * 00062 */ 00063 00064 //Lorene 00065 #include "tbl.h" 00066 00067 // Prototypage 00068 #include "proto.h" 00069 00070 //----------------------------------- 00071 // Routine qui ne fait rien -- 00072 //----------------------------------- 00073 00074 void _sxm1_identite(Tbl * , int& ) { 00075 return ; 00076 } 00077 00078 //------------------------- 00079 // cas R_CHEB et R_CHEBU -- 00080 //------------------------- 00081 00082 void _sxm1_cheb(Tbl* tb, int&) 00083 { 00084 00085 // Peut-etre rien a faire ? 00086 if (tb->get_etat() == ETATZERO) { 00087 return ; 00088 } 00089 00090 // Pour le confort 00091 int nr = (tb->dim).dim[0] ; // Nombre 00092 int nt = (tb->dim).dim[1] ; // de points 00093 int np = (tb->dim).dim[2] ; // physiques REELS 00094 np = np - 2 ; // Nombre de points physiques 00095 00096 int ntnr = nt*nr ; 00097 00098 int k, j ; 00099 for (k=0 ; k<np+1 ; k++) { 00100 if (k==1) continue ; // On ne traite pas le coefficient de sin(0*phi) 00101 for (j=0 ; j<nt ; j++) { 00102 00103 double* cf = tb->t + k*ntnr + j*nr ; 00104 00105 sxm1_1d_cheb(nr, cf) ; // division par (x-1) 00106 00107 00108 } // Fin de la boucle sur theta 00109 } // Fin de la boucle sur phi 00110 00111 00112 // base de developpement 00113 // inchangee 00114 }
1.4.6