119 assert(dynamic_cast<const Base_vect_spher*>(
triad) != 0x0) ;
123 int dzp_resu = ((dzp == 0) ? 0 : dzp-1) ;
132 if (dynamic_cast<const Map_af*>(
mp) != 0x0) {
159 assert(dynamic_cast<const Base_vect_spher*>(
triad) != 0x0) ;
169 int dzp_resu = ((dzp == 0) ? 0 : dzp-1) ;
174 if (dynamic_cast<const Map_af*>(
mp) != 0x0) {
198 assert(dynamic_cast<const Base_vect_spher*>(
triad) != 0x0) ;
200 p_ttt =
new Scalar(
operator()(2,2) +
operator()(3,3) ) ;
217 assert(dynamic_cast<const Base_vect_spher*>(
triad) != 0x0) ;
226 source_w += 2*tmp.
stdsdp() ;
248 assert(dynamic_cast<const Base_vect_spher*>(
triad) != 0x0) ;
258 source_x -= 2*tmp.
stdsdp() ;
274 assert(dynamic_cast<const Base_vect_spher*>(
triad) != 0x0) ;
276 int dzeta = (dzp == 0 ? 0 : dzp - 1) ;
284 assert(&w_in !=
p_www) ;
285 assert(&x_in !=
p_xxx) ;
286 assert(&t_in !=
p_ttt) ;
289 set(1,2) = eta_over_r.
dsdt() - mu_over_r.
stdsdp() ;
291 set(1,3) = eta_over_r.
stdsdp() + mu_over_r.
dsdt() ;
299 set(2,2) = 0.5*t_in + ppp ;
300 set(3,3) = 0.5*t_in - ppp ;
324 assert(dynamic_cast<const Base_vect_spher*>(
triad) != 0x0) ;
327 int dzp_resu = ((dzp == 0) ? 2 : dzp+1) ;
340 if (dynamic_cast<const Map_af*>(
mp) != 0x0) {
370 assert(dynamic_cast<const Base_vect_spher*>(
triad) != 0x0) ;
373 int dzp_resu = ((dzp == 0) ? 2 : dzp+1) ;
387 if (dynamic_cast<const Map_af*>(
mp) != 0x0) {
391 assert (par != 0x0) ;
400 Scalar etasr2 = tilde_eta ;
420 if (etasr2.
get_etat() != ETATZERO) {
450 int m_q, l_q, base_r ;
451 for (
int lz=0; lz<nz; lz++) {
455 for (
int k=0; k<np+1; k++)
456 for (
int j=0; j<nt; j++) {
458 if ( (nullite_plm(j, nt, k, np, base) == 1) && (l_q > 1))
460 for (
int i=0; i<nr; i++)
484 if (resu.
get_etat() == ETATZERO)
return resu ;
486 assert(resu.
get_etat() == ETATQCQ) ;
489 int dzp_resu = ((dzp == 0) ? 2 : dzp+1) ;
492 if (hsr.
get_etat() == ETATZERO)
return resu ;
504 int m_q, l_q, base_r ;
505 for (
int lz=0; lz<nz; lz++) {
509 for (
int k=0; k<np+1; k++)
510 for (
int j=0; j<nt; j++) {
512 if ( (nullite_plm(j, nt, k, np, base) == 1) && (l_q > 1))
514 for (
int i=0; i<nr; i++)
538 assert(dynamic_cast<const Base_vect_spher*>(
triad) != 0x0) ;
542 if (tras.
get_etat() == ETATZERO)
return resu ;
552 int dzp_resu = ((dzp == 0) ? 2 : dzp+1) ;
555 if (hsr.
get_etat() == ETATZERO)
return resu ;
566 int m_q, l_q, base_r ;
567 for (
int lz=0; lz<nz; lz++) {
573 for (
int k=0; k<np+1; k++)
574 for (
int j=0; j<nt; j++) {
576 if ( (nullite_plm(j, nt, k, np, base) == 1) && (l_q > 1))
578 for (
int i=0; i<nr; i++)
604 assert(dynamic_cast<const Base_vect_spher*>(
triad) != 0x0) ;
607 int dzp_resu = ((dzp == 0) ? 2 : dzp+1) ;
621 if (dynamic_cast<const Map_af*>(
mp) != 0x0) {
625 assert (par != 0x0) ;
634 Scalar etasr2 = tilde_eta ;
654 if (etasr2.
get_etat() != ETATZERO) {
684 int m_q, l_q, base_r ;
685 for (
int lz=0; lz<nz; lz++) {
689 for (
int k=0; k<np+1; k++)
690 for (
int j=0; j<nt; j++) {
692 if ( (nullite_plm(j, nt, k, np, base) == 1) && (l_q > 1))
694 for (
int i=0; i<nr; i++)
const Base_val & get_spectral_base() const
Returns the spectral bases of the Valeur va.
Scalar * p_mu
Field such that the components of the tensor are written (has only meaning with spherical component...
void annule_l(int l_min, int l_max, bool ylm_output=false)
Sets all the multipolar components between l_min and l_max to zero.
Mtbl_cf * c_cf
Coefficients of the spectral expansion of the function.
const Scalar & mu(Param *par=0x0) const
Gives the field (see member p_mu ).
void ylm_i()
Inverse of ylm()
const Scalar & lapang() const
Returns the angular Laplacian of *this , where .
int get_np(int l) const
Returns the number of points in the azimuthal direction ( ) in domain no. l.
void set_etat_cf_qcq()
Sets the logical state to ETATQCQ (ordinary state) for values in the configuration space (Mtbl_cf c_c...
Scalar * p_tilde_b
Field defined from and h insensitive to the longitudinal part of the Sym_tensor.
virtual void set_etat_zero()
Sets the logical state to ETATZERO (zero).
void give_quant_numbers(int, int, int, int &, int &, int &) const
Computes the various quantum numbers and 1d radial base.
Tbl & set(int l)
Read/write of the Tbl containing the coefficients in a given domain.
void ylm()
Computes the coefficients of *this.
const Scalar & dsdt() const
Returns of *this .
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
Tensor field of valence 0 (or component of a tensorial field).
const Scalar & xxx() const
Gives the field X (see member p_xxx ).
const Base_vect * triad
Vectorial basis (triad) with respect to which the tensor components are defined.
Scalar * p_www
Field W such that the components and of the tensor are written (has only meaning with spherical com...
int get_etat() const
Returns the logical state ETATNONDEF (undefined), ETATZERO (null) or ETATQCQ (ordinary).
const Scalar & compute_tilde_C(bool output_ylm=true, Param *par=0x0) const
Gives the field (see member p_tilde_c ).
virtual void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
Scalar poisson_angu(double lambda=0) const
Solves the (generalized) angular Poisson equation with *this as source.
Scalar get_tilde_B_from_TT_trace(const Scalar &tilde_B_tt_in, const Scalar &trace) const
Computes (see Sym_tensor::p_tilde_b ) from its transverse-traceless part and the trace...
const Scalar & ttt() const
Gives the field T (see member p_ttt ).
void set_dzpuis(int)
Modifies the dzpuis flag.
void annule_hard()
Sets the Scalar to zero in a hard way.
Scalar * p_eta
Field such that the components of the tensor are written (has only meaning with spherical component...
Scalar * p_aaa
Field A defined from X and insensitive to the longitudinal part of the Sym_tensor (only for )...
const Scalar & www() const
Gives the field W (see member p_www ).
virtual void del_deriv() const
Deletes the derived quantities.
int get_dzpuis() const
Returns dzpuis.
const Scalar & compute_A(bool output_ylm=true, Param *par=0x0) const
Gives the field A (see member p_aaa ).
Scalar * p_xxx
Field X such that the components and of the tensor are written (has only meaning with spherical com...
Mtbl * c
Values of the function at the points of the multi-grid.
const Scalar & compute_tilde_B(bool output_ylm=true, Param *par=0x0) const
Gives the field (see member p_tilde_b ).
int get_nzone() const
Returns the number of domains.
Scalar * p_tilde_c
Field defined from and h insensitive to the longitudinal part of the Sym_tensor.
const Scalar & stdsdp() const
Returns of *this .
virtual const Scalar & eta(Param *par=0x0) const
Gives the field (see member p_eta ).
void set_spectral_base(const Base_val &)
Sets the spectral bases of the Valeur va
void set_auxiliary(const Scalar &trr, const Scalar &eta_over_r, const Scalar &mu_over_r, const Scalar &www, const Scalar &xxx, const Scalar &ttt)
Assigns the component and the derived members p_eta , p_mu , p_www, p_xxx and p_ttt ...
int get_nr(int l) const
Returns the number of points in the radial direction ( ) in domain no. l.
Scalar * p_ttt
Field T defined as .
Bases of the spectral expansions.
void annule_hard()
Sets the Mtbl_cf to zero in a hard way.
Scalar compute_tilde_B_tt(bool output_ylm=true, Param *par=0x0) const
Gives the field (see member p_tilde_b ) associated with the TT-part of the Sym_tensor ...
void mult_x()
The basis is transformed as with a multiplication by .
const Scalar & dsdr() const
Returns of *this .
const Scalar & operator()(const Itbl &ind) const
Returns the value of a component (read-only version).
int get_nt(int l) const
Returns the number of points in the co-latitude direction ( ) in domain no. l.
Valeur & set_spectral_va()
Returns va (read/write version)
bool check_dzpuis(int dzi) const
Returns false if the last domain is compactified and *this is not zero in this domain and dzpuis is n...
const Map *const mp
Mapping on which the numerical values at the grid points are defined.
void div_r_dzpuis(int ced_mult_r)
Division by r everywhere but with the output flag dzpuis set to ced_mult_r .
void div_tant()
Division by .
void annule_hard()
Sets the Tbl to zero in a hard way.
virtual void poisson_angu(const Scalar &source, Param &par, Scalar &uu, double lambda=0) const =0
Computes the solution of the generalized angular Poisson equation.
void mult_r_dzpuis(int ced_mult_r)
Multiplication by r everywhere but with the output flag dzpuis set to ced_mult_r ...
const Valeur & get_spectral_va() const
Returns va (read only version)