KADATH
bbh.hpp
1 /*
2  Copyright 2020 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 __BBH_HPP_
21 #define __BBH_HPP_
22 
23 #include "adapted.hpp"
24 #include "bispheric.hpp"
25 namespace Kadath {
26 
33 class Space_bbh : public Space {
34 
35  public:
36 
59  Space_bbh(int ttype, double dist, double rbh1, double rbh2, double rbi, double rext, int nr) ;
60 
61  Space_bbh (FILE*) ;
62 
69  void add_matching (System_of_eqs& syst, const char* rac, const List_comp& list) ;
70 
78  void add_matching (System_of_eqs& syst, const char* rac, int nused=-1, Array<int>** pused=0x0) ;
79 
80 
81  virtual ~Space_bbh() ;
82  virtual void save(FILE*) const ;
83 
84  virtual int nbr_unknowns_from_variable_domains() const ;
85  virtual void affecte_coef_to_variable_domains(int& , int, Array<int>&) const ;
86  virtual void xx_to_ders_variable_domains(const Array<double>&, int&) const ;
87  virtual void xx_to_vars_variable_domains(System_of_eqs*, const Array<double>&, int&) const ;
88  virtual Array<int> get_indices_matching_non_std(int dom, int bound) const ;
89 } ;
90 }
91 #endif
Class for storing a list of tensorial components.
Definition: list_comp.hpp:33
Spacetime intended for binary black hole configurations in full general relativity (see constructor f...
Definition: bbh.hpp:33
virtual void affecte_coef_to_variable_domains(int &, int, Array< int > &) const
The variation of the functions describing the shape of the Domain are affected from the unknowns of t...
Definition: space_bbh.cpp:174
Space_bbh(int ttype, double dist, double rbh1, double rbh2, double rbi, double rext, int nr)
Standard constructor
Definition: space_bbh.cpp:42
virtual ~Space_bbh()
Destructor.
Definition: space_bbh.cpp:150
virtual void xx_to_vars_variable_domains(System_of_eqs *, const Array< double > &, int &) const
Update the variables of a system, from the variation of the shape of the domains.
Definition: space_bbh.cpp:220
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).
Definition: bbh_add_eq.cpp:35
virtual Array< int > get_indices_matching_non_std(int dom, int bound) const
Gives the number of the other domains, touching a given boundary.
Definition: space_bbh.cpp:288
virtual int nbr_unknowns_from_variable_domains() const
Gives the number of unknowns coming from the variable shape of the domain.
Definition: space_bbh.cpp:169
virtual void save(FILE *) const
Saving function.
Definition: space_bbh.cpp:161
virtual void xx_to_ders_variable_domains(const Array< double > &, int &) const
Update the vairable domains from a set of values.
Definition: space_bbh.cpp:207
The Space class is an ensemble of domains describing the whole space of the computation.
Definition: space.hpp:1362
Class used to describe and solve a system of equations.