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
class Champ_Fonc_base Base class of fields that are functions of a calculated quantity
class Champ_base This class is the base of the fields hierarchy.
: class Collision_Model_FT
Solveur_Masse_base & solv_masse()
Returns the mass solver associated with the equation.
Probleme_base & probleme()
Returns the problem associated with the 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_.
Matrice_Morse class - Represents a (sparse) matrix M, not necessarily square,.
Milieu_base This class is the base of the (physical) medium hierarchy.
A character string (Nom) in uppercase.
An array of Motcle objects.
Navier_Stokes_std This class carries the terms of the momentum equation.
class Nom: a character string for naming TRUST objects.
An array of character strings (VECT(Nom)).
Base class for TRUST objects (Objet_U).
Objet_U()
Default constructor: assigns a unique identifier to the object (object_id_) and registers the object ...
class Operateur Generic class of the operator hierarchy.
Helper class to factorize the readOn method of Objet_U classes.
Representation of data for the Parser class.
class Probleme_base It is a Probleme_U that is not a coupling.
Classe qui porte les proprietes de particules.
: class Remaillage_FT Cette classe implemente les procedures de remaillage des interfaces pour le Fro...
Solveur_Masse_base Represents the mass matrix of an 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
Restores an Objet_U from an input stream. Virtual method to override.
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
Saves an Objet_U to an output stream. Virtual method to override.
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
Everything that does not depend on other possible problems.
OBS_PTR(Navier_Stokes_FT_Disc) equation_ns_
void fill_ftab_vertices_curvature(DoubleTab *ftab, const DoubleTab &dummytab) const
int sauvegarder(Sortie &) const override
We save the unknown, then the source terms to an output stream.
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
Prints the equation operators to an output stream, unconditionally.
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
The value of the unknown at the time step has been calculated.
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
Calculation of the next time step.
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
Associates with the Problem passed as parameter.
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
Reads non-simple-type parameters of an Objet_U from an input stream.
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
We resume the unknown from an input stream.
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_
Transport_Interfaces_base This class is the base class for interface transport equations.