TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Champ_Gen_de_Champs_Gen.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
16#ifndef Champ_Gen_de_Champs_Gen_included
17#define Champ_Gen_de_Champs_Gen_included
18
19#include <Liste_Champ_Generique.h>
20#include <TRUST_List.h>
21#include <TRUST_Ref.h>
22#include <Champ_Fonc_base.h>
23
24/*! @brief Classe de base des champs generiques ayant comme source d'autres champs generiques L'utilisation des methodes de la classe repose sur un principe de recursivite
25 *
26 * Une instruction sera de maniere generale appliquee (ou deleguer) a un champ generique
27 * source qui lui meme appliquera (ou deleguera) l action
28 *
29 */
30
31// Syntaxe type pour les classes filles instanciables
32// "nom_champ" "type_champ_gen" { source "type_champ_gen" { source ... } }
33// ou
34// "nom_champ" "type_champ_gen" { source_reference "nom_source_ref" }
35// "nom_champ" fixe par l utilisateur sera le nom du champ generique
36// "type_champ_gen" designe le type du champ generique selectionne
37// nom_source_ref designe le nom d un champ generique deja defini
38
40{
41 Declare_base(Champ_Gen_de_Champs_Gen);
42public:
43
44 void set_param(Param& param) const override;
45 int lire_motcle_non_standard(const Motcle&, Entree&) override;
46 void reset() override;
47 std::vector<YAML_data> data_a_sauvegarder() const override;
48 int sauvegarder(Sortie& os) const override;
49 int reprendre(Entree& is) override;
50 void completer(const Postraitement_base& post) override;
51 void mettre_a_jour(double temps) override;
52
53 virtual OWN_PTR(Champ_Fonc_base)& creer_espace_stockage(const Nature_du_champ& nature,
54 const int nb_comp,
55 OWN_PTR(Champ_Fonc_base)& es_tmp) const;
56
57 virtual const Champ_Generique_base& get_source(int i) const;
59 virtual int get_nb_sources() const;
60 int get_dimension() const override;
61 void get_property_names(Motcles& list) const override;
62 double get_time() const override;
63
64 const Probleme_base& get_ref_pb_base() const override;
65 const Discretisation_base& get_discretisation() const override;
66 const Motcle get_directive_pour_discr() const override;
67
68 const Noms get_property(const Motcle& query) const override;
69 Entity get_localisation(const int index = -1) const override;
70
71 const DoubleTab& get_ref_values() const override;
72 void get_copy_values(DoubleTab&) const override;
73 void get_xyz_values(const DoubleTab& coords, DoubleTab& values, ArrOfBit& validity_flag) const override;
74
75 const Domaine& get_ref_domain() const override;
76 void get_copy_domain(Domaine&) const override;
77
78 const Domaine_dis_base& get_ref_domaine_dis_base() const override;
79 const Domaine_Cl_dis_base& get_ref_zcl_dis_base() const override;
80
81 const DoubleTab& get_ref_coordinates() const override;
82 void get_copy_coordinates(DoubleTab&) const override;
83 const IntTab& get_ref_connectivity(Entity index1, Entity index2) const override;
84 void get_copy_connectivity(Entity index1, Entity index2, IntTab&) const override;
85
86 void nommer_sources(const Postraitement_base& post);
87 virtual void nommer_source();
88 void set_parent_name(const Nom& nom) { parent_name_ = nom; }
89 const Nom& get_parent_name() const { return parent_name_; }
90
91 int get_info_type_post() const override;
92
93 const Champ_Generique_base& get_champ_post(const Motcle& nom) const override;
94 bool has_champ_post(const Motcle& nom) const override;
95 int comprend_champ_post(const Motcle& identifiant) const override;
96
97 //Methode pour changer t_deb et t_fin pour des reprises de statistiques
98 //ou pour les statistiques en_serie
99 virtual void fixer_serie(const double t1,const double t2);
100 virtual void fixer_tstat_deb(const double t1,const double t2);
101 virtual void lire_bidon(Entree& is) const;
102
103protected:
104 Nom parent_name_; //Name of the field for which I am the source
105 LIST(OWN_PTR(Champ_Generique_base)) sources_; //Attribut qui designent les sources de "premier niveau"
106 LIST(Nom) noms_sources_ref_;
107 LIST(OBS_PTR(Champ_Generique_base)) sources_reference_; //permet de creer une source en faisant une reference a un
108};
109
110#endif
classe Champ_Fonc_base Classe de base des champs qui sont fonction d'une grandeur calculee
Classe de base des champs generiques ayant comme source d'autres champs generiques L'utilisation des ...
void get_copy_values(DoubleTab &) const override
Remplit le tableau values avec les valeurs discretes du champ (cree une copie).
void mettre_a_jour(double temps) override
int sauvegarder(Sortie &os) const override
sauvegarde des differentes sources
void set_parent_name(const Nom &nom)
const IntTab & get_ref_connectivity(Entity index1, Entity index2) const override
Renvoie le tableau de connectivite entre l'entite geometrique index1 et l'entite index2.
Entity get_localisation(const int index=-1) const override
Renvoie le type des entites geometriques sur auxquelles les valeurs discretes sont attachees (NODE po...
const Nom & get_parent_name() const
LIST(OWN_PTR(Champ_Generique_base)) sources_
const DoubleTab & get_ref_coordinates() const override
Renvoie une reference au tableau des coordonnees des sommets du maillage support du champ,...
virtual void lire_bidon(Entree &is) const
int comprend_champ_post(const Motcle &identifiant) const override
void nommer_sources(const Postraitement_base &post)
int get_info_type_post() const override
virtual void fixer_tstat_deb(const double t1, const double t2)
const Noms get_property(const Motcle &query) const override
Renvoie la propriete demandee.
const Champ_Generique_base & get_champ_post(const Motcle &nom) const override
virtual OWN_PTR(Champ_Fonc_base) &creer_espace_stockage(const Nature_du_champ &nature
void completer(const Postraitement_base &post) override
int reprendre(Entree &is) override
reprise des differentes sources
const Probleme_base & get_ref_pb_base() const override
Renvoie le probleme qui porte le champ cible.
void get_property_names(Motcles &list) const override
Renvoie la liste des "query" possibles pour le champ.
void get_copy_coordinates(DoubleTab &) const override
std::vector< YAML_data > data_a_sauvegarder() const override
for PDI IO: retrieve name, type and dimensions of the field to save/restore
virtual const int OWN_PTR(Champ_Fonc_base) &es_tmp) const
void get_copy_connectivity(Entity index1, Entity index2, IntTab &) const override
void get_xyz_values(const DoubleTab &coords, DoubleTab &values, ArrOfBit &validity_flag) const override
Calcule la valeur ponctuelle du champ aux coordonnees donnees dans coords et les met dans values.
int get_dimension() const override
Renvoie la dimension de l'espace dans lequel le champ est defini.
const Domaine & get_ref_domain() const override
Renvoie une ref au domaine sur lequel sera evalue l espace de stockage.
void get_copy_domain(Domaine &) const override
Cree une copie du domaine sur lequel sera evalue l espace de stockage.
bool has_champ_post(const Motcle &nom) const override
const Domaine_Cl_dis_base & get_ref_zcl_dis_base() const override
Renvoie une ref au domaine_cl_discretisee de l equation portant le champ cible.
virtual const Champ_Generique_base & get_source(int i) const
void set_param(Param &param) const override
virtual Champ_Generique_base & set_source(int i)
const Motcle get_directive_pour_discr() const override
Renvoie la directive (champ_elem, champ_sommets, champ_face ou pression) pour lancer la discretisatio...
const Discretisation_base & get_discretisation() const override
Renvoie la discretisation associee au probleme.
const Domaine_dis_base & get_ref_domaine_dis_base() const override
Renvoie une ref au domaine_discretisee du domaine sur lequel sera evalue l espace de stockage.
double get_time() const override
Renvoie le temps du Champ_Generique_base.
LIST(Nom) noms_sources_ref_
int lire_motcle_non_standard(const Motcle &, Entree &) override
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
virtual void fixer_serie(const double t1, const double t2)
LIST(OBS_PTR(Champ_Generique_base)) sources_reference_
const DoubleTab & get_ref_values() const override
Renvoie une reference au tableau de valeurs discretes s'il existe en memoire.
class Champ_Generique_base
OBS_PTR(Probleme_base) ref_pb_
classe Discretisation_base Cette classe represente un schema de discretisation en espace,...
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
Class defining operators and methods for all reading operation in an input flow (file,...
Definition Entree.h:42
Une chaine de caractere (Nom) en majuscules.
Definition Motcle.h:26
Un tableau d'objets de la classe Motcle.
Definition Motcle.h:63
class Nom Une chaine de caractere pour nommer les objets de TRUST
Definition Nom.h:31
Un tableau de chaine de caracteres (VECT(Nom)).
Definition Noms.h:26
friend class Entree
Definition Objet_U.h:76
friend class Sortie
Definition Objet_U.h:75
Helper class to factorize the readOn method of Objet_U classes.
Definition Param.h:112
Classe de base pour l'ensemble des postraitements.
classe Probleme_base C'est un Probleme_U qui n'est pas un couplage.