|
KADATH
|
The Space_polar class fills the space with one polar nucleus, several polar shells and a compactified polar domain, all centered on the same point.
More...
#include <polar.hpp>
Public Member Functions | |
| Space_polar (int ttype, const Point &cr, const Dim_array &nbr, const Array< double > &bounds) | |
| Standard constructor. More... | |
| Space_polar (FILE *) | |
| Constructor from a file. More... | |
| virtual void | save (FILE *) const |
| Saving function. More... | |
| void | add_inner_bc (System_of_eqs &syst, const char *eq, int nused=-1, Array< int > **pused=0x0) const |
| Sets a boundary condition at the inner radius of the innermost polar shell. More... | |
| void | add_outer_bc (System_of_eqs &syst, const char *eq, int nused=-1, Array< int > **pused=0x0) const |
| Sets a boundary condition at the outer radius of the compactified polar domain. More... | |
| void | add_eq (System_of_eqs &syst, const char *eq, int nused=-1, Array< int > **pused=0x0) const |
| Adds a bulk equation in all the domains of a given system (equation is assumed to be second order) More... | |
| void | add_eq_full (System_of_eqs &syst, const char *eq, int nused=-1, Array< int > **pused=0x0) const |
| Adds a bulk equation in all the domains of a given system (equation is assumed to be 0th order) More... | |
| void | add_matching (System_of_eqs &syst, const char *eq, int nused=-1, Array< int > **pused=0x0) const |
| Adds a matching condition, at all the interface present in a given system. 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) const |
| Adds a bulk equation and two matching conditions. More... | |
| void | add_eq_int_volume (System_of_eqs &syst, const char *eq) |
| Adds an equation being a volume integral in the whole computational space. 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_inner (System_of_eqs &syst, const char *eq) |
| Adds an equation being a surface integral in the innermost shell. More... | |
| void | add_eq_mode (System_of_eqs &syst, const char *f, int domtarget, int itarget, int jtarget) |
| Adds an equation saying that one coefficient of a field is zero in a given domain. More... | |
| void | add_eq_ori (System_of_eqs &syst, const char *eq) |
| Adds an equation being the value of some field at the origin. More... | |
| void | add_eq_point (System_of_eqs &syst, const Point &pp, const char *eq) |
| Adds an equation being the value of some field at a given point. More... | |
| double | int_inf (const Scalar &so) const |
| Computes the surface integral at infinity. 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 Domain * | get_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... | |
| virtual Array< int > | get_indices_matching_non_std (int dom, int bound) const |
| Gives the number of the other domains, touching a given boundary. More... | |
Protected Attributes | |
| 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... | |
The Space_polar class fills the space with one polar nucleus, several polar shells and a compactified polar domain, all centered on the same point.
| Kadath::Space_polar::Space_polar | ( | int | ttype, |
| const Point & | cr, | ||
| const Dim_array & | nbr, | ||
| const Array< double > & | bounds | ||
| ) |
Standard constructor.
| ttype | [input] : the type of basis. |
| cr | [input] : absolute coordinates of the center. |
| nbr | [input] : number of points in each domain. |
| bounds | [input] : radii of the various shells (and also determines the total number of domains). |
Definition at line 27 of file space_polar.cpp.
References Kadath::Space::domains, Kadath::Array< T >::get_ndim(), Kadath::Array< T >::get_size(), Kadath::Space::nbr_domains, Kadath::Space::ndim, and Kadath::Space::type_base.
| Kadath::Space_polar::Space_polar | ( | FILE * | fd | ) |
Constructor from a file.
Definition at line 45 of file space_polar.cpp.
References Kadath::Space::domains, Kadath::Space::nbr_domains, Kadath::Space::ndim, and Kadath::Space::type_base.
| void Kadath::Space_polar::add_eq | ( | System_of_eqs & | syst, |
| const char * | eq, | ||
| const char * | rac, | ||
| const char * | rac_der, | ||
| int | nused = -1, |
||
| Array< int > ** | pused = 0x0 |
||
| ) | const |
Adds a bulk equation and two matching conditions.
| 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 50 of file polar_add_eq.cpp.
References Kadath::System_of_eqs::add_eq_inside(), Kadath::System_of_eqs::add_eq_matching(), Kadath::System_of_eqs::get_dom_max(), and Kadath::System_of_eqs::get_dom_min().
| void Kadath::Space_polar::add_eq | ( | System_of_eqs & | syst, |
| const char * | eq, | ||
| int | nused = -1, |
||
| Array< int > ** | pused = 0x0 |
||
| ) | const |
Adds a bulk equation in all the domains of a given system (equation is assumed to be second order)
| syst | : the System_of_eqs. |
| eq | : the string describing the equation. |
| 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 35 of file polar_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().
| void Kadath::Space_polar::add_eq_full | ( | System_of_eqs & | syst, |
| const char * | eq, | ||
| int | nused = -1, |
||
| Array< int > ** | pused = 0x0 |
||
| ) | const |
Adds a bulk equation in all the domains of a given system (equation is assumed to be 0th order)
| syst | : the System_of_eqs. |
| eq | : the string describing the equations. |
| 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 40 of file polar_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().
| void Kadath::Space_polar::add_eq_int_inf | ( | System_of_eqs & | syst, |
| const char * | eq | ||
| ) |
Adds an equation being a surface integral at infinity.
| syst | : the System_of_eqs. |
| eq | : the string describing the equation (should contain something like integ(f)=b) |
Definition at line 84 of file polar_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.
| void Kadath::Space_polar::add_eq_int_inner | ( | System_of_eqs & | syst, |
| const char * | eq | ||
| ) |
Adds an equation being a surface integral in the innermost shell.
| syst | : the System_of_eqs. |
| eq | : the string describing the equation (should contain something like integ(f)=b) |
Definition at line 122 of file polar_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, and Kadath::System_of_eqs::neq_int.
| void Kadath::Space_polar::add_eq_int_volume | ( | System_of_eqs & | syst, |
| const char * | eq | ||
| ) |
Adds an equation being a volume integral in the whole computational space.
| syst | : the System_of_eqs. |
| eq | : the string describing the equation (should contain something like integvolume(f)=b) |
Definition at line 59 of file polar_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, Kadath::Space::nbr_domains, and Kadath::System_of_eqs::neq_int.
| void Kadath::Space_polar::add_eq_mode | ( | System_of_eqs & | syst, |
| const char * | f, | ||
| int | domtarget, | ||
| int | itarget, | ||
| int | jtarget | ||
| ) |
Adds an equation saying that one coefficient of a field is zero in a given domain.
| syst | : the System_of_eqs. |
| f | : the field |
| domtarget | : the target domain. |
| itarget | : the index of the mode that must vanish. |
| jtarget | : the index of the mode that must vanish. |
Definition at line 161 of file polar_add_eq.cpp.
References Kadath::System_of_eqs::add_eq_val_mode(), Kadath::Space::domains, and Kadath::Index::set().
| void Kadath::Space_polar::add_eq_ori | ( | System_of_eqs & | syst, |
| const char * | eq | ||
| ) |
Adds an equation being the value of some field at the origin.
| syst | : the System_of_eqs. |
| eq | : the string describing the quantity that must be zero at the origin |
Definition at line 172 of file polar_add_eq.cpp.
References Kadath::System_of_eqs::add_eq_val(), and Kadath::Space::domains.
| void Kadath::Space_polar::add_eq_point | ( | System_of_eqs & | syst, |
| const Point & | pp, | ||
| const char * | eq | ||
| ) |
Adds an equation being the value of some field at a given point.
| syst | : the System_of_eqs. |
| pp | : the point |
| eq | : the string describing the quantity that must be zero at the pp |
Definition at line 180 of file polar_add_eq.cpp.
References Kadath::System_of_eqs::add_eq_point(), Kadath::Space::get_domain(), Kadath::Domain::is_in(), and Kadath::Space::nbr_domains.
| void Kadath::Space_polar::add_inner_bc | ( | System_of_eqs & | syst, |
| const char * | eq, | ||
| int | nused = -1, |
||
| Array< int > ** | pused = 0x0 |
||
| ) | const |
Sets a boundary condition at the inner radius of the innermost polar shell.
Intended for systems where the nucleus is not used.
| 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 polar_add_eq.cpp.
References Kadath::System_of_eqs::add_eq_bc(), and Kadath::System_of_eqs::get_dom_min().
| void Kadath::Space_polar::add_matching | ( | System_of_eqs & | syst, |
| const char * | eq, | ||
| int | nused = -1, |
||
| Array< int > ** | pused = 0x0 |
||
| ) | const |
Adds a matching condition, at all the interface present in a given system.
| syst | : the System_of_eqs. |
| eq | : the string describing the 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 45 of file polar_add_eq.cpp.
References Kadath::System_of_eqs::add_eq_matching(), Kadath::System_of_eqs::get_dom_max(), and Kadath::System_of_eqs::get_dom_min().
| void Kadath::Space_polar::add_outer_bc | ( | System_of_eqs & | syst, |
| const char * | eq, | ||
| int | nused = -1, |
||
| Array< int > ** | pused = 0x0 |
||
| ) | const |
Sets a boundary condition at the outer radius of the compactified polar domain.
| 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 31 of file polar_add_eq.cpp.
References Kadath::System_of_eqs::add_eq_bc(), and Kadath::System_of_eqs::get_dom_max().
|
inlinevirtualinherited |
The variation of the functions describing the shape of the Domain are affected from the unknowns of the system.
| 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.
|
inlineinherited |
returns a pointer on the domain.
| i | [input] : the index of the domain. |
Definition at line 1385 of file space.hpp.
References Kadath::Space::domains, and Kadath::Space::nbr_domains.
|
virtualinherited |
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.
| dom | : the domain considered. |
| bound | : the boundary. |
Reimplemented in Kadath::Space_spheric, Kadath::Space_critic, Kadath::Space_bispheric, Kadath::Space_spheric_adapted, Kadath::Space_bin_ns, Kadath::Space_bin_fake, Kadath::Space_bin_bh, and Kadath::Space_bbh.
|
inlineinherited |
Returns the number of Domains.
Definition at line 1375 of file space.hpp.
References Kadath::Space::nbr_domains.
|
inlineinherited |
Returns the number of dimensions.
Definition at line 1373 of file space.hpp.
References Kadath::Space::ndim.
|
inlineinherited |
Returns the type of basis.
Definition at line 1377 of file space.hpp.
References Kadath::Space::type_base.
| double Kadath::Space_polar::int_inf | ( | const Scalar & | so | ) | const |
Computes the surface integral at infinity.
| so | : the field to be integrated. |
Definition at line 71 of file space_polar.cpp.
References Kadath::Space::domains, Kadath::Domain_polar_compact::integ(), and Kadath::Space::nbr_domains.
|
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.
|
virtual |
Saving function.
Reimplemented from Kadath::Space.
Definition at line 62 of file space_polar.cpp.
References Kadath::Space::domains, Kadath::Space::nbr_domains, Kadath::Space::ndim, and Kadath::Space::type_base.
|
inlinevirtualinherited |
Update the vairable domains from a set of values.
| 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.
|
inlinevirtualinherited |
Update the variables of a system, from the variation of the shape of the domains.
| 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.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |