20 #include "headcpp.hpp"
21 #include "utilities.hpp"
22 #include "homothetic.hpp"
24 #include "array_math.hpp"
25 #include "val_domain.hpp"
27 #include "tensor_impl.hpp"
30 void coef_1d (
int, Array<double>&) ;
31 void coef_i_1d (
int, Array<double>&) ;
32 int der_1d (
int, Array<double>&) ;
48 Domain_shell_inner_homothetic::~Domain_shell_inner_homothetic() {
69 auxi.
cf->
set(pos_cf) = 1 ;
90 *new_inner_radius.
cf = 0 ;
95 new_inner_radius.
cf->
set(pos_cf) -= xx(pos) ;
113 auxi.
cf->
set(pos_cf) = xx(pos) ;
124 o <<
"Adapted homothetic shell on the inside boundary" << endl ;
125 o <<
"Center = " <<
center << endl ;
129 o <<
"Inner radius " << (*inner_radius)(pos) << endl ;
161 res += 2./(2*double(j)+1) *
val_boundary(bound, rrso, pcf) ;
167 cerr <<
"Case not yet implemented in Domain_shell_inner_homothetic::integ" << endl ;
reference set(const Index &pos)
Read/write of an element.
Bases_container bases_1d
Arrays containing the various basis of decomposition.
Class for storing the dimensions of an array.
Class for a spherical-like domain, having a symmetry with respect to the plane .
virtual double val_boundary(int, const Val_domain &, const Index &) const
Computes the value of a field at a boundary.
void update() const
Updates all the quantities that depend on the inner radius (like the normal vectors).
virtual void update_variable(const Val_domain &, const Scalar &, Scalar &) const
Update the value of a scalar, after the shape of the Domain has been changed by the system.
double outer_radius
The outer radius .
Val_domain * inner_radius
Pointer on the inner boundary , as a Val_domain.
const Space & sp
The corresponding Space ; required for updating fields whene the mapping changes.
virtual Val_domain mult_sin_theta(const Val_domain &) const
Multiplication by .
Term_eq * inner_radius_term_eq
Pointer on the inner boundary , as a Term_eq.
Point center
Absolute coordinates of the center.
Class for a spherical-like domain, having a symmetry with respect to the plane .
virtual void update_constante(const Val_domain &, const Scalar &, Scalar &) const
Update the value of a scalar, after the shape of the Domain has been changed by the system.
virtual ostream & print(ostream &o) const
Delegate function to virtualize the << operator.
Domain_shell_inner_homothetic(const Space &sp, int num, int ttype, double rin, double rout, const Point &cr, const Dim_array &nbr)
Constructor :
virtual void xx_to_vars_from_adapted(Val_domain &, const Array< double > &, int &) const
Computes the new boundary of a Domain from a set of values.
virtual void xx_to_ders_from_adapted(const Array< double > &, int &) const
Affects the derivative part of variable a Domain from a set of values.
virtual int nbr_unknowns_from_adapted() const
Gives the number of unknowns coming from the variable shape of the domain.
virtual double integ(const Val_domain &, int) const
Surface integral on a given boundary.
virtual void affecte_coef(int &, int, bool &) const
The variation of the functions describing the shape of the Domain are affected from the unknowns of t...
int num_dom
Number of the current domain (used by the Space)
Dim_array nbr_coefs
Number of coefficients.
Val_domain const & get_radius() const
Returns the generalized radius.
Dim_array nbr_points
Number of colocation points.
Class that gives the position inside a multi-dimensional Array.
int & set(int i)
Read/write of the position in a given dimension.
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...
Val_domain & set_domain(int)
Read/write of a particular Val_domain.
The Space class is an ensemble of domains describing the whole space of the computation.
void set_der_t(Tensor)
Sets the tensorial variation (only the values in the pertinent Domain are copied).
void set_der_zero()
Sets the variation of the approriate type to zero.
Class for storing the basis of decompositions of a field and its values on both the configuration and...
void set_in_coef()
Destroys the values in the configuration space.
void allocate_coef()
Allocates the values in the coefficient space and destroys the values in the configuration space.
bool check_if_zero() const
Check whether the logical state is zero or not.
Array< double > * cf
Pointer on the Array of the values in the coefficients space.
void std_base()
Sets the standard basis of decomposition.
Base_spectral & set_base()
Sets the basis of decomposition.
const Base_spectral & get_base() const
Returns the basis of decomposition.