KADATH
homothetic.hpp
1 /*
2  Copyright 2017 Philippe Grandclement
3 
4  This file is part of Kadath.
5 
6  Kadath is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  Kadath is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with Kadath. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #ifndef __HOMOTHETIC_HPP_
21 #define __HOMOTHETIC_HPP_
22 
23 #include "adapted.hpp"
24 
25 namespace Kadath {
46 
47 
48  public:
59  Domain_shell_inner_homothetic (const Space& sp, int num, int ttype, double rin, double rout, const Point& cr, const Dim_array& nbr) ;
67  Domain_shell_inner_homothetic (const Space& sp, int num, FILE* fd) ;
68 
69  virtual ~Domain_shell_inner_homothetic () ;
70 
71  virtual double integ (const Val_domain&, int) const ;
72 
73  virtual int nbr_unknowns_from_adapted() const ;
74  virtual void affecte_coef (int&, int, bool&) const ;
75  virtual void xx_to_vars_from_adapted (Val_domain&, const Array<double>&, int&) const ;
76  virtual void xx_to_ders_from_adapted (const Array<double>&, int&) const ;
77  virtual void update_constante (const Val_domain&, const Scalar&, Scalar&) const ;
78  virtual Term_eq integ_term_eq (const Term_eq&, int) const ;
79 
80 public:
81  virtual ostream& print (ostream& o) const ;
82 
83  friend class Space_spheric_adapted ;
84  friend class Space_bin_ns ;
85 } ;
106 
107 
108  public:
119  Domain_shell_outer_homothetic (const Space& sp, int num, int ttype, double rin, double rout, const Point& cr, const Dim_array& nbr) ;
127  Domain_shell_outer_homothetic (const Space& sp, int num, FILE* fd) ;
128 
129  virtual ~Domain_shell_outer_homothetic () ;
130 
131 
132  virtual int nbr_unknowns_from_adapted() const ;
133  virtual void affecte_coef (int&, int, bool&) const ;
134  virtual void xx_to_vars_from_adapted (Val_domain&, const Array<double>&, int&) const ;
135  virtual void xx_to_ders_from_adapted (const Array<double>&, int&) const ;
136  virtual void update_constante (const Val_domain&, const Scalar&, Scalar&) const ;
137 
138 public:
139  virtual ostream& print (ostream& o) const ;
140 
141  friend class Space_spheric_adapted ;
142  friend class Space_bin_ns ;
143 } ;
144 }
145 #endif
Class for storing the dimensions of an array.
Definition: dim_array.hpp:34
Class for a spherical-like domain, having a symmetry with respect to the plane .
Definition: adapted.hpp:51
const Space & sp
The corresponding Space ; required for updating fields whene the mapping changes.
Definition: adapted.hpp:57
Class for a spherical-like domain, having a symmetry with respect to the plane .
Definition: homothetic.hpp:45
virtual Term_eq integ_term_eq(const Term_eq &, int) const
Surface integral of a Term_eq.
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...
Class for a spherical-like domain, having a symmetry with respect to the plane .
Definition: adapted.hpp:367
const Space & sp
The corresponding Space ; required for updating fields whene the mapping changes.
Definition: adapted.hpp:373
Class for a spherical-like domain, having a symmetry with respect to the plane .
Definition: homothetic.hpp:105
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 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 int nbr_unknowns_from_adapted() const
Gives the number of unknowns coming from the variable shape of the domain.
Domain_shell_outer_homothetic(const Space &sp, int num, int ttype, double rin, double rout, const Point &cr, const Dim_array &nbr)
Constructor :
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...
virtual ostream & print(ostream &o) const
Delegate function to virtualize the << operator.
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.
The class Point is used to store the coordinates of a point.
Definition: point.hpp:30
The class Scalar does not really implements scalars in the mathematical sense but rather tensorial co...
Definition: scalar.hpp:67
Spacetime intended for binary neutron stars configurations (see constructor for details about the dom...
Definition: bin_ns.hpp:35
The Space_spheric_adapted class fills the space with one nucleus, one shell adapted on the outside,...
Definition: adapted.hpp:661
The Space class is an ensemble of domains describing the whole space of the computation.
Definition: space.hpp:1362
This class is intended to describe the manage objects appearing in the equations.
Definition: term_eq.hpp:62
Class for storing the basis of decompositions of a field and its values on both the configuration and...
Definition: val_domain.hpp:69