19#include <Probleme_FT_Disc_gen.h>
21#include <Domaine_VF.h>
22#include <Champ_Generique_Interpolation.h>
23#include <communications.h>
24#include <Probleme_FTD_IJK_base.h>
38 field_name_ = ref_ijk_field_->le_nom();
42 ref_ijk_ft_->get_post().register_one_field(ref_ijk_field_->le_nom(),
"ELEM");
57 static constexpr auto VALID = {
"point",
"points",
"segment",
"plan",
"volume",
"segmentxdx",
58 "planxdxdy",
"circle",
"segmentpoints"
63 std::transform(s.begin(), s.end(), s.begin(),
64 [](
unsigned char c) { return std::tolower(c); }
67 if (std::find(VALID.begin(), VALID.end(), s) == VALID.end())
76 Process::exit(
"ERROR: only 'grav' position modificator is supported for IJK probe!");
81 const Domaine_IJK& geom_ft = ref_ijk_ft_->get_domaine_ft();
82 return ref_ijk_ft_->probleme(geom_ft).domaine();
88 ret.add(ref_ijk_field_->le_nom());
94 return ref_ijk_field_->nb_comp();
100 return ref_ijk_ft_->schema_temps().temps_courant();
115 const Domaine_IJK& geom_ft = ref_ijk_ft_->get_domaine_ft();
116 const Domaine_IJK& field_splitting = ref_ijk_field_->get_domaine();
117 Vecteur3 origin(0., 0., 0.), delta(0., 0., 0.);
135 for (
int idx =0; idx < nbre_points; idx++)
137 const int num_elem =
elem_[idx];
138 if (num_elem == -1)
continue;
146 for (
int i = 0; i < 3; i++)
148 Cerr <<
"Sonde " <<
nom_ <<
" Point " << idx
156 if ((field_splitting != geom_ft) &&
161 for (
int i = 0; i < 3; i++)
171 elem_[idx] = new_num_elem;
183 fix_probe_position_generic(loc);
189 const int nb_pts =
elem_.size();
192 const IJK_Field_double* ijk_field = &(ref_ijk_ft_->get_IJK_field(field_name_));
204 for (
int idx =0; idx < nb_pts; idx++)
206 const int num_elem =
elem_[idx];
209 Cerr <<
"ERROR - Sonde_IJK::fill_local_values() - the probe '" <<
nom_ <<
"' defines point #" << idx <<
" which falls outside the domain!!" << finl;
This class encapsulates all the information related to the eulerian mesh for TrioIJK.
int get_offset_local(int direction) const
Returns the local offset in requested direction.
bool get_periodic_flag(int direction) const
Method returns true if periodic in this direction.
double get_constant_delta(int direction) const
Returns the size of cells in a direction.
double get_origin(int direction) const
Returns the coordinate of the first node (global) of the mesh in the requested direction.
int convert_ijk_cell_to_packed(const FixedVector< int, 3 > ijk) const
Converts the ijk index of an element to a cell index.
FixedVector< int, 3 > convert_packed_to_ijk_cell(int index) const
Convert the local index of an element to a vector with IJK indices.
Localisation
Localisation sub class.
Class defining operators and methods for all reading operation in an input flow (file,...
const Domaine_IJK & get_domaine() const
Une chaine de caractere (Nom) en majuscules.
const std::string & getString() const
Un tableau de chaine de caracteres (VECT(Nom)).
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
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.
const Probleme_base & probleme(const Domaine_IJK &dom) const
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
double get_temps_champ() const override
const Domaine & get_domaine_geom() const override
IJK_Field_double tmp_storage_
void fix_probe_position_grav() override
void fix_probe_position() override
void validate_type(const Motcle &loc) const override
const Noms get_noms_champ() const override
int get_nb_compo_champ() const override
void validate_position() const override
void completer() override
void fill_local_values() override
classe Sonde Cette classe permet d'effectuer l'evolution d'un champ au cours du temps.
DoubleTab valeurs_locales
IntVect elem_
les elements contenant les sondes ponctuelles locales
virtual void initialiser()
Initialise la sonde.
Nom nom_
le nom de la sonde
DoubleTab les_positions_sondes_
les coordonnees des sondes sur tout le domaine apres deplacement (uniquement sur le maitre)
Classe de base des flux de sortie.
_SIZE_ dimension(int d) const