KADATH
Kadath::Space_bispheric Class Reference

The Space_bispheric class fills the space with bispherical coordinates (see the constructor for more details). More...

#include <bispheric.hpp>

Inheritance diagram for Kadath::Space_bispheric:
Kadath::Space

Public Member Functions

int get_ndom_minus () const
 Accessor ndom_minus. More...
 
int get_ndom_plus () const
 Accessor ndom_plus. More...
 
int get_nshells () const
 Accessor nshells. More...
 
 Space_bispheric (int ttype, double dist, double r1, double r2, double rext, int nr)
 Standard constructor
More...
 
 Space_bispheric (int ttype, double dist, double r1, double r2, int nshells, const Array< double > &rr, int nr)
 Constructor with several outer shells. More...
 
 Space_bispheric (int ttype, double dist, double r1, double r2, int nshells, const Array< double > &rr, const Array< int > &type_r, int nr)
 Constructor with several outer shells possibly of various types (log or $ 1/r$ mappings). More...
 
 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)
 Constructor with several outer shells possibly of various types (log or $ 1/r$ mappings). More...
 
 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)
 Constructor with several outer shells possibly of various types (log or $ 1/r$ mappings). More...
 
 Space_bispheric (int ttype, double dist, double rhor1, double rshell1, double rhor2, double rshell2, double rext, int nr)
 Constructor without nucleus and one shell around each holes ; a compactified outer domain. More...
 
 Space_bispheric (int ttype, double dist, double rhor1, double rshell1, double rhor2, double rshell2, double rext, Dim_array **resol)
 Constructor without nucleus and one shell around each holes ; a compactified outer domain. More...
 
 Space_bispheric (int ttype, double dist, double rhor1, double rshell1, double rhor2, double rshell2, int nshells, const Array< double > &rshells, int nr)
 Constructor without nucleus and one shell around each holes ; a compactified outer domain. More...
 
 Space_bispheric (FILE *, int shell_type=0, bool old=false)
 Constructor from a file. More...
 
 Space_bispheric (FILE *, int type_minus, int type_plus, int shell_type)
 Constructor from a file where the types of shelles are passed as integers. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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). 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). More...
 
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). More...
 
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). More...
 
void add_matching (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 second order equation). More...
 
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). More...
 
void add_eq (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. More...
 
void add_eq (System_of_eqs &syst, const char *eq, const char *rac, const char *rac_der, const List_comp &list)
 Adds a bulk equation and two matching conditions. More...
 
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. More...
 
void add_eq_no_nucleus (System_of_eqs &syst, const char *eq, const char *rac, const char *rac_der, const List_comp &list)
 Adds a bulk equation and two matching conditions for a space without nucleii. More...
 
void add_eq_int_inf (System_of_eqs &syst, const char *eq)
 Adds an equation being a surface integral at infinity. More...
 
void add_eq_int_sphere_one (System_of_eqs &syst, const char *eq)
 Adds an equation being a surface integral on the first sphere. More...
 
void add_eq_int_sphere_two (System_of_eqs &syst, const char *eq)
 Adds an equation being a surface integral on the second sphere. More...
 
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) More...
 
double get_a_minus () const
 Returns the location of the center of the first sphere. More...
 
double get_a_plus () const
 Returns the location of the center of the second sphere. More...
 
double int_sphere_one (const Scalar &so) const
 Computes the surface integral on the first sphere. More...
 
double int_sphere_two (const Scalar &so) const
 Computes the surface integral on the second sphere. More...
 
double int_inf (const Scalar &so) const
 Computes the surface integral at infinity. More...
 
virtual ~Space_bispheric ()
 Destructor. More...
 
virtual void save (FILE *) const
 Saving function. More...
 
virtual Array< int > get_indices_matching_non_std (int, int) const
 Gives the number of the other domains, touching a given boundary. More...
 
int get_ndim () const
 Returns the number of dimensions. More...
 
int get_nbr_domains () const
 Returns the number of Domains. More...
 
int get_type_base () const
 Returns the type of basis. More...
 
const Domainget_domain (int i) const
 returns a pointer on the domain. More...
 
virtual int nbr_unknowns_from_variable_domains () const
 Gives the number of unknowns coming from the variable shape of the domain. More...
 
