TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Domaine_Cl_EF.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_EF_included
17#define Domaine_Cl_EF_included
18
19
20
21/*! @brief class Domaine_Cl_EF Cette classe porte les tableaux qui servent a mettre en oeuvre
22 *
23 * les condition aux limites dans la formulation EF
24 *
25 *
26 * @sa Domaine_Cl_dis_base
27 */
28#include <Domaine_Cl_dis_base.h>
29
30class Champ_Don_base;
31class Domaine_EF;
32class Matrice_Morse;
33
35{
36
37 Declare_instanciable(Domaine_Cl_EF);
38
39public :
40
41 void completer(const Domaine_dis_base& ) override;
42// void mettre_a_jour(double );
43 int initialiser(double temps) override;
44 void imposer_cond_lim(Champ_Inc_base&, double) override;
45
46 void imposer_symetrie(DoubleTab&,int tous_les_sommets_sym=0) const;
47 void imposer_symetrie_partiellement(DoubleTab&,const Noms&) const;
48 void imposer_symetrie_matrice_secmem(Matrice_Morse& la_matrice, DoubleTab& secmem) const;
49
50 void modifie_gradient(ArrOfDouble& grad_mod,const ArrOfDouble& grad,int num_som) const;
51
52
53 int nb_faces_sortie_libre() const;
55 const Domaine_EF& domaine_EF() const;
56
57 int nb_bord_periodicite() const;
58 inline const ArrOfInt& get_type_sommet() const
59 {
60 return type_sommet_ ;
61 };
62protected:
63
64 // Attributs:
65
67
68 // Fonctions de creation des membres prives du domaine:
69
70 void remplir_type_elem_Cl(const Domaine_EF& );
71 ArrOfInt type_sommet_; // -1 interne 0 Neumann 1 Symetrie >2 Dirichlet
72 // Un sommet est d'abord diri , puis Symetrie , puis Neumann , puis interne
74};
75
76//
77// Fonctions inline de la classe Domaine_Cl_EF
78//
79
80
81
82
83
84#endif
classe Champ_Don_base classe de base des Champs donnes (non calcules)
Classe Champ_Inc_base.
void remplir_type_elem_Cl(const Domaine_EF &)
appele par remplir_volumes_entrelaces_Cl() : remplissage de type_elem_Cl_
Domaine_EF & domaine_EF()
int initialiser(double temps) override
Initialise les CLs Contrairement aux methodes mettre_a_jour, les methodes.
const ArrOfInt & get_type_sommet() const
void imposer_symetrie(DoubleTab &, int tous_les_sommets_sym=0) const
Impose les conditions de symetrie c.
int nb_bord_periodicite() const
void modifie_gradient(ArrOfDouble &grad_mod, const ArrOfDouble &grad, int num_som) const
void imposer_symetrie_partiellement(DoubleTab &, const Noms &) const
void imposer_symetrie_matrice_secmem(Matrice_Morse &la_matrice, DoubleTab &secmem) const
On transforme la_matrice et le secmem pour avoir un secmem normal aux bords , plus la matrice pour as...
void imposer_cond_lim(Champ_Inc_base &, double) override
Impose les conditions aux limites a la valeur temporelle "temps" du Champ_Inc.
OWN_PTR(Champ_Don_base) normales_symetrie_
int nb_faces_sortie_libre() const
ArrOfInt type_sommet_
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
void completer()
Appel Cond_lim_base::completer() sur chaque condition aux limites.
class Domaine_EF
Definition Domaine_EF.h:59
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
Un tableau de chaine de caracteres (VECT(Nom)).
Definition Noms.h:26