TrioCFD 1.9.9_beta
TrioCFD documentation
Loading...
Searching...
No Matches
ExtrudeBord.h
1/****************************************************************************
2* Copyright (c) 2025, 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 ExtrudeBord_included
17#define ExtrudeBord_included
18
19#include <Interprete_geometrique_base.h>
20#include <TRUSTTabs_forward.h>
21
22
23/*! @brief class ExtrudeBord
24 *
25 */
26/**
27 * Performs an extrusion of a boundary.
28 * ExtrudeBord can extrude a boundary meshed either with triangles or quadrangles:
29 * - if the boundary is meshed with quadrangles, the extruded domain will be composed of hexahedra
30 * - if the boundary is meshed with triangles, the extruded domain will be composed of tetrahedra
31 * The syntax is as follows:
32 * ExtrudeBord
33 * {
34 * domaine_init NAME_OF_SOURCE_DOMAIN
35 * direction X Y Z
36 * nb_tranches N
37 * domaine_final NAME_OF_EXTRUDED_DOMAIN
38 * nom_bord NAME_OF_BOUNDARY_TO_EXTRUDE
39 * hexa_old //keyword to use the old version of hexa extrusion
40 * }
41 *
42 * (MODIF OC 12/2004)
43 */
44class ExtrudeBord : public Interprete_geometrique_base
45{
46 Declare_instanciable(ExtrudeBord);
47
48public :
49
50 Entree& interpreter_(Entree&) override;
51
52private:
53
54 void extruder_bord(Nom& nom_front, Nom& nom_dom2, DoubleVect& vect_dir, int nbpas);
55 void extruder_hexa_old(Nom& nom_front, Nom& nom_dom2, DoubleVect& vect_dir, int nbpas);
56 bool hexa_old=false; // flag for old version of hexa extrusion: 0 = old version
57 bool Trois_Tetra=false; // flag for extrusion into three tetrahedra rather than 14 (default option)
58 bool Vingt_Tetra=false; // flag for extrusion into twenty tetrahedra rather than 14 (default option)
59 int en3D_=1;
60};
61
62
63#endif
64
class ExtrudeBord
Definition ExtrudeBord.h:45
Entree & interpreter_(Entree &) override
class Nom: a character string for naming TRUST objects.
Definition Nom.h:31
friend class Entree
Definition Objet_U.h:71