virtual void affecte_coef_to_variable_domains (int &conte, int cc, Array< int > &doms) const
 The variation of the functions describing the shape of the Domain are affected from the unknowns of the system. More...
 
virtual void xx_to_ders_variable_domains (const Array< double > &xx, int &conte) const
 Update the vairable domains from a set of values. More...
 
virtual void xx_to_vars_variable_domains (System_of_eqs *syst, const Array< double > &xx, int &conte) const
 Update the variables of a system, from the variation of the shape of the domains. More...
 

Protected Attributes

double a_minus
 X-absolute coordinate of the center of the first sphere. More...
 
double a_plus
 X-absolute coordinate of the center of the second sphere. More...
 
int ndom_minus
 Number of spherical domains inside the first sphere. More...
 
int ndom_plus
 Number of spherical domains inside the second sphere. More...
 
int nshells
 Number of shells outside the bispheric region. More...
 
int nbr_domains
 Number od Domains. More...
 
int ndim
 Number of dimensions (should be the same for all the Domains). More...
 
int type_base
 Type of basis used (i.e. using either Chebyshev or Legendre polynomials). More...
 
Domain ** domains
 Pointers on the various Domains. More...
 

Detailed Description

The Space_bispheric class fills the space with bispherical coordinates (see the constructor for more details).

Definition at line 1241 of file bispheric.hpp.

Constructor & Destructor Documentation

◆ Space_bispheric() [1/10]

Kadath::Space_bispheric::Space_bispheric ( int  ttype,
double  dist,
double  r1,
double  r2,
double  rext,
int  nr 
)

Standard constructor

Parameters
ttype[input] : the type of basis.
dist[input] : distance $ d $ between the centers of the two spheres.
r1[input] : radius $ r_1 $ of the first sphere.
r2[input] : radius $ r_2 $ of the second sphere.
rext[input] : radius $ R $ of the outer boundary of the bispherical part.
nr[input] : number of points in each dimension ( $ nr-1 $ for coordinates of the type $ \varphi $)

The scale $ a $ for the bispherical coordinates is determined such that : $ \sqrt{a^2 + r_1^2} + \sqrt{a^2 + r_2^2} = d $

The first sphere is described by $ \eta_{\rm minus} = -{\rm asinh}\displaystyle\frac{a}{r_1}$, centered at $ x_1 = a \displaystyle\frac{\cosh \eta_{\rm minus}}{\sinh \eta_{\rm minus}} $.

The second sphere is described by $ \eta_{\rm plus} = {\rm asinh}\displaystyle\frac{a}{r_2}$, centered at $ x_2 = a \displaystyle\frac{\cosh \eta_{\rm plus}}{\sinh \eta_{\rm plus}} $.

The cutoffs for the bispherical coordinates are $ \chi_c = 2 {\rm atan}\displaystyle\frac{a}{R} $ and $ \eta_c = \ln (\displaystyle\frac{R}{a} + 1) - \ln (\displaystyle\frac{R}{a} - 1) $

The various domains are then :

Definition at line 42 of file space_bispheric.cpp.

References a_minus, a_plus, Kadath::Param::add_double(), Kadath::Space::domains, Kadath::Space::nbr_domains, Kadath::Space::ndim, ndom_minus, ndom_plus, nshells, Kadath::Dim_array::set(), Kadath::Point::set(), and Kadath::Space::type_base.

◆ Space_bispheric() [2/10]

Kadath::Space_bispheric::Space_bispheric ( int  ttype,
double  dist,
double  r1,
double  r2,
int  nshells,
const Array< double > &  rr,
int  nr 
)

Constructor with several outer shells.

Parameters
ttype[input] : the type of basis.
dist[input] : distance $ d $ between the centers of the two spheres.
r1[input] : radius $ r_1 $ of the first sphere.
r2[input] : radius $ r_2 $ of the second sphere.  
nshells[input] : number of outer shells.
rr[input] : radiii of the outer shells.
nr[input] : number of points in each dimension ( $ nr-1 $ for coordinates of the type $ \varphi $)

The various domains are then :

Definition at line 102 of file space_bispheric.cpp.

References a_minus, a_plus, Kadath::Param::add_double(), Kadath::Space::domains, Kadath::Space::nbr_domains, Kadath::Space::ndim, ndom_minus, ndom_plus, nshells, Kadath::Dim_array::set(), Kadath::Point::set(), and Kadath::Space::type_base.

