TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Conds_lim.h
1/****************************************************************************
2* Copyright (c) 2024, CEA
3* All rights reserved.
4*
5* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8* 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
9*
10* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
11* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
12* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
13*
14*****************************************************************************/
15
16#ifndef Conds_lim_included
17#define Conds_lim_included
18
19#include <TRUST_Vector.h>
20
21#include <Cond_lim.h>
22
23/*! @brief classe Conds_lim Cette classe represente un vecteur de conditions aux limites.
24 *
25 * Un objet de ce type est porte par chaque Domaine_Cl_dis_base associee
26 * a une equation. Une classe representant un vecteur d'objet est
27 * declaree grace a la macro VECT(classe_X)
28 *
29 * @sa Cond_lim Domaine_Cl_dis_base
30 */
31class Conds_lim : public VECT(Cond_lim)
32{
33 Declare_instanciable(Conds_lim);
34public:
35
36 inline int initialiser(double temps);
37 inline void mettre_a_jour(double temps);
38 inline void resetTime(double temps);
39 inline void calculer_coeffs_echange(double temps);
40 void completer(const Domaine_dis_base&);
41 inline int compatible_avec_eqn(const Equation_base&) const;
42 inline int compatible_avec_discr(const Discretisation_base&) const;
43
44 inline void set_modifier_val_imp(int);
45};
46
47
48inline int Conds_lim::initialiser(double temps)
49{
50 int ok = 1;
51 for (auto &itr : *this)
52 ok = ok && itr->initialiser(temps);
53 return ok;
54}
55
56/*! @brief Mise a jour en temps de toutes les conditions aux limites du vecteur.
57 *
58 * @param (double temps) le pas de temps de mise a jour
59 */
60inline void Conds_lim::mettre_a_jour(double temps)
61{
62 for (auto& itr : *this) itr->mettre_a_jour(temps);
63}
64
65inline void Conds_lim::resetTime(double temps)
66{
67 for (auto& itr : *this) itr->resetTime(temps);
68}
69
70/*! @brief Calcul des coefficients d'echange pour toutes les conditions aux limites du vecteur.
71 *
72 * @param (double temps) le pas de temps de mise a jour
73 */
74inline void Conds_lim::calculer_coeffs_echange(double temps)
75{
76 for (auto& itr : *this) itr->calculer_coeffs_echange(temps);
77}
78
79/*! @brief Renvoie si TOUTES les conditions aux limites du vecteurs sont compatibles avec l'equation passee en parametre.
80 *
81 * @param (Equation_base& eqn) l'equation avec laquelle on va verifier la compatibilite
82 * @return (int) 1 si toutes les conditions aux limites sont compatibles avec l'equation, 0 sinon.
83 */
85{
86 int ok = 1;
87 for (auto& itr : *this) ok *= itr->compatible_avec_eqn(eqn);
88 return ok;
89}
90
91/*! @brief Renvoie si TOUTES les conditions aux limites du vecteurs sont compatibles avec la discretisation passee en parametre.
92 *
93 * @param la discretisation avec laquelle on va verifier la compatibilite
94 * @return (int) 1 si toutes les conditions aux limites sont compatibles avec la discretisation, 0 sinon.
95 */
97{
98 int ok = 1;
99 for (auto& itr : *this) ok *= itr->compatible_avec_discr(dis);
100 return ok;
101}
102
103/*! @brief Positionnement du drapeau modifier_val_imp de toutes les conditions aux limites du vecteur.
104 *
105 * @param (double temps) le pas de temps de mise a jour
106 */
108{
109 for (auto& itr : *this) itr->set_modifier_val_imp(drap);
110}
111
112#endif /* Conds_lim_included */
classe Conds_lim Cette classe represente un vecteur de conditions aux limites.
Definition Conds_lim.h:32
int initialiser(double temps)
Definition Conds_lim.h:48
void set_modifier_val_imp(int)
Positionnement du drapeau modifier_val_imp de toutes les conditions aux limites du vecteur.
Definition Conds_lim.h:107
void resetTime(double temps)
Definition Conds_lim.h:65
int compatible_avec_eqn(const Equation_base &) const
Renvoie si TOUTES les conditions aux limites du vecteurs sont compatibles avec l'equation passee en p...
Definition Conds_lim.h:84
void calculer_coeffs_echange(double temps)
Calcul des coefficients d'echange pour toutes les conditions aux limites du vecteur.
Definition Conds_lim.h:74
void mettre_a_jour(double temps)
Mise a jour en temps de toutes les conditions aux limites du vecteur.
Definition Conds_lim.h:60
void completer(const Domaine_dis_base &)
Appel Cond_lim::completer() sur chaque condition aux llimites du vecteur.
Definition Conds_lim.cpp:37
int compatible_avec_discr(const Discretisation_base &) const
Renvoie si TOUTES les conditions aux limites du vecteurs sont compatibles avec la discretisation pass...
Definition Conds_lim.h:96
classe Discretisation_base Cette classe represente un schema de discretisation en espace,...
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
classe Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....