20 #ifndef __BISPHERIC_HPP_
21 #define __BISPHERIC_HPP_
29 #include "spheric.hpp"
30 #include "list_comp.hpp"
185 virtual void save (FILE* fd)
const ;
190 virtual void do_cart ()
const ;
269 virtual bool is_in(
const Point& xx,
double prec=1e-13)
const ;
421 virtual ostream&
print (ostream& o)
const ;
606 virtual void save(FILE*)
const ;
610 virtual void do_cart ()
const ;
692 virtual bool is_in(
const Point& xx,
double prec=1e-13)
const ;
839 virtual ostream&
print (ostream& o)
const ;
1016 virtual void save (FILE*)
const ;
1021 virtual void do_cart ()
const ;
1102 virtual bool is_in(
const Point& xx,
double prec=1e-13)
const ;
1234 virtual ostream&
print (ostream& o)
const ;
1299 Space_bispheric (
int ttype,
double dist,
double r1,
double r2,
double rext,
int nr) ;
1382 Space_bispheric (
int ttype,
double dist,
int nminus,
const Array<double>& rminus,
int nplus,
const Array<double>& rplus,
int nshells,
const Array<double>& rr,
const Array<int>& type_r,
int nr,
bool withnuc =
true) ;
1416 Space_bispheric (
int ttype,
double dist,
int nminus,
const Array<double>& rminus,
const Array<int>& type_r_minus,
int nplus,
const Array<double>& rplus,
const Array<int>& type_r_plus,
int nshells,
const Array<double>& rr,
const Array<int>& type_r,
int nr,
bool withnuc =
true) ;
1431 Space_bispheric (
int ttype,
double dist,
double rhor1,
double rshell1,
double rhor2,
double rshell2,
double rext,
int nr) ;
1446 Space_bispheric (
int ttype,
double dist,
double rhor1,
double rshell1,
double rhor2,
double rshell2,
double rext,
Dim_array** resol) ;
1471 Space_bispheric (FILE*,
int shell_type = STD_TYPE,
bool old =
false) ;
1481 Space_bispheric (FILE*,
int type_minus,
int type_plus,
int shell_type) ;
1670 virtual void save(FILE*)
const ;
Class for storing the basis of decompositions of a field.
Class for storing the dimensions of an array.
Class for bispherical coordinates with a symmetry with respect to the plane .
void export_tau_val_domain(const Val_domain &eq, int order, Array< double > &res, int &pos_res, int ncond) const
Exports a residual equation in the bulk.
Val_domain * p_chi
Pointer on a Val_domain containing .
virtual void do_der_abs_from_der_var(const Val_domain *const *const der_var, Val_domain **const der_abs) const
Computes the derivative with respect to the absolute Cartesian coordinates from the derivative with r...
virtual Val_domain mult_cos_phi(const Val_domain &) const
Multiplication by .
void export_tau_val_domain_boundary_one_side(const Val_domain &eq, int bound, Array< double > &res, int &pos_res, int ncond) const
Exports all the residual equations corresponding to a tensorial one on a given boundary,...
virtual Val_domain div_chi(const Val_domain &) const
Division by .
Domain_bispheric_chi_first(int num, int ttype, double aa, double etalim, double rr, double chi_max, const Dim_array &nbr)
Standard constructor :
virtual Val_domain div_sin_chi(const Val_domain &) const
Division by .
int nbr_unknowns_val_domain(const Val_domain &so) const
Computes the number of true unknowns of a Val_domain.
virtual Array< int > nbr_conditions_boundary(const Tensor &, int, int, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Computes number of discretized equations associated with a given tensorial equation on a boundary.
virtual double integ(const Val_domain &, int) const
Surface integral on a given boundary.
void do_phi() const
Computes in *p_phi.
Val_domain * p_eta
Pointer on a Val_domain containing .
void del_deriv() override
Destroys the derivated members (like coloc, cart and radius), when changing the type of colocation po...
virtual ostream & print(ostream &o) const
Delegate function to virtualize the << operator.
virtual void set_cheb_base(Base_spectral &so) const
Sets the base to the standard one for Chebyshev polynomials.
virtual Array< int > nbr_conditions_boundary_one_side(const Tensor &, int, int, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Computes number of discretized equations associated with a given tensorial equation on a boundary.
void do_eta() const
Computes in *p_eta.
Val_domain * p_detadz
Pointer on a Val_domain containing .
Val_domain * bound_eta_der
Pointer on a Val_domain containing the values of the derivative with respect to .
Val_domain * p_dchidx
Pointer on a Val_domain containing The explicit expression are : .
virtual Val_domain der_normal(const Val_domain &, int) const
Normal derivative with respect to a given surface.
virtual void do_cart() const
Computes the Cartesian coordinates.
Val_domain * p_dphidy
Pointer on a Val_domain containing The explicit expression is : .
double chi_max
Upper bound for .
virtual void affecte_tau(Tensor &, int, const Array< double > &, int &) const
Affects some coefficients to a Tensor.
double aa
Distance scale .
virtual void save(FILE *) const
Saving function.
virtual Base_spectral mult(const Base_spectral &, const Base_spectral &) const
Method for the multiplication of two Base_spectral.
void export_tau_val_domain_boundary(const Val_domain &eq, int bound, Array< double > &res, int &pos_res, int ncond) const
Exports all the residual equations corresponding to a tensorial one on a given boundary It makes use ...
Term_eq fithor(const Term_eq &so) const
Returns a fit in with respect to the inner spherical boundary.
virtual int nbr_unknowns(const Tensor &, int) const
Computes the number of true unknowns of a Tensor, in a given domain.
virtual const Val_domain & get_chi() const
Returns the variable .
double eta_lim
Lower bound for .
virtual void export_tau_boundary(const Tensor &, int, int, Array< double > &, int &, const Array< int > &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Exports all the residual equations corresponding to a tensorial one on a given boundary It makes use ...
Val_domain * p_dchidy
Pointer on a Val_domain containing The explicit expression are : .
virtual const Point absol_to_num_bound(const Point &, int) const
Computes the numerical coordinates from the physical ones for a point lying on a boundary.
virtual void set_legendre_base(Base_spectral &so) const
Sets the base to the standard one for Legendre polynomials.
virtual void affecte_tau_one_coef(Tensor &, int, int, int &) const
Sets at most one coefficient of a Tensor to 1.
void do_dsint() const
Computes the surface element and stores it in *p_dsint.
virtual void do_coloc()
Computes the colocation points.
virtual Term_eq derive_flat_cart(int, char, const Term_eq &, const Metric *) const
Computes the flat derivative of a Term_eq, in Cartesian coordinates.
Val_domain * p_detadx
Pointer on a Val_domain containing .
virtual void set_anti_cheb_base(Base_spectral &so) const
Sets the base to the standard one for Chebyshev polynomials and an astisymetric function with respect...
virtual void find_other_dom(int, int, int &, int &) const
Gives the informations corresponding the a touching neighboring domain.
void affecte_tau_one_coef_val_domain(Val_domain &so, int cc, int &pos_cf) const
Sets at most one coefficient of a Val_domain to 1.
virtual const Val_domain & get_eta() const
Returns the variable .
virtual Array< int > nbr_conditions(const Tensor &, int, int, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Computes number of discretized equations associated with a given tensorial equation in the bulk.
virtual void set_anti_legendre_base(Base_spectral &so) const
Sets the base to the standard one for Legendre polynomials and an astisymetric function with respect ...
Val_domain * p_dsint
Pointer on a Val_domain containing the surface element on the inner boundary of the domain (being sph...
virtual Val_domain mult_r(const Val_domain &) const
Multiplication by .
virtual void export_tau_boundary_one_side(const Tensor &, int, int, Array< double > &, int &, const Array< int > &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Exports all the residual equations corresponding to one tensorial one on a given boundary.
virtual int nbr_points_boundary(int, const Base_spectral &) const
Computes the number of relevant collocation points on a boundary.
virtual int give_place_var(char *) const
Translates a name of a coordinate into its corresponding numerical name.
virtual double val_boundary(int, const Val_domain &, const Index &) const
Computes the value of a field at a boundary.
virtual void export_tau(const Tensor &, int, int, Array< double > &, int &, const Array< int > &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Exports all the residual equations corresponding to a tensorial one in the bulk.
Val_domain * p_detady
Pointer on a Val_domain containing .
virtual const Point absol_to_num(const Point &xxx) const
Computes the numerical coordinates from the physical ones.
Val_domain * p_dphidz
Pointer on a Val_domain containing The explicit expression is : .
Val_domain * p_phi
Pointer on a Val_domain containing .
int nbr_conditions_val_domain(const Val_domain &eq, int order) const
Computes number of discretized equations associated with a given tensorial equation in the bulk.
virtual void do_which_points_boundary(int, const Base_spectral &, Index **, int) const
Lists all the indices corresponding to true collocation points on a boundary.
void do_bound_eta() const
Computes and its first derivative stored respectively in and .
void affecte_tau_val_domain(Val_domain &so, const Array< double > &cf, int &pos_cf) const
Affects some coefficients to a Val_domain.
virtual void do_radius() const
Computes the generalized radius.
void do_chi() const
Computes in *p_chi.
virtual void do_absol() const
Computes the absolute coordinates.
Val_domain * p_dchidz
Pointer on a Val_domain containing The explicit expression are : .
int nbr_conditions_val_domain_boundary_one_side(const Val_domain &eq, int bound) const
Computes number of discretized equations associated with a given equation on a boundary,...
Val_domain * bound_eta
Pointer on a Val_domain containing the values of .
void do_for_der() const
Computes the partial derivatives of the numerical coordinates with respect to the Cartesian ones like...
virtual Val_domain mult_sin_phi(const Val_domain &) const
Multiplication by .
virtual bool is_in(const Point &xx, double prec=1e-13) const
Check whether a point lies inside Domain.
double r_ext
Radius of the outer boundary.
int nbr_conditions_val_domain_boundary(const Val_domain &eq, int bound) const
Computes number of discretized equations associated with a given equation on a boundary.
Class for bispherical coordinates with a symmetry with respect to the plane .
virtual void do_radius() const
Computes the generalized radius.
virtual Val_domain div_sin_chi(const Val_domain &) const
Division by .
void export_tau_val_domain_boundary_one_side(const Val_domain &eq, int bound, Array< double > &res, int &pos_res, int ncond) const
Exports all the residual equations corresponding to a tensorial one on a given boundary,...
virtual double val_boundary(int, const Val_domain &, const Index &) const
Computes the value of a field at a boundary.
void export_tau_val_domain_boundary(const Val_domain &eq, int bound, Array< double > &res, int &pos_res, int ncond) const
Exports all the residual equations corresponding to a tensorial one on a given boundary It makes use ...
virtual Val_domain div_chi(const Val_domain &) const
Division by .
Val_domain * p_dchidz
Pointer on a Val_domain containing .
virtual void export_tau_boundary(const Tensor &, int, int, Array< double > &, int &, const Array< int > &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Exports all the residual equations corresponding to a tensorial one on a given boundary It makes use ...
Domain_bispheric_eta_first(int num, int ttype, double aa, double rr, double eta_min, double eta_max, const Dim_array &nbr)
Standard constructor :
virtual void affecte_tau_one_coef(Tensor &, int, int, int &) const
Sets at most one coefficient of a Tensor to 1.
virtual void find_other_dom(int, int, int &, int &) const
Gives the informations corresponding the a touching neighboring domain.
virtual int nbr_points_boundary(int, const Base_spectral &) const
Computes the number of relevant collocation points on a boundary.
virtual void do_cart() const
Computes the Cartesian coordinates.
void do_phi() const
Computes in *p_phi.
virtual void do_coloc()
Computes the colocation points.
virtual Val_domain mult_cos_phi(const Val_domain &) const
Multiplication by .
void do_for_der() const
Computes the partial derivatives of the numerical coordinates with respect to the Cartesian ones like...
virtual void affecte_tau(Tensor &, int, const Array< double > &, int &) const
Affects some coefficients to a Tensor.
virtual void set_anti_legendre_base(Base_spectral &so) const
Sets the base to the standard one for Legendre polynomials and an astisymetric function with respect ...
void do_bound_chi() const
Computes and its first derivative stored respectively in and .
virtual void save(FILE *) const
Saving function.
virtual void do_which_points_boundary(int, const Base_spectral &, Index **, int) const
Lists all the indices corresponding to true collocation points on a boundary.
void do_eta() const
Computes in *p_eta.
Val_domain * p_chi
Pointer on a Val_domain containing .
virtual int nbr_unknowns(const Tensor &, int) const
Computes the number of true unknowns of a Tensor, in a given domain.
void affecte_tau_val_domain(Val_domain &so, const Array< double > &cf, int &pos_cf) const
Affects some coefficients to a Val_domain.
virtual ostream & print(ostream &o) const
Delegate function to virtualize the << operator.
Val_domain * p_detadz
Pointer on a Val_domain containing The explicit expression are : .
virtual const Val_domain & get_eta() const
Returns the variable .
Val_domain * p_detady
Pointer on a Val_domain containing The explicit expression are : .
Val_domain * p_eta
Pointer on a Val_domain containing .
int nbr_conditions_val_domain_boundary(const Val_domain &eq, int bound) const
Computes number of discretized equations associated with a given equation on a boundary.
virtual void set_legendre_base(Base_spectral &so) const
Sets the base to the standard one for Chebyshev polynomials.
void do_chi() const
Computes in *p_chi.
void del_deriv() override
Destroys the derivated members (like coloc, cart and radius), when changing the type of colocation po...
virtual Val_domain mult_sin_phi(const Val_domain &) const
Multiplication by .
virtual Array< int > nbr_conditions(const Tensor &, int, int, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Computes number of discretized equations associated with a given tensorial equation in the bulk.
virtual const Val_domain & get_chi() const
Returns the variable .
virtual void set_anti_cheb_base(Base_spectral &so) const
Sets the base to the standard one for Chebyshev polynomials and an astisymetric function with respect...
virtual int give_place_var(char *) const
Translates a name of a coordinate into its corresponding numerical name.
virtual Array< int > nbr_conditions_boundary_one_side(const Tensor &, int, int, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Computes number of discretized equations associated with a given tensorial equation on a boundary.
double r_ext
Radius of the outer boundary.
virtual void export_tau(const Tensor &, int, int, Array< double > &, int &, const Array< int > &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Exports all the residual equations corresponding to a tensorial one in the bulk.
Val_domain * p_dphidy
Pointer on a Val_domain containing The explicit expression is : .
virtual void set_cheb_base(Base_spectral &so) const
Sets the base to the standard one for Chebyshev polynomials.
virtual const Point absol_to_num_bound(const Point &, int) const
Computes the numerical coordinates from the physical ones for a point lying on a boundary.
Val_domain * p_dphidz
Pointer on a Val_domain containing The explicit expression is : .
virtual Val_domain mult_r(const Val_domain &) const
Multiplication by .
void affecte_tau_one_coef_val_domain(Val_domain &so, int cc, int &pos_cf) const
Sets at most one coefficient of a Val_domain to 1.
virtual Val_domain der_normal(const Val_domain &, int) const
Normal derivative with respect to a given surface.
virtual const Point absol_to_num(const Point &xxx) const
Computes the numerical coordinates from the physical ones.
Val_domain * p_dchidx
Pointer on a Val_domain containing .
double aa
Distance scale .
Val_domain * p_detadx
Pointer on a Val_domain containing The explicit expression are : .
virtual Array< int > nbr_conditions_boundary(const Tensor &, int, int, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Computes number of discretized equations associated with a given tensorial equation on a boundary.
virtual void do_absol() const
Computes the absolute coordinates.
Val_domain * p_dchidy
Pointer on a Val_domain containing .
virtual Base_spectral mult(const Base_spectral &, const Base_spectral &) const
Method for the multiplication of two Base_spectral.
int nbr_conditions_val_domain(const Val_domain &eq, int order) const
Computes number of discretized equations associated with a given tensorial equation in the bulk.
Val_domain * bound_chi
Pointer on a Val_domain containing the values of .
virtual void export_tau_boundary_one_side(const Tensor &, int, int, Array< double > &, int &, const Array< int > &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Exports all the residual equations corresponding to one tensorial one on a given boundary.
virtual bool is_in(const Point &xx, double prec=1e-13) const
Check whether a point lies inside Domain.
double eta_max
Upper bound for .
virtual Term_eq derive_flat_cart(int, char, const Term_eq &, const Metric *) const
Computes the flat derivative of a Term_eq, in Cartesian coordinates.
void export_tau_val_domain(const Val_domain &eq, int order, Array< double > &res, int &pos_res, int ncond) const
Exports a residual equation in the bulk.
Val_domain * bound_chi_der
Pointer on a Val_domain containing the values of the derivative with respect to .
Val_domain * p_phi
Pointer on a Val_domain containing .
int nbr_unknowns_val_domain(const Val_domain &so) const
Computes the number of true unknowns of a Val_domain.
virtual void do_der_abs_from_der_var(const Val_domain *const *const der_var, Val_domain **const der_abs) const
Computes the derivative with respect to the absolute Cartesian coordinates from the derivative with r...
int nbr_conditions_val_domain_boundary_one_side(const Val_domain &eq, int bound) const
Computes number of discretized equations associated with a given equation on a boundary,...
double eta_min
Lower bound for .
Class for bispherical coordinates with a symmetry with respect to the plane .
virtual void set_anti_cheb_base(Base_spectral &so) const
Sets the base to the standard one for Chebyshev polynomials and an astisymetric function with respect...
Val_domain * p_dsint
Pointer on a Val_domain containing the surface element on the inner boundary of the domain (being sph...
Val_domain * p_dchidy
Pointer on a Val_domain containing The explicit expression are : .
Val_domain * p_eta
Pointer on a Val_domain containing .
void affecte_tau_one_coef_val_domain(Val_domain &so, int cc, int &pos_cf) const
Sets at most one coefficient of a Val_domain to 1.
void del_deriv() override
Destroys the derivated members (like coloc, cart and radius), when changing the type of colocation po...
double eta_plus
associated with .
Val_domain * p_detadz
Pointer on a Val_domain containing The explicit expression are : .
virtual Term_eq derive_flat_cart(int, char, const Term_eq &, const Metric *) const
Computes the flat derivative of a Term_eq, in Cartesian coordinates.
virtual void do_cart() const
Computes the Cartesian coordinates.
virtual Val_domain mult_sin_phi(const Val_domain &) const
Multiplication by .
virtual bool is_in(const Point &xx, double prec=1e-13) const
Check whether a point lies inside Domain.
int nbr_conditions_val_domain(const Val_domain &eq, int order) const
Computes number of discretized equations associated with a given tensorial equation in the bulk.
Val_domain * p_detady
Pointer on a Val_domain containing The explicit expression are : .
int nbr_conditions_val_domain_boundary_one_side(const Val_domain &eq, int bound) const
Computes number of discretized equations associated with a given equation on a boundary,...
virtual void do_absol() const
Computes the absolute coordinates.
virtual const Val_domain & get_eta() const
Returns the variable .
int nbr_unknowns_val_domain(const Val_domain &so) const
Computes the number of true unknowns of a Val_domain.
double eta_minus
associated with .
virtual void export_tau_boundary(const Tensor &, int, int, Array< double > &, int &, const Array< int > &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Exports all the residual equations corresponding to a tensorial one on a given boundary It makes use ...
virtual Val_domain der_normal(const Val_domain &, int) const
Normal derivative with respect to a given surface.
virtual void do_radius() const
Computes the generalized radius.
void do_for_der() const
Computes the partial derivatives of the numerical coordinates with respect to the Cartesian ones like...
virtual Array< int > nbr_conditions_boundary(const Tensor &, int, int, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Computes number of discretized equations associated with a given tensorial equation on a boundary.
virtual double val_boundary(int, const Val_domain &, const Index &) const
Computes the value of a field at a boundary.
double aa
Distance scale .
virtual void affecte_tau_one_coef(Tensor &, int, int, int &) const
Sets at most one coefficient of a Tensor to 1.
void do_chi() const
Computes in *p_chi.
virtual Val_domain div_chi(const Val_domain &) const
Division by .
Val_domain * p_dphidz
Pointer on a Val_domain containing The explicit expression is : .
virtual void export_tau(const Tensor &, int, int, Array< double > &, int &, const Array< int > &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Exports all the residual equations corresponding to a tensorial one in the bulk.
virtual Val_domain mult_r(const Val_domain &) const
Multiplication by .
Val_domain * p_chi
Pointer on a Val_domain containing .
virtual Base_spectral mult(const Base_spectral &, const Base_spectral &) const
Method for the multiplication of two Base_spectral.
virtual int give_place_var(char *) const
Translates a name of a coordinate into its corresponding numerical name.
virtual void find_other_dom(int, int, int &, int &) const
Gives the informations corresponding the a touching neighboring domain.
void affecte_tau_val_domain(Val_domain &so, const Array< double > &cf, int &pos_cf) const
Affects some coefficients to a Val_domain.
virtual ostream & print(ostream &o) const
Delegate function to virtualize the << operator.
Val_domain * p_dphidy
Pointer on a Val_domain containing The explicit expression is : .
virtual int nbr_points_boundary(int, const Base_spectral &) const
Computes the number of relevant collocation points on a boundary.
virtual const Val_domain & get_chi() const
Returns the variable .
virtual const Point absol_to_num(const Point &xxx) const
Computes the numerical coordinates from the physical ones.
Val_domain * p_dchidx
Pointer on a Val_domain containing The explicit expression are : .
void do_dsint() const
Computes the surface element and stores it in *p_dsint.
virtual void set_legendre_base(Base_spectral &so) const
Sets the base to the standard one for Legendre polynomials.
Val_domain * p_dchidz
Pointer on a Val_domain containing The explicit expression are : .
virtual void export_tau_boundary_one_side(const Tensor &, int, int, Array< double > &, int &, const Array< int > &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Exports all the residual equations corresponding to one tensorial one on a given boundary.
virtual const Point absol_to_num_bound(const Point &, int) const
Computes the numerical coordinates from the physical ones for a point lying on a boundary.
Val_domain * p_detadx
Pointer on a Val_domain containing The explicit expression are : .
virtual Val_domain div_sin_chi(const Val_domain &) const
Division by .
int nbr_conditions_val_domain_boundary(const Val_domain &eq, int bound) const
Computes number of discretized equations associated with a given equation on a boundary.
virtual void affecte_tau(Tensor &, int, const Array< double > &, int &) const
Affects some coefficients to a Tensor.
double chi_min
Lower bound for .
virtual int nbr_unknowns(const Tensor &, int) const
Computes the number of true unknowns of a Tensor, in a given domain.
virtual Array< int > nbr_conditions(const Tensor &, int, int, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Computes number of discretized equations associated with a given tensorial equation in the bulk.
virtual void do_der_abs_from_der_var(const Val_domain *const *const der_var, Val_domain **const der_abs) const
Computes the derivative with respect to the absolute Cartesian coordinates from the derivative with r...
double r_ext
Radius of the outer boundary.
void export_tau_val_domain_boundary(const Val_domain &eq, int bound, Array< double > &res, int &pos_res, int ncond) const
Exports all the residual equations corresponding to a tensorial one on a given boundary It makes use ...
Term_eq fithor(const Term_eq &so) const
Returns a fit in with respect to the inner spherical boundary.
void export_tau_val_domain(const Val_domain &eq, int order, Array< double > &res, int &pos_res, int ncond) const
Exports a residual equation in the bulk.
virtual void set_cheb_base(Base_spectral &so) const
Sets the base to the standard one for Chebyshev polynomials.
virtual double integ(const Val_domain &, int) const
Surface integral on a given boundary.
virtual void save(FILE *fd) const
Saving function.
void do_phi() const
Computes in *p_phi
virtual void set_anti_legendre_base(Base_spectral &so) const
Sets the base to the standard one for Legendre polynomials and an astisymetric function with respect ...
virtual void do_which_points_boundary(int, const Base_spectral &, Index **, int) const
Lists all the indices corresponding to true collocation points on a boundary.
virtual void do_coloc()
Computes the colocation points.
virtual Val_domain mult_cos_phi(const Val_domain &) const
Multiplication by .
void export_tau_val_domain_boundary_one_side(const Val_domain &eq, int bound, Array< double > &res, int &pos_res, int ncond) const
Exports all the residual equations corresponding to a tensorial one on a given boundary,...
Domain_bispheric_rect(int nd, int ttype, double aa, double rext, double eta_minus, double eta_plus, double chi_min, const Dim_array &nbr)
Standard constructor :
virtual Array< int > nbr_conditions_boundary_one_side(const Tensor &, int, int, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Computes number of discretized equations associated with a given tensorial equation on a boundary.
void do_eta() const
Computes in *p_eta.
Val_domain * p_phi
Pointer on a Val_domain containing .
Abstract class that implements the fonctionnalities common to all the type of domains.
Class that gives the position inside a multi-dimensional Array.
Class for storing a list of tensorial components.
Purely abstract class for metric handling.
The class Point is used to store the coordinates of a point.
The class Scalar does not really implements scalars in the mathematical sense but rather tensorial co...
The Space_bispheric class fills the space with bispherical coordinates (see the constructor for more ...
void add_eq_full(System_of_eqs &syst, const char *eq, int nused=-1, Array< int > **pused=0x0)
Sets an equation inside every domains (assumed to be zeroth order).
int get_nshells() const
Accessor nshells.
int nshells
Number of shells outside the bispheric region.
void add_bc_outer_sphere(System_of_eqs &syst, const char *eq, int nused=-1, Array< int > **pused=0x0)
Sets a boundary condition at the outer sphere of the bispheric coordinates.
void add_eq_zero_mode_inf(System_of_eqs &syst, const char *f, int jtarget, int ktarget)
Adds an equation saying that one coefficient of a field is zero (at infinity)
int ndom_minus
Number of spherical domains inside the first sphere.
double int_sphere_one(const Scalar &so) const
Computes the surface integral on the first sphere.
virtual void save(FILE *) const
Saving function.
virtual ~Space_bispheric()
Destructor.
void add_eq_one_side(System_of_eqs &syst, const char *eq, int nused=-1, Array< int > **pused=0x0)
Sets an equation inside every domains (assumed to be first order).
int ndom_plus
Number of spherical domains inside the second sphere.
void add_bc_outer(System_of_eqs &syst, const char *eq, int nused=-1, Array< int > **pused=0x0)
Sets a boundary condition at the outer boundary.
double int_inf(const Scalar &so) const
Computes the surface integral at infinity.
int get_ndom_minus() const
Accessor ndom_minus.
void add_bc_sphere_one(System_of_eqs &syst, const char *eq, int nused=-1, Array< int > **pused=0x0)
Sets a boundary condition at the inner radius of the first sphere.
virtual Array< int > get_indices_matching_non_std(int, int) const
Gives the number of the other domains, touching a given boundary.
Space_bispheric(int ttype, double dist, double r1, double r2, double rext, int nr)
Standard constructor
double a_minus
X-absolute coordinate of the center of the first sphere.
double a_plus
X-absolute coordinate of the center of the second sphere.
void add_eq(System_of_eqs &syst, const char *eq, int nused=-1, Array< int > **pused=0x0)
Sets an equation inside every domains (assumed to be second order).
void add_eq_int_inf(System_of_eqs &syst, const char *eq)
Adds an equation being a surface integral at infinity.
void add_bc_sphere_two(System_of_eqs &syst, const char *eq, int nused=-1, Array< int > **pused=0x0)
Sets a boundary condition at the inner radius of the second sphere.
int get_ndom_plus() const
Accessor ndom_plus.
void add_matching(System_of_eqs &syst, const char *rac, const List_comp &list)
Sets a matching condition accross all the bispheric domain (intended for a second order equation).
double int_sphere_two(const Scalar &so) const
Computes the surface integral on the second sphere.
double get_a_minus() const
Returns the location of the center of the first sphere.
void add_eq_int_sphere_one(System_of_eqs &syst, const char *eq)
Adds an equation being a surface integral on the first sphere.
void add_eq_no_nucleus(System_of_eqs &syst, const char *eq, const char *rac, const char *rac_der, int nused=-1, Array< int > **pused=0x0)
Adds a bulk equation and two matching conditions for a space without nucleii.
void add_matching_one_side(System_of_eqs &syst, const char *rac, int nused=-1, Array< int > **pused=0x0)
Sets a matching condition accross all the bispheric domain (intended for a first order equation).
double get_a_plus() const
Returns the location of the center of the second sphere.
void add_eq_int_sphere_two(System_of_eqs &syst, const char *eq)
Adds an equation being a surface integral on the second sphere.
The Space class is an ensemble of domains describing the whole space of the computation.
Class used to describe and solve a system of equations.
This class is intended to describe the manage objects appearing in the equations.
Class for storing the basis of decompositions of a field and its values on both the configuration and...