◆ Space_bispheric() [3/10]

Kadath::Space_bispheric::Space_bispheric ( int  ttype,
double  dist,
double  r1,
double  r2,
int  nshells,
const Array< double > &  rr,
const Array< int > &  type_r,
int  nr 
)

Constructor with several outer shells possibly of various types (log or $ 1/r$ mappings).

Parameters
ttype[input] : the type of basis.
dist[input] : distance $ d $ between the centers of the two spheres.
r1[input] : radius $ r_1 $ of the first sphere.
r2[input] : radius $ r_2 $ of the second sphere.  
nshells[input] : number of outer shells.
rr[input] : radiii of the outer shells.
type_r[input] : types of the various outer shells.
nr[input] : number of points in each dimension ( $ nr-1 $ for coordinates of the type $ \varphi $)

The various domains are then :

Definition at line 167 of file space_bispheric.cpp.

References a_minus, a_plus, Kadath::Param::add_double(), Kadath::Space::domains, Kadath::Space::nbr_domains, Kadath::Space::ndim, ndom_minus, ndom_plus, nshells, Kadath::Dim_array::set(), Kadath::Point::set(), and Kadath::Space::type_base.

◆ Space_bispheric() [4/10]

Kadath::Space_bispheric::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 
)

Constructor with several outer shells possibly of various types (log or $ 1/r$ mappings).

Each hole can be described by several shells.

Parameters
ttype[input] : the type of basis.
dist[input] : distance $ d $ between the centers of the two spheres.
nminus[input] : number of domains inside the first sphere.
rminus[input] : radii of the domains inside the first sphere.
nplus[input] : number of domains inside the second sphere.
rplus[input] : radii of the domains inside the second sphere.  
nshells[input] : number of outer shells.
rr[input] : radiii of the outer shells.
type_r[input] : types of the various outer shells.
nr[input] : number of points in each dimension
withnuc[input] : states wheather a nucleus is present or not ( $ nr-1 $ for coordinates of the type $ \varphi $)

The various domains are then :

Definition at line 244 of file space_bispheric.cpp.

References a_minus, a_plus, Kadath::Param::add_double(), Kadath::Space::domains, Kadath::Space::nbr_domains, Kadath::Space::ndim, ndom_minus, ndom_plus, nshells, Kadath::Dim_array::set(), Kadath::Point::set(), and Kadath::Space::type_base.

◆ Space_bispheric() [5/10]

Kadath::Space_bispheric::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 
)

Constructor with several outer shells possibly of various types (log or $ 1/r$ mappings).

Each hole can be described by several shells also possibly with various types of mappings

Parameters
ttype[input] : the type of basis.
dist[input] : distance $ d $ between the centers of the two spheres.
nminus[input] : number of domains inside the first sphere.
rminus[input] : radii of the domains inside the first sphere.
type_r_minus[input] : types of the various shells around the first hole.
nplus[input] : number of domains inside the second sphere.
rplus[input] : radii of the domains inside the second sphere.
type_r_plus[input] : types of the various shells around the second hole.  
nshells[input] : number of outer shells.
rr[input] : radiii of the outer shells.
type_r[input] : types of the various outer shells.
nr[input] : number of points in each dimension
withnuc[input] : states wheather a nucleus is present or not ( $ nr-1 $ for coordinates of the type $ \varphi $)

The various domains are then :

Definition at line 351 of file space_bispheric.cpp.

References a_minus, a_plus, Kadath::Param::add_double(), Kadath::Space::domains, Kadath::Space::nbr_domains, Kadath::Space::ndim, ndom_minus, ndom_plus, nshells, Kadath::Dim_array::set(), Kadath::Point::set(), and Kadath::Space::type_base.

◆ Space_bispheric() [6/10]

Kadath::Space_bispheric::Space_bispheric ( int  ttype,
double  dist,
double  rhor1,
double  rshell1,
double  rhor2,
double  rshell2,
double  rext,
int  nr 
)

Constructor without nucleus and one shell around each holes ; a compactified outer domain.

