TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Moyenne_volumique.h
1/****************************************************************************
2* Copyright (c) 2024, 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 Moyenne_volumique_included
17#define Moyenne_volumique_included
18
19#include <TRUSTTabs_forward.h>
20#include <Interprete.h>
21#include <TRUST_Ref.h>
22#include <Parser.h>
23
24class Convolution_function_base;
26class Domaine_VF;
27class Champ_base;
28class Motcles;
29
30/*! @brief : cet interprete permet, a la fin du calcul (apres "resoudre"), de calculer et de stocker dans un fichier lata le produit de convolution
31 *
32 * de certains champs d'un probleme avec une fonction filtre arbitraire.
33 * On peut l'utiliser comme un interprete (voir Moyenne_volumique::interpreter())
34 * ou n'importe ou a l'interieur du code comme ceci:
35 * Moyenne_volumique moy;
36 * is >> moy; // lecture de la fonction filtre
37 * moy.calculer_convolution_champ_elem/face(...)
38 *
39 */
41{
42 Declare_instanciable(Moyenne_volumique);
43
44public:
45 Entree& interpreter(Entree&) override;
46
47 virtual void calculer_convolution_champ_elem(const Domaine_VF& domaine_source, const DoubleTab& champ_source, const DoubleTab& coords_to_compute, DoubleTab& resu) const;
48
49 virtual void calculer_convolution_champ_face(const Domaine_VF& domaine_source, const DoubleTab& champ_source, const DoubleTab& coords_to_compute, DoubleTab& resu) const;
50
51 virtual void eval_filtre(const DoubleTab& coords, ArrOfDouble& result) const;
52 double box_size() const { return box_size_; }
53
54protected:
55 void traiter_champs(const Motcles& noms_champs, const Nom& nom_pb, const Nom& nom_dom, const DoubleTab& coords, Format_Post_base& post, double temps, const Motcle& localisation);
56
57 int get_champ(const Nom& nom_pb, const Nom& nom_champ,
58 OBS_PTR(Champ_base) &ref_champ);
59
60 virtual void calculer_convolution(const Domaine_VF& domaine_source, const DoubleTab& champ_source, const DoubleTab& coords_to_compute, DoubleTab& resu) const;
61
63 // Si type_ != parser, il faut renseigner l_, sinon il faut renseigner expression_parser_
65 // parametre du filtre (largeur de boite, chapeau ou gaussienne)
66 double l_= -1.;
67 // box_size_ doit toujours etre rempli (demi-cote d'un cube contenant le support du filtre)
68 double box_size_ = -100.;
70 mutable Parser parser_;
71};
72
73#endif
classe Champ_base Cette classe est la base de la hierarchie des champs.
Definition Champ_base.h:43
class Domaine_VF
Definition Domaine_VF.h:44
Classe de base des formats de postraitements pour les champs (lata, med, cgns, lml,...
Classe de base des objets "interprete".
Definition Interprete.h:38
Une chaine de caractere (Nom) en majuscules.
Definition Motcle.h:26
Un tableau d'objets de la classe Motcle.
Definition Motcle.h:63
: cet interprete permet, a la fin du calcul (apres "resoudre"), de calculer et de stocker dans un fic...
virtual void calculer_convolution_champ_elem(const Domaine_VF &domaine_source, const DoubleTab &champ_source, const DoubleTab &coords_to_compute, DoubleTab &resu) const
Calcule le produit de convolution entre la fonction filtre et le champ "champ_source" qui doit etre d...
virtual void calculer_convolution_champ_face(const Domaine_VF &domaine_source, const DoubleTab &champ_source, const DoubleTab &coords_to_compute, DoubleTab &resu) const
Idem que calculer_convolution_champ_elem pour un champ VDF aux faces.
int get_champ(const Nom &nom_pb, const Nom &nom_champ, OBS_PTR(Champ_base) &ref_champ)
Cherche le champ de nom "nom_champ" dans le probleme de nom "nom_pb" dans les objers de l'interprete.
virtual void calculer_convolution(const Domaine_VF &domaine_source, const DoubleTab &champ_source, const DoubleTab &coords_to_compute, DoubleTab &resu) const
methode generale pour calculer une convolution a partir d'un champ aux elements ou aux faces.
void traiter_champs(const Motcles &noms_champs, const Nom &nom_pb, const Nom &nom_dom, const DoubleTab &coords, Format_Post_base &post, double temps, const Motcle &localisation)
fonction outil permettant de faire les calculs et d'ecrire le resultat dans un fichier lata pour tous...
Entree & interpreter(Entree &) override
Lecture des parametres dans le jeu de donnees.
double box_size() const
virtual void eval_filtre(const DoubleTab &coords, ArrOfDouble &result) const
Evalue la fonction filtre en chaque coordonnee coord Methode appelee dans la classe Calcul_integrale_...
class Nom Une chaine de caractere pour nommer les objets de TRUST
Definition Nom.h:31
friend class Entree
Definition Objet_U.h:76
Representation des donnees de la classe Parser.
Definition Parser.h:39