620 #include "base_vect.h" 632 class Param_elliptic ;
754 virtual ostream&
operator>>(ostream &)
const = 0 ;
757 virtual void sauve(FILE* )
const ;
825 double& rr,
double& theta,
double& pphi)
const ;
835 virtual double val_r(
int l,
double xi,
double theta,
double pphi)
846 virtual void val_lx(
double rr,
double theta,
double pphi,
847 int& l,
double& xi)
const = 0 ;
861 virtual void val_lx(
double rr,
double theta,
double pphi,
862 const Param& par,
int& l,
double& xi)
const = 0 ;
873 void set_ori(
double xa0,
double ya0,
double za0) ;
891 virtual void resize(
int l,
double lambda) = 0 ;
904 virtual void adapt(
const Cmp& ent,
const Param& par,
int nbr=0) = 0 ;
980 virtual void dsdxi(
const Cmp& ci,
Cmp& resu)
const = 0 ;
988 virtual void dsdr(
const Cmp& ci,
Cmp& resu)
const = 0 ;
996 virtual void srdsdt(
const Cmp& ci,
Cmp& resu)
const = 0 ;
1080 Cmp& lap)
const = 0 ;
1102 bool null_infty)
const = 0 ;
1116 virtual void mult_r(
Cmp& ci)
const = 0 ;
1173 const Cmp& v_phi,
Cmp& v_x)
const = 0 ;
1189 const Cmp& v_phi,
Cmp& v_y)
const = 0 ;
1204 Cmp& v_z)
const = 0 ;
1219 const Cmp& v_z,
Cmp& v_r)
const = 0 ;
1235 const Cmp& v_z,
Cmp& v_t)
const = 0 ;
1250 Cmp& v_p)
const = 0 ;
1312 virtual void poisson_falloff(
const Cmp& source,
Param& par,
Cmp& uu,
1313 int k_falloff)
const = 0 ;
1315 virtual void poisson_ylm(
const Cmp& source,
Param& par,
Cmp& pot,
1316 int nylm,
double* intvec)
const = 0 ;
1341 double unsgam1,
Param& par,
Cmp& uu,
1342 Cmp& uu_regu,
Cmp& uu_div,
1344 Cmp& source_div)
const = 0 ;
1361 Cmp& psi)
const = 0 ;
1379 Cmp& psi)
const = 0 ;
1399 Scalar& uu,
double lambda=0)
const = 0 ;
1449 int raccord,
int num_front,
Cmp& pot,
1450 double = 0.,
double = 0.)
const = 0 ;
1452 virtual void poisson_frontiere_double (
const Cmp& source,
const Valeur& lim_func,
1453 const Valeur& lim_der,
int num_zone,
Cmp& pot)
const = 0 ;
1685 virtual void sauve(FILE* )
const ;
1698 virtual double val_r_jk(
int l,
double xi,
int j,
int k)
const = 0 ;
1710 virtual void val_lx_jk(
double rr,
int j,
int k,
const Param& par,
1711 int& l,
double& xi)
const = 0 ;
1848 const Cmp& v_phi,
Cmp& v_x)
const ;
1864 const Cmp& v_phi,
Cmp& v_y)
const ;
1895 const Cmp& v_z,
Cmp& v_r)
const ;
1911 const Cmp& v_z,
Cmp& v_t)
const ;
2051 Map_af(
const Mg3d& mgrille,
const double* r_limits) ;
2100 const double* get_alpha()
const ;
2103 const double* get_beta()
const ;
2119 virtual double val_r(
int l,
double xi,
double theta,
double pphi)
const ;
2130 virtual void val_lx(
double rr,
double theta,
double pphi,
2131 int& l,
double& xi)
const ;
2142 virtual void val_lx(
double rr,
double theta,
double pphi,
2143 const Param& par,
int& l,
double& xi)
const ;
2154 virtual double val_r_jk(
int l,
double xi,
int j,
int k)
const ;
2165 virtual void val_lx_jk(
double rr,
int j,
int k,
const Param& par,
2166 int& l,
double& xi)
const ;
2175 virtual void sauve(FILE* )
const ;
2178 virtual ostream&
operator>>(ostream &)
const ;
2198 virtual void resize(
int l,
double lambda) ;
2205 void homothetie_interne(
double lambda) ;
2209 virtual void adapt(
const Cmp& ent,
const Param& par,
int nbr=0) ;
2212 void set_alpha(
double alpha0,
int l) ;
2215 void set_beta(
double beta0,
int l) ;
2226 virtual void dsdxi(
const Cmp& ci,
Cmp& resu)
const ;
2234 virtual void dsdr(
const Cmp& ci,
Cmp& resu)
const ;
2347 bool null_infty)
const ;
2381 virtual void poisson_falloff(
const Cmp& source,
Param& par,
Cmp& uu,
2382 int k_falloff)
const ;
2384 virtual void poisson_ylm(
const Cmp& source,
Param& par,
Cmp& pot,
2385 int nylm,
double* intvec)
const ;
2409 double unsgam1,
Param& par,
Cmp& uu,
2410 Cmp& uu_regu,
Cmp& uu_div,
2412 Cmp& source_div)
const ;
2432 Scalar& uu,
double lambda=0)
const ;
2456 virtual void poisson_frontiere_double (
const Cmp& source,
const Valeur& lim_func,
2457 const Valeur& lim_der,
int num_zone,
Cmp& pot)
const ;
2476 double integrale_surface (
const Cmp& ci,
double rayon)
const ;
2482 double integrale_surface (
const Scalar& ci,
double rayon)
const ;
2484 double integrale_surface_falloff (
const Cmp& ci)
const ;
2490 double integrale_surface_infini (
const Cmp& ci)
const ;
2496 double integrale_surface_infini (
const Scalar& ci)
const ;
2522 double fact_dir,
double fact_neu )
const ;
2530 double fact_dir,
double fact_neu )
const ;
2563 double* coefs,
double*)
const ;
2574 void sol_elliptic_fixe_der_zero (
double val,
2656 friend Mtbl* map_af_fait_r(
const Map* ) ;
2657 friend Mtbl* map_af_fait_tet(
const Map* ) ;
2658 friend Mtbl* map_af_fait_phi(
const Map* ) ;
2659 friend Mtbl* map_af_fait_sint(
const Map* ) ;
2660 friend Mtbl* map_af_fait_cost(
const Map* ) ;
2661 friend Mtbl* map_af_fait_sinp(
const Map* ) ;
2662 friend Mtbl* map_af_fait_cosp(
const Map* ) ;
2664 friend Mtbl* map_af_fait_x(
const Map* ) ;
2665 friend Mtbl* map_af_fait_y(
const Map* ) ;
2666 friend Mtbl* map_af_fait_z(
const Map* ) ;
2668 friend Mtbl* map_af_fait_xa(
const Map* ) ;
2669 friend Mtbl* map_af_fait_ya(
const Map* ) ;
2670 friend Mtbl* map_af_fait_za(
const Map* ) ;
2672 friend Mtbl* map_af_fait_xsr(
const Map* ) ;
2673 friend Mtbl* map_af_fait_dxdr(
const Map* ) ;
2674 friend Mtbl* map_af_fait_drdt(
const Map* ) ;
2675 friend Mtbl* map_af_fait_stdrdp(
const Map* ) ;
2676 friend Mtbl* map_af_fait_srdrdt(
const Map* ) ;
2677 friend Mtbl* map_af_fait_srstdrdp(
const Map* ) ;
2678 friend Mtbl* map_af_fait_sr2drdt(
const Map* ) ;
2679 friend Mtbl* map_af_fait_sr2stdrdp(
const Map* ) ;
2680 friend Mtbl* map_af_fait_d2rdx2(
const Map* ) ;
2681 friend Mtbl* map_af_fait_lapr_tp(
const Map* ) ;
2682 friend Mtbl* map_af_fait_d2rdtdx(
const Map* ) ;
2683 friend Mtbl* map_af_fait_sstd2rdpdx(
const Map* ) ;
2684 friend Mtbl* map_af_fait_sr2d2rdt2(
const Map* ) ;
2688 Mtbl* map_af_fait_r(
const Map* ) ;
2689 Mtbl* map_af_fait_tet(
const Map* ) ;
2690 Mtbl* map_af_fait_phi(
const Map* ) ;
2691 Mtbl* map_af_fait_sint(
const Map* ) ;
2692 Mtbl* map_af_fait_cost(
const Map* ) ;
2693 Mtbl* map_af_fait_sinp(
const Map* ) ;
2694 Mtbl* map_af_fait_cosp(
const Map* ) ;
2696 Mtbl* map_af_fait_x(
const Map* ) ;
2697 Mtbl* map_af_fait_y(
const Map* ) ;
2698 Mtbl* map_af_fait_z(
const Map* ) ;
2700 Mtbl* map_af_fait_xa(
const Map* ) ;
2701 Mtbl* map_af_fait_ya(
const Map* ) ;
2702 Mtbl* map_af_fait_za(
const Map* ) ;
2704 Mtbl* map_af_fait_xsr(
const Map* ) ;
2705 Mtbl* map_af_fait_dxdr(
const Map* ) ;
2706 Mtbl* map_af_fait_drdt(
const Map* ) ;
2707 Mtbl* map_af_fait_stdrdp(
const Map* ) ;
2708 Mtbl* map_af_fait_srdrdt(
const Map* ) ;
2709 Mtbl* map_af_fait_srstdrdp(
const Map* ) ;
2710 Mtbl* map_af_fait_sr2drdt(
const Map* ) ;
2711 Mtbl* map_af_fait_sr2stdrdp(
const Map* ) ;
2712 Mtbl* map_af_fait_d2rdx2(
const Map* ) ;
2713 Mtbl* map_af_fait_lapr_tp(
const Map* ) ;
2714 Mtbl* map_af_fait_d2rdtdx(
const Map* ) ;
2715 Mtbl* map_af_fait_sstd2rdpdx(
const Map* ) ;
2716 Mtbl* map_af_fait_sr2d2rdt2(
const Map* ) ;
2857 Map_et(
const Mg3d& mgrille,
const double* r_limits) ;
2876 Map_et(
const Mg3d& mgrille,
const double* r_limits,
const Tbl& tab);
2892 void set_ff(
const Valeur& ) ;
2894 void set_gg(
const Valeur& ) ;
2920 const double* get_alpha()
const ;
2925 const double* get_beta()
const ;
2928 const Valeur& get_ff()
const ;
2931 const Valeur& get_gg()
const ;
2942 virtual double val_r(
int l,
double xi,
double theta,
double pphi)
const ;
2953 virtual void val_lx(
double rr,
double theta,
double pphi,
2954 int& l,
double& xi)
const ;
2974 virtual void val_lx(
double rr,
double theta,
double pphi,
2975 const Param& par,
int& l,
double& xi)
const ;
2989 virtual double val_r_jk(
int l,
double xi,
int j,
int k)
const ;
3007 virtual void val_lx_jk(
double rr,
int j,
int k,
const Param& par,
3008 int& l,
double& xi)
const ;
3015 virtual void sauve(FILE* )
const ;
3018 virtual ostream&
operator>>(ostream &)
const ;
3038 virtual void resize(
int l,
double lambda) ;
3046 void resize_extr(
double lambda) ;
3049 void set_alpha(
double alpha0,
int l) ;
3052 void set_beta(
double beta0,
int l) ;
3100 virtual void adapt(
const Cmp& ent,
const Param& par,
int nbr_filtre = 0) ;
3111 virtual void dsdxi(
const Cmp& ci,
Cmp& resu)
const ;
3119 virtual void dsdr(
const Cmp& ci,
Cmp& resu)
const ;
3233 bool null_infty)
const ;
3327 virtual void poisson_falloff(
const Cmp& source,
Param& par,
Cmp& uu,
3328 int k_falloff)
const ;
3330 virtual void poisson_ylm(
const Cmp& source,
Param& par,
Cmp& uu,
3331 int nylm,
double* intvec)
const ;
3369 double unsgam1,
Param& par,
Cmp& uu,
3370 Cmp& uu_regu,
Cmp& uu_div,
3372 Cmp& source_div)
const ;
3392 Scalar& uu,
double lambda=0)
const ;
3423 Cmp&,
double = 0.,
double = 0.)
const ;
3424 virtual void poisson_frontiere_double (
const Cmp& source,
3426 int num_zone,
Cmp& pot)
const ;
3494 friend Mtbl* map_et_fait_r(
const Map* ) ;
3495 friend Mtbl* map_et_fait_tet(
const Map* ) ;
3496 friend Mtbl* map_et_fait_phi(
const Map* ) ;
3497 friend Mtbl* map_et_fait_sint(
const Map* ) ;
3498 friend Mtbl* map_et_fait_cost(
const Map* ) ;
3499 friend Mtbl* map_et_fait_sinp(
const Map* ) ;
3500 friend Mtbl* map_et_fait_cosp(
const Map* ) ;
3502 friend Mtbl* map_et_fait_x(
const Map* ) ;
3503 friend Mtbl* map_et_fait_y(
const Map* ) ;
3504 friend Mtbl* map_et_fait_z(
const Map* ) ;
3506 friend Mtbl* map_et_fait_xa(
const Map* ) ;
3507 friend Mtbl* map_et_fait_ya(
const Map* ) ;
3508 friend Mtbl* map_et_fait_za(
const Map* ) ;
3510 friend Mtbl* map_et_fait_xsr(
const Map* ) ;
3511 friend Mtbl* map_et_fait_dxdr(
const Map* ) ;
3512 friend Mtbl* map_et_fait_drdt(
const Map* ) ;
3513 friend Mtbl* map_et_fait_stdrdp(
const Map* ) ;
3514 friend Mtbl* map_et_fait_srdrdt(
const Map* ) ;
3515 friend Mtbl* map_et_fait_srstdrdp(
const Map* ) ;
3516 friend Mtbl* map_et_fait_sr2drdt(
const Map* ) ;
3517 friend Mtbl* map_et_fait_sr2stdrdp(
const Map* ) ;
3518 friend Mtbl* map_et_fait_d2rdx2(
const Map* ) ;
3519 friend Mtbl* map_et_fait_lapr_tp(
const Map* ) ;
3520 friend Mtbl* map_et_fait_d2rdtdx(
const Map* ) ;
3521 friend Mtbl* map_et_fait_sstd2rdpdx(
const Map* ) ;
3522 friend Mtbl* map_et_fait_sr2d2rdt2(
const Map* ) ;
3524 friend Mtbl* map_et_fait_rsxdxdr(
const Map* ) ;
3525 friend Mtbl* map_et_fait_rsx2drdx(
const Map* ) ;
3529 Mtbl* map_et_fait_r(
const Map* ) ;
3530 Mtbl* map_et_fait_tet(
const Map* ) ;
3531 Mtbl* map_et_fait_phi(
const Map* ) ;
3532 Mtbl* map_et_fait_sint(
const Map* ) ;
3533 Mtbl* map_et_fait_cost(
const Map* ) ;
3534 Mtbl* map_et_fait_sinp(
const Map* ) ;
3535 Mtbl* map_et_fait_cosp(
const Map* ) ;
3537 Mtbl* map_et_fait_x(
const Map* ) ;
3538 Mtbl* map_et_fait_y(
const Map* ) ;
3539 Mtbl* map_et_fait_z(
const Map* ) ;
3541 Mtbl* map_et_fait_xa(
const Map* ) ;
3542 Mtbl* map_et_fait_ya(
const Map* ) ;
3543 Mtbl* map_et_fait_za(
const Map* ) ;
3545 Mtbl* map_et_fait_xsr(
const Map* ) ;
3546 Mtbl* map_et_fait_dxdr(
const Map* ) ;
3547 Mtbl* map_et_fait_drdt(
const Map* ) ;
3548 Mtbl* map_et_fait_stdrdp(
const Map* ) ;
3549 Mtbl* map_et_fait_srdrdt(
const Map* ) ;
3550 Mtbl* map_et_fait_srstdrdp(
const Map* ) ;
3551 Mtbl* map_et_fait_sr2drdt(
const Map* ) ;
3552 Mtbl* map_et_fait_sr2stdrdp(
const Map* ) ;
3553 Mtbl* map_et_fait_d2rdx2(
const Map* ) ;
3554 Mtbl* map_et_fait_lapr_tp(
const Map* ) ;
3555 Mtbl* map_et_fait_d2rdtdx(
const Map* ) ;
3556 Mtbl* map_et_fait_sstd2rdpdx(
const Map* ) ;
3557 Mtbl* map_et_fait_sr2d2rdt2(
const Map* ) ;
3559 Mtbl* map_et_fait_rsxdxdr(
const Map* ) ;
3560 Mtbl* map_et_fait_rsx2drdx(
const Map* ) ;
3667 double fact_dir,
double fact_neu )
const ;
3674 double fact_dir,
double fact_neu )
const ;
3690 virtual void sauve(FILE*)
const ;
3696 virtual ostream&
operator>> (ostream&)
const ;
3707 virtual double val_r (
int l,
double xi,
double theta,
double pphi)
const ;
3718 virtual void val_lx (
double rr,
double theta,
double pphi,
int& l,
double& xi)
const ;
3729 virtual void val_lx (
double rr,
double theta,
double pphi,
const Param& par,
int& l,
double& xi)
const ;
3743 virtual double val_r_jk (
int l,
double xi,
int j,
int k)
const ;
3754 virtual void val_lx_jk (
double rr,
int j,
int k,
const Param& par,
int& l,
double& xi)
const ;
3783 virtual void resize (
int,
double) ;
3800 virtual void poisson_falloff(
const Cmp&,
Param&,
Cmp&,
int)
const ;
3801 virtual void poisson_ylm(
const Cmp&,
Param&,
Cmp&,
int,
double*)
const ;
3807 virtual void poisson_frontiere_double (
const Cmp&,
const Valeur&,
const Valeur&,
int,
Cmp&)
const ;
3815 friend Mtbl* map_log_fait_r(
const Map* ) ;
3816 friend Mtbl* map_log_fait_tet(
const Map* ) ;
3817 friend Mtbl* map_log_fait_phi(
const Map* ) ;
3818 friend Mtbl* map_log_fait_sint(
const Map* ) ;
3819 friend Mtbl* map_log_fait_cost(
const Map* ) ;
3820 friend Mtbl* map_log_fait_sinp(
const Map* ) ;
3821 friend Mtbl* map_log_fait_cosp(
const Map* ) ;
3823 friend Mtbl* map_log_fait_x(
const Map* ) ;
3824 friend Mtbl* map_log_fait_y(
const Map* ) ;
3825 friend Mtbl* map_log_fait_z(
const Map* ) ;
3827 friend Mtbl* map_log_fait_xa(
const Map* ) ;
3828 friend Mtbl* map_log_fait_ya(
const Map* ) ;
3829 friend Mtbl* map_log_fait_za(
const Map* ) ;
3831 friend Mtbl* map_log_fait_xsr(
const Map* ) ;
3832 friend Mtbl* map_log_fait_dxdr(
const Map* ) ;
3833 friend Mtbl* map_log_fait_drdt(
const Map* ) ;
3834 friend Mtbl* map_log_fait_stdrdp(
const Map* ) ;
3835 friend Mtbl* map_log_fait_srdrdt(
const Map* ) ;
3836 friend Mtbl* map_log_fait_srstdrdp(
const Map* ) ;
3837 friend Mtbl* map_log_fait_sr2drdt(
const Map* ) ;
3838 friend Mtbl* map_log_fait_sr2stdrdp(
const Map* ) ;
3839 friend Mtbl* map_log_fait_d2rdx2(
const Map* ) ;
3840 friend Mtbl* map_log_fait_lapr_tp(
const Map* ) ;
3841 friend Mtbl* map_log_fait_d2rdtdx(
const Map* ) ;
3842 friend Mtbl* map_log_fait_sstd2rdpdx(
const Map* ) ;
3843 friend Mtbl* map_log_fait_sr2d2rdt2(
const Map* ) ;
3844 friend Mtbl* map_log_fait_dxdlnr(
const Map* ) ;
3848 Mtbl* map_log_fait_r(
const Map* ) ;
3849 Mtbl* map_log_fait_tet(
const Map* ) ;
3850 Mtbl* map_log_fait_phi(
const Map* ) ;
3851 Mtbl* map_log_fait_sint(
const Map* ) ;
3852 Mtbl* map_log_fait_cost(
const Map* ) ;
3853 Mtbl* map_log_fait_sinp(
const Map* ) ;
3854 Mtbl* map_log_fait_cosp(
const Map* ) ;
3856 Mtbl* map_log_fait_x(
const Map* ) ;
3857 Mtbl* map_log_fait_y(
const Map* ) ;
3858 Mtbl* map_log_fait_z(
const Map* ) ;
3860 Mtbl* map_log_fait_xa(
const Map* ) ;
3861 Mtbl* map_log_fait_ya(
const Map* ) ;
3862 Mtbl* map_log_fait_za(
const Map* ) ;
3864 Mtbl* map_log_fait_xsr(
const Map* ) ;
3865 Mtbl* map_log_fait_dxdr(
const Map* ) ;
3866 Mtbl* map_log_fait_drdt(
const Map* ) ;
3867 Mtbl* map_log_fait_stdrdp(
const Map* ) ;
3868 Mtbl* map_log_fait_srdrdt(
const Map* ) ;
3869 Mtbl* map_log_fait_srstdrdp(
const Map* ) ;
3870 Mtbl* map_log_fait_sr2drdt(
const Map* ) ;
3871 Mtbl* map_log_fait_sr2stdrdp(
const Map* ) ;
3872 Mtbl* map_log_fait_d2rdx2(
const Map* ) ;
3873 Mtbl* map_log_fait_lapr_tp(
const Map* ) ;
3874 Mtbl* map_log_fait_d2rdtdx(
const Map* ) ;
3875 Mtbl* map_log_fait_sstd2rdpdx(
const Map* ) ;
3876 Mtbl* map_log_fait_sr2d2rdt2(
const Map* ) ;
3878 Mtbl* map_log_fait_dxdlnr (
const Map*) ;
Coord xa
Absolute x coordinate.
Tbl beta
Array (size: mg->nzone ) of the values of in each domain.
Coord d2rdx2
in the nucleus and in the non-compactified shells; \ in the compactified outer domain.
Tbl ** bb
Array (size: mg->nzone ) of Tbl which stores the values of in each domain.
Coord sr2d2rdt2
in the nucleus and in the non-compactified shells; \ in the compactified outer domain.
Coord sr2stdrdp
in the nucleus and in the non-compactified shells; \ in the compactified outer domain.
Component of a tensorial field *** DEPRECATED : use class Scalar instead ***.
Tbl zaasx
Values at the nr collocation points of in the outermost compactified domain.
Radial mapping of rather general form.
virtual const Map_af & mp_angu(int) const =0
Returns the "angular" mapping for the outside of domain l_zone.
virtual void mult_sint(Scalar &) const =0
Multiplication by of a Scalar.
virtual void sauve(FILE *) const
Save in a file.
const Cmp & cmp_zero() const
Returns the null Cmp defined on *this.
virtual void dsdxi(const Cmp &ci, Cmp &resu) const =0
Computes of a Cmp .
void set_rot_phi(double phi0)
Sets a new rotation angle.
virtual ostream & operator>>(ostream &) const =0
Operator >>
double * alpha
Array (size: mg->nzone ) of the values of in each domain.
double get_ori_y() const
Returns the y coordinate of the origin.
virtual Tbl * integrale(const Cmp &) const =0
Computes the integral over all space of a Cmp .
const Base_vect_spher & get_bvect_spher() const
Returns the orthonormal vectorial basis associated with the coordinates of the mapping.
double * alpha
Array (size: mg->nzone ) of the values of in each domain.
virtual void dsdt(const Scalar &uu, Scalar &resu) const =0
Computes of a Scalar .
double get_alpha(int l) const
Returns in the domain l.
Cmp * p_cmp_zero
The null Cmp.
virtual void comp_p_from_cartesian(const Scalar &v_x, const Scalar &v_y, Scalar &v_p) const =0
Computes the Spherical component (with respect to bvect_spher ) of a vector given by its cartesian c...
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
virtual void dsdr(const Cmp &ci, Cmp &resu) const =0
Computes of a Cmp .
Flat metric for tensor calculation.
Coord sr2drdt
in the nucleus and in the non-compactified shells; \ in the compactified outer domain.
int get_type(int l) const
Returns the type of description in the domain l.
Tbl bbsx
Values at the nr collocation points of in the nucleus.
Tensor field of valence 0 (or component of a tensorial field).
virtual void primr(const Scalar &uu, Scalar &resu, bool null_infty) const =0
Computes the radial primitive which vanishes for .
Base class for coordinate mappings.
double get_ori_x() const
Returns the x coordinate of the origin.
virtual void div_tant(Scalar &) const =0
Division by of a Scalar.
virtual void adapt(const Cmp &ent, const Param &par, int nbr=0)=0
Adaptation of the mapping to a given scalar field.
Basic integer array class.
virtual void poisson_compact(const Cmp &source, const Cmp &aa, const Tenseur &bb, const Param &par, Cmp &psi) const =0
Resolution of the elliptic equation in the case where the stellar interior is covered by a single do...
virtual void inc_dzpuis(Scalar &) const =0
Increases by 1 the value of dzpuis of a Scalar and changes accordingly its values in the compactified...
Values and coefficients of a (real-value) function.
virtual bool operator==(const Map &) const =0
Comparison operator (egality)
virtual void mult_rsint(Scalar &) const =0
Multiplication by of a Scalar.
Map_af * p_mp_angu
Pointer on the "angular" mapping.
double get_rot_phi() const
Returns the angle between the x –axis and X –axis.
Tbl ** ddbb
Array (size: mg->nzone ) of Tbl which stores the values of in each domain.
Itbl type_var
Array (size: mg->nzone ) of the type of variable in each domain.
virtual void comp_x_from_spherical(const Scalar &v_r, const Scalar &v_theta, const Scalar &v_phi, Scalar &v_x) const =0
Computes the Cartesian x component (with respect to bvect_cart ) of a vector given by its spherical c...
virtual void srdsdt(const Cmp &ci, Cmp &resu) const =0
Computes of a Cmp .
const Metric_flat & flat_met_cart() const
Returns the flat metric associated with the Cartesian coordinates and with components expressed in th...
Tbl ** daa
Array (size: mg->nzone ) of Tbl which stores the values of in each domain.
Coord srstdrdp
in the nucleus and in the non-compactified shells; \ in the compactified outer domain.
virtual void div_r_zec(Scalar &) const =0
Division by r (in the compactified external domain only) of a Scalar.
virtual void poisson_tau(const Cmp &source, Param &par, Cmp &uu) const =0
Computes the solution of a scalar Poisson equationwith a Tau method.
Coord tet
coordinate centered on the grid
void set_ori(double xa0, double ya0, double za0)
Sets a new origin.
Coord phi
coordinate centered on the grid
virtual void poisson_interne(const Cmp &source, const Valeur &limite, Param &par, Cmp &pot) const =0
Computes the solution of a Poisson equation in the shell, imposing a boundary condition at the surfac...
virtual void dec2_dzpuis(Scalar &) const =0
Decreases by 2 the value of dzpuis of a Scalar and changes accordingly its values in the compactified...
Coord dxdlnr
Same as dxdr if the domains where the description is affine and where it is logarithmic.
virtual void comp_t_from_cartesian(const Scalar &v_x, const Scalar &v_y, const Scalar &v_z, Scalar &v_t) const =0
Computes the Spherical component (with respect to bvect_spher ) of a vector given by its cartesian c...
virtual double val_r(int l, double xi, double theta, double pphi) const =0
Returns the value of the radial coordinate r for a given in a given domain.
virtual void operator=(const Map_af &)=0
Assignment to an affine mapping.
virtual void dalembert(Param &par, Scalar &fJp1, const Scalar &fJ, const Scalar &fJm1, const Scalar &source) const =0
Performs one time-step integration of the d'Alembert scalar equation.
Metric_flat * p_flat_met_spher
Pointer onto the flat metric associated with the spherical coordinates and with components expressed ...
virtual void comp_z_from_spherical(const Scalar &v_r, const Scalar &v_theta, Scalar &v_z) const =0
Computes the Cartesian z component (with respect to bvect_cart ) of a vector given by its spherical c...
virtual void poisson2d(const Cmp &source_mat, const Cmp &source_quad, Param &par, Cmp &uu) const =0
Computes the solution of a 2-D Poisson equation.
Tbl aasx2
Values at the nr collocation points of in the nucleus.
Valeur ff
Values of the function at the nt*np angular collocation points in each domain.
Coord stdrdp
in the nucleus and in the non-compactified shells; \ in the compactified external domain (CED)...
virtual void div_rsint(Scalar &) const =0
Division by of a Scalar.
virtual void homothetie(double lambda)=0
Sets a new radial scale.
Logarithmic radial mapping.
Coord dxdr
in the nucleus and in the non-compactified shells; \ in the compactified outer domain.
double ori_y
Absolute coordinate y of the origin.
double ori_z
Absolute coordinate z of the origin.
Tbl alpha
Array (size: mg->nzone ) of the values of in each domain.
Coord rsx2drdx
in the nucleus and the shells; \ in the outermost compactified domain.
virtual void srstdsdp(const Cmp &ci, Cmp &resu) const =0
Computes of a Cmp .
Base class for pure radial mappings.
virtual void poisson_regular(const Cmp &source, int k_div, int nzet, double unsgam1, Param &par, Cmp &uu, Cmp &uu_regu, Cmp &uu_div, Tenseur &duu_div, Cmp &source_regu, Cmp &source_div) const =0
Computes the solution of a scalar Poisson equation.
double * beta
Array (size: mg->nzone ) of the values of in each domain.
Tbl ** aa
Array (size: mg->nzone ) of Tbl which stores the values of in each domain.
Coord sstd2rdpdx
in the nucleus and in the non-compactified shells; \ in the compactified outer domain.
virtual void mult_cost(Scalar &) const =0
Multiplication by of a Scalar.
Coord xsr
in the nucleus; \ 1/R in the non-compactified shells; \ in the compactified outer domain...
Metric_flat * p_flat_met_cart
Pointer onto the flat metric associated with the Cartesian coordinates and with components expressed ...
virtual Param * donne_para_poisson_vect(Param ¶, int i) const =0
Function intended to be used by Map::poisson_vect and Map::poisson_vect_oohara .
This class contains the parameters needed to call the general elliptic solver.
virtual void reset_coord()
Resets all the member Coords.
Coord drdt
in the nucleus and in the non-compactified shells; \ in the compactified external domain (CED)...
virtual void resize(int l, double lambda)=0
Rescales the outer boundary of one domain.
Active physical coordinates and mapping derivatives.
Cartesian vectorial bases (triads).
Spherical orthonormal vectorial bases (triads).
Coord rsxdxdr
in the nucleus; \ in the shells; \ in the outermost compactified domain.
virtual void mult_r(Scalar &uu) const =0
Multiplication by r of a Scalar , the dzpuis of uu is not changed.
virtual void inc2_dzpuis(Scalar &) const =0
Increases by 2 the value of dzpuis of a Scalar and changes accordingly its values in the compactified...
Coord ya
Absolute y coordinate.
const Mg3d * mg
Pointer on the multi-grid Mgd3 on which this is defined.
virtual void poisson_frontiere(const Cmp &source, const Valeur &limite, int raccord, int num_front, Cmp &pot, double=0., double=0.) const =0
Computes the solution of a Poisson equation from the domain num_front+1 .
double ori_x
Absolute coordinate x of the origin.
Tbl zaasx2
Values at the nr collocation points of in the outermost compactified domain.
virtual void reevaluate_symy(const Map *mp_prev, int nzet, Cmp &uu) const =0
Recomputes the values of a Cmp at the collocation points after a change in the mapping.
const Base_vect_cart & get_bvect_cart() const
Returns the Cartesian basis associated with the coordinates (x,y,z) of the mapping, i.e.
Valeur gg
Values of the function at the nt*np angular collocation points in each domain.
Coord y
y coordinate centered on the grid
virtual void comp_r_from_cartesian(const Scalar &v_x, const Scalar &v_y, const Scalar &v_z, Scalar &v_r) const =0
Computes the Spherical r component (with respect to bvect_spher ) of a vector given by its cartesian ...
virtual void div_sint(Scalar &) const =0
Division by of a Scalar.
Coord za
Absolute z coordinate.
Coord lapr_tp
in the nucleus and in the non-compactified shells; \ in the compactified outer domain.
double get_beta(int l) const
Returns in the domain l.
virtual void reevaluate(const Map *mp_prev, int nzet, Cmp &uu) const =0
Recomputes the values of a Cmp at the collocation points after a change in the mapping.
virtual void poisson(const Cmp &source, Param &par, Cmp &uu) const =0
Computes the solution of a scalar Poisson equation.
double * beta
Array (size: mg->nzone ) of the values of in each domain.
Coefficients storage for the multi-domain spectral method.
Coord x
x coordinate centered on the grid
Base_vect_spher bvect_spher
Orthonormal vectorial basis associated with the coordinates of the mapping.
double get_ori_z() const
Returns the z coordinate of the origin.
virtual void mult_r_zec(Scalar &) const =0
Multiplication by r (in the compactified external domain only) of a Scalar.
virtual void dsdradial(const Scalar &uu, Scalar &resu) const =0
Computes of a Scalar if the description is affine and if it is logarithmic.
Tbl bbsx2
Values at the nr collocation points of in the nucleus.
Map(const Mg3d &)
Constructor from a multi-domain 3D grid.
virtual void dec_dzpuis(Scalar &) const =0
Decreases by 1 the value of dzpuis of a Scalar and changes accordingly its values in the compactified...
void convert_absolute(double xx, double yy, double zz, double &rr, double &theta, double &pphi) const
Determines the coordinates corresponding to given absolute Cartesian coordinates (X...
virtual void div_cost(Scalar &) const =0
Division by of a Scalar.
Coord srdrdt
in the nucleus and in the non-compactified shells; \ in the compactified outer domain.
virtual ~Map()
Destructor.
Coord z
z coordinate centered on the grid
virtual void div_r(Scalar &) const =0
Division by r of a Scalar.
double rot_phi
Angle between the x –axis and X –axis.
Tbl ** dbb
Array (size: mg->nzone ) of Tbl which stores the values of in each domain.
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.
const Metric_flat & flat_met_spher() const
Returns the flat metric associated with the spherical coordinates and with components expressed in th...
Tbl aasx
Values at the nr collocation points of in the nucleus.
Tensor handling *** DEPRECATED : use class Tensor instead ***.
virtual void comp_y_from_spherical(const Scalar &v_r, const Scalar &v_theta, const Scalar &v_phi, Scalar &v_y) const =0
Computes the Cartesian y component (with respect to bvect_cart ) of a vector given by its spherical c...
Base_vect_cart bvect_cart
Cartesian basis associated with the coordinates (x,y,z) of the mapping, i.e.
virtual void laplacien(const Scalar &uu, int zec_mult_r, Scalar &lap) const =0
Computes the Laplacian of a scalar field.
Tbl ** ddaa
Array (size: mg->nzone ) of Tbl which stores the values of in each domain.
Coord r
r coordinate centered on the grid
Coord d2rdtdx
in the nucleus and in the non-compactified shells; \ in the compactified outer domain.
virtual void lapang(const Scalar &uu, Scalar &lap) const =0
Computes the angular Laplacian of a scalar field.
friend ostream & operator<<(ostream &, const Map &)
Operator <<.
virtual void val_lx(double rr, double theta, double pphi, int &l, double &xi) const =0
Computes the domain index l and the value of corresponding to a point given by its physical coordina...
virtual void stdsdp(const Scalar &uu, Scalar &resu) const =0
Computes of a Scalar .