TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Champ_Generique_refChamp.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_Generique_refChamp_included
17#define Champ_Generique_refChamp_included
18
19#include <Postraitement.h>
20
21/*! @brief Classe de champ particuliere qui encapsule une reference a un champ volumique de TRUST de type Champ_base.
22 *
23 * La classe ne gere pas la memoire de Champ_base.
24 *
25 */
26
27// Syntaxe a respecter pour jdd
28//
29// "nom_champ" refChamp { Pb_champ "nom_pb" "nom_champ_discret" }
30// "nom_champ" fixe par utilisateur sera le nom du champ generique
31// "nom_pb" nom du probleme auquel appartient le champ discret
32// "nom_champ_discret" nom du champ cible ou une de ses composantes
33
35{
36 Declare_instanciable(Champ_Generique_refChamp);
37public:
38
39 void initialize(const Champ_base& champ);
40 void set_param(Param& param) const override;
41 int lire_motcle_non_standard(const Motcle&, Entree&) override;
42 int get_dimension() const override;
43 void get_property_names(Motcles& list) const override;
44 const Noms get_property(const Motcle& query) const override;
45 Entity get_localisation(const int index = -1) const override;
46
47 const DoubleTab& get_ref_values() const override;
48 void get_copy_values(DoubleTab&) const override;
49 void get_xyz_values(const DoubleTab& coords, DoubleTab& values, ArrOfBit& validity_flag) const override;
50
51 const Domaine_Cl_dis_base& get_ref_zcl_dis_base() const override;
52
53 const DoubleTab& get_ref_coordinates() const override;
54 void get_copy_coordinates(DoubleTab&) const override;
55 const IntTab& get_ref_connectivity(Entity index1, Entity index2) const override;
56 void get_copy_connectivity(Entity index1, Entity index2, IntTab&) const override;
57
58 const Probleme_base& get_ref_pb_base() const override;
59 void reset() override;
60 void completer(const Postraitement_base& post) override;
61 void mettre_a_jour(double temps) override;
62
63 //get_champ() particulier car n utilise pas d espace de stockage
64 //Actualise le champ discret si champ calcule du probleme
65 //et renvoie la reference
66 const Champ_base& get_champ(OWN_PTR(Champ_base)& espace_stockage) const override;
67 const Champ_base& get_champ_without_evaluation(OWN_PTR(Champ_base)& espace_stockage) const override;
68 virtual const Champ_base& get_ref_champ_base() const; //renvoie la reference au champ encapsule
69
70 virtual void set_ref_champ(const Champ_base&);
71
72 double get_time() const override;
73 const Motcle get_directive_pour_discr() const override;
74 void set_nom_champ(const Motcle&);
75 void nommer_source(const Postraitement_base& post);
76 int get_info_type_post() const override;
77
78 //L attribut compo_ de Champ_Generique_refChamp n est rempli que pour CGNS
79 //crees par macro et cela afin de reproduire les noms de composantes pour les champs aux faces
80 const Noms& fixer_noms_compo(const Noms& noms) override;
81 const Noms& fixer_noms_synonyms(const Noms& noms) override;
82
83protected:
85
86 OBS_PTR(Champ_base) ref_champ_;
87 mutable OWN_PTR(Champ_base) ptr_champ_; /* XXX Elie Saikali : sais pas quoi faire */
88
89 //temporaire voir utilite
91
93
94};
95#endif
class Champ_Generique_base
Classe de champ particuliere qui encapsule une reference a un champ volumique de TRUST de type Champ_...
void initialize(const Champ_base &champ)
On initialise la classe avec le champ en parametre.
void get_xyz_values(const DoubleTab &coords, DoubleTab &values, ArrOfBit &validity_flag) const override
appel a Champ_base::valeur_aux()
int get_dimension() const override
Renvoie le nombre de coordonnees de chaque sommet du domaine.
void mettre_a_jour(double temps) override
Voir Champ_Generique_base::mettre_a_jour Si le champ est champ_inc dans l'equation,...
virtual void set_ref_champ(const Champ_base &)
Associe le champ et determine sa localisation.
void get_copy_values(DoubleTab &) const override
Cree une copie du tableau de valeurs Voir GenericField_base::get_copy_values().
void nommer_source(const Postraitement_base &post)
void get_property_names(Motcles &list) const override
Renvoie la liste des "query" possibles pour le champ.
virtual const Champ_base & get_ref_champ_base() const
Renvoie le champ_base sous-jacent.
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.
double get_time() const override
Renvoie le temps du Champ_Generique_base.
const DoubleTab & get_ref_values() const override
Verifie que le champ est bien un champ discret et renvoie le tableau de valeurs.
OWN_PTR(Champ_base) ptr_champ_
const Champ_base & get_champ(OWN_PTR(Champ_base)&espace_stockage) const override
Voir Champ_Generique_base::get_champ.
const DoubleTab & get_ref_coordinates() const override
Renvoie une reference au tableau des coordonnees des sommets du maillage support du champ,...
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.
void get_copy_coordinates(DoubleTab &) const override
const Motcle get_directive_pour_discr() const override
Renvoie la directive (champ_elem, champ_sommets, champ_face ou pression) pour lancer la discretisatio...
void set_param(Param &param) const override
pb_champ : declenche la lecture du nom du probleme (nom_pb_) auquel appartient le champ discret et le...
const Champ_base & get_champ_without_evaluation(OWN_PTR(Champ_base)&espace_stockage) const override
OBS_PTR(Champ_base) ref_champ_
const Probleme_base & get_ref_pb_base() const override
Renvoie le probleme qui porte le champ cible.
Entity get_localisation(const int index=-1) const override
Si le champ n'est pas un champ discret : exception Champ_Generique_erreur("INVALID") Sinon,...
const Noms & fixer_noms_synonyms(const Noms &noms) override
void get_copy_connectivity(Entity index1, Entity index2, IntTab &) const override
const Noms & fixer_noms_compo(const Noms &noms) override
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.
const Noms get_property(const Motcle &query) const override
Renvoie la propriete demandee.
void completer(const Postraitement_base &post) override
classe Champ_base Cette classe est la base de la hierarchie des champs.
Definition Champ_base.h:43
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
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
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.