Parameters
ttype[input] : the type of basis.
dist[input] : distance $ d $ between the centers of the two spheres.
rhor1[input] : radius of the first horizon.
rshell1[input] : radius of the first shell.
rhor2[input] : radius of the second horizon.
rshell2[input] : radius of the second shell.
rext[input] : radius of the bispherical domains.
nr[input] : number of points in each dimension ( $ nr-1 $ for coordinates of the type $ \varphi $)

Definition at line 490 of file space_bispheric.cpp.

References a_minus, a_plus, Kadath::Param::add_double(), Kadath::Space::domains, Kadath::Space::nbr_domains, Kadath::Space::ndim, ndom_minus, ndom_plus, nshells, Kadath::Dim_array::set(), Kadath::Point::set(), and Kadath::Space::type_base.

◆ Space_bispheric() [7/10]

Kadath::Space_bispheric::Space_bispheric ( int  ttype,
double  dist,
double  rhor1,
double  rshell1,
double  rhor2,
double  rshell2,
double  rext,
Dim_array **  resol 
)

Constructor without nucleus and one shell around each holes ; a compactified outer domain.

The resolution of each domain is speceified by hand

Parameters
ttype[input] : the type of basis.
dist[input] : distance $ d $ between the centers of the two spheres.
rhor1[input] : radius of the first horizon.
rshell1[input] : radius of the first shell.
rhor2[input] : radius of the second horizon.
rshell2[input] : radius of the second shell.
rext[input] : radius of the bispherical domains.
resol[input] : resolution in each domains

Definition at line 556 of file space_bispheric.cpp.

References a_minus, a_plus, Kadath::Param::add_double(), Kadath::Space::domains, Kadath::Space::nbr_domains, Kadath::Space::ndim, ndom_minus, ndom_plus, nshells, Kadath::Point::set(), and Kadath::Space::type_base.

◆ Space_bispheric() [8/10]

Kadath::Space_bispheric::Space_bispheric ( int  ttype,
double  dist,
double  rhor1,
double  rshell1,
double  rhor2,
double  rshell2,
int  nshells,
const Array< double > &  rshells,
int  nr 
)

Constructor without nucleus and one shell around each holes ; a compactified outer domain.

Parameters
ttype[input] : the type of basis.
dist[input] : distance $ d $ between the centers of the two spheres.
rhor1[input] : radius of the first horizon.
rshell1[input] : radius of the first shell.
rhor2[input] : radius of the second horizon.
rshell2[input] : radius of the second shell.  
nshells[input] : number of outer shells.
rshells[input] : radiii of the outer shells.
nr[input] : number of points in each dimension ( $ nr-1 $ for coordinates of the type $ \varphi $)

Definition at line 616 of file space_bispheric.cpp.

References a_minus, a_plus, Kadath::Param::add_double(), Kadath::Space::domains, Kadath::Space::nbr_domains, Kadath::Space::ndim, ndom_minus, ndom_plus, nshells, Kadath::Dim_array::set(), Kadath::Point::set(), and Kadath::Space::type_base.

◆ Space_bispheric() [9/10]

Kadath::Space_bispheric::Space_bispheric ( FILE *  fd,
int  shell_type = 0,
bool  old = false 
)

Constructor from a file.

Parameters
fd: the file
shell_type: type of the outer shells (assumed to be the same for each one).
old: deprecated for backward compatibility.

Definition at line 685 of file space_bispheric.cpp.

References a_minus, a_plus, Kadath::Space::domains, Kadath::Space::nbr_domains, Kadath::Space::ndim, ndom_minus, ndom_plus, nshells, and Kadath::Space::type_base.

◆ Space_bispheric() [10/10]

Kadath::Space_bispheric::Space_bispheric ( FILE *  fd,
int  type_minus,
int  type_plus,
int  shell_type 
)

Constructor from a file where the types of shelles are passed as integers.

Parameters
fd: the file
type_minus: type of the shells around hole 1(assumed to be the same for each one).
type_plus: type of the shells around hole 2 (assumed to be the same for each one).
shell_type: type of the outer shells (assumed to be the same for each one).

Definition at line 768 of file space_bispheric.cpp.

References a_minus, a_plus, Kadath::Space::domains, Kadath::Space::nbr_domains, Kadath::Space::ndim, ndom_minus, ndom_plus, nshells, and Kadath::Space::type_base.

