TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Eval_Dift_VDF_leaves.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 Eval_Dift_VDF_leaves_included
17#define Eval_Dift_VDF_leaves_included
18
19#include <Eval_Dift_Multiphase_VDF.h>
20#include <Eval_Diff_VDF_Face_Gen.h>
21#include <Eval_Diff_VDF_Elem_Gen.h>
22#include <Modele_turbulence_hyd_base.h>
23#include <Eval_Dift_VDF.h>
24#include <TRUST_Ref.h>
25
27
28/// \cond DO_NOT_DOCUMENT
29class Eval_Dift_VDF_leaves
30{};
31/// \endcond
32
33/*! @brief class Eval_Dift_VDF_Elem_Axi Evaluateur VDF pour la diffusion totale (laminaire et turbulente) en coordonnees cylindriques
34 *
35 * Le champ diffuse est scalaire (Champ_P0_VDF).
36 *
37 * @sa Eval_Dift_VDF_var
38 */
39class Eval_Dift_VDF_Elem_Axi : public Eval_Diff_VDF_Elem_Gen<Eval_Dift_VDF_Elem_Axi>, public Eval_Dift_VDF
40{
41public:
42 static constexpr bool IS_DEQUIV = true, IS_AXI = true;
43};
44
45/*! @brief class Eval_Dift_VDF_Elem Evaluateur VDF pour la diffusion totale (laminaire et turbulente)
46 *
47 * Le champ diffuse est scalaire (Champ_P0_VDF).
48 *
49 * @sa Eval_Dift_VDF_var
50 */
51class Eval_Dift_VDF_Elem : public Eval_Diff_VDF_Elem_Gen<Eval_Dift_VDF_Elem>, public Eval_Dift_VDF
52{
53public:
54 static constexpr bool IS_MODIF_DEQ = true;
55 inline int get_ind_Fluctu_Term() const { return ind_Fluctu_Term; }
56 void init_ind_fluctu_term() override;
57 void associer_loipar(const Turbulence_paroi_scal_base& loi_paroi) override;
58
59private:
60 int ind_Fluctu_Term = 1;
61};
62
63class Eval_Dift_Multiphase_VDF_Elem : public Eval_Diff_VDF_Elem_Gen<Eval_Dift_Multiphase_VDF_Elem>, public Eval_Dift_Multiphase_VDF
64{
65};
66
67class Eval_Dift_VDF_Multi_inco_Elem_Axi : public Eval_Diff_VDF_Elem_Gen<Eval_Dift_VDF_Multi_inco_Elem_Axi>, public Eval_Dift_VDF
68{
69public:
70 static constexpr bool IS_DEQUIV = true, IS_AXI = true;
71 inline void mettre_a_jour() override { update_equivalent_distance(); }
72};
73
74/*! @brief class Eval_Dift_VDF_Multi_inco_Elem Evaluateur VDF pour la diffusion totale (laminaire et turbulente)
75 *
76 * Le champ diffuse est scalaire (Champ_P0_VDF) avec plusieurs inconnues. Il y a une diffusivite par inconnue.
77 *
78 * @sa Eval_Dift_VDF_Multi_inco_var
79 */
80class Eval_Dift_VDF_Multi_inco_Elem : public Eval_Diff_VDF_Elem_Gen<Eval_Dift_VDF_Multi_inco_Elem>, public Eval_Dift_VDF
81{
82public:
83 static constexpr bool IS_DEQUIV = true;
84 inline void mettre_a_jour() override { update_equivalent_distance(); }
85};
86
87/*! @brief class Eval_Dift_VDF_Face Evaluateur VDF pour la diffusion totale (laminaire et turbulente)
88 *
89 * Le champ diffuse est un Champ_Face_VDF
90 *
91 */
92class Eval_Dift_VDF_Face : public Eval_Diff_VDF_Face_Gen<Eval_Dift_VDF_Face>, public Eval_Dift_VDF
93{
94public:
95 static constexpr bool IS_TURB = true, CALC_FA7_SORTIE_LIB = true, CALC_ARR_PAR_FL = false;
96 inline void associer_modele_turbulence(const Modele_turbulence_hyd_base& mod) { le_modele_turbulence = mod; }
97 inline bool uses_wall() const { return le_modele_turbulence->utiliser_loi_paroi(); }
98 void mettre_a_jour() override;
99 double tau_tan_impl(int face,int k) const;
100
101private:
102 OBS_PTR(Modele_turbulence_hyd_base) le_modele_turbulence;
103 OBS_PTR(Turbulence_paroi_base) loipar;
104 DoubleTab tau_tan_;
105};
106
107class Eval_Dift_Multiphase_VDF_Face : public Eval_Diff_VDF_Face_Gen<Eval_Dift_Multiphase_VDF_Face>, public Eval_Dift_Multiphase_VDF
108{
109public:
110 static constexpr bool IS_TURB = true, CALC_FA7_SORTIE_LIB = true, CALC_ARR_PAR_FL = false;
111 inline bool uses_wall() const { return false; }
112};
113
114#endif /* Eval_Dift_VDF_leaves_included */
class Eval_Diff_VDF_Elem_Gen Evaluateur VDF pour la diffusion : Le champ diffuse est un Champ_P0_VDF
class Eval_Diff_VDF_Face_Gen Evaluateur VDF pour la diffusion
static constexpr bool CALC_FA7_SORTIE_LIB
static constexpr bool CALC_ARR_PAR_FL
class Eval_Dift_VDF_Elem_Axi Evaluateur VDF pour la diffusion totale (laminaire et turbulente) en coo...
static constexpr bool IS_DEQUIV
static constexpr bool IS_AXI
class Eval_Dift_VDF_Elem Evaluateur VDF pour la diffusion totale (laminaire et turbulente)
static constexpr bool IS_MODIF_DEQ
void associer_loipar(const Turbulence_paroi_scal_base &loi_paroi) override
void init_ind_fluctu_term() override
class Eval_Dift_VDF_Face Evaluateur VDF pour la diffusion totale (laminaire et turbulente)
void mettre_a_jour() override
static constexpr bool CALC_ARR_PAR_FL
static constexpr bool IS_TURB
void associer_modele_turbulence(const Modele_turbulence_hyd_base &mod)
static constexpr bool CALC_FA7_SORTIE_LIB
double tau_tan_impl(int face, int k) const
class Eval_Dift_VDF_Multi_inco_Elem Evaluateur VDF pour la diffusion totale (laminaire et turbulente)
void update_equivalent_distance()
Classe Modele_turbulence_hyd_base Cette classe sert de base a la hierarchie des classes.
Classe Turbulence_paroi_base Classe de base pour la hierarchie des classes representant les modeles.
Classe Turbulence_paroi_scal_base Classe de base pour la hierarchie des classes representant les mode...