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 &)
Associates a domain to all boundaries in the list.
DoubleTab_t & les_sommets()
Class defining operators and methods for all reading operation in an input flow (file,...
Class Interprete_geometrique_base.
void associer_domaine(Nom &nom_dom)
Domaine_t & domaine(int i=0)
An array of character strings (VECT(Nom)).
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
class Parser_U Version of the Parser class, deriving from Objet_U.
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
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)
Method used by interpreters that modify the domain (sequential), destroys the descriptors of vertices...
Base class for output streams.
_SIZE_ dimension(int d) const