◆ ~Space_bispheric()

Kadath::Space_bispheric::~Space_bispheric ( )
virtual

Destructor.

Definition at line 874 of file space_bispheric.cpp.

Member Function Documentation

◆ add_bc_outer()

void Kadath::Space_bispheric::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.

Parameters
syst: the System_of_eqs.
eq: the string describing the boundary condition.
nused: number of components of eq to be considered. All the components are used of it is -1.
pused: pointer on the indexes of the components to be considered. Not used of nused = -1 .

Definition at line 55 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::add_eq_bc(), and Kadath::Space::nbr_domains.

◆ add_bc_outer_sphere()

void Kadath::Space_bispheric::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.

Parameters
syst: the System_of_eqs.
eq: the string describing the boundary condition.
nused: number of components of eq to be considered. All the components are used of it is -1.
pused: pointer on the indexes of the components to be considered. Not used of nused = -1 .

Definition at line 49 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::add_eq_bc(), ndom_minus, and ndom_plus.

◆ add_bc_sphere_one()

void Kadath::Space_bispheric::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.

Parameters
syst: the System_of_eqs.
eq: the string describing the boundary condition.
nused: number of components of eq to be considered. All the components are used of it is -1.
pused: pointer on the indexes of the components to be considered. Not used of nused = -1 .

Definition at line 26 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::add_eq_bc(), ndom_minus, and ndom_plus.

◆ add_bc_sphere_two()

void Kadath::Space_bispheric::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.

Parameters
syst: the System_of_eqs.
eq: the string describing the boundary condition.
nused: number of components of eq to be considered. All the components are used of it is -1.
pused: pointer on the indexes of the components to be considered. Not used of nused = -1 .

Definition at line 38 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::add_eq_bc(), ndom_minus, and ndom_plus.

◆ add_eq() [1/3]

void Kadath::Space_bispheric::add_eq ( System_of_eqs syst,
const char *  eq,
const char *  rac,
const char *  rac_der,
const List_comp list 
)

Adds a bulk equation and two matching conditions.

Parameters
syst: the System_of_eqs.
eq: the string describing the bulk equation.
rac: the string describing the first matching condition.
rac_der: the string describing the second matching condition.
list: list of the components to be considered.

Definition at line 156 of file bispheric_add_eq.cpp.

References add_eq(), Kadath::List_comp::get_ncomp(), and Kadath::List_comp::get_pcomp().

◆ add_eq() [2/3]

void Kadath::Space_bispheric::add_eq ( 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.

Parameters
syst: the System_of_eqs.
eq: the string describing the bulk equation.
rac: the string describing the first matching condition.
rac_der: the string describing the second matching condition.
nused: number of components of eq to be considered. All the components are used of it is -1.
pused: pointer on the indexes of the components to be considered. Not used of nused = -1 .

Definition at line 92 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::add_eq_inside(), Kadath::System_of_eqs::add_eq_matching(), and Kadath::System_of_eqs::add_eq_matching_import().

◆ add_eq() [3/3]

void Kadath::Space_bispheric::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).

Parameters
syst: the System_of_eqs.
eq: the string describing the boundary condition.
nused: number of components of eq to be considered. All the components are used of it is -1.
pused: pointer on the indexes of the components to be considered. Not used of nused = -1 .

Definition at line 59 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::add_eq_inside(), Kadath::System_of_eqs::get_dom_max(), and Kadath::System_of_eqs::get_dom_min().

◆ add_eq_full()

void Kadath::Space_bispheric::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).

Parameters
syst: the System_of_eqs.
eq: the string describing the boundary condition.
nused: number of components of eq to be considered. All the components are used of it is -1.
pused: pointer on the indexes of the components to be considered. Not used of nused = -1 .

Definition at line 64 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::add_eq_full(), Kadath::System_of_eqs::get_dom_max(), and Kadath::System_of_eqs::get_dom_min().

◆ add_eq_int_inf()

void Kadath::Space_bispheric::add_eq_int_inf ( System_of_eqs syst,
const char *  eq 
)

Adds an equation being a surface integral at infinity.

Parameters
syst: the System_of_eqs.
eq: the string describing the equation (should contain something like integ(f)=b)

Definition at line 214 of file bispheric_add_eq.cpp.

