TrioCFD 1.9.9_beta
TrioCFD documentation
Loading...
Searching...
No Matches
Domaine_Cl_VDF.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 Domaine_Cl_VDF_included
17#define Domaine_Cl_VDF_included
18
19#include <Domaine_Cl_dis_base.h>
20
21
22class Domaine_VDF;
23
25{
37} // namespace TypeAreteBordVDF
38
40{
55} // namespace TypeAreteCoinVDF
56
57/*! @brief class Domaine_Cl_VDF
58 *
59 * @sa Domaine_Cl_dis_base
60 */
61
63{
64 Declare_instanciable(Domaine_Cl_VDF);
65public :
66 void associer(const Domaine_dis_base&) override;
67 void completer(const Domaine_dis_base&) override;
68 void imposer_cond_lim(Champ_Inc_base&, double) override;
69 int nb_faces_sortie_libre() const;
70 int nb_faces_bord() const;
72 const Domaine_VDF& domaine_VDF() const;
73
74 inline int num_Cl_face(int numfa) const { return num_Cl_face_[numfa]; }
75 inline const Cond_lim& la_cl_de_la_face(int numfa) const override { return les_conditions_limites_[num_Cl_face_[numfa]]; }
76 inline int type_arete_bord(int num_arete) const { return type_arete_bord_[num_arete]; }
77 inline const IntVect& type_arete_bord() const { return type_arete_bord_; }
78 inline const int& type_arete_coin(int num_arete) const { return type_arete_coin_[num_arete]; }
79 inline const IntVect& type_arete_coin() const { return type_arete_coin_; }
80
81private:
82 // type of boundary edges:
83 // type = 0 if the edge separates two wall faces
84 // type = 1 if the edge separates two "fluid" faces
85 // type = 2 if the edge separates a wall face and a "fluid" face
86 // type = 3 if the edge separates two Navier faces (symmetry/slip wall)
87 // type = 3 if the edge separates two periodicity faces
88 // type = 5 if the edge separates a Navier face (symmetry/slip wall) and a wall face
89 // type = 6 if the edge separates a Navier face (symmetry/slip wall) and a "fluid" face
90 IntVect type_arete_bord_;
91
92 // type of corner edges:
93 // type = 0 if the edge contains two periodicity faces
94 // type = 1 if the edge contains one periodicity face and one wall face
95 IntVect type_arete_coin_;
96
97 // for each boundary face, the index of the boundary condition it belongs to
98 IntVect num_Cl_face_;
99};
100
101#endif /* Domaine_Cl_VDF_included */
Class Champ_Inc_base.
class Cond_lim Generic class used to represent any class
Definition Cond_lim.h:31
class Domaine_Cl_VDF
void imposer_cond_lim(Champ_Inc_base &, double) override
Enforces the boundary conditions at time "temps" on the Champ_Inc.
const Cond_lim & la_cl_de_la_face(int numfa) const override
Given a boundary face index in the Domaine_VF, returns the boundary condition to which this face.
int type_arete_bord(int num_arete) const
void associer(const Domaine_dis_base &) override
int nb_faces_bord() const
Domaine_VDF & domaine_VDF()
const IntVect & type_arete_coin() const
int nb_faces_sortie_libre() const
const IntVect & type_arete_bord() const
int num_Cl_face(int numfa) const
const int & type_arete_coin(int num_arete) const
class Domaine_Cl_dis_base Domaine_Cl_dis_base objects represent discretized boundary conditions
void completer()
Calls Cond_lim_base::completer() on each boundary condition.
class Domaine_VDF
Definition Domaine_VDF.h:61
class Domaine_dis_base This class is the base of the hierarchy of discretized domains.