TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Paroi_TBLE_QDM.h
1/****************************************************************************
2* Copyright (c) 2015 - 2016, 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 Paroi_TBLE_QDM_included
17#define Paroi_TBLE_QDM_included
18
19#include <MuLambda_TBLE_base.h>
20#include <TRUST_Deriv.h>
21#include <Paroi_TBLE_QDM_Scal.h>
22
23class Motcle;
26class Domaine_VF;
27class Probleme_base;
28class Param;
29
30/*! @brief CLASS: Paroi_TBLE_Impl
31 *
32 * .SECTION voir aussi
33 * Turbulence_paroi_base
34 *
35 */
37{
38public:
39
41 void set_param(Param& param) const;
43
44
45 /**
46 * Initialise les tableaux (dimensionnement) : a appeler dans init_lois_paroi() des classes filles
47 */
49
50
51
52 /**
53 * Methodes d'arret/reprise a appeler pour les quantites TBLE
54 */
55 int reprendre(Entree&, const Domaine_dis_base&, const Domaine_Cl_dis_base&, double tps);
56 int sauvegarder(Sortie&, const Domaine_dis_base&, const Domaine_Cl_dis_base&, double tps) const ;
57
58
59 /**
60 * Remplit les tableaux des quantites statistiques
61 * indice_post : indice de tableau du numero de postraitement a calculer (entre 0 et nb_post_pts)
62 * indice_maillage : indice correspondant au numero de maille dans le maillage 1D
63 * Fx, Fy, Fz : les composantes du second membre sur la maille 1D "indice_maillage" de la face correspondante a "indice_post"
64 * u, v, w : les composantes de la vitesse correspondant sur la maille 1D "indice_maillage" de la face correspondante a "indice_post"
65 * dt : pas de temps courant
66 */
67 void calculer_stat(int indice_post, int indice_maillage, double Fx, double Fy, double Fz, double u, double v, double w, double dt);
68
69 /**
70 * Impression des stats dans les fichiers de sortie
71 */
72 void imprimer_stat(Sortie&, double) const ;
73
75 {
76 return eq_vit[i];
77 };
78
79 virtual ~Paroi_TBLE_QDM() {};
81 {
82 return mu_lambda.valeur();
83 }
84 virtual const Probleme_base& getPbBase() const = 0 ;
85
86protected:
87
88
89 // il faudrait mettre des methodes d'acces a ces attributs pour les classes filles
90 // ce serait plus clair
92
93 int statio; //flag pour savoir si l'on desire mener a CV en temps les equations TBLE a chaque pas de temps grossier
94 int max_it_statio; // nb maximum de pas de temps pour arriver a CV de TBLE dans le cas
95 // ou l'on choisit de mener a CV en temps les equations TBLE a chaque pas de temps grossier
96 double eps_statio; // Critere d'arret dans le cas ou l'on choisit de mener a CV en temps les equations TBLE a chaque pas de temps grossier
97
98 double fac, epsilon;
100
103
106
107
108 DoubleTab visco_turb_moy;
110
112 DoubleTab sonde_tble;
115
118 bool restart = false;
119
120 //Tableau de Stats
121 DoubleTab Fxmean_sum; //Integrale en temps du second membre Fx.
122 DoubleTab Fymean_sum; //Integrale en temps du second membre Fy.
123 DoubleTab Fzmean_sum; //Integrale en temps du second membre Fz.
124 DoubleTab Umean_sum; //Integrale en temps de U.
125 DoubleTab Umean_2_sum; //Integrale en temps de U.
126 DoubleTab Vmean_sum; //Integrale en temps de V.
127 DoubleTab Vmean_2_sum; //Integrale en temps de VV.
128 DoubleTab Wmean_sum; //Integrale en temps de W.
129 DoubleTab Wmean_2_sum; //Integrale en temps de WW.
130 DoubleTab UVmean_sum; //Integrale en temps de UV.
131 DoubleTab WVmean_sum; //Integrale en temps de WV.
132 DoubleTab WUmean_sum; //Integrale en temps de WU.
133
134
135 // Mu fonction de T
141
142 //Flag pour le terme source de Boussinesq dans les equations TBLE :
143 // le terme source de Boussi est automatiquement mis dans TBLE si il est present dans le 3D. Dans ce cas, il est possible de le supprimer malgre tout
144 // avec l'option "sans_source_boussinesq" (alors source_boussinesq=0)
146 double T0;
147 double beta_t;
148};
149
150
151#endif
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
class Domaine_VF
Definition Domaine_VF.h:44
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
Class defining operators and methods for all reading operation in an input flow (file,...
Definition Entree.h:42
Une chaine de caractere (Nom) en majuscules.
Definition Motcle.h:26
Classe MuLambda_TBLE_base Classe abstraite calculant Mu et Lambda sur le maillage TBLE.
class Nom Une chaine de caractere pour nommer les objets de TRUST
Definition Nom.h:31
Un tableau de chaine de caracteres (VECT(Nom)).
Definition Noms.h:26
Helper class to factorize the readOn method of Objet_U classes.
Definition Param.h:112
DoubleTab Vmean_sum
virtual ~Paroi_TBLE_QDM()
double tps_start_stat_nu_t_dyn
DoubleTab visco_turb_moy
void calculer_stat(int indice_post, int indice_maillage, double Fx, double Fy, double Fz, double u, double v, double w, double dt)
DoubleTab WVmean_sum
DoubleTab UVmean_sum
void imprimer_stat(Sortie &, double) const
DoubleTab sonde_tble
DoubleTab Umean_sum
void set_param(Param &param) const
DoubleTab Fymean_sum
DoubleTab Wmean_2_sum
DoubleTab Vmean_2_sum
int reprendre(Entree &, const Domaine_dis_base &, const Domaine_Cl_dis_base &, double tps)
DoubleTab Fxmean_sum
IntTab num_global_faces_post
DoubleTab Umean_2_sum
int sauvegarder(Sortie &, const Domaine_dis_base &, const Domaine_Cl_dis_base &, double tps) const
DoubleTab Fzmean_sum
virtual const Probleme_base & getPbBase() const =0
MuLambda_TBLE_base & getMuLambda()
VECT(Eq_couch_lim) eq_vit
OWN_PTR(MuLambda_TBLE_base) mu_lambda
DoubleTab Wmean_sum
DoubleTab valeurs_reprises
DoubleTab WUmean_sum
int lire_motcle_non_standard(const Motcle &, Entree &)
Eq_couch_lim & get_eq_couch_lim(int i)
int init_lois_paroi(const Domaine_VF &, const Domaine_Cl_dis_base &)
classe Probleme_base C'est un Probleme_U qui n'est pas un couplage.
Classe de base des flux de sortie.
Definition Sortie.h:52