References Kadath::Space::domains, Kadath::System_of_eqs::eq_int, Kadath::System_of_eqs::give_ope(), Kadath::System_of_eqs::is_ope_bin(), Kadath::System_of_eqs::nbr_conditions, Kadath::Space::nbr_domains, and Kadath::System_of_eqs::neq_int.

◆ add_eq_int_sphere_one()

void Kadath::Space_bispheric::add_eq_int_sphere_one ( System_of_eqs syst,
const char *  eq 
)

Adds an equation being a surface integral on the first sphere.

Parameters
syst: the System_of_eqs.
eq: the string describing the equation (should contain something like integ(f)=b)

Definition at line 252 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::eq_int, Kadath::System_of_eqs::give_ope(), Kadath::System_of_eqs::is_ope_bin(), Kadath::System_of_eqs::nbr_conditions, ndom_minus, ndom_plus, and Kadath::System_of_eqs::neq_int.

◆ add_eq_int_sphere_two()

void Kadath::Space_bispheric::add_eq_int_sphere_two ( System_of_eqs syst,
const char *  eq 
)

Adds an equation being a surface integral on the second sphere.

Parameters
syst: the System_of_eqs.
eq: the string describing the equation (should contain something like integ(f)=b)

Definition at line 305 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::eq_int, Kadath::System_of_eqs::give_ope(), Kadath::System_of_eqs::is_ope_bin(), Kadath::System_of_eqs::nbr_conditions, ndom_minus, ndom_plus, and Kadath::System_of_eqs::neq_int.

◆ add_eq_no_nucleus() [1/2]

void Kadath::Space_bispheric::add_eq_no_nucleus ( System_of_eqs syst,
const char *  eq,
const char *  rac,
const char *  rac_der,
const List_comp list 
)

Adds a bulk equation and two matching conditions for a space without nucleii.

Parameters
syst: the System_of_eqs.
eq: the string describing the bulk equation.
rac: the string describing the first matching condition.
rac_der: the string describing the second matching condition.
list: list of the components to be considered.

Definition at line 211 of file bispheric_add_eq.cpp.

References add_eq(), Kadath::List_comp::get_ncomp(), and Kadath::List_comp::get_pcomp().

◆ add_eq_no_nucleus() [2/2]

void Kadath::Space_bispheric::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.

Parameters
syst: the System_of_eqs.
eq: the string describing the bulk equation.
rac: the string describing the first matching condition.
rac_der: the string describing the second matching condition.
nused: number of components of eq to be considered. All the components are used of it is -1.
pused: pointer on the indexes of the components to be considered. Not used of nused = -1 .

Definition at line 160 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::add_eq_inside(), Kadath::System_of_eqs::add_eq_matching(), and Kadath::System_of_eqs::add_eq_matching_import().

◆ add_eq_one_side()

void Kadath::Space_bispheric::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).

Parameters
syst: the System_of_eqs.
eq: the string describing the boundary condition.
nused: number of components of eq to be considered. All the components are used of it is -1.
pused: pointer on the indexes of the components to be considered. Not used of nused = -1 .

Definition at line 69 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::add_eq_one_side(), Kadath::System_of_eqs::get_dom_max(), and Kadath::System_of_eqs::get_dom_min().

◆ add_eq_zero_mode_inf()

void Kadath::Space_bispheric::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)

Parameters
syst: the System_of_eqs.
f: the field
jtarget: the index $\theta$ of the mode that must vanished.
ktarget: the index $\varphi$ of the mode that must vanished.

Definition at line 358 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::add_eq_mode(), Kadath::Space::domains, Kadath::Space::nbr_domains, and Kadath::Index::set().

◆ add_matching() [1/2]

void Kadath::Space_bispheric::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).

Parameters
syst: the System_of_eqs.
rac: the string describing the boundary condition.
list: list of the components to be considered.

Definition at line 81 of file bispheric_add_eq.cpp.

References Kadath::List_comp::get_ncomp(), and Kadath::List_comp::get_pcomp().

◆ add_matching() [2/2]

void Kadath::Space_bispheric::add_matching ( 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 second order equation).

Parameters
syst: the System_of_eqs.
rac: the string describing the boundary condition.
nused: number of components of eq to be considered. All the components are used of it is -1.
pused: pointer on the indexes of the components to be considered. Not used of nused = -1 .

