16#include <TRUST_Vector.h>
17#include <Transformer.h>
32template <
typename _SIZE_>
38template <
typename _SIZE_>
44template <
typename _SIZE_>
63template <
typename _SIZE_>
70 Cerr <<
"Reading and interpretation of the function " << les_fcts[i] << finl;
72 fxyz[i].setString(les_fcts[i]);
76 fxyz[i].parseString();
77 Cerr <<
"Interpretation of the function " << les_fcts[i] <<
" Ok" << finl;
85 for (
int_t i = 0; i < sz; i++)
98 fxyz[j].setVar(
"x", x);
99 fxyz[j].setVar(
"y", y);
100 fxyz[j].setVar(
"z", z);
101 new_sommets(i, j) = fxyz[j].eval();
104 sommets = new_sommets;
107template <
typename _SIZE_>
110 auto& type_elem = this->
domaine().type_elem();
111 if (type_elem->que_suis_je() ==
"Hexaedre_VEF")
113 Cerr <<
"------------------------------------------------------------------" << finl;
114 Cerr <<
"It is advised to not use directly \"Transformer\" on a mesh" << finl;
115 Cerr <<
"with VEF hexahedra since the method Hexaedre_VEF::reordonner" << finl;
116 Cerr <<
"is not fairly general in TRUST." << finl;
117 Cerr <<
"If your purpose is to make tetrahedra on your mesh," << finl;
118 Cerr <<
"create it first after reading your hexahedral meshing," << finl;
119 Cerr <<
"then use \"Transformer\"." << finl;
120 Cerr <<
"------------------------------------------------------------------" << finl;
125template <
typename _SIZE_>
132 auto& type_elem = this->
domaine().type_elem();
133 if (type_elem->que_suis_je() ==
"Rectangle")
135 if (ref_cast(Rectangle,type_elem.valeur()).reordonner_elem() == -1)
137 type_elem.typer(
"Quadrangle");
138 type_elem->associer_domaine(this->
domaine());
141 if (type_elem->que_suis_je() ==
"Hexaedre")
143 if (ref_cast(Hexaedre,type_elem.valeur()).reordonner_elem() == -1)
145 type_elem.typer(
"Hexaedre_VEF");
146 type_elem->associer_domaine(this->
domaine());
149 for (
auto &itr : les_bords)
150 itr.faces().typer(Type_Face::quadrangle_3D);
void associer_domaine(const Domaine_t &)
Associe un domaine a tous les bords de la liste.
DoubleTab_t & les_sommets()
Class defining operators and methods for all reading operation in an input flow (file,...
classe Interprete_geometrique_base .
void associer_domaine(Nom &nom_dom)
Domaine_t & domaine(int i=0)
Un tableau de chaine de caracteres (VECT(Nom)).
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
classe Parser_U Version de la classe Parser, derivant de Objet_U.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
static void init_sequential_domain(Domaine_32_64< _SIZE_ > &dom)
Create parallel descriptors for the vertex and element arrays of the domain (necessary because Scatte...
static void uninit_sequential_domain(Domaine_32_64< _SIZE_ > &dom)
methode utilisee par les interpretes qui modifient le domaine (sequentiel), detruit les descripteurs ...
Classe de base des flux de sortie.
_SIZE_ dimension(int d) const