TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Declarer_bord_perio.h
1/****************************************************************************
2* Copyright (c) 2026, 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#ifndef Declarer_bord_perio_included
16#define Declarer_bord_perio_included
17
18#include <Interprete_geometrique_base.h>
19#include <Connectivite_som_elem.h>
20#include <Domaine_forward.h>
21#include <Domaine_bord.h>
22#include <Octree_Double.h>
23#include <ArrOfBit.h>
24
25/*! @brief Cet interprete doit etre utilise en sequentiel (avant decoupage) si les sommets opposes d'un bord periodique ne sont pas parfaitement alignes.
26 *
27 * (cas de certains maillages tetra si le mailleur est trop contraint par la CAO).
28 * Il tente de deplacer les sommets pour les aligner.
29 *
30 * Cet interprete permet de corriger les frontieres periodiques pour etre conformes aux besoins de TRUST:
31 * - reordonner les faces du bord periodique pour que la face i+n/2 soit en face de la face i,
32 * et toutes les faces [0 .. n/2-1] du meme cote et [n/2 .. n-1] de l'autre cote
33 * - deplacer les sommets des faces periodiques si besoin (si la CAO est fausse)
34 * Syntaxe:
35 * Declarer_bord_perio {
36 * domaine NOMDOMAINE
37 * bord NOMBORDPERIO
38 * [ direction DIMENSION dx dy [ dz ] ]
39 * [ fichier_post BASENAME ]
40 * }
41 */
42template <typename _SIZE_>
44{
45 Declare_instanciable_32_64(Declarer_bord_perio_32_64);
46public:
47 using int_t = _SIZE_;
48 using IntTab_t = IntTab_T<_SIZE_>;
49 using DoubleTab_t = DoubleTab_T<_SIZE_>;
50 using ArrOfInt_t = ArrOfInt_T<_SIZE_>;
51 using ArrOfDouble_t = ArrOfDouble_T<_SIZE_>;
52
58
59 Entree& interpreter_(Entree& is) override;
61
62 Nom& nom_bord() { return nom_bord_; }
63 const Nom& nom_bord() const { return nom_bord_; }
64
65protected:
67
69 ArrOfDouble direction_perio_;
71};
72
73using Declarer_bord_perio = Declarer_bord_perio_32_64<int>;
74using Declarer_bord_perio_64 = Declarer_bord_perio_32_64<trustIdType>;
75
76#endif
Classe Bord Cette classe represente un bord d'un domaine, c'est un type de frontiere.
Definition Bord.h:32
Cet interprete doit etre utilise en sequentiel (avant decoupage) si les sommets opposes d'un bord per...
ArrOfBit_32_64< _SIZE_ > ArrOfBit_t
DoubleTab_T< _SIZE_ > DoubleTab_t
void adapt_som_and_faces()
Main routine recording the periodic boundaries in the domain and performing the appropriate reorderin...
Entree & interpreter_(Entree &is) override
Octree_Double_32_64< _SIZE_ > Octree_Double_t
Domaine_32_64< _SIZE_ > Domaine_t
Domaine_bord_32_64< _SIZE_ > Domaine_bord_t
ArrOfInt_T< _SIZE_ > ArrOfInt_t
void corriger_coordonnees_sommets_perio()
Pour chaque sommet du bord periodique, on cherche son sommet oppose dans la direction + ou - vecteur_...
ArrOfDouble_T< _SIZE_ > ArrOfDouble_t
Bord_32_64< _SIZE_ > Bord_t
classe Domaine_32_64 un Domaine est un maillage compose d'un ensemble d'elements geometriques de meme...
Definition Domaine.h:62
Cette classe est un domaine dont les sommets et les elements sont extraits d'un bord d'un domaine sou...
Class defining operators and methods for all reading operation in an input flow (file,...
Definition Entree.h:42
classe Interprete_geometrique_base .
class Nom Une chaine de caractere pour nommer les objets de TRUST
Definition Nom.h:31
: Un octree permettant de chercher dans l'espace des elements ou des points decrits par des coordonne...