Definition at line 74 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::add_eq_matching(), ndom_minus, and ndom_plus.

◆ add_matching_one_side()

void Kadath::Space_bispheric::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).

Parameters
syst: the System_of_eqs.
rac: the string describing the boundary condition.
nused: number of components of eq to be considered. All the components are used of it is -1.
pused: pointer on the indexes of the components to be considered. Not used of nused = -1 .

Definition at line 85 of file bispheric_add_eq.cpp.

References Kadath::System_of_eqs::add_eq_matching_one_side(), ndom_minus, and ndom_plus.

◆ affecte_coef_to_variable_domains()

virtual void Kadath::Space::affecte_coef_to_variable_domains ( int &  conte,
int  cc,
Array< int > &  doms 
) const
inlinevirtualinherited

The variation of the functions describing the shape of the Domain are affected from the unknowns of the system.

Parameters
conte: current position if the unknowns.
cc: position of the unknown to be set.
doms: Array containing the index of the variable domains present in this space.

Reimplemented in Kadath::Space_bin_ns, Kadath::Space_bin_bh, Kadath::Space_bbh, Kadath::Space_polar_adapted, Kadath::Space_adapted_bh, and Kadath::Space_spheric_adapted.

Definition at line 1401 of file space.hpp.

◆ get_a_minus()

double Kadath::Space_bispheric::get_a_minus ( ) const
inline

Returns the location of the center of the first sphere.

Definition at line 1644 of file bispheric.hpp.

References a_minus.

◆ get_a_plus()

double Kadath::Space_bispheric::get_a_plus ( ) const
inline

Returns the location of the center of the second sphere.

Definition at line 1648 of file bispheric.hpp.

References a_plus.

◆ get_domain()

const Domain* Kadath::Space::get_domain ( int  i) const
inlineinherited

returns a pointer on the domain.

Parameters
i[input] : the index of the domain.

Definition at line 1385 of file space.hpp.

References Kadath::Space::domains, and Kadath::Space::nbr_domains.

◆ get_indices_matching_non_std()

Array< int > Kadath::Space_bispheric::get_indices_matching_non_std ( int  dom,
int  bound 
) const
virtual

Gives the number of the other domains, touching a given boundary.

It also gives the name of the boundary, as seen by the other domain.

Parameters
dom: the domain considered.
bound: the boundary.
Returns
a 2d-array containing the numbers of the other domains (stored in (0,i)) and the names of the boundary (stored in (1,i)).

Reimplemented from Kadath::Space.

Definition at line 892 of file space_bispheric.cpp.

References ndom_minus, ndom_plus, and Kadath::Array< T >::set().

◆ get_nbr_domains()

int Kadath::Space::get_nbr_domains ( ) const
inlineinherited

Returns the number of Domains.

Definition at line 1375 of file space.hpp.

References Kadath::Space::nbr_domains.

◆ get_ndim()

int Kadath::Space::get_ndim ( ) const
inlineinherited

Returns the number of dimensions.

Definition at line 1373 of file space.hpp.

References Kadath::Space::ndim.

◆ get_ndom_minus()

int Kadath::Space_bispheric::get_ndom_minus ( ) const
inline

Accessor ndom_minus.

Definition at line 1253 of file bispheric.hpp.

References ndom_minus.

◆ get_ndom_plus()

int Kadath::Space_bispheric::get_ndom_plus ( ) const
inline

Accessor ndom_plus.

Definition at line 1257 of file bispheric.hpp.

References ndom_plus.

◆ get_nshells()

int Kadath::Space_bispheric::get_nshells ( ) const
inline

Accessor nshells.

Definition at line 1261 of file bispheric.hpp.

References nshells.

◆ get_type_base()

int Kadath::Space::get_type_base ( ) const
inlineinherited

Returns the type of basis.

Definition at line 1377 of file space.hpp.

References Kadath::Space::type_base.

◆ int_inf()

double Kadath::Space_bispheric::int_inf ( const Scalar so) const

Computes the surface integral at infinity.

Parameters
so: the field to be integrated.  
Returns
the surface integral.

Definition at line 1041 of file space_bispheric.cpp.

References Kadath::Space::domains, Kadath::Domain_compact::integ(), and Kadath::Space::nbr_domains.

