TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
IJK_One_Dimensional_Subproblems_Interfaces_Fields.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 IJK_One_Dimensional_Subproblems_Interfaces_Fields_included
17#define IJK_One_Dimensional_Subproblems_Interfaces_Fields_included
18
19#include <Objet_U.h>
20#include <IJK_Lata_writer.h>
21#include <Motcle.h>
22#include <Intersections_Elem_Facettes_Data.h>
23
24#define MIN_SURFACE 1.e-30
25#define INVALID_TEST -1.e30
26#define select_dir(a,x,y,z) ((a==0)?(x):((a==1)?(y):(z)))
27
28// #include <IJK_FT.h>
29/////////////////////////////////////////////////////////////////////////////
30//
31// .DESCRIPTION : class IJK_One_Dimensional_Subproblems_Interfaces_Fields
32//
33// <Description of class IJK_One_Dimensional_Subproblems_Interfaces_Fields>
34//
35/////////////////////////////////////////////////////////////////////////////
36
39// class Intersections_Elem_Facettes;
40// class IJK_Interfaces;
41
43{
44
46
47public :
48 void initialise(const Domaine_IJK& splitting,
49 IJK_One_Dimensional_Subproblems& thermal_local_subproblems,
50 const int& debug);
51 void associer(const Probleme_FTD_IJK_base& ijk_ft);
52 void set_subproblems_interfaces_fields(const int& interface_field_type);
54 void reset_flags();
55 void posttraiter_tous_champs(Motcles& liste) const;
56 int posttraiter_champs_instantanes(const Motcles& liste_post_instantanes,
57 const char *lata_name,
58 const int lata_step);
59protected :
61 Motcles liste_post_instantanes_; // liste des champs instantanes a postraiter
62
66 int debug_ = 0;
67
68 DoubleTab ft_vertices_;
69 ArrOfInt elem_crossed_;
70 ArrOfDouble eulerian_values_;
71
72 ArrOfDouble vertices_surface_;
76 ArrOfDouble temperature_;
77 ArrOfDouble temperature_sol_;
80
81 IJK_Field_double tmp_field_val_;
82 IJK_Field_double tmp_ft_field_val_;
83 IJK_Field_double tmp_field_double_;
84 IJK_Field_double tmp_ft_field_double_;
85 IJK_Field_int tmp_ft_field_int_;
86
87 /*
88 * TODO : PB interface at time (n+1) only
89 * Need a copy
90 * There's a problem with Intersections_Elem_Facettes_Data which is a pointer
91 * Need a usr-defined destructor for the current class...
92 *
93 * + WTF all the vertices are saved into the .lata file
94 * Problem: there is no sharing between procs here
95 */
96 // Intersections_Elem_Facettes intersections_; // = maillage.intersections_elem_facettes();
97 ArrOfDouble surface_facettes_; // = maillage.get_update_surface_facettes();
98 IntTab facettes_; // = maillage.facettes();
99
107
108 bool retrieve_interfacial_surface_quantities(const Nom& surface_post_name);
109 bool retrieve_interfacial_surface_quantity(ArrOfDouble& surface_quantity, bool& has_been_updated, const int& val_index);
110 void averaged_by_vertex_surface(ArrOfDouble& surface_quantity);
111 void get_surrounding_value(const int& i, const int& j, const int& k, double& eulerian_value);
112};
113
114#endif /* IJK_One_Dimensional_Subproblems_Interfaces_Fields_included */
This class encapsulates all the information related to the eulerian mesh for TrioIJK.
Definition Domaine_IJK.h:47
OBS_PTR(Probleme_FTD_IJK_base) ref_ijk_ft_
bool retrieve_interfacial_surface_quantity(ArrOfDouble &surface_quantity, bool &has_been_updated, const int &val_index)
void initialise(const Domaine_IJK &splitting, IJK_One_Dimensional_Subproblems &thermal_local_subproblems, const int &debug)
void get_surrounding_value(const int &i, const int &j, const int &k, double &eulerian_value)
int posttraiter_champs_instantanes(const Motcles &liste_post_instantanes, const char *lata_name, const int lata_step)
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
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
Definition Objet_U.cpp:55