25 char scalar_raccord_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Tensor/Scalar/scalar_raccord.C,v 1.4 2014/10/13 08:53:47 j_novak Exp $" ;
57 Matrice matrice_raccord_pair (
int cont,
double alpha_kernel) ;
58 Matrice matrice_raccord_impair (
int cont,
double alpha_kernel) ;
59 Tbl sec_membre_raccord (Tbl coef,
int cont,
double alpha_shell) ;
60 Tbl regularise (Tbl coef,
int nr,
int base_r) ;
64 assert (
etat != ETATNONDEF) ;
73 "Scalar::raccord : The mapping does not belong to the class Map_af !"
98 double alpha_kernel = mapping->
get_alpha()[0] ;
99 double alpha_shell = mapping->
get_alpha()[1] ;
101 int base_r, m_quant, l_quant ;
103 for (
int k=0 ; k<nbrep_kernel+1 ; k++)
104 for (
int j=0 ; j<nbret_kernel ; j++)
105 if (nullite_plm(j, nbret_kernel, k,nbrep_kernel,
va.
base) == 1)
106 if (nullite_plm(j, nbret_shell, k, nbrep_shell,
va.
base) == 1)
109 donne_lm(nz, 0, j, k,
va.
base, m_quant, l_quant, base_r) ;
114 Tbl facteur (nbrer_kernel) ;
116 for (
int i=0 ; i<nbrer_shell ; i++)
118 facteur.
set(i) = (*
va.
c_cf)(1, k, j, i) ;
120 Tbl sec_membre (sec_membre_raccord (facteur, cont, alpha_shell)) ;
123 systeme = matrice_raccord_pair (cont, alpha_kernel) ;
125 systeme = matrice_raccord_impair (cont, alpha_kernel) ;
128 Tbl regulier (nbrer_kernel) ;
131 for (
int i=0 ; i<cont ; i++)
135 regulier = regularise (soluce, nbrer_kernel,
R_CHEBP) ;
137 regulier = regularise (soluce, nbrer_kernel,
R_CHEBI) ;
139 for (
int i=0 ; i<nbrer_kernel ; i++)
const double * get_alpha() const
Returns the pointer on the array alpha.
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
Tbl inverse(const Tbl &sec_membre) const
Solves the linear system represented by the matrix.
int get_np(int l) const
Returns the number of points in the azimuthal direction ( ) in domain no. l.
int get_nt(int l) const
Returns the number of points in the co-latitude direction ( ) in domain no. l.
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.
int get_type_r(int l) const
Returns the type of sampling in the radial direction in domain no.
Tbl ** t
Array (size nzone ) of pointers on the Tbl 's which contain the spectral coefficients in each domain.
Tbl & set(int l)
Read/write of the Tbl containing the coefficients in a given domain.
void raccord(int n)
Performs the matching of the nucleus with respect to the first shell.
int etat
The logical state ETATNONDEF (undefined), ETATZERO (null), ETATUN (one), or ETATQCQ (ordinary).
Valeur va
The numerical value of the Scalar
void annule_hard()
Sets the Tbl to zero in a hard way.
double & set(int i)
Read/write of a particular element (index i) (1D case)
void set_etat_cf_qcq()
Sets the logical state to ETATQCQ (ordinary state) for values in the configuration space (Mtbl_cf c_c...
void ylm()
Computes the coefficients of *this.
Mtbl_cf * c_cf
Coefficients of the spectral expansion of the function.
void coef() const
Computes the coeffcients of *this.
void ylm_i()
Inverse of ylm()
Base_val base
Bases on which the spectral expansion is performed.
#define R_CHEBI
base de Cheb. impaire (rare) seulement
#define R_CHEBP
base de Cheb. paire (rare) seulement
const Map *const mp
Mapping on which the numerical values at the grid points are defined.