◆ int_sphere_one()

double Kadath::Space_bispheric::int_sphere_one ( const Scalar so) const

Computes the surface integral on the first sphere.

Parameters
so: the field to be integrated.  
Returns
the surface integral.

Definition at line 1052 of file space_bispheric.cpp.

References Kadath::Space::domains, Kadath::Domain::integ(), ndom_minus, and ndom_plus.

◆ int_sphere_two()

double Kadath::Space_bispheric::int_sphere_two ( const Scalar so) const

Computes the surface integral on the second sphere.

Parameters
so: the field to be integrated.  
Returns
the surface integral.

Definition at line 1062 of file space_bispheric.cpp.

References Kadath::Space::domains, Kadath::Domain::integ(), ndom_minus, and ndom_plus.

◆ nbr_unknowns_from_variable_domains()

virtual int Kadath::Space::nbr_unknowns_from_variable_domains ( ) const
inlinevirtualinherited

Gives the number of unknowns coming from the variable shape of the domain.

Reimplemented in Kadath::Space_bin_ns, Kadath::Space_bin_bh, Kadath::Space_bbh, Kadath::Space_polar_adapted, Kadath::Space_adapted_bh, and Kadath::Space_spheric_adapted.

Definition at line 1394 of file space.hpp.

◆ save()

void Kadath::Space_bispheric::save ( FILE *  ) const
virtual

◆ xx_to_ders_variable_domains()

virtual void Kadath::Space::xx_to_ders_variable_domains ( const Array< double > &  xx,
int &  conte 
) const
inlinevirtualinherited

Update the vairable domains from a set of values.

Parameters
xx: set of values used by the affectation
conte: current position in the values vector.

Reimplemented in Kadath::Space_bin_ns, Kadath::Space_bin_bh, Kadath::Space_bbh, Kadath::Space_polar_adapted, Kadath::Space_adapted_bh, and Kadath::Space_spheric_adapted.

Definition at line 1407 of file space.hpp.

◆ xx_to_vars_variable_domains()

virtual void Kadath::Space::xx_to_vars_variable_domains ( System_of_eqs syst,
const Array< double > &  xx,
int &  conte 
) const
inlinevirtualinherited

Update the variables of a system, from the variation of the shape of the domains.

Parameters
syst: the System_of_eqs considered.
xx: set of values used by the affectation
conte: current position in the values vector.

Reimplemented in Kadath::Space_bin_ns, Kadath::Space_bin_bh, Kadath::Space_bbh, Kadath::Space_polar_adapted, Kadath::Space_adapted_bh, and Kadath::Space_spheric_adapted.

Definition at line 1414 of file space.hpp.

Member Data Documentation

◆ a_minus

double Kadath::Space_bispheric::a_minus
protected

X-absolute coordinate of the center of the first sphere.

Definition at line 1243 of file bispheric.hpp.

◆ a_plus

double Kadath::Space_bispheric::a_plus
protected

X-absolute coordinate of the center of the second sphere.

Definition at line 1244 of file bispheric.hpp.

◆ domains

Domain** Kadath::Space::domains
protectedinherited

Pointers on the various Domains.

Definition at line 1368 of file space.hpp.

◆ nbr_domains

int Kadath::Space::nbr_domains
protectedinherited

Number od Domains.

Definition at line 1365 of file space.hpp.

◆ ndim

int Kadath::Space::ndim
protectedinherited

Number of dimensions (should be the same for all the Domains).

Definition at line 1366 of file space.hpp.

◆ ndom_minus

int Kadath::Space_bispheric::ndom_minus
protected

Number of spherical domains inside the first sphere.

Definition at line 1245 of file bispheric.hpp.

◆ ndom_plus

int Kadath::Space_bispheric::ndom_plus
protected

Number of spherical domains inside the second sphere.

Definition at line 1246 of file bispheric.hpp.

◆ nshells

int Kadath::Space_bispheric::nshells
protected

Number of shells outside the bispheric region.

Definition at line 1247 of file bispheric.hpp.

◆ type_base

int Kadath::Space::type_base
protectedinherited

Type of basis used (i.e. using either Chebyshev or Legendre polynomials).

Definition at line 1367 of file space.hpp.


The documentation for this class was generated from the following files: