16#ifndef Transport_Interfaces_FT_Disc_included
17#define Transport_Interfaces_FT_Disc_included
19#include <Equation_base.h>
20#include <Transport_Interfaces_base.h>
21#include <Postraitement_base.h>
23#include <Remaillage_FT.h>
24#include <Parcours_interface.h>
25#include <Marching_Cubes.h>
26#include <Connectivite_frontieres.h>
27#include <Topologie_Maillage_FT.h>
28#include <Algorithmes_Transport_FT_Disc.h>
30#include <Navier_Stokes_FT_Disc.h>
31#include <Proprietes_part_vol.h>
32#include <TRUSTTabs_forward.h>
33#include <TRUSTTabFT_forward.h>
36#include <Collision_Model_FT_base.h>
37#include <Post_Processing_Hydrodynamic_Forces.h>
38#include <Post_Processing_Hydrodynamic_Forces_Stokes.h>
139 DoubleTab& vitesse_noeuds,
147 DoubleTab& vitesse_noeuds,
150 const bool la_roue_de_vitesse_a_deja_tournee =
false)
const;
153 DoubleTab& ch_scal_noeuds,
174 DoubleTab& vpoint,
const DoubleTab& rho_faces,
175 DoubleTab& terme_source,
const double temps,
const double dt,
176 const int is_explicite,
const double eta)
override;
180 const DoubleTab& vpoint,
181 const DoubleTab& rho_faces,
182 DoubleTab& source_val,
183 const DoubleTab& vit_imposee,
184 const DoubleTab& indicatrice_faces,
187 const int is_explicite,
189 void modifie_source(DoubleTab& so_modif,
const DoubleTab& so_val,
const DoubleTab& rho_faces,
190 const int n,
const int m,
const int is_QC,
194 DoubleTab& source_val,
const int is_explicite,
const double eta);
199 virtual void calcul_vitesse(DoubleTab& vitesse_imp,
const DoubleTab& champ_vitesse,
200 const DoubleTab& vpoint,
const double temps,
const double dt);
206 const int phase,
const int stencil_width,
207 DoubleTab& champ, DoubleTab& gradient,
208 const double t,
const double dt ) ;
211 const int phase,
const int stencil_width,
212 DoubleTab& champ, DoubleTab& gradient,
213 const double t,
const double dt ) ;
216 const int dim,
const int ori,
220 const DoubleTab& indicatrice,
222 int& nb_fa7_accepted,
223 IntList& OutElem, IntList& OutFa7 ) ;
225 const DoubleTab& indicatrice_face, DoubleTab& Vertex ) ;
228 DoubleTab& Vertex, DoubleTab& PPP ) ;
229 virtual void PPP_face_voisin(
const DoubleTab& indicatrice,
const DoubleTab& indicatrice_face, DoubleTab& PPP ) ;
232 const int nb_elem,
int& max_fa7,
const int exec_planfa7existan ) ;
233 virtual void RenumFa7( DoubleTab& Barycentre, DoubleTab& Tab110,DoubleTab& Tab111,
234 DoubleTab& Tab112, IntTab& Tab12, IntTab& CptFacette,
235 const int nb_facettes,
const int nb_facettes_dim ) ;
237 DoubleTab& Tab101,DoubleTab& Tab102, DoubleTab& Tab103,
238 DoubleTab& Tab110,DoubleTab& Tab111,DoubleTab& Tab112,
239 IntTab& Tab12, DoubleTab& Barycentre,
const DoubleTab& indicatrice,
240 IntList& OutElem, ArrOfBit& fa7,
const int exec_planfa7existant) ;
242 DoubleTab& Tab102, DoubleTab& Tab103, DoubleTab& Tab110,
243 DoubleTab& Tab111, DoubleTab& Tab112, IntTab& Tab12,
244 DoubleTab& Barycentre, IntList& OutElem, IntTab& TabOutFa7, ArrOfBit& fa7 ) ;
247 DoubleList A, DoubleList B, DoubleList C,
248 DoubleList D,
const int i_facette,
251 double& a,
double& b,
double& c,
double& d);
253 double& a,
double& b,
double& c,
double& d);
256 const int voisin1,
const DoubleTab& indicatrice_face,
257 const DoubleTab& indicatrice,
double& tol ) ;
260 const int voisin1,
const DoubleTab& indicatrice,
double& tol ) ;
262 void verifprojete(
const int monophasique,
const double Lref,
double d,
const DoubleTab& x,
263 const DoubleTab& V, DoubleTab& coord_projete,
int& cpt ) ;
266 virtual void uzawa(
const double d,
const DoubleTab& matrice,
const DoubleTab& x,
267 const DoubleTab& secmem, DoubleTab& solution)
const ;
270 const DoubleTab& indicatrice_face,
const DoubleTab& indicatrice,
271 const DoubleTab& dist_face,
const double t,
const double dt,
272 DoubleTab& Tab100, DoubleTab& Tab101,DoubleTab& Tab102,
273 DoubleTab& Tab103, IntTab& Tab12, IntTab& CptFacette,
274 DoubleTab& v_imp, DoubleTab& Vertex,
277 const DoubleTab& indicatrice_face,
278 const DoubleTab& indicatrice,
279 const DoubleTab& dist_face,
const double t,
280 const double dt, DoubleTab& Tab100,
281 DoubleTab& Tab101,DoubleTab& Tab102,
282 DoubleTab& Tab103, IntTab& Tab12,
283 IntTab& CptFacette, DoubleTab& v_imp, DoubleTab& Vertex,
287 const double coeff,
const double temps);
295 DoubleVect& valeurs);
308 const DoubleVect& valeurs_euler,
309 ArrOfDouble& valeurs_lagrange);
334 const ArrOfInt& compo_connexes_facettes,
335 const int nb_compo_tot,
336 const DoubleTab& vitesse_sommets,
338 DoubleTab& positions)
const;
344 DoubleTab& distance_elements,
345 DoubleTab& normale_elements,
346 const int n_iter)
const;
349 const DoubleTab& normale_elem,
350 DoubleTab& dist_som)
const;
354 DoubleTab& deplacement,
355 DoubleTab& Positions,
356 DoubleTab& Vitesses)
const;
360 const DoubleTab& normale_elem,
361 DoubleTab& dist_faces)
const;
366 const IntTab& face_voisins);
445 bool preparer_calcul_anticipated_done_ =
false;
449 bool interpolation_repere_local_ =
false;
453 void compute_nb_particles_tot();
455 void fill_ftab_scalar(DoubleTab *ftab,
const ArrOfDouble& values)
const;
456 void fill_ftab_scalar(DoubleTab *ftab,
const DoubleVect& values)
const;
457 void fill_ftab_scalar(DoubleTab *ftab,
const DoubleTab& values)
const;
458 void fill_ftab_vector(DoubleTab *ftab,
const DoubleTab& values)
const;
460 int nb_particles_tot_=0;
462 struct map_element_post_FT
465 map_element_post_FT() {};
466 map_element_post_FT(
const Motcle& location, func_type function, DoubleTab* ptr,
const DoubleTab& values):
478 using my_map=std::map<Motcle, map_element_post_FT>;
480 void fill_map_post_FT(my_map& map_post, DoubleTab *ftab)
const;
482 bool explicit_u_NS_ =
false;
: classe Algorithmes_Transport_FT_Disc
classe Champ_Fonc_base Classe de base des champs qui sont fonction d'une grandeur calculee
classe Champ_base Cette classe est la base de la hierarchie des champs.
: class Collision_Model_FT
Solveur_Masse_base & solv_masse()
Renvoie le solveur de masse associe a l'equation.
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
: class Maillage_FT_Disc Cette classe decrit un maillage:
int get_mesh_tag() const
return mesh_state_tag_
virtual void nettoyer_maillage()
Retire toutes les facettes virtuelles, toutes les facettes invalides (sommet0 == sommet1) et tous les...
void parcourir_maillage()
Remplit la structure intersections_elem_facettes_.
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
classe Milieu_base Cette classe est la base de la hierarchie des milieux (physiques)
Une chaine de caractere (Nom) en majuscules.
Un tableau d'objets de la classe Motcle.
classe Navier_Stokes_std Cette classe porte les termes de l'equation de la dynamique
class Nom Une chaine de caractere pour nommer les objets de TRUST
Un tableau de chaine de caracteres (VECT(Nom)).
classe Objet_U Cette classe est la classe de base des Objets de TRUST
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
classe Operateur Classe generique de la hierarchie des operateurs.
Helper class to factorize the readOn method of Objet_U classes.
Representation des donnees de la classe Parser.
classe Probleme_base C'est un Probleme_U qui n'est pas un couplage.
Classe qui porte les proprietes de particules.
: class Remaillage_FT Cette classe implemente les procedures de remaillage des interfaces pour le Fro...
classe Solveur_Masse_base Represente la matrice de masse d'une equation.
: class Topologie_Maillage_FT Cette classe implemente les procedures de remaillage des interfaces pou...
Connectivite_frontieres connectivite_frontieres_
OWN_PTR(Champ_Fonc_base) surface_interface
OWN_PTR(Champ_Fonc_base) distance_interface_faces_corrigee
OWN_PTR(Algorithmes_Transport_FT_Disc) algorithmes_transport_
int n_iterations_interpolation_ibc
Marching_Cubes marching_cubes_
int is_distance_projete_face
OWN_PTR(Champ_Fonc_base) index_element
void set_ident(const Nom &name)
Methode_interpolation_v methode_interpolation_v
OWN_PTR(Champ_Fonc_base) distance_interface_faces_difference
Noms injection_interfaces_expressions_
void integrer_vitesse_imposee(double temps, double dt, double &x, double &y, double &z) const
OBS_PTR(Loi_horaire) loi_horaire_
double injection_interfaces_last_time_
Noms expression_vitesse_imposee
double volume_impose_phase_1
int nb_iterations_correction_volume
Proprietes_part_vol proprietes_particules_
Type_distance_calculee type_distance_calculee
~Transport_Interfaces_FT_Disc_interne() override
int is_extra_diphasique_solide
Transport_Interfaces_FT_Disc_interne()
OWN_PTR(Champ_Fonc_base) tmp_flux
int n_iterations_distance
Nom maillage_interface_xyz_filename(int restart) const
void set_restart_fname(const Nom &name)
int distance_normale_cache_tag
Maillage_FT_Disc maillage_inject_
Interpolation_champ_face interpolation_champ_face
void set_pb_name(const Nom &name)
std::vector< YAML_data > data_a_sauvegarder() const
for PDI IO: retrieve name and type and dimensions of the indicatrice tag
Maillage_FT_Disc maillage_pour_post
Type_vitesse_imposee type_vitesse_imposee
int distance_sommets_cache_tag
ArrOfInt injection_interfaces_phase_
Type_indic_faces type_indic_faces_
Remaillage_FT remaillage_interface_
OWN_PTR(Sortie_Fichier_base) fic_front_sauv_
OWN_PTR(Champ_Fonc_base) distance_interface
Topologie_Maillage_FT topologie_interface_
Type_projete_calcule type_projete_calcule
DoubleTab doubletab_vitesses
int iterations_correction_volume
int indicatrice_cache_tag
OWN_PTR(Champ_Inc_base) indicatrice_cache
int reprendre(Entree &is) override
Reprise d'un Objet_U sur un flot d'entree Methode a surcharger.
int VOFlike_correction_volume
ArrOfDouble injection_interfaces_temps_
OWN_PTR(Champ_Fonc_base) nelem_par_direction
OWN_PTR(Champ_Fonc_base) normale_interface
Methode_transport methode_transport
Proprietes_part_vol proprietes_inject_
double modified_indic_faces_position
OWN_PTR(Champ_Fonc_base) distance_interface_faces
OWN_PTR(Champ_Inc_base) vitesse_filtree
Maillage_FT_Disc maillage_interface
Nom nom_domaine_volume_impose_
int nb_lissage_correction_volume
DoubleTab distance_interface_sommets
int sauvegarder(Sortie &os) const override
Sauvegarde d'un Objet_U sur un flot de sortie Methode a surcharger.
DoubleTabFT deplacement_sommets
double modified_indic_faces_thickness
Parcours_interface parcours_interface_
OBS_PTR(Navier_Stokes_std) refequation_vitesse_transport
int distance_faces_cache_tag
void set_checkpoint_fname(const Nom &name)
void set_param(Param &titi) const override
DoubleTab & derivee_en_temps_inco(DoubleTab &derivee) override
Calcul de la derivee en temps de l'inconnue : zero.
const Operateur & operateur(int i) const override
void fill_ftab_pressure_force(DoubleTab *ftab, const DoubleTab &dummytab) const
const bool & get_is_solid_particle() const
void fill_ftab_friction_force(DoubleTab *ftab, const DoubleTab &dummytab) const
int get_mesh_tag() const override
virtual void get_expression_vitesse_imposee(DoubleTab &vitesse_imp)
Collision_Model_FT_base & get_set_collision_model()
Milieu_base & milieu() override
bool compute_particles_rms_
const DoubleTab & get_mean_particles_volumic_squared_velocity() const
virtual void PPP_face_interface_voisin(const DoubleTab &indicatrice, const DoubleTab &indicatrice_face, DoubleTab &Vertex, DoubleTab &PPP)
int nombre_d_operateurs() const override
void update_indicatrice_normale_distance()
Updates normals and distances to interface, then updates indicatrice.
virtual const Champ_base & get_indicatrice_faces()
void fill_ftab_normal_unit(DoubleTab *ftab, const DoubleTab &dummytab) const
void interpoler_simple_vitesse_face(const DoubleTab &distance_interface, const int phase, const int stencil_width, DoubleTab &champ, DoubleTab &gradient, const double t, const double dt)
virtual double suppression_interfaces(const IntVect &num_compo, const ArrOfInt &flags_compo_a_supprimer)
OWN_PTR(Champ_Fonc_base) vitesse_imp_interp_
virtual void preparer_pas_de_temps()
virtual int get_champ_post_FT(const Motcle &champ, Postraitement_base::Localisation loc, DoubleTab *dtab=0) const
Cherche le champ discret aux interfaces dont le nom est "champ", et verifie qu'il peut etre postraite...
void associer_equation_ns(const Navier_Stokes_FT_Disc &ns)
const DoubleTab & get_mean_particles_volumic_velocity() const
int preparer_calcul() override
Tout ce qui ne depend pas des autres problemes eventuels.
OBS_PTR(Navier_Stokes_FT_Disc) equation_ns_
void fill_ftab_vertices_curvature(DoubleTab *ftab, const DoubleTab &dummytab) const
int sauvegarder(Sortie &) const override
On sauvegarde l'inconnue, puis les sources sur un flot de sortie.
virtual void remailler_interface()
Remaillage de l'interface : - amelioration petites et grandes facettes,.
const Collision_Model_FT_base & get_collision_model() const
void parcourir_maillage()
virtual const DoubleTab & get_update_distance_interface_sommets() const
Renvoi de la distance signee entre l'interface et les sommets du maillage eulerien.
const Topologie_Maillage_FT & topologie_interface() const
int impr(Sortie &os) const override
Imprime les operateurs de l'equation sur un flot de sortie, de facon inconditionnelle.
void calcul_source(const DoubleTab &inco_val, const DoubleTab &vpoint, const DoubleTab &rho_faces, DoubleTab &source_val, const DoubleTab &vit_imposee, const DoubleTab &indicatrice_faces, const int is_QC, const double dt, const int is_explicite, const double eta)
void associer_milieu_base(const Milieu_base &milieu) override
DoubleTab particles_purely_solid_mesh_volume_
void update_indicatrice() override
Recalcul du champ variables_internes_->indicatrice_cache a partir de la position des interfaces.
bool injecter_interfaces_par_ajout_phase(double temps)
void impr_effort_fluide_interface(DoubleTab &source_val, DoubleTab &pressure_part, DoubleTab &friction_part, DoubleTab &diff_part)
void calculer_scalaire_interpole(const Champ_base &ch_scal, const Maillage_FT_Disc &, DoubleTab &ch_scal_noeuds, int nv_calc) const
DoubleTab & deplacement_som()
const DoubleTab & get_particles_purely_solid_mesh_volume() const
virtual void transporter_sans_changement_topologie(DoubleTab &vitesse, const double coeff, const double temps)
void calcul_indicatrice_faces(const DoubleTab &indicatrice, const IntTab &face_voisins)
void fill_ftab_Stokes(DoubleTab *ftab, const DoubleTab &values) const
const Proprietes_part_vol & proprietes_particules() const
virtual const Connectivite_frontieres & connectivite_frontieres() const
void init_save_file() override
void mettre_a_jour(double temps) override
La valeur de l'inconnue sur le pas de temps a ete calculee.
void nettoyer_proprietes_particules(const ArrOfInt &som_utilises)
virtual void calcul_nb_traverse(const DoubleTab &xe, const double dx, const int dim, const int ori, Maillage_FT_Disc &maillage, int elem, int &traverse)
int verif_Cl() const override
Methode appelee par Equation_base::readOn On verifie que toutes les cl sont de type Paroi_FT_disc.
void init_particles_position_velocity()
const DoubleTab & get_rms_particles_volumic_velocity() const
virtual void calculer_distance_interface(const Maillage_FT_Disc &maillage, DoubleTab &distance_elements, DoubleTab &normale_elements, const int n_iter) const
Calcul d'un champ scalaire aux elements contenant une distance signee entre le centre de l'element et...
virtual void calcul_tolerance_projete_monophasique(const int i_face, const int ori, const int voisin0, const int voisin1, const DoubleTab &indicatrice_face, const DoubleTab &indicatrice, double &tol)
DoubleTab particles_position_collision_
Remaillage_FT & remaillage_interface()
void modifie_source(DoubleTab &so_modif, const DoubleTab &so_val, const DoubleTab &rho_faces, const int n, const int m, const int is_QC, const DoubleVect &vol_entrelaces, const Solveur_Masse_base &solv_masse)
void compute_particles_rms()
virtual const Parcours_interface & parcours_interface() const
Post_Processing_Hydrodynamic_Forces_Stokes post_process_hydro_forces_Stokes_
int preparer_calcul_anticipated()
void add_fields_to_post_FT(Motcles &fields) const
virtual const Maillage_FT_Disc & maillage_interface_pour_post() const
Renvoie le maillage stocke specialement pour le postraitement (si on veut postraiter un etat intermed...
const Champ_Inc_base & inconnue() const override
const Champ_base & get_indicatrice() override
getter champ variables_internes_->indicatrice_cache a partir de la position des interfaces.
virtual void calculer_distance_interface_faces(const DoubleTab &dist_elem, const DoubleTab &normale_elem, DoubleTab &dist_faces) const
void check_indicatrice_is_up_to_date() override
Checks if the indicator is up to date.
std::vector< YAML_data > data_a_sauvegarder() const override
for PDI IO: retrieve name and type and dimensions of the indicatrice tag
Transport_Interfaces_FT_Disc()
constructeur par defaut
bool injecter_interfaces_pour_TCL(double temps)
void update_critere_statio()
void discretiser() override
Discretisation des champs: - indicatrice_ : champ scalaire discretise aux elements.
void swap_particles_lagrangian_position_velocity()
WARNING, particles_position_collision_ and particles_velocity_collision_ are not used to transport pa...
const Maillage_FT_Disc & maillage_inject() const
OWN_PTR(Champ_Inc_base) indicatrice_
virtual void calculer_vitesse_transport_interpolee(const Champ_base &champ_vitesse, const Maillage_FT_Disc &m, DoubleTab &vitesse_noeuds, int nv_calc) const
void fill_ftab_pressure(DoubleTab *ftab, const DoubleTab &dummytab) const
const Probleme_base & get_probleme_base() const
OWN_PTR(Collision_Model_FT_base) collision_model_
double calculer_pas_de_temps() const override
Calcul du prochain pas de temps.
void integrer_ensemble_lagrange(const double temps) override
virtual const Champ_base & update_indicatrice_faces()
void associate_temp_equation_post_processing(OBS_PTR(Convection_Diffusion_Temperature_FT_Disc) ref_eq_temp)
const Proprietes_part_vol & proprietes_inject() const
ArrOfInt gravity_center_elem_
virtual void PPP_face_interface(Maillage_FT_Disc &maillage, const DoubleTab &indicatrice, const DoubleTab &indicatrice_face, DoubleTab &Vertex)
DoubleTab mean_particles_volumic_velocity_
virtual const Champ_base & get_normale_interface() const
virtual void RenumFa7(DoubleTab &Barycentre, DoubleTab &Tab110, DoubleTab &Tab111, DoubleTab &Tab112, IntTab &Tab12, IntTab &CptFacette, const int nb_facettes, const int nb_facettes_dim)
void fill_ftab_Stokes_pressure_th(DoubleTab *ftab, const DoubleTab &values) const
Post_Processing_Hydrodynamic_Forces post_process_hydro_forces_
virtual void PPP_face_voisin(const DoubleTab &indicatrice, const DoubleTab &indicatrice_face, DoubleTab &PPP)
virtual double calculer_integrale_indicatrice(const DoubleVect &indicatrice, double &v_ph0) const
const OWN_PTR(Collision_Model_FT_base) &get_ptr_collision_model() const
void associer_pb_base(const Probleme_base &probleme) override
S'associe au Probleme passe en parametre.
virtual const Algorithmes_Transport_FT_Disc & algorithmes_transport() const
virtual void plan_facette_existant(Maillage_FT_Disc &maillage, DoubleList A, DoubleList B, DoubleList C, DoubleList D, const int i_facette, int &test_liste)
virtual const Champ_base & get_update_distance_interface_faces() const
virtual void lire_maillage_ft_cao(Entree &is)
const Maillage_FT_Disc & maillage_interface() const
virtual void uzawa(const double d, const DoubleTab &matrice, const DoubleTab &x, const DoubleTab &secmem, DoubleTab &solution) const
virtual const Marching_Cubes & marching_cubes() const
virtual void calcul_eq_plan_facette(Maillage_FT_Disc &maillage, const int i_facette, double &a, double &b, double &c, double &d)
friend class Post_Processing_Hydrodynamic_Forces
void completer_maillage_et_changer_temps(double temps)
DoubleTab particles_velocity_collision_
bool mettre_a_jour_deplacement(double temps)
virtual void interpoler_vitesse_face(const DoubleTab &distance_interface, const int phase, const int stencil_width, DoubleTab &champ, DoubleTab &gradient, const double t, const double dt)
void fill_ftab_velocity(DoubleTab *ftab, const DoubleTab &dummytab) const
void ramasse_miettes(const Maillage_FT_Disc &maillage, DoubleVect &flux, DoubleVect &valeurs)
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 deplacer_maillage_ft_v_fluide(const double temps)
virtual void calcul_tolerance_projete_diphasique(const int i_face, const int ori, const int voisin0, const int voisin1, const DoubleTab &indicatrice, double &tol)
virtual void calcul_OutElemFa7(Maillage_FT_Disc &maillage, const DoubleTab &indicatrice, const int nb_elem, int &nb_fa7_accepted, IntList &OutElem, IntList &OutFa7)
const int & get_nb_particles_tot() const
void verifprojete(const int monophasique, const double Lref, double d, const DoubleTab &x, const DoubleTab &V, DoubleTab &coord_projete, int &cpt)
virtual void calcul_maxfa7(Maillage_FT_Disc &maillage, const DoubleTab &indicatrice, const int nb_elem, int &max_fa7, const int exec_planfa7existan)
void fill_ftab_local_reference_frame_velocity(DoubleTab *ftab, const DoubleTab &dummytab) const
static void transfert_conservatif_eulerien_vers_lagrangien_sommets(const Maillage_FT_Disc &maillage, const DoubleVect &valeurs_euler, ArrOfDouble &valeurs_lagrange)
void deplacer_maillage(double temps)
void close_save_file() override
virtual void StockageFa7(Maillage_FT_Disc &maillage, IntTab &CptFacette, DoubleTab &Tab100, DoubleTab &Tab101, DoubleTab &Tab102, DoubleTab &Tab103, DoubleTab &Tab110, DoubleTab &Tab111, DoubleTab &Tab112, IntTab &Tab12, DoubleTab &Barycentre, const DoubleTab &indicatrice, IntList &OutElem, ArrOfBit &fa7, const int exec_planfa7existant)
const ArrOfInt & get_gravity_center_elem() const
void mettre_a_jour_hors_deplacement(double temps, const bool update_statio=true, const bool update_indic=true)
IntVect & vecteur_elements()
const DoubleTab & get_particles_velocity() const
Entree & lire_cond_init(Entree &is) override
Lecture des conditions initiales.
int reprendre(Entree &) override
On reprend l'inconnue a partir d'un flot d'entree.
void fill_ftab_Stokes_pressure_interp(DoubleTab *ftab, const DoubleTab &values) const
virtual void projete_point_face_interface(int &nb_proj_modif, const int dim_fa7, const DoubleTab &indicatrice_face, const DoubleTab &indicatrice, const DoubleTab &dist_face, const double t, const double dt, DoubleTab &Tab100, DoubleTab &Tab101, DoubleTab &Tab102, DoubleTab &Tab103, IntTab &Tab12, IntTab &CptFacette, DoubleTab &v_imp, DoubleTab &Vertex, Parser &parser_x, Parser &parser_y, Parser &parser_z)
virtual void BaryFa7(Maillage_FT_Disc &maillage, const int i_facette, DoubleTab &Barycentre)
OBS_PTR(Probleme_base) probleme_base_
virtual void calculer_vmoy_composantes_connexes(const Maillage_FT_Disc &maillage, const ArrOfInt &compo_connexes_facettes, const int nb_compo_tot, const DoubleTab &vitesse_sommets, DoubleTab &vitesses, DoubleTab &positions) const
virtual void calcul_vitesse(DoubleTab &vitesse_imp, const DoubleTab &champ_vitesse, const DoubleTab &vpoint, const double temps, const double dt)
virtual void calculer_vitesse_repere_local(const Maillage_FT_Disc &maillage, DoubleTab &deplacement, DoubleTab &Positions, DoubleTab &Vitesses) const
virtual void calculer_distance_interface_sommets(const DoubleTab &dist_elem, const DoubleTab &normale_elem, DoubleTab &dist_som) const
Calcule dist_som, la distance entre l'interface et les sommets du maillage eulerien a partir de dist_...
void update_normale_distance_interface() const
Calcule la normale et la distance a l'interface, evaluees sur une epaisseur egale a n_iterations_dist...
virtual void projete_point_face_fluide(int &nb_proj_modif, const int dim_fa7, const DoubleTab &indicatrice_face, const DoubleTab &indicatrice, const DoubleTab &dist_face, const double t, const double dt, DoubleTab &Tab100, DoubleTab &Tab101, DoubleTab &Tab102, DoubleTab &Tab103, IntTab &Tab12, IntTab &CptFacette, DoubleTab &v_imp, DoubleTab &Vertex, Parser &parser_x, Parser &parser_y, Parser &parser_z)
void calcul_effort_fluide_interface(const DoubleTab &vpoint, const DoubleTab &rho_faces, DoubleTab &source_val, const int is_explicite, const double eta)
Nom suppression_interfaces_sous_domaine_
virtual int calculer_composantes_connexes_pour_suppression(IntVect &num_compo)
void set_is_solid_particle(const bool is_solid_particle)
void ajouter_contribution_saut_vitesse(DoubleTab &deplacement, const bool la_roue_de_vitesse_a_deja_tournee) const
virtual const Champ_base & get_distance_interface() const
Post_Processing_Hydrodynamic_Forces & get_post_process_hydro_forces()
void modifier_vpoint_pour_imposer_vit(const DoubleTab &inco_val, DoubleTab &vpoint0, DoubleTab &vpoint, const DoubleTab &rho_faces, DoubleTab &terme_source, const double temps, const double dt, const int is_explicite, const double eta) override
DoubleTab & tableaux_positions()
virtual const int & get_n_iterations_distance() const
const DoubleTab & get_particles_position() const
DoubleTab mean_particles_volumic_squared_velocity_
void assembler(Matrice_Morse &mat_morse, const DoubleTab &present, DoubleTab &secmem) override
const int & get_vimp_regul() const
bool test_suppression_interfaces_sous_domaine()
bool injecter_supprimer_interfaces(double temps)
DoubleTab rms_particles_volumic_velocity_
OWN_PTR(Champ_Inc_base) indicatrice_faces_
classe Transport_Interfaces_base Cette classe constitue la classe de base des equations de transport ...