TRUST 1.9.8
HPC thermohydraulic platform
Loading...
Searching...
No Matches
Interpolation_IBM_base.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 Interpolation_IBM_base_included
17#define Interpolation_IBM_base_included
18
19#include <Discretisation_base.h>
20#include <Domaine_dis_base.h>
21#include <Probleme_base.h>
22#include <Prepro_IBM_base.h>
23#include <TRUSTList.h>
24#include <Param.h>
25
27{
28
29 Declare_base( Interpolation_IBM_base ) ;
30
31public:
32 virtual void discretise(const Discretisation_base&, Domaine_dis_base&);
35
36 inline bool get_impr() { return impr_; }
37 inline int get_N_histo() { return N_histo_; }
38 inline const Champ_Don_base& get_solid_points() { return solid_points_; }
39 void set_param(Param&) const override;
42 void calcul_cluster_pseudo_level_set(IntLists&, int, IntTab&, DoubleTab&, IntList&, int);
43 void define_pseudo_level_set_for_one_cut_cell(IntLists&, int, IntTab&, DoubleTab&, IntList&, int);
44 inline void set_source(Source_PDF_base& the_source) {my_source_ = the_source ;}
45 inline const DoubleTab& get_normal_proj_solid() const { return champ_normal_proj_solid_->valeurs();}
46 inline const DoubleTab& get_champ_solid_points() {return solid_points_->valeurs();}
47 inline const DoubleTab& get_champ_corresp_elems() {return corresp_elems_->valeurs();}
48 inline const DoubleTab& get_champ_dis_proj_solid() {return champ_dis_proj_solid_->valeurs();}
49 inline const DoubleTab& get_champ_champ_normal_proj_solid() {return champ_normal_proj_solid_->valeurs();}
50 inline const DoubleTab& get_pseudo_level_set() {return pseudo_level_set_->valeurs();}
51 inline void set_pseudo_level_set(DoubleTab& it) { pseudo_level_set_->valeurs() = it;}
53
54protected:
55
57 OWN_PTR(Champ_Don_base) is_dirichlet_lu_;
58 OWN_PTR(Champ_Don_base) is_dirichlet_;
59 OWN_PTR(Champ_Don_base) solid_points_lu_;
60 OWN_PTR(Champ_Don_base) solid_points_;
61 OWN_PTR(Champ_Don_base) corresp_elems_lu_;
62 OWN_PTR(Champ_Don_base) corresp_elems_;
63 bool has_corresp_ = false;
64 bool impr_= false; // Default value
65 int N_histo_=10; // Default value for number of histogram boxes for printed data
66
67 OWN_PTR(Champ_Don_base) champ_dis_proj_solid_;
68 OWN_PTR(Champ_Don_base) champ_normal_proj_solid_;
69 OWN_PTR(Champ_Don_base) pseudo_level_set_;
73
74 friend class Source_PDF_base;
75 friend class Source_PDF_EF;
76 friend class Source_PDF_VDF;
77 friend class Source_PDF_VEF;
78};
79
80#endif /* Interpolation_IBM_base_included */
classe Champ_Don_base classe de base des Champs donnes (non calcules)
classe Discretisation_base Cette classe represente un schema de discretisation en espace,...
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
const DoubleTab & get_pseudo_level_set()
const DoubleTab & get_champ_corresp_elems()
OWN_PTR(Champ_Don_base) pseudo_level_set_
OWN_PTR(Champ_Don_base) is_dirichlet_lu_
void set_param(Param &) const override
virtual void set_fields_from_prepro_to_interp(Prepro_IBM_base &)
virtual void discretise(const Discretisation_base &, Domaine_dis_base &)
const DoubleTab & get_champ_champ_normal_proj_solid()
void define_pseudo_level_set_for_one_cut_cell(IntLists &, int, IntTab &, DoubleTab &, IntList &, int)
OWN_PTR(Champ_Don_base) corresp_elems_
void set_pseudo_level_set(DoubleTab &it)
OWN_PTR(Champ_Don_base) solid_points_
OBS_PTR(Source_PDF_base) my_source_
OWN_PTR(Champ_Don_base) corresp_elems_lu_
OWN_PTR(Champ_Don_base) champ_dis_proj_solid_
void set_source(Source_PDF_base &the_source)
OWN_PTR(Champ_Don_base) champ_normal_proj_solid_
OWN_PTR(Champ_Don_base) solid_points_lu_
virtual void discretise_PDF_mobile(const Discretisation_base &, Domaine_dis_base &)
const DoubleTab & get_normal_proj_solid() const
void calcul_cluster_pseudo_level_set(IntLists &, int, IntTab &, DoubleTab &, IntList &, int)
OWN_PTR(Champ_Don_base) is_dirichlet_
const DoubleTab & get_champ_dis_proj_solid()
const Champ_Don_base & get_solid_points()
const DoubleTab & get_champ_solid_points()
virtual void discretise_pseudo_level_set(const Discretisation_base &, Domaine_dis_base &)
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
Definition Objet_U.cpp:55
Helper class to factorize the readOn method of Objet_U classes.
Definition Param.h:112