20 #include "headcpp.hpp"
22 #include "bispheric.hpp"
23 #include "system_of_eqs.hpp"
24 #include "name_tools.hpp"
34 sys.
add_eq_bc (2, INNER_BC, name, nused, pused) ;
52 sys.
add_eq_bc(dd, OUTER_BC, name, nused, pused) ;
148 for (
int d=6 ; d<=10 ; d++)
203 for (
int d=2 ; d<=6 ; d++)
219 cerr <<
"add_eq_int_inf requires a compactified domain" << endl ;
227 bool indic = sys.
is_ope_bin(nom, p1, p2,
'=') ;
229 cerr <<
"= needed for equations" << endl ;
234 indic = ((p2[0]==
'0') && (p2[1]==
' ') && (p2[2]==
'\0')) ?
257 bool indic = sys.
is_ope_bin(nom, p1, p2,
'=') ;
259 cerr <<
"= needed for equations" << endl ;
265 indic = ((p2[0]==
'0') && (p2[1]==
' ') && (p2[2]==
'\0')) ?
310 bool indic = sys.
is_ope_bin(nom, p1, p2,
'=') ;
312 cerr <<
"= needed for equations" << endl ;
317 indic = ((p2[0]==
'0') && (p2[1]==
' ') && (p2[2]==
'\0')) ?
365 trim_spaces (auxi, name) ;
Class for a spherical compactified domain and a symmetry with respect to the plane .
Class implementing an integral equation.
Class that gives the position inside a multi-dimensional Array.
int & set(int i)
Read/write of the position in a given dimension.
Class for storing a list of tensorial components.
int get_ncomp() const
Returns the number of components.
Array< int > ** get_pcomp() const
Returns a pointer of the liste.
The operator substraction.
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).
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.
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.
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.
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.
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).
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).
void add_eq_int_sphere_two(System_of_eqs &syst, const char *eq)
Adds an equation being a surface integral on the second sphere.
Domain ** domains
Pointers on the various Domains.
int nbr_domains
Number od Domains.
Class used to describe and solve a system of equations.
virtual void add_eq_inside(int dom, const char *eq, int n_cmp=-1, Array< int > **p_cmp=nullptr)
Addition of an equation to be solved inside a domain (assumed to be second order).
virtual void add_eq_full(int dom, const char *eq, int n_cmp=-1, Array< int > **p_cmp=nullptr)
Addition of an equation to be solved inside a domain (assumed to be zeroth order i....
virtual void add_eq_matching_import(int dom, int bb, const char *eq, int n_cmp=-1, Array< int > **p_cmp=nullptr)
Addition of an equation describing a matching condition between domains using the ("import" setting) ...
virtual void add_eq_mode(int dom, int bb, const char *eq, const Index &pos_cf, double val)
Addition of an equation prescribing the value of one coefficient of a scalar field,...
virtual void add_eq_matching(int dom, int bb, const char *eq, int n_cmp=-1, Array< int > **p_cmp=nullptr)
Addition of an equation describing a matching condition between two domains (standard setting)
int neq_int
Number of integral equations (i.e. which are doubles)
virtual void add_eq_bc(int dom, int bb, const char *eq, int n_cmp=-1, Array< int > **p_cmp=nullptr)
Addition of an equation describing a boundary condition.
bool is_ope_bin(const char *input, char *p1, char *p2, char symb) const
Checks if a string represents an operator of the type "a + b".
virtual void add_eq_matching_one_side(int dom, int bb, const char *eq, int n_cmp=-1, Array< int > **p_cmp=nullptr)
Addition of an equation describing a matching condition between two domains (specialized function for...
Ope_eq * give_ope(int dom, const char *name, int bb=0) const
Function that reads a string and returns a pointer on the generated Ope_eq.
int get_dom_max() const
Returns the highest index of the domains.
int nbr_conditions
Total number of conditions (the number of coefficients of all the equations, once regularities are ta...
virtual void add_eq_one_side(int dom, const char *eq, int n_cmp=-1, Array< int > **p_cmp=nullptr)
Addition of an equation to be solved inside a domain (assumed to be first order).
int get_dom_min() const
Returns the smallest index of the domains.
MMPtr_array< Eq_int > eq_int
Pointers onto the integral equations.