23char val_solp_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Non_class_members/PDE/val_solp.C,v 1.6 2014/10/13 08:53:31 j_novak Exp $" ;
63#include "type_parite.h"
70Tbl _val_solp_pas_prevu (
const Tbl&,
double) {
72 cout <<
" Base_r unknown in val_solp."<< endl ;
84Tbl _val_solp_r_cheb (
const Tbl& sp,
double alpha) {
91 for (
int i=0 ; i<nr ; i++)
95 for (
int i=0 ; i<nr ; i++)
102 for (
int i=0 ; i<nr ; i++)
103 res.set(2) += sp(i)*i*i/alpha ;
106 for (
int i=0 ; i<nr ; i++)
108 res.set(3) -= sp(i)*i*i/alpha ;
110 res.set(3) += sp(i)*i*i/alpha ;
112 res /=
sqrt(
double(2)) ;
120Tbl _val_solp_r_chebp (
const Tbl& sp,
double alpha) {
127 for (
int i=0 ; i<nr ; i++)
128 res.set(0) += sp(i) ;
131 for (
int i=0 ; i<nr ; i++)
133 res.set(1) += sp(i) ;
135 res.set(1) -= sp(i) ;
138 for (
int i=0 ; i<nr ; i++)
139 res.set(2) += sp(i)*(2*i)*(2*i)/alpha ;
144 res /=
sqrt(
double(2)) ;
153Tbl _val_solp_r_chebi (
const Tbl& sp,
double alpha) {
160 for (
int i=0 ; i<nr ; i++)
161 res.set(0) += sp(i) ;
167 for (
int i=0 ; i<nr ; i++)
168 res.set(2) += sp(i)*(2*i+1)*(2*i+1)/alpha ;
171 for (
int i=0 ; i<nr ; i++)
173 res.set(3) += (2*i+1)*sp(i) ;
175 res.set(3) -= (2*i+1)*sp(i) ;
177 res /=
sqrt(
double(2)) ;
187Tbl _val_solp_r_chebu (
const Tbl& sp,
double alpha) {
194 for (
int i=0 ; i<nr ; i++)
195 res.set(0) += sp(i) ;
198 for (
int i=0 ; i<nr ; i++)
200 res.set(1) += sp(i) ;
202 res.set(1) -= sp(i) ;
207 for (
int i=0 ; i<nr ; i++)
209 res.set(3) += 4.*alpha*i*i*sp(i) ;
211 res.set(3) -= 4.*alpha*i*i*sp(i) ;
213 res /=
sqrt(
double(2)) ;
225Tbl val_solp (
const Tbl& sp,
double alpha,
int base_r) {
228 static Tbl (*val_solp[
MAX_BASE])(
const Tbl&, double) ;
235 val_solp[i] = _val_solp_pas_prevu ;
244 Tbl res(val_solp[base_r](sp, alpha)) ;
int get_dim(int i) const
Gives the i-th dimension (ie dim.dim[i])
Cmp sqrt(const Cmp &)
Square root.
#define MAX_BASE
Nombre max. de bases differentes.
#define R_CHEBU
base de Chebychev ordinaire (fin), dev. en 1/r
#define R_CHEBI
base de Cheb. impaire (rare) seulement
#define TRA_R
Translation en R, used for a bitwise shift (in hex)
#define R_CHEB
base de Chebychev ordinaire (fin)
#define R_CHEBP
base de Cheb. paire (rare) seulement