74 #include "param_elliptic.h" 84 assert(source.
get_etat() != ETATNONDEF) ;
95 if (sourva.get_etat() == ETATZERO) {
101 assert(sourva.get_etat() == ETATQCQ) ;
103 Valeur rho(sourva.get_mg()) ;
105 rho = *(sourva.c_cf) ;
118 Mtbl_cf resu = elliptic_solver (ope_var, *(rho.c_cf)) ;
140 double fact_dir,
double fact_neu)
const {
142 assert(source.
get_etat() != ETATNONDEF) ;
153 if (sourva.get_etat() == ETATZERO) {
159 assert(sourva.get_etat() == ETATQCQ) ;
161 Valeur rho(sourva.get_mg()) ;
163 rho = *(sourva.c_cf) ;
176 Mtbl_cf resu = elliptic_solver_boundary (ope_var, *(rho.c_cf), bound,
177 fact_dir, fact_neu) ;
199 double fact_dir,
double fact_neu)
const {
201 assert(source.
get_etat() != ETATNONDEF) ;
212 if (sourva.get_etat() == ETATZERO) {
218 assert(sourva.get_etat() == ETATQCQ) ;
220 Valeur rho(sourva.get_mg()) ;
222 rho = *(sourva.c_cf) ;
248 int nr = gri2d.
get_nr(0) ;
249 int nt = gri2d.
get_nt(0) ;
250 int np = gri2d.
get_np(0) ;
252 for(
int k=0; k<np+2; k++)
253 for (
int j=0; j<=nt-1; j++)
254 for(
int xi=0; xi<= nr-1; xi++)
261 Mtbl_cf resu = elliptic_solver_boundary (ope_var, *(rho.c_cf), bound2,
262 fact_dir, fact_neu) ;
282 Scalar& pot,
double val)
const {
284 assert(source.
get_etat() != ETATNONDEF) ;
295 if (sourva.get_etat() == ETATZERO) {
301 assert(sourva.get_etat() == ETATQCQ) ;
303 Valeur rho(sourva.get_mg()) ;
305 rho = *(sourva.c_cf) ;
318 Mtbl_cf resu = elliptic_solver_no_zec (ope_var, *(rho.c_cf), val) ;
const Base_val & get_spectral_base() const
Returns the spectral bases of the Valeur va.
Mtbl_cf * c_cf
Coefficients of the spectral expansion of the function.
void ylm_i()
Inverse of ylm()
int get_np(int l) const
Returns the number of points in the azimuthal direction ( ) in domain no. l.
void coef() const
Computes the coeffcients of *this.
virtual void set_etat_zero()
Sets the logical state to ETATZERO (zero).
void ylm()
Computes the coefficients 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).
Base class for coordinate mappings.
Values and coefficients of a (real-value) function.
int get_etat() const
Returns the logical state ETATNONDEF (undefined), ETATZERO (null) or ETATQCQ (ordinary).
virtual void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
void set_dzpuis(int)
Modifies the dzpuis flag.
Scalar var_F
Additive variable change function.
void sol_elliptic(Param_elliptic ¶ms, const Scalar &so, Scalar &uu) const
General elliptic solver.
Scalar var_G
Multiplicative variable change that must be sphericaly symetric !
This class contains the parameters needed to call the general elliptic solver.
void sol_elliptic_no_zec(Param_elliptic ¶ms, const Scalar &so, Scalar &uu, double) const
General elliptic solver.
int get_nr(int l) const
Returns the number of points in the radial direction ( ) in domain no. l.
const Mg3d * mg
Pointer on the multi-grid Mgd3 on which this is defined.
void annule_hard()
Sets the Mtbl_cf to zero in a hard way.
Coefficients storage for the multi-domain spectral method.
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...
void sol_elliptic_boundary(Param_elliptic ¶ms, const Scalar &so, Scalar &uu, const Mtbl_cf &bound, double fact_dir, double fact_neu) const
General elliptic solver including inner boundary conditions.
const Map & get_mp() const
Returns the mapping.
const Mg3d * get_angu_1dom() const
Returns the pointer on the associated mono-domain angular grid.
const Valeur & get_spectral_va() const
Returns va (read only version)