23char val_solh_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Non_class_members/PDE/val_solh.C,v 1.5 2014/10/13 08:53:31 j_novak Exp $" ;
55#include "type_parite.h"
62Tbl _val_solh_pas_prevu (
int,
double,
double) {
64 cout <<
" Solution homogene pas prevue ..... : "<< endl ;
76Tbl _val_solh_r_cheb (
int l,
double alpha,
double beta) {
78 double echelle = beta/alpha ;
84 res.set(0,0) =
pow(1.+echelle, l) ;
85 res.set(0,1) =
pow(-1.+echelle, l) ;
86 res.set(0,2) =
pow(1.+echelle, l-1)*l/alpha ;
87 res.
set(0,3) =
pow(-1.+echelle, l-1)*l/alpha ;
90 res.
set(1,0) = 1./
pow(1.+echelle, l+1) ;
91 res.set(1,1) = 1./
pow(-1.+echelle, l+1) ;
92 res.set(1,2) = -1./
pow(1.+echelle, l+2)*(l+1)/alpha ;
93 res.
set(1,3) = -1./
pow(-1.+echelle, l+2)*(l+1)/alpha ;
95 res /=
sqrt(
double(2)) ;
103Tbl _val_solh_r_chebp (
int l,
double alpha,
double) {
110 res.set(1) = (l==0) ? 1. : 0. ;
111 res.set(2) = 1./alpha*l ;
112 res.set(3) = (l==1) ? 1 : 0 ;
114 res /=
sqrt(
double(2)) ;
123Tbl _val_solh_r_chebi (
int l,
double alpha,
double) {
130 res.set(1) = (l==0) ? 1. : 0 ;
131 res.set(2) = 1./alpha*l ;
132 res.set(3) = (l==1) ? 1 : 0. ;
134 res /=
sqrt(
double(2)) ;
153 res.
set(3) = -alpha*(l+1)*
pow(-2., l+2)/
sqrt(
double(2)) ;
166Tbl val_solh(
int l,
double alpha,
double beta,
int base_r) {
169 static Tbl (*val_solh[
MAX_BASE])(int, double, double) ;
176 val_solh[i] = _val_solh_pas_prevu ;
185 Tbl res(val_solh[base_r](l, alpha, beta)) ;
Tbl & set(int l)
Read/write of the value in a given domain.
void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
double & set(int i)
Read/write of a particular element (index i) (1D case)
Cmp sqrt(const Cmp &)
Square root.
Cmp pow(const Cmp &, int)
Power .
#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
Tbl _val_solh_r_chebu(int l, double alpha, double)