16#include <Cond_lim_utilisateur_base.h>
17#include <Domaine_Cl_dis_base.h>
18#include <Frontiere_dis_base.h>
19#include <Schema_Temps_base.h>
20#include <Equation_base.h>
21#include <Probleme_base.h>
46 Motcle accolade_ouverte(
"{");
47 Motcle accolade_fermee(
"}");
51 if (motlu != accolade_ouverte)
53 Cerr <<
"Error while reading the boundaries conditions\n";
54 Cerr <<
"We expected a " << accolade_ouverte <<
" instead of \n"
60 IntTab front_deja_lu(n);
71 if (motlu == accolade_fermee)
75 Journal()<<
"Reading the boundary condition " << nomlu <<finl;
81 if (front_deja_lu(rang) == 0)
82 front_deja_lu(rang) = 1;
86 Cerr <<
"Error in the data set "<<finl;
87 Cerr <<
"the boundary condition associated"<<finl;
88 Cerr <<
"to the boundary "<< nomlu <<
"is read twice !!"<<finl;
98 Cond_lim_utilisateur_base& la_cl=ref_cast(Cond_lim_utilisateur_base,
les_conditions_limites(rang).valeur());
100 Cond_lim* sa=&(la_cl.
la_cl());
113 const Frontiere& frontiere=ledomaine.
frontiere(rang);
116 Cerr<<
"At least one connection (adjacent boundary on two domains) is of type 'Raccord distant homogene'." << finl;
117 Cerr<<
"Use 'Raccord local homogene' to define the connections in sequential computing"<<finl;
118 Cerr<<
"And 'Raccord distant homogene' for the connections in parallel computing." << finl;
127 Cerr <<
"It misses " << n-nb_clim <<
" boundaries conditions " << finl;
128 Cerr <<
"We read " << nb_clim <<
" boundaries conditions " << finl;
129 Cerr <<
"We waited " << n <<
" boundary conditions " << finl;
132 for (
int num_cl=0; num_cl<nb_clim; num_cl++)
154 if (itr.get_info()->has_base(type))
return 1;
321 if (face_globale==faces_virt[j])
341 if (fr.
le_nom()==frontiere)
359 if (fr.
le_nom()==frontiere)
375 if (champ.instationnaire()) champ.calculer_derivee_en_temps(t1,t2);
455 assert(num_face >= 0);
458 for (i = 0; i < nb_cl; i++)
465 if (num_face >= num_premiere_face && num_face < num_premiere_face + nb_faces)
470 Cerr <<
"Error in Domaine_Cl_dis_base::la_cl_de_la_face(num_face="
471 << num_face <<
")\n This face is not on a boundary of cond_lim."
class Champ_front_base Base class for the hierarchy of boundary fields.
class Cond_lim_base Base class for the hierarchy of classes that represent the different boundary con...
virtual void mettre_a_jour(double temps)
Performs a time update of the boundary condition.
virtual int a_mettre_a_jour_ss_pas_dt()
Indicates whether this boundary condition must be updated during sub-time steps of a time scheme such...
virtual Frontiere_dis_base & frontiere_dis()
Returns the discretized boundary to which the boundary conditions apply.
void lire(Entree &, Equation_base &, const Nom &nom_bord)
class Cond_lim Generic class used to represent any class
class Conds_lim This class represents a vector of boundary conditions.
int_t nb_faces_frontiere() const
Returns the number of boundary faces of the domain (sum of boundaries, connections,...
int rang_frontiere(const Nom &) const
const Frontiere_t & frontiere(int i) const
class Domaine_Cl_dis_base Domaine_Cl_dis_base objects represent discretized boundary conditions
virtual void mettre_a_jour_ss_pas_dt(double temps)
Performs a time update for sub-time-steps of a time scheme (e.g. in RungeKutta).
virtual int calculer_coeffs_echange(double temps)
Computes the exchange coefficients for thermally coupled problems.
void calculer_derivee_en_temps(double t1, double t2)
Computes the growth rate of unsteady BCs between t1 and t2.
void nommer(const Nom &nom) override
Assigns a name to the Objet_U. Virtual method to override.
virtual int initialiser(double temps)
Initializes the BCs. Unlike the update methods, the.
virtual const Champ_Inc_base & inconnue() const
const Cond_lim_base & condition_limite_de_la_frontiere(Nom frontiere) const
Returns the boundary condition associated with a boundary of the given name.
int reculer(double temps)
Rotates the wheel of all BCs back to the given time.
int nb_cond_lim() const
Returns the number of boundary conditions.
virtual const Cond_lim & la_cl_de_la_face(int num_face) const
Given a boundary face index in the Domaine_VF, returns the boundary condition to which this face.
void completer()
Calls Cond_lim_base::completer() on each boundary condition.
Conds_lim & les_conditions_limites()
Returns the array of boundary conditions.
void resetTime(double time)
Domaine_dis_base & domaine_dis()
Returns a reference to the discretized domain associated with the boundary conditions.
virtual void associer_inconnue(const Champ_Inc_base &)
void set_temps_defaut(double temps)
Changes the i-th future time of all BCs.
virtual void mettre_a_jour(double temps)
Performs a time update of all boundary conditions.
int avancer(double temps)
Rotates the wheel of all BCs up to the given time.
int contient_Cl(const Nom &)
Returns 1 if the object contains a boundary condition with the specified Name.
Conds_lim les_conditions_limites_
const Cond_lim_base & condition_limite_de_la_face_reelle(int face_globale, int &face_locale) const
Returns the boundary condition associated with a given real face.
const Cond_lim_base & condition_limite_de_la_face_virtuelle(int face_globale, int &face_locale) const
Returns the boundary condition associated with a given virtual face.
void changer_temps_futur(double temps, int i)
Changes the i-th future time of all BCs.
class Domaine_dis_base This class is the base of the hierarchy of discretized domains.
const Domaine & domaine() const
void ecrire_noms_bords(Sortie &) const
Writes the boundary names to an output stream.
Class defining operators and methods for all reading operation in an input flow (file,...
Probleme_base & probleme()
Returns the problem associated with the equation.
Domaine_dis_base & domaine_dis()
Returns the discretized domain associated with the equation.
const ArrOfInt_t & get_faces_virt() const
int_t num_premiere_face() const
const Nom & le_nom() const override
Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
int_t nb_faces() const
Returns the number of faces of the boundary.
const Frontiere & frontiere() const
Returns the associated geometric boundary.
const Equation_base & equation() const
Returns the reference to the equation pointed to by MorEqn::mon_equation.
class Nom: a character string for naming TRUST objects.
Base class for TRUST objects (Objet_U).
const Nom & que_suis_je() const
Returns the string identifying the class.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
const Nom & le_nom() const override
Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
static Sortie & Journal(int message_level=0)
Returns a static Sortie object used as an event journal.
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
static bool is_sequential()
Base class for output streams.
_SIZE_ size_array() const