77 (
double*,
const int,
const int,
const int,
const double,
double*) ;
79 (
double*,
const int,
const int,
const double,
double*) ;
81 (
double*,
const int,
const double,
double*) ;
82 static int premier_appel = 1 ;
86 if (premier_appel == 1) {
92 som_phi[i/2] = som_phi_pas_prevu ;
94 som_tet[i] = som_tet_pas_prevu ;
95 som_r[i] = som_r_pas_prevu ;
119 assert (
etat != ETATNONDEF) ;
124 if (
etat == ETATZERO ) {
145 assert(
etat == ETATQCQ) ;
148 if (tbcf->
get_etat() == ETATZERO ) {
154 assert(tbcf->
get_etat() == ETATQCQ) ;
156 double* cf = tbcf->
t ;
159 double* trp =
new double [np+2] ;
160 double* trtp =
new double [(np+2)*nt] ;
167 som_tet[base_t](cf, nt, np, theta, trp) ;
174 som_r[base_r](cf, nr, nt, np, x, trtp) ;
175 som_tet[base_t](trtp, nt, np, theta, trp) ;
185 som_phi[base_p](trp, np, phi, &resu) ;
208 (
double*,
const int,
const int,
const int,
const double,
double*) ;
209 static int premier_appel = 1 ;
213 if (premier_appel == 1) {
218 som_r[i] = som_r_pas_prevu ;
230 assert (
etat != ETATNONDEF) ;
235 if (
etat == ETATZERO ) {
263 assert(
etat == ETATQCQ) ;
266 if (tbcf->
get_etat() == ETATZERO ) {
272 assert(tbcf->
get_etat() == ETATQCQ) ;
274 double* cf = tbcf->
t ;
277 double* coef_tp =
new double [(np+2)*nt] ;
283 som_r[base_r](cf, nr, nt, np, x, coef_tp) ;
288 double* pi = coef_tp ;
293 for (
int j=0 ; j<nt ; j++) {
294 somt += (*pi) * tab_theta(0, j, j0) ;
297 resu = somt * tab_phi(0, k0) ;
312 for (
int k=2 ; k<np+1 ; k+=2) {
313 int m_par = (k/2)%2 ;
315 for (
int j=0 ; j<nt ; j++) {
316 somt += (*pi) * tab_theta(m_par, j, j0) ;
319 resu += somt * tab_phi(k, k0) ;
328 cout <<
"Mtbl_cf::val_point_jk_symy: unknown theta basis ! " #define MAX_BASE_2
Smaller maximum bases used for phi (and higher dimensions for now)
#define P_COSSIN
dev. standart
int get_np(int l) const
Returns the number of points in the azimuthal direction ( ) in domain no. l.
#define TRA_P
Translation en Phi, used for a bitwise shift (in hex)
#define TRA_T
Translation en Theta, used for a bitwise shift (in hex)
#define MSQ_P
Extraction de l'info sur Phi.
const Mg3d * mg
Pointer on the multi-grid Mgd3 on which this is defined.
#define T_COS
dev. cos seulement
int get_etat() const
Gives the logical state.
#define T_SIN
dev. sin seulement
#define TRA_R
Translation en R, used for a bitwise shift (in hex)
#define R_CHEBI
base de Cheb. impaire (rare) seulement
int etat
Logical state (ETATNONDEF , ETATQCQ or ETATZERO ).
#define R_CHEBP
base de Cheb. paire (rare) seulement
#define T_COS_P
dev. cos seulement, harmoniques paires
#define MSQ_T
Extraction de l'info sur Theta.
double * t
The array of double.
int * b
Array (size: nzone ) of the spectral basis in each domain.
#define MSQ_R
Extraction de l'info sur R.
#define T_SIN_P
dev. sin seulement, harmoniques paires
#define R_CHEBPIM_I
Cheb. pair-impair suivant m, impair pour m=0.
#define R_CHEBPIM_P
Cheb. pair-impair suivant m, pair pour m=0.
const Tbl & theta_functions(int l, int nt) const
Values of the theta basis functions at the theta collocation points.
int get_nr(int l) const
Returns the number of points in the radial direction ( ) in domain no. l.
double val_point_symy(int l, double x, double theta, double phi) const
Computes the value of the field represented by *this at an arbitrary point, by means of the spectral ...
#define T_COSSIN_CI
cos impair-sin pair alternes, cos pour m=0
const Tbl & phi_functions(int l, int np) const
Values of the phi basis functions at the phi collocation points.
Base_val base
Bases of the spectral expansions.
#define P_COSSIN_I
dev. sur Phi = 2*phi, freq. impaires
int get_nt(int l) const
Returns the number of points in the co-latitude direction ( ) in domain no. l.
#define R_CHEBU
base de Chebychev ordinaire (fin), dev. en 1/r
#define P_COSSIN_P
dev. sur Phi = 2*phi, freq. paires
#define T_COSSIN_CP
cos pair-sin impair alternes, cos pour m=0
double val_point_jk_symy(int l, double x, int j, int k) const
Computes the value of the field represented by *this at an arbitrary point in , but collocation point...
#define MAX_BASE
Nombre max. de bases differentes.
Tbl ** t
Array (size nzone ) of pointers on the Tbl 's which contain the spectral coefficients in each domain...
#define R_CHEB
base de Chebychev ordinaire (fin)