384 class Param_elliptic ;
581 bool is_nan(
bool verbose=
false)
const ;
600 operator Cmp()
const ;
622 assert(
etat == ETATQCQ) ;
632 assert( (
etat == ETATQCQ) || (
etat == ETATUN) ) ;
644 assert(
etat != ETATNONDEF) ;
645 if (
etat == ETATZERO) {
650 if (
etat == ETATUN) {
655 return va(l, k, j, i) ;
674 double val_point(
double r,
double theta,
double phi)
const ;
691 assert(
etat == ETATQCQ) ;
692 return va.
set(l, k, j, i) ;
706 virtual void annule(
int l_min,
int l_max) ;
1001 double alpha= -16.) ;
1014 double alpha= -1E-16) ;
1039 double alpha= -16.) ;
1049 double alpha= -16.) ;
1058 void annule_l (
int l_min,
int l_max,
bool ylm_output=
false ) ;
1070 void filtre_tp(
int nn,
int nz1,
int nz2) ;
1165 virtual void sauve(FILE *)
const ;
1178 double threshold = 1.e-7,
int precision = 4,
1179 ostream& ostr = cout)
const ;
1207 void visu_section(
const char section_type,
double aa,
double umin,
double umax,
double vmin,
1208 double vmax,
const char* title = 0x0,
const char* filename = 0x0,
1209 bool start_dx =
true,
int nu = 200,
int nv = 200)
const ;
1239 void visu_section(
const Tbl& plane,
double umin,
double umax,
double vmin,
1240 double vmax,
const char* title = 0x0,
const char* filename = 0x0,
1241 bool start_dx =
true,
int nu = 200,
int nv = 200)
const ;
1272 double umax,
double vmin,
double vmax,
int jtime,
double ttime,
1273 int jgraph = 1,
const char* title = 0x0,
const char* filename_root = 0x0,
1274 bool start_dx =
false,
int nu = 200,
int nv = 200)
const ;
1297 void visu_box(
double xmin,
double xmax,
double ymin,
double ymax,
1298 double zmin,
double zmax,
const char* title0 = 0x0,
1299 const char* filename0 = 0x0,
bool start_dx =
true,
int nx = 40,
int ny = 40,
1300 int nz = 40)
const ;
1447 double fact_dir,
double fact_neu)
const ;
1521 bool detail =
false)
const ;
1589 double fact_dir,
double fact_neu)
const ;
1596 double fact_dir,
double fact_neu)
const ;
1673 void import(
const Scalar& ci) ;
1703 void import(
int nzet,
const Scalar& ci) ;
1894 ostream& operator<<(ostream& ,
const Scalar & ) ;
1905 Scalar
operator+(
const Scalar&,
const Scalar &) ;
1906 Scalar
operator+(
const Scalar&,
const Mtbl&) ;
1907 Scalar
operator+(
const Mtbl&,
const Scalar&) ;
1908 Scalar
operator+(
const Scalar&,
double ) ;
1909 Scalar
operator+(
double,
const Scalar& ) ;
1912 Scalar
operator-(
const Scalar &,
const Scalar &) ;
1913 Scalar
operator-(
const Scalar&,
const Mtbl&) ;
1914 Scalar
operator-(
const Mtbl&,
const Scalar&) ;
1915 Scalar
operator-(
const Scalar&,
double ) ;
1916 Scalar
operator-(
double,
const Scalar& ) ;
1919 Scalar
operator*(
const Scalar &,
const Scalar &) ;
1922 Scalar
operator%(
const Scalar &,
const Scalar &) ;
1925 Scalar
operator|(
const Scalar &,
const Scalar &) ;
1927 Scalar
operator*(
const Mtbl&,
const Scalar&) ;
1928 Scalar
operator*(
const Scalar&,
const Mtbl&) ;
1930 Scalar
operator*(
const Scalar&,
double ) ;
1931 Scalar
operator*(
double,
const Scalar &) ;
1934 Scalar
operator/(
const Scalar &,
const Scalar &) ;
1935 Scalar
operator/(
const Scalar&,
double ) ;
1936 Scalar
operator/(
double,
const Scalar &) ;
1939 Scalar
operator/(
const Scalar &,
const Mtbl&) ;
1940 Scalar
operator/(
const Mtbl&,
const Scalar &) ;
1943 Scalar
sin(
const Scalar& ) ;
1944 Scalar
cos(
const Scalar& ) ;
1945 Scalar
tan(
const Scalar& ) ;
1946 Scalar
asin(
const Scalar& ) ;
1947 Scalar
acos(
const Scalar& ) ;
1948 Scalar
atan(
const Scalar& ) ;
1949 Scalar
exp(
const Scalar& ) ;
1951 Scalar
log(
const Scalar& ) ;
1952 Scalar
log10(
const Scalar& ) ;
1953 Scalar
sqrt(
const Scalar& ) ;
1955 Scalar
pow(
const Scalar& ,
int ) ;
1956 Scalar
pow(
const Scalar& ,
double ) ;
1957 Scalar
abs(
const Scalar& ) ;
1978 Tbl
max(
const Scalar& ) ;
1985 Tbl
min(
const Scalar& ) ;
1993 Tbl
norme(
const Scalar& ) ;
2003 Tbl
diffrel(
const Scalar& a,
const Scalar& b) ;
2013 Tbl
diffrelmax(
const Scalar& a,
const Scalar& b) ;
const Base_val & get_spectral_base() const
Returns the spectral bases of the Valeur va.
Scalar * p_srdsdt
Pointer on of *this (0x0 if not up to date)
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.
Metric for tensor calculation.
Scalar * p_srstdsdp
Pointer on of *this (0x0 if not up to date)
Cmp log(const Cmp &)
Neperian logarithm.
Scalar poisson_dir_neu(const Valeur &limite, int num, double fact_dir, double fact_neu) const
Is identicall to Scalar::poisson() .
Cmp asin(const Cmp &)
Arcsine.
Component of a tensorial field *** DEPRECATED : use class Scalar instead ***.
Cmp exp(const Cmp &)
Exponential.
void filtre_r(int *nn)
Sets the n lasts coefficients in r to 0 in all domains.
Scalar poisson_frontiere_double(const Valeur &, const Valeur &, int) const
Idem as Scalar::poisson_dirichlet , the boundary condition being on both the function and its radial ...
const Scalar & dsdradial() const
Returns of *this if the mapping is affine (class Map_af) and of *this if the mapping is logarithmic...
void mult_r()
Multiplication by r everywhere; dzpuis is not changed.
const Scalar & lapang() const
Returns the angular Laplacian of *this , where .
Cmp sqrt(const Cmp &)
Square root.
virtual void set_etat_zero()
Sets the logical state to ETATZERO (zero).
void set_der_0x0() const
Sets the pointers for derivatives to 0x0.
virtual void annule(int l_min, int l_max)
Sets the Scalar to zero in several domains.
const Tbl & domain(int l) const
Read-only of the value in a given domain.
friend Scalar exp(const Scalar &)
Exponential.
friend double totalmax(const Scalar &)
Maximum values of a Scalar in each domain.
Scalar(const Map &mpi)
Constructor from mapping.
void div_cost()
Division by .
void visu_section_anim(const char section_type, double aa, double umin, double umax, double vmin, double vmax, int jtime, double ttime, int jgraph=1, const char *title=0x0, const char *filename_root=0x0, bool start_dx=false, int nu=200, int nv=200) const
3D visualization via time evolving plane section (animation).
const Scalar & dsdt() const
Returns of *this .
const Scalar & laplacian(int ced_mult_r=4) const
Returns the Laplacian of *this.
Cmp racine_cubique(const Cmp &)
Cube root.
void visu_box(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax, const char *title0=0x0, const char *filename0=0x0, bool start_dx=true, int nx=40, int ny=40, int nz=40) const
3D visualization (volume rendering) via OpenDX.
Tbl multipole_spectrum() const
Gives the spectrum in terms of multipolar modes l .
const Scalar & dsdz() const
Returns of *this , where .
Tensor field of valence 0 (or component of a tensorial field).
virtual void change_triad(const Base_vect &new_triad)
Sets a new vectorial basis (triad) of decomposition and modifies the components accordingly.
Scalar poisson() const
Solves the scalar Poisson equation with *this as a source.
Base_val operator*(const Base_val &, const Base_val &)
This operator is used when calling multiplication or division of Valeur .
Base class for coordinate mappings.
void import_gal(int nzet, const Scalar &ci)
Assignment to another Scalar defined on a different mapping, when the two mappings do not have a part...
void operator-=(const Scalar &)
-= Scalar
double integrale() const
Computes the integral over all space of *this .
friend Tbl max(const Scalar &)
Maximum values of a Scalar in each domain.
friend ostream & operator<<(ostream &, const Scalar &)
Display.
Scalar * p_dsdt
Pointer on of *this (0x0 if not up to date)
Scalar primr(bool null_infty=true) const
Computes the radial primitive which vanishes for .
friend Scalar atan(const Scalar &)
Arctangent.
void match_tau(Param &par_bc, Param *par_mat=0x0)
Method for matching accross domains and imposing boundary condition.
void mult_sint()
Multiplication by .
virtual void exponential_filter_ylm_phi(int lzmin, int lzmax, int p_r, int p_tet, int p_phi, double alpha=-16.)
Applies an exponential filter to the spectral coefficients in the angular directions.
void poisson_regular(int k_div, int nzet, double unsgam1, Param &par, Scalar &uu, Scalar &uu_regu, Scalar &uu_div, Tensor &duu_div, Scalar &source_regu, Scalar &source_div) const
Solves the scalar Poisson equation with *this as a source (version with parameters to control the res...
int ind_lap
Power of r by which the last computed Laplacian has been multiplied in the compactified external doma...
const Scalar & dsdx() const
Returns of *this , where .
virtual void exponential_filter_r(int lzmin, int lzmax, int p, double alpha=-16.)
Applies an exponential filter to the spectral coefficients in the radial direction.
virtual void std_spectral_base()
Sets the spectral bases of the Valeur va to the standard ones for a scalar field. ...
void import_anti_symy(int nzet, const Scalar &ci)
Assignment to another Scalar defined on a different mapping, when the two mappings have anti-aligned ...
friend Tbl min(const Scalar &)
Minimum values of a Scalar in each domain.
Values and coefficients of a (real-value) function.
Cmp operator%(const Cmp &, const Cmp &)
Cmp * Cmp with desaliasing.
Scalar scalar_out_bound(int n, bool leave_ylm=false)
Returns the Scalar containing the values of angular coefficients at the outer boundary.
virtual void allocate_all()
Sets the logical state to ETATQCQ (ordinary state) and performs the memory allocation of all the elem...
virtual void set_etat_nondef()
Sets the logical state to ETATNONDEF (undefined).
int dzpuis
Power of r by which the quantity represented by this must be divided in the compactified external do...
int get_etat() const
Returns the logical state ETATNONDEF (undefined), ETATZERO (null) or ETATQCQ (ordinary).
void operator*=(const Scalar &)
*= Scalar
Scalar sol_elliptic_fixe_der_zero(double val, Param_elliptic ¶ms) const
Resolution of a general elliptic equation fixing the dericative at the origin and relaxing one contin...
Cmp operator/(const Cmp &, const Cmp &)
Cmp / Cmp.
void operator+=(const Scalar &)
+= Scalar
Tbl min(const Cmp &)
Minimum values of a Cmp in each domain.
Scalar sol_divergence(int n) const
Resolution of a divergence-like equation.
virtual void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
friend Scalar sqrt(const Scalar &)
Square root.
Tbl tbl_in_bound(int n, bool leave_ylm=false)
Returns the Tbl containing the values of angular coefficients at the inner boundary.
Scalar operator|(const Scalar &, const Scalar &)
Scalar * Scalar with desaliasing only in r.
Tbl test_poisson(const Scalar &uu, ostream &ostr, bool detail=false) const
Checks if a Poisson equation with *this as a source has been correctly solved.
const Vector & derive_con(const Metric &gam) const
Returns the "contravariant" derivative of *this with respect to some metric , by raising the index of...
Tensor field of valence 1.
friend Scalar operator*(const Scalar &, const Scalar &)
Scalar * Scalar.
Scalar poisson_angu(double lambda=0) const
Solves the (generalized) angular Poisson equation with *this as source.
Vectorial bases (triads) with respect to which the tensorial components are defined.
Cmp cos(const Cmp &)
Cosine.
Scalar sol_elliptic_only_zec(Param_elliptic ¶ms, double val) const
Resolution of a general elliptic equation solving in the compactified domain and putting a given valu...
Tbl & set_domain(int l)
Read/write of the value in a given domain.
Tbl diffrel(const Cmp &a, const Cmp &b)
Relative difference between two Cmp (norme version).
friend Scalar acos(const Scalar &)
Arccosine.
void set_dzpuis(int)
Modifies the dzpuis flag.
double val_grid_point(int l, int k, int j, int i) const
Returns the value of the field at a specified grid point.
void annule_hard()
Sets the Scalar to zero in a hard way.
Scalar * p_lap
Pointer on the Laplacian of *this (0x0 if not up to date)
void exp_filter_ylm_all_domains(Scalar &ss, int p, double alpha=-16.)
Applies an exponential filter in angular directions in all domains.
void raccord(int n)
Performs the matching of the nucleus with respect to the first shell.
Cmp tan(const Cmp &)
Tangent.
Scalar avance_dalembert(Param &par, const Scalar &fJm1, const Scalar &source) const
Performs one time-step integration (from ) of the scalar d'Alembert equation with *this being the val...
friend Scalar pow(const Scalar &, int)
Power .
Tbl * p_integ
Pointer on the space integral of *this (values in each domain) (0x0 if not up to date) ...
void import_anti(int nzet, const Scalar &ci)
Assignment to another Scalar defined on a different mapping, when the two mappings have anti-aligned ...
void smooth_decay(int k, int n)
Performs a matching of the last non-compactified shell with a decaying function where is the spher...
friend Scalar cos(const Scalar &)
Cosine.
void div_r()
Division by r everywhere; dzpuis is not changed.
const Scalar & dsdrho() const
Returns of *this .
virtual void sauve(FILE *) const
Save in a file.
const Tbl & integrale_domains() const
Computes the integral in each domain of *this .
virtual void del_deriv() const
Logical destructor of the derivatives.
Scalar * p_dsdradial
Pointer on of *this.
Tbl norme(const Cmp &)
Sums of the absolute values of all the values of the Cmp in each domain.
Cmp atan(const Cmp &)
Arctangent.
Scalar sol_elliptic_no_zec(Param_elliptic ¶ms, double val=0) const
Resolution of a general elliptic equation, putting a given value at the outermost shell and not solvi...
virtual void inc_dzpuis(int inc=1)
Increases by inc units the value of dzpuis and changes accordingly the values of the Scalar in the co...
Scalar * p_dsdrho
Pointer on of *this.
const Scalar & dsdy() const
Returns of *this , where .
Scalar * p_dsdy
Pointer on of *this , where (0x0 if not up to date)
void operator=(const Scalar &a)
Assignment to another Scalar defined on the same mapping.
Cmp operator+(const Cmp &)
Scalar * p_lapang
Pointer on the Laplacian of *this (0x0 if not up to date)
Scalar poisson_neumann(const Valeur &, int) const
Idem as Scalar::poisson_dirichlet , the boundary condition being on the radial derivative of the solu...
friend Scalar operator+(const Scalar &, const Scalar &)
Scalar + Scalar.
Base_val base
Bases on which the spectral expansion is performed.
int get_dzpuis() const
Returns dzpuis.
Scalar sol_elliptic(Param_elliptic ¶ms) const
Resolution of a general elliptic equation, putting zero at infinity.
virtual void spectral_display(const char *comment=0x0, double threshold=1.e-7, int precision=4, ostream &ostr=cout) const
Displays the spectral coefficients and the associated basis functions.
void set_outer_boundary(int l, double x)
Sets the value of the Scalar at the outer boundary of a given domain.
friend Scalar sin(const Scalar &)
Sine.
void mult_r_ced()
Multiplication by r in the compactified external domain (CED), the dzpuis flag is not changed...
Scalar sol_elliptic_boundary(Param_elliptic ¶ms, const Mtbl_cf &bound, double fact_dir, double fact_neu) const
Resolution of a general elliptic equation, putting zero at infinity and with inner boundary condition...
void set_etat_one()
Sets the logical state to ETATUN (one).
friend Tbl diffrelmax(const Scalar &a, const Scalar &b)
Relative difference between two Scalar (max version).
Valeur va
The numerical value of the Scalar.
void del_t()
Logical destructor.
Tbl max(const Cmp &)
Maximum values of a Cmp in each domain.
virtual void std_spectral_base_odd()
Sets the spectral bases of the Valeur va to the standard odd ones for a scalar field.
const Scalar & deriv(int i) const
Returns of *this , where .
double totalmax(const Mtbl &)
Maximum value of the Mtbl elements in all domains.
friend Tbl diffrel(const Scalar &a, const Scalar &b)
Relative difference between two Scalar (norme version).
friend Scalar operator|(const Scalar &, const Scalar &)
Scalar * Scalar with desaliasing only in r.
const Scalar & stdsdp() const
Returns of *this .
void mult_cost()
Multiplication by .
void div_rsint_dzpuis(int ced_mult_r)
Division by but with the output flag dzpuis set to ced_mult_r .
friend double totalmin(const Scalar &)
Minimum values of a Scalar in each domain.
void visu_section(const char section_type, double aa, double umin, double umax, double vmin, double vmax, const char *title=0x0, const char *filename=0x0, bool start_dx=true, int nu=200, int nv=200) const
3D visualization via a plane section.
void mult_rsint()
Multiplication by everywhere; dzpuis is not changed.
Cmp pow(const Cmp &, int)
Power .
void sarra_filter_r_all_domains(double p, double alpha=1E-16)
Applies an exponential filter in radial direction in all domains for the case where p is a double (se...
void filtre(int n)
Sets the n lasts coefficients in r to 0 in the external domain.
This class contains the parameters needed to call the general elliptic solver.
friend Scalar operator-(const Scalar &)
- Scalar
friend Scalar log(const Scalar &)
Neperian logarithm.
double totalmin(const Mtbl &)
Minimum value of the Mtbl elements in all domain.
friend Scalar racine_cubique(const Scalar &)
Cube root.
Scalar derive_lie(const Vector &v) const
Computes the derivative of this along a vector field v.
void import_align_symy(int nzet, const Scalar &ci)
Assignment to another Scalar defined on a different mapping, when the two mappings have aligned Carte...
double val_point(double r, double theta, double phi) const
Computes the value of the field at an arbitrary point , by means of the spectral expansion.
void import_align(int nzet, const Scalar &ci)
Assignment to another Scalar defined on a different mapping, when the two mappings have aligned Carte...
void set_inner_boundary(int l, double x)
Sets the value of the Scalar at the inner boundary of a given domain.
void filtre_tp(int nn, int nz1, int nz2)
Sets the n lasts coefficients in to 0 in the domain nz1 to nz2 when expressed in spherical harmonics...
void fixe_decroissance(int puis)
Substracts all the components behaving like in the external domain, with n strictly lower than puis ...
void set_spectral_base(const Base_val &)
Sets the spectral bases of the Valeur va
Bases of the spectral expansions.
void import_anti_asymy(int nzet, const Scalar &ci)
Assignment to another Scalar defined on a different mapping, when the two mappings have anti-aligned ...
Scalar * p_dsdz
Pointer on of *this , where (0x0 if not up to date)
double & set_grid_point(int l, int k, int j, int i)
Setting the value of the field at a given grid point.
friend Scalar operator/(const Scalar &, const Scalar &)
Scalar / Scalar.
void filtre_phi(int n, int zone)
Sets the n lasts coefficients in to 0 in the domain zone .
bool dz_nonzero() const
Returns true if the last domain is compactified and *this is not zero in this domain.
void sarra_filter_r(int lzmin, int lzmax, double p, double alpha=-1E-16)
Applies an exponential filter to the spectral coefficients in the radial direction.
const Scalar & srdsdt() const
Returns of *this .
virtual ~Scalar()
Destructor.
void raccord_c1_zec(int puis, int nbre, int lmax)
Performs the matching of the external domain with respect to the last shell using function like wit...
Cmp log10(const Cmp &)
Basis 10 logarithm.
void exp_filter_r_all_domains(Scalar &ss, int p, double alpha=-16.)
Applies an exponential filter in radial direction in all domains.
Scalar sol_elliptic_pseudo_1d(Param_elliptic &) const
Solves a pseudo-1d elliptic equation with *this as a source.
Cmp acos(const Cmp &)
Arccosine.
Cmp abs(const Cmp &)
Absolute value.
friend Scalar log10(const Scalar &)
Basis 10 logarithm.
int etat
The logical state ETATNONDEF (undefined), ETATZERO (null), ETATUN (one), or ETATQCQ (ordinary)...
Scalar * p_stdsdp
Pointer on of *this (0x0 if not up to date)
Coefficients storage for the multi-domain spectral method.
const Scalar & dsdr() const
Returns of *this .
void import_symy(const Scalar &ci)
Assignment to another Scalar defined on a different mapping.
friend Tbl norme(const Scalar &)
Sums of the absolute values of all the values of the Scalar in each domain.
Scalar * p_dsdr
Pointer on of *this (0x0 if not up to date)
void div_sint()
Division by .
void div_rsint()
Division by everywhere; dzpuis is not changed.
Valeur ** asymptot(int n, const int flag=0) const
Asymptotic expansion at r = infinity.
Tbl tbl_out_bound(int l_dom, bool leave_ylm=false)
Returns the Tbl containing the values of angular coefficients at the outer boundary.
Cmp operator-(const Cmp &)
- Cmp
void mult_rsint_dzpuis(int ced_mult_r)
Multiplication by but with the output flag dzpuis set to ced_mult_r .
Cmp sin(const Cmp &)
Sine.
Mtbl Heaviside(const Mtbl &)
Heaviside function.
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...
bool is_nan(bool verbose=false) const
Looks for NaNs (not a number) in the scalar field.
void match_tau_star(Param &par_bc, Param *par_mat=0x0)
Method for matching accross domains and imposing boundary condition.
void match_collocation(Param &par_bc, Param *par_mat=0x0)
Method for matching accross domains and imposing boundary condition.
friend Scalar tan(const Scalar &)
Tangent.
friend Scalar abs(const Scalar &)
Absolute value.
Scalar poisson_dirichlet(const Valeur &limite, int num) const
Is identicall to Scalar::poisson() .
virtual void exponential_filter_ylm(int lzmin, int lzmax, int p, double alpha=-16.)
Applies an exponential filter to the spectral coefficients in the angular directions.
void match_tau_shell(Param &par_bc, Param *par_mat=0x0)
Method for matching accross domains and imposing boundary condition.
Scalar sol_elliptic_sin_zec(Param_elliptic ¶ms, double *coefs, double *phases) const
General elliptic solver.
void import_align_asymy(int nzet, const Scalar &ci)
Assignment to another Scalar defined on a different mapping, when the two mappings have aligned Carte...
void div_r_dzpuis(int ced_mult_r)
Division by r everywhere but with the output flag dzpuis set to ced_mult_r .
const Vector & derive_cov(const Metric &gam) const
Returns the gradient (1-form = covariant vector) of *this
void div_tant()
Division by .
void raccord_externe(int puis, int nbre, int lmax)
Matching of the external domain with the outermost shell.
void div_r_ced()
Division by r in the compactified external domain (CED), the dzpuis flag is not changed.
friend Scalar operator%(const Scalar &, const Scalar &)
Scalar * Scalar with desaliasing.
virtual void dec_dzpuis(int dec=1)
Decreases by dec units the value of dzpuis and changes accordingly the values of the Scalar in the co...
Scalar sol_elliptic_2d(Param_elliptic &) const
Solves the scalar 2-dimensional elliptic equation with *this as a source.
void import_asymy(const Scalar &ci)
Assignment to another Scalar defined on a different mapping.
friend Scalar asin(const Scalar &)
Arcsine.
friend Scalar Heaviside(const Scalar &)
Heaviside function.
void mult_r_dzpuis(int ced_mult_r)
Multiplication by r everywhere but with the output flag dzpuis set to ced_mult_r ...
Tbl diffrelmax(const Cmp &a, const Cmp &b)
Relative difference between two Cmp (max version).
const Valeur & get_spectral_va() const
Returns va (read only version)
const Scalar & srstdsdp() const
Returns of *this .
Tbl & set(int l)
Read/write of the value in a given domain (configuration space).
Scalar poisson_tau() const
Solves the scalar Poisson equation with *this as a source using a real Tau method The source of the ...
Scalar * p_dsdx
Pointer on of *this , where (0x0 if not up to date)