24 char valeur_ylm_i_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Valeur/valeur_ylm_i.C,v 1.12 2014/10/13 08:53:51 j_novak Exp $" ;
124 #include "type_parite.h"
129 void ylm_i_pasprevu(
const int*,
const double*,
double*) ;
133 static void (*chbase_t[
MAX_BASE])(
const int*,
const double*,
136 static int premier_appel = 1 ;
140 if (premier_appel==1) {
144 chbase_t[i] = ylm_i_pasprevu ;
182 if (
etat == ETATZERO) {
183 for (
int l=0 ; l<nzone ; l++) {
188 int vbase_t_tra = vbase_t >>
TRA_T ;
189 base.
b[l] = ( vbase_p | nouv_base_t[vbase_t_tra] ) | vbase_r ;
195 assert(
etat != ETATNONDEF) ;
204 for (
int l=0; l<nzone; l++) {
218 int vbase_t_tra = vbase_t >>
TRA_T ;
226 base.
b[l] = ( vbase_p | nouv_base_t[vbase_t_tra] ) | vbase_r ;
234 if (cf->
get_etat() == ETATZERO) continue ;
237 double* resu =
new double [cf->
get_taille()] ;
249 ylm_i_pasprevu(deg, (cf->
t), resu ) ;
251 chbase_t[vbase_t_tra](deg, (cf->
t), resu ) ;
268 void ylm_i_pasprevu(
const int*,
const double*,
double*) {
271 "Valeur::ylm_i: change of basis not implemented yet !"
int get_np(int l) const
Returns the number of points in the azimuthal direction ( ) in domain no. l.
int * b
Array (size: nzone ) of the spectral basis in each domain.
#define T_LEG_MI
fct. de Legendre associees avec m impair
#define T_LEG_MP
fct. de Legendre associees avec m pair
#define MSQ_P
Extraction de l'info sur Phi.
Tbl ** t
Array (size nzone ) of pointers on the Tbl 's which contain the spectral coefficients in each domain.
#define T_LEG_PI
fct. de Legendre associees paires avec m impair
Mtbl_cf * c_cf
Coefficients of the spectral expansion of the function.
#define T_COS
dev. cos seulement
int get_nt(int l) const
Returns the number of points in the co-latitude direction ( ) in domain no. l.
#define TRA_T
Translation en Theta, used for a bitwise shift (in hex)
#define T_SIN
dev. sin seulement
const Mg3d * get_mg() const
Returns the Mg3d on which the this is defined.
#define T_COS_I
dev. cos seulement, harmoniques impaires
#define T_LEG_I
fct. de Legendre associees impaires
void coef() const
Computes the coeffcients of *this.
double * t
The array of double.
#define MSQ_T
Extraction de l'info sur Theta.
#define T_COSSIN_C
dev. cos-sin alternes, cos pour m=0
#define T_SIN_P
dev. sin seulement, harmoniques paires
#define T_COS_P
dev. cos seulement, harmoniques paires
int etat
Logical state (ETATNONDEF , ETATQCQ or ETATZERO ).
#define MSQ_R
Extraction de l'info sur R.
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.
#define T_LEG_P
fct. de Legendre associees paires
Cmp sqrt(const Cmp &)
Square root.
#define T_LEG_IP
fct. de Legendre associees impaires avec m pair
Base_val base
Bases of the spectral expansions.
#define P_COSSIN_I
dev. sur Phi = 2*phi, freq. impaires
#define NONDEF
base inconnue
#define T_COSSIN_CI
cos impair-sin pair alternes, cos pour m=0
#define T_COSSIN_CP
cos pair-sin impair alternes, cos pour m=0
Base_val base
Bases on which the spectral expansion is performed.
int get_taille() const
Gives the total size (ie dim.taille)
#define MAX_BASE
Nombre max. de bases differentes.
#define P_COSSIN_P
dev. sur Phi = 2*phi, freq. paires
#define T_COSSIN_S
dev. cos-sin alternes, sin pour m=0
#define T_LEG_PP
fct. de Legendre associees paires avec m pair
#define T_LEG_II
fct. de Legendre associees impaires avec m impair
int get_etat() const
Gives the logical state.
#define T_LEG
fct. de Legendre associees
void ylm_i()
Inverse of ylm()
#define T_SIN_I
dev. sin seulement, harmoniques impaires