TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Navier_Stokes_FT_Disc Class Reference

#include <Navier_Stokes_FT_Disc.h>

Inheritance diagram for Navier_Stokes_FT_Disc:
[legend]
Collaboration diagram for Navier_Stokes_FT_Disc:
[legend]

Public Member Functions

void set_param (Param &titi) const override
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.
const Milieu_basemilieu () const override
Milieu_basemilieu () override
void associer_pb_base (const Probleme_base &probleme) override
 S'associe au Probleme passe en parametre.
void discretiser () override
 Discretisation des champs utilises dans cette equation.
std::vector< YAML_datadata_a_sauvegarder () const override
 for PDI IO: retrieve name, type and dimensions of the fields to save/restore
int sauvegarder (Sortie &) const override
 On sauvegarde l'inconnue, puis les sources sur un flot de sortie.
int reprendre (Entree &) override
 On reprend l'inconnue a partir d'un flot d'entree.
int preparer_calcul () override
 methode appelee par Probleme_base::preparer_calcul()
void mettre_a_jour (double temps) override
 La valeur de l'inconnue sur le pas de temps a ete calculee.
void mettre_a_jour_physical_properties (double temps)
void calculer_la_pression_en_pa () override
 In Front Tracking, pression is in Pa and so pression_pa field <=> pression field.
DoubleTab & derivee_en_temps_inco (DoubleTab &vpoint) override
 Calcul de la derivee en temps de la vitesse.
void projeter () override
 methode appelee par Navier_Stokes_std::preparer_calcul.
virtual const Champ_basecalculer_div_normale_interface ()
void correct_at_exit_bad_gradient (DoubleTab &u0) const
void calculer_delta_u_interface (Champ_base &u0, int phase_pilote, int ordre, const bool future_or_past=false)
 Calcul du saut de vitesse a l'interface du au changement de phase.
void shift_secmem2 (DoubleTab &shift_secmem2)
const Champ_Don_basediffusivite_pour_transport () const override
virtual const Champ_baseget_delta_vitesse_interface () const
 Si le champ de vitesse est discontinu (calcul avec changement de phase), renvoie un pointeur vers le champ delta_v de "discontinuite", tel que.
virtual const Fluide_Diphasiquefluide_diphasique () const
void compute_boussinesq_additional_gravity (const Convection_Diffusion_Temperature_FT_Disc &eq, const Fluide_Diphasique &fluide_diphasique, const IntTab &face_voisins, const DoubleVect &volumes_entrelaces, const IntVect &orientation, const DoubleTab &indicatrice, const ArrOfDouble &g, DoubleTab &gravite_face) const
int is_terme_gravite_rhog () const
const Champ_Fonc_basechamp_rho_faces () const
virtual void calculer_dI_dt (DoubleVect &dI_dt, const DoubleTab &tab_vitesse)
const int & get_is_penalized () const
bool get_new_mass_source () const
bool is_shift_secmem2_activated () const
const DoubleTab & get_interfacial_area () const
DoubleTab & get_set_interfacial_area ()
const DoubleTab & get_mpoint () const
DoubleTab & get_set_mpoint ()
const SolveurSysget_solveur_pression () const
bool get_is_solid_particle () const
const IntTab & get_particles_eulerian_id_number () const
void compute_particles_eulerian_id_number (const OWN_PTR(Collision_Model_FT_base)&collision_model_ptr)
void swap_particles_eulerian_id_number (const ArrOfInt &gravity_center_elem)
DoubleTab & get_set_velocity_field_Stokes_th ()
DoubleTab & get_set_pressure_field_Stokes_th ()
Public Member Functions inherited from Navier_Stokes_Turbulent
void set_param (Param &titi) const override
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.
const Champ_Fonc_baseviscosite_turbulente () const
const Modele_turbulence_hyd_basemodele_turbulence () const
std::vector< YAML_datadata_a_sauvegarder () const override
 for PDI IO: retrieve name, type and dimensions of the fields to save/restore
int sauvegarder (Sortie &) const override
 Sauvegarde l'equation (et son modele de turbulence) sur un flot de sortie.
int reprendre (Entree &) override
 Reprise de l'equation et de son modele de turbulence a partir d'un flot d'entree.
int preparer_calcul () override
 Prepare le calcul.
bool initTimeStep (double dt) override
 Allocation et initialisation de l'inconnue et des CLs jusqu'a present+dt.
void mettre_a_jour (double) override
 Effecttue une mise a jour en temps de l'equation.
void completer () override
 Appels successifs a: Navier_Stokes_std::completer().
const Champ_Don_basediffusivite_pour_transport () const override
const Champ_basediffusivite_pour_pas_de_temps () const override
void creer_champ (const Motcle &motlu) override
const Champ_baseget_champ (const Motcle &nom) const override
bool has_champ (const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
bool has_champ (const Motcle &nom) const override
void get_noms_champs_postraitables (Noms &nom, Option opt=NONE) const override
void imprimer (Sortie &) const override
 Imprime les operateurs de l'equation si le schema en temps indique que c'est necessaire.
const RefObjU & get_modele (Type_modele type) const override
void imprime_residu (SFichier &) override
Nom expression_residu () override
Public Member Functions inherited from Navier_Stokes_std
 Navier_Stokes_std ()
void associer_pb_base (const Probleme_base &) override
 S'associe au probleme: apelle Equation_base::associer_pb_base(const Probleme_base&).
void associer_fluide (const Fluide_base &un_fluide)
const Milieu_basemilieu () const override
 Renvoie le milieu physique de l'equation (le Fluide_base upcaste en Milieu_base).
Milieu_basemilieu () override
 Renvoie le milieu physique de l'equation (le Fluide_base upcaste en Milieu_base).
const Fluide_basefluide () const
 Renvoie le fluide incompressible (milieu physique de l'equation) associe a l'equation.
Fluide_basefluide ()
 Renvoie le fluide incompressible (milieu physique de l'equation) associe a l'equation.
void associer_milieu_base (const Milieu_base &) override
 Associe un mileu physique a l'equation en construisant dynamiquement (cast) un objet de type Fluide_base.
int nombre_d_operateurs () const override
 Renvoie le nombre d'operateurs de l'equation: Pour Navier Stokes Standard c'est 2.
int nombre_d_operateurs_tot () const override
const Operateuroperateur (int) const override
 Renvoie le i-eme operateur de l'equation: - le terme_diffusif si i = 0.
Operateuroperateur (int) override
 Renvoie le i-eme operateur de l'equation: - le terme_diffusif si i = 0.
const Operateuroperateur_fonctionnel (int) const override
Operateuroperateur_fonctionnel (int) override
Operateur_Divoperateur_divergence ()
 Renvoie l'operateur de calcul de la divergence associe a l'equation.
const Operateur_Divoperateur_divergence () const
 Renvoie l'operateur de calcul de la divergence associe a l'equation.
Operateur_Gradoperateur_gradient ()
 Renvoie l'operateur de calcul du gradient associe a l'equation.
const Operateur_Gradoperateur_gradient () const
 Renvoie l'operateur de calcul du gradient associe a l'equation.
Operateur_Diffoperateur_diff ()
const Operateur_Diffoperateur_diff () const
const Champ_Inc_baseinconnue () const override
 Renvoie la vitesse (champ inconnue de l'equation) (version const).
Champ_Inc_baseinconnue () override
 Renvoie la vitesse (champ inconnue de l'equation).
SolveurSyssolveur_pression ()
 Renvoie le solveur en pression (version const).
void discretiser () override
 Dicretise l'equation.
virtual void discretiser_vitesse ()
virtual void discretiser_grad_p ()
Entreelire_cond_init (Entree &) override
 Lecture des conditions initiales dans un flot d'entree.
void abortTimeStep () override
 Reinitialiser ce qui doit l'etre.
void resetTime (double time) override
 Reset current time of the equation. Used from ICoCo. See documentation of Problem_base::resetTime().
int impr (Sortie &os) const override
 Effectue quelques impressions sur un flot de sortie: - maximum de div U.
void dimensionner_matrice_sans_mem (Matrice_Morse &matrice) override
int has_interface_blocs () const override
void dimensionner_blocs (matrices_t matrices, const tabs_t &semi_impl={}) const override
void assembler_blocs (matrices_t matrices, DoubleTab &secmem, const tabs_t &semi_impl={}) const override
DoubleTab & derivee_en_temps_inco (DoubleTab &) override
 Returns the time derivative of the unknown I of the equation: dI/dt = M-1*(sum(operators(I) + sources)).
DoubleTab & corriger_derivee_expl (DoubleTab &) override
 Add a specific term for Navier Stokes (-gradP(n)) if necessary.
DoubleTab & corriger_derivee_impl (DoubleTab &) override
 Resolution de la pression, inconnue implicitee de Navier Stokes.
Matricematrice_pression ()
 OWN_PTR (Assembleur_base) &assembleur_pression()
bool has_grad_P () const
Champ_Inc_basegrad_P ()
const Champ_Inc_basegrad_P () const
Champ_Inc_basepression ()
const Champ_Inc_basepression () const
Champ_Inc_basepression_pa ()
const Champ_Inc_basepression_pa () const
Champ_Inc_basediv ()
const Champ_Inc_basediv () const
virtual const Champ_basevitesse_pour_transport () const
bool has_champ (const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
const Motcledomaine_application () const override
 Renvoie le nom du domaine d'application: "Hydraulique".
virtual const Champ_Inc_basevitesse () const
virtual Champ_Inc_basevitesse ()
virtual int projection_a_faire ()
virtual void sauver () const
virtual void calculer_pression_hydrostatique (Champ_base &pression_hydro) const
int verif_Cl () const override
 Verifie la compatibilite des conditions limites avec l'equation.
virtual const Champ_Inc_baserho_la_vitesse () const
Operateur_Convget_terme_convectif ()
virtual void updateFluidForce (DoubleTab &)
virtual bool getCouplingInfoForFiltering () const
DoubleTab getPressureTimeN ()
void setPressureTimeN ()
void update_y_plus (const DoubleTab &tab)
void reassembler_pression_si_necessaire ()
Public Member Functions inherited from Equation_base
void nommer (const Nom &nom) override
 Methode appelee lorsqu'on cree l'instance de l'objet dans le jeu de donnees (Interprete::ajouter).
virtual void avancer (int i=1)
virtual void reculer (int i=1)
Nom create_polymacfamily_syno (const Nom &field_tag) const
 Create a synonym of a field name in order to ensure backward compatibility with old names of the PolyMAC discretisation family.
virtual void init_save_file ()
virtual void close_save_file ()
int limpr () const
 Demande au schema en temps si il faut effectuer une impression.
virtual void associer_milieu_equation ()
virtual DoubleTab & derivee_en_temps_inco_transport (DoubleTab &derivee)
virtual void valider_iteration ()
 methode virtuelle permettant de corriger l'onconnue lors d'iterations implicites par exemple K-eps doivent rester positifs
virtual bool updateGivenFields ()
virtual double calculer_pas_de_temps () const
 Calcul du prochain pas de temps.
void calculer_pas_de_temps_locaux (DoubleTab &) const
Sourcessources ()
 Renvoie les termes sources asssocies a l'equation.
const Sourcessources () const
 Renvoie les termes sources asssocies a l'equation (version const).
Solveur_Masse_basesolv_masse ()
 Renvoie le solveur de masse associe a l'equation.
const Solveur_Masse_basesolv_masse () const
 Renvoie le solveur de masse associe a l'equation.
Probleme_baseprobleme ()
 Renvoie le probleme associe a l'equation.
const Probleme_baseprobleme () const
 Renvoie le probleme associe a l'equation.
Schema_Temps_baseschema_temps ()
 Renvoie le schema en temps associe a l'equation.
const Schema_Temps_baseschema_temps () const
 Renvoie le schema en temps associe a l'equation.
virtual void associer_sch_tps_base (const Schema_Temps_base &)
 S'associe au schema_en_temps.
virtual void associer_domaine_dis (const Domaine_dis_base &)
 Associe le domaine discretise a l'equation.
const Discretisation_basediscretisation () const
 Renvoie la discretisation associee a l'equation.
virtual Domaine_Cl_dis_basedomaine_Cl_dis ()
 Renvoie le domaine des conditions aux limite discretisee associee a l'equation.
virtual const Domaine_Cl_dis_basedomaine_Cl_dis () const
 Renvoie le domaine des conditions aux limite discretisee associee a l'equation.
Domaine_dis_basedomaine_dis ()
 Renvoie le domaine discretise associe a l'equation.
const Domaine_dis_basedomaine_dis () const
 Renvoie le domaine discretise associe a l'equation.
const Nomle_nom () const override
 Renvoie le nom de l'equation.
DoubleVect & get_residu ()
DoubleVect & residu_initial ()
void initialise_residu (int=0)
virtual void dimensionner_matrice (Matrice_Morse &mat_morse)
virtual void assembler (Matrice_Morse &mat_morse, const DoubleTab &present, DoubleTab &secmem)
virtual void modifier_pour_Cl (Matrice_Morse &mat_morse, DoubleTab &secmem) const
virtual void assembler_avec_inertie (Matrice_Morse &mat_morse, const DoubleTab &present, DoubleTab &secmem)
virtual void dimensionner_termes_croises (Matrice_Morse &matrice, const Probleme_base &autre_pb, int nl, int nc)
virtual void ajouter_termes_croises (const DoubleTab &inco, const Probleme_base &autre_pb, const DoubleTab &autre_inco, DoubleTab &resu) const
virtual void contribuer_termes_croises (const DoubleTab &inco, const Probleme_base &autre_pb, const DoubleTab &autre_inco, Matrice_Morse &matrice) const
virtual double get_time_factor () const
virtual void assembler_blocs_avec_inertie (matrices_t matrices, DoubleTab &secmem, const tabs_t &semi_impl={})
Champ_Inc_basechamp_conserve () const
int has_champ_conserve () const
void init_champ_conserve () const
virtual std::pair< std::string, fonc_calc_t > get_fonc_champ_conserve () const
virtual Champ_Inc_basechamp_convecte () const
virtual int has_champ_convecte () const
virtual void init_champ_convecte () const
virtual void mettre_a_jour_champs_conserves (double temps, int reset=0)
bool has_champ (const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
virtual void verifie_ch_init_nb_comp (const Champ_Inc_base &ch_ref, const int nb_comp) const
 Verification du nombre de composantes lues pour la specification d un champ.
virtual void verifie_ch_init_nb_comp_cl (const Champ_Inc_base &ch_ref, const int nb_comp, const Cond_lim_base &cl) const
DoubleTab & derivee_en_temps_conv (DoubleTab &, const DoubleTab &)
 Add convection term In: solution is the unknown I.
void Gradient_conjugue_diff_impl (DoubleTrav &secmem, DoubleTab &solution)
void Gradient_conjugue_diff_impl (DoubleTrav &secmem, DoubleTab &solution, const DoubleTab &terme_mul)
 OWN_PTR (Parametre_equation_base) &parametre_equation()
const OWN_PTR (Parametre_equation_base) &parametre_equation() const
virtual int equation_non_resolue () const
int disable_equation_residual () const
virtual const Champ_Inc_basederivee_en_temps () const
virtual Champ_Inc_basederivee_en_temps ()
void set_calculate_time_derivative (int i)
int calculate_time_derivative () const
void set_residuals (const DoubleTab &residual)
virtual bool positive_unkown ()
void add_champs_compris (const Champ_base &ch)
void set_diffusion_multi_scalaire (bool flg=true)
const bool & diffusion_multi_scalaire () const
public_for_cuda void Gradient_conjugue_diff_impl (DoubleTrav &secmem, DoubleTab &solution, int size_terme_mul, const DoubleTab &term_mul)
 Solve: (1/dt + M-1*L)*dI = M-1 * secmem with a Conjugate Gradient matrix-free algorithm by default.
Public Member Functions inherited from Champs_compris_interface
virtual ~Champs_compris_interface ()
virtual bool has_champ (const Motcle &nom, OBS_PTR(Champ_base)&ref_champ) const =0
Public Member Functions inherited from Objet_U
 ~Objet_U () override
 Destructeur, supprime l'objet de la liste d'objets enregistres dans "memoire".
int numero () const
 Renvoie l'indice de l'objet dans Memoire::data.
virtual int duplique () const =0
virtual SortieprintOn (Sortie &) const
 Ecriture de l'objet sur un flot de sortie Methode a surcharger.
virtual EntreereadOn (Entree &)
 Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual unsigned taille_memoire () const =0
virtual int est_egal_a (const Objet_U &) const
 Renvoie 1 si l'objet x et *this sont une seule et meme instance (meme adresse en memoire).
int get_object_id () const
 Renvoie l'identifiant unique de l'objet object_id_.
virtual const Type_infoget_info () const
 Donne des informations sur le type de l'Objet_U.
const Nomque_suis_je () const
 renvoie la chaine identifiant la classe.
const char * le_type () const
 Donne le nom du type de l'Objet_U.
virtual int change_num (const int *const)
 Change le numero interne de l'Objet_U.
virtual int associer_ (Objet_U &)
 Associe l'Objet_U a un autre Objet_U Methode virtuelle a surcharger.
const Interpreteinterprete () const
Interpreteinterprete ()
Public Member Functions inherited from Process
virtual ~Process ()

Protected Member Functions

void discretiser_assembleur_pression () override
 Methode surchargee de Navier_Stokes_std, appelee par Navier_Stokes_std::discretiser().
void associer_milieu_base (const Milieu_base &fluide) override
virtual const Probleme_FT_Disc_genprobleme_ft () const
virtual Probleme_FT_Disc_genprobleme_ft ()
virtual void calculer_champ_forces_superficielles (const Maillage_FT_Disc &maillage, const Champ_base &gradient_indicatrice, Champ_base &potentiel_elements, Champ_base &potentiel_faces, Champ_base &champ)
 Calcul des forces de tension superficielles (F_sigma) et de la partie a rotationnel non nul de la gravite (G_rot) (si GRAVITE_GRAD_I) :
virtual void calculer_gradient_indicatrice (const Champ_base &indicatrice, const DoubleTab &distance_interface_sommets, Champ_base &gradient_i)
 Calcul du gradient de l'indicatrice.
void set_is_solid_particle (const bool &is_solid_particle)
void set_id_fluid_phase (const int &id_fluid_phase)
void compute_eulerian_field_contact_forces (const Maillage_FT_Disc &mesh, const Champ_base &field_volumic_phase_indicator_function)
void eulerian_discretization_contact_forces (const DoubleTab &volumic_phase_indicator_function, const DoubleTab &interlaced_volumes, const DoubleTab &eu)
 OBS_PTR (Probleme_FT_Disc_gen) probleme_ft_
 OWN_PTR (Champ_Fonc_base) champ_rho_elem_
 OWN_PTR (Champ_Fonc_base) champ_rho_faces_
 OWN_PTR (Champ_Don_base) champ_mu_
 OWN_PTR (Champ_Don_base) champ_nu_
 OWN_PTR (Champ_Fonc_base) particles_eulerian_id_number_post_
 OWN_PTR (Champ_Fonc_base) velocity_field_Stokes_th_
 OWN_PTR (Champ_Fonc_base) pressure_field_Stokes_th_
Protected Member Functions inherited from Navier_Stokes_Turbulent
Entreelire_op_diff_turbulent (Entree &is)
 OWN_PTR (Modele_turbulence_hyd_base) le_modele_turbulence
Protected Member Functions inherited from Navier_Stokes_std
virtual void modify_initial_variable ()
virtual void modify_initial_gradP (DoubleTrav &)
 OBS_PTR (Fluide_base) le_fluide
 OWN_PTR (Champ_Inc_base) la_vitesse
 OWN_PTR (Champ_Fonc_base) la_vorticite
 OWN_PTR (Champ_Fonc_base) distance_paroi_globale
 OWN_PTR (Assembleur_base) assembleur_pression_
 OWN_PTR (Traitement_particulier_NS_base) le_traitement_particulier
void uzawa (const DoubleTab &, const Matrice_Base &, SolveurSys &, DoubleTab &, DoubleTab &)
Protected Member Functions inherited from Equation_base
 OWN_PTR (Solveur_Masse_base) solveur_masse
 OBS_PTR (Schema_Temps_base) le_schema_en_temps
 OBS_PTR (Domaine_dis_base) le_dom_dis
 OWN_PTR (Domaine_Cl_dis_base) le_dom_Cl_dis
 OBS_PTR (Probleme_base) mon_probleme
virtual Entreelire_sources (Entree &)
 Lecture des termes sources dans un flot d'entree.
virtual Entreelire_cl (Entree &)
 Lecture des conditions limites sur un flot d'entree.
virtual void lire ()
 OWN_PTR (Parametre_equation_base) parametre_equation_
 LIST (RefObjU) liste_modeles_
 OWN_PTR (Champ_Inc_base) champ_conserve_
 OWN_PTR (Champ_Inc_base) champ_convecte_
 OWN_PTR (Champ_Inc_base) derivee_en_temps_
Protected Member Functions inherited from Objet_U
 Objet_U ()
 Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_), et enregistre l'objet en "memoire".
 Objet_U (const Objet_U &)
 Constructeur par copie.
const Objet_Uoperator= (const Objet_U &)
 Operateur= : ne fait rien (on conserve le numero et l'identifiant).

Protected Attributes

bool is_solid_particle_ =false
int id_fluid_phase_ =1
IntTab particles_eulerian_id_number_
Protected Attributes inherited from Navier_Stokes_std
 la_pression
 divergence_U
 gradient_P
 la_pression_en_pa
 grad_u
 critere_Q
 pression_hydrostatique_
 combinaison_champ
 y_plus
 Reynolds_maille
 Courant_maille
 Taux_cisaillement
Operateur_Conv terme_convectif
Operateur_Diff terme_diffusif
Operateur_Div divergence
Operateur_Grad gradient
Matrice matrice_pression_
SolveurSys solveur_pression_
int projection_initiale
double dt_projection
double seuil_projection
double seuil_uzawa
double max_div_U
double seuil_divU
double raison_seuil_divU
double cumulative_
Nom chaine_champ_combi
int methode_calcul_pression_initiale_
bool postraiter_gradient_pression_sans_masse_ = false
int div_u_nul_et_non_dsurdt_divu_
Protected Attributes inherited from Equation_base
Nom nom_
Sources les_sources
DoubleList dt_op_bak
int sys_invariant_
int implicite_
bool has_time_factor_
Champs_compris champs_compris_
Champs_Fonc list_champ_combi
Matrice_Morse matrice_stockee
int matrice_init
int calculate_time_derivative_
bool diffusion_multi_scalaire_ = false

Friends

class Post_Processing_Hydrodynamic_Forces

Additional Inherited Members

Static Public Member Functions inherited from Equation_base
static void calculer_champ_conserve (const Objet_U &obj, DoubleTab &val, DoubleTab &bval, tabs_t &deriv)
Static Public Member Functions inherited from Objet_U
static const Nomnom_du_cas ()
 Renvoie une reference constante vers le nom du cas.
static Nomget_set_nom_du_cas ()
 Renvoie une reference non constante vers le nom du cas (pour pouvoir le modifier).
static const Type_infoinfo ()
 Donne des informations sur le type de l'Objet_U.
static const Objet_Uself_cast (const Objet_U &)
 methode ajoutee pour caster en python
static Objet_Uself_cast (Objet_U &)
Static Public Member Functions inherited from Process
static int me ()
 renvoie mon rang dans le groupe de communication courant.
static int nproc ()
 renvoie le nombre de processeurs dans le groupe courant Voir Comm_Group::nproc() et PE_Groups::current_group()
static bool is_parallel ()
static void exit (int exit_code=-1)
 Routine de sortie de TRUST dans une region Kokkos.
static double mp_sum (double)
 Calcule la somme de x sur tous les processeurs du groupe courant.
static float mp_sum (float)
static trustIdType mp_sum (trustIdType)
 Calcule la somme de x sur tous les processeurs du groupe courant.
static double mp_max (double)
static double mp_min (double)
static int mp_max (int)
 renvoie le plus grand int i sur l'ensemble des processeurs du groupe courant.
static int mp_min (int)
 renvoie le plus petit int i sur l'ensemble des processeurs du groupe courant.
static double mp_sum_as_double (int v)
static trustIdType mppartial_sum (trustIdType i)
 Calul de la somme partielle de i sur les processeurs 0 a me()-1 (renvoie 0 sur le processeur 0).
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2)
 C++14 compatible mp_sum_for_each: combine multiple mp_sum calls into one collective operation Usage: mp_sum_for_each(a, b); mp_sum_for_each(a, b, c); mp_sum_for_each(a, b, c, d); mp_sum_for_each(a, b, c, d, e); All arguments must be of the same type (double or int) and are modified in place. Supports 2-5 parameters.
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2)
 C++14 compatible mp_max_for_each: combine multiple mp_max calls into one collective operation.
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2)
 C++14 compatible mp_min_for_each: combine multiple mp_min calls into one collective operation.
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename _TYPE_>
static void mp_sum_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_max_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_min_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
static bool mp_and (bool)
 Calcule le 'et' logique de b sur tous les processeurs du groupe courant.
static bool mp_or (bool)
static int check_int_overflow (trustIdType)
static int je_suis_maitre ()
 renvoie 1 si on est sur le processeur maitre du groupe courant (c'est a dire me() == 0), 0 sinon.
static KOKKOS_INLINE_FUNCTION void Kokkos_exit (const char *)
 Routine de sortie de TRUST dans une region Kokkos.
static int node_master ()
 renvoie 1 si on est sur le processeur maitre du noeud numa, 0 sinon.
static void exit (const Nom &message, int exit_code=-1)
static bool is_sequential ()
static void barrier ()
 Synchronise tous les processeurs du groupe courant (attend que tous les processeurs soient arrives a la barriere).
static void abort ()
 Routine de sortie de Trio-U sur une erreur abort().
static SortieJournal (int message_level=0)
 Renvoie un objet statique de type Sortie qui sert de journal d'evenements.
static double ram_processeur ()
static void imprimer_ram_totale (int all_process=0)
static bool force_single_file (const int ranks, const Nom &filename)
Public Attributes inherited from Equation_base
Matrice_Morse_Diag diag_
Static Public Attributes inherited from Objet_U
static double precision_geom = 1e-10
static constexpr bool HAS_POINTER = false
static int dimension =0
static int format_precision_geom =11
static int axi =0
static int bidim_axi =0
static int DEACTIVATE_SIGINT_CATCH =0
static Type_info info_obj
static bool disable_TU =false
 Flag to disable or not the writing of the .TU files.
static bool stat_per_proc_perf_log =false
 Flag to enable the writing of the statistics detailed per processor in _csv.TU file.
Static Public Attributes inherited from Process
static int exception_sur_exit =0
static int multiple_files =5120

Detailed Description

Definition at line 30 of file Navier_Stokes_FT_Disc.h.

Member Function Documentation

◆ associer_milieu_base()

void Navier_Stokes_FT_Disc::associer_milieu_base ( const Milieu_base & fluide)
overrideprotectedvirtual

Implements Equation_base.

Definition at line 661 of file Navier_Stokes_FT_Disc.cpp.

◆ associer_pb_base()

void Navier_Stokes_FT_Disc::associer_pb_base ( const Probleme_base & pb)
overridevirtual

S'associe au Probleme passe en parametre.

Associe egalement les sources, les operateurs et le solveur de masse a l'equation.

Parameters
(Probleme_base&pb) le probleme auquel l'equation doit s'associer

Reimplemented from Equation_base.

Definition at line 634 of file Navier_Stokes_FT_Disc.cpp.

◆ calculer_champ_forces_superficielles()

void Navier_Stokes_FT_Disc::calculer_champ_forces_superficielles ( const Maillage_FT_Disc & maillage,
const Champ_base & gradient_indicatrice,
Champ_base & potentiel_elements,
Champ_base & potentiel_faces,
Champ_base & champ )
protectedvirtual

Calcul des forces de tension superficielles (F_sigma) et de la partie a rotationnel non nul de la gravite (G_rot) (si GRAVITE_GRAD_I) :

F_sigma = INTEGRALE sur le volume de controle ( sigma_aux_faces * courbure_aux_faces * gradient(indicatrice)

  • gradient_sigma ) G_rot = INTEGRALE sur le volume de controle ( phi * gradient(rho) ) (avec phi = potentiel de pesanteur)
Parameters
(gradient_indicatrice)le gradient de l'indicatrice issu de l'operateur "gradient", donc homogene a l'integrale du gradient sur les volumes de controle de la vitesse.
(potentiel_faces)un champ aux faces a une composante, ou on stocke le "potentiel aux faces"
(champ)le champ aux faces (meme discretisation que la vitesse) ou on stocke le terme source des forces superficielles.

Definition at line 1098 of file Navier_Stokes_FT_Disc.cpp.

◆ calculer_delta_u_interface()

void Navier_Stokes_FT_Disc::calculer_delta_u_interface ( Champ_base & champ_u0,
int phase_pilote,
int ordre,
const bool future_or_past = false )

Calcul du saut de vitesse a l'interface du au changement de phase.

phase_pilote = -1: u-u0 = champ de vitesse de deplacement de l'interface phase_pilote = 0 : u+u0 = champ de vitesse de la phase 0 phase_pilote = 1 : u+u0 = champ de vitesse de la phase 1 ordre = 0 : pas de prise en compte de la correction en courbure ordre = 1 : prise en compte de la correction en courbure a l'ordre 1 ordre = 2 : prise en compte de la correction en courbure a l'ordre 2

Definition at line 1663 of file Navier_Stokes_FT_Disc.cpp.

◆ calculer_dI_dt()

void Navier_Stokes_FT_Disc::calculer_dI_dt ( DoubleVect & dI_dt,
const DoubleTab & tab_vitesse )
virtual

Definition at line 2504 of file Navier_Stokes_FT_Disc.cpp.

◆ calculer_div_normale_interface()

const Champ_base & Navier_Stokes_FT_Disc::calculer_div_normale_interface ( )
virtual

Definition at line 4191 of file Navier_Stokes_FT_Disc.cpp.

◆ calculer_gradient_indicatrice()

void Navier_Stokes_FT_Disc::calculer_gradient_indicatrice ( const Champ_base & indicatrice,
const DoubleTab & distance_interface_sommets,
Champ_base & gradient_i )
protectedvirtual

Calcul du gradient de l'indicatrice.

Ce gradient est utilise pour calculer le second membre de l'equation de qdm, contenant les termes de tension de surface. En VEF, on commence par creer un champ P1B a partir du champ P0 et on calcule le gradient. Design de classe a revoir pour separer VDF et VEF...

Parametre : indicatrice Signification : un champ aux elements (l'espace virtuel doit etre a jour) Parametre : gradient_i Signification : un champ discretise comme la vitesse dans lequel on met gradient(indicatrice).

Definition at line 1416 of file Navier_Stokes_FT_Disc.cpp.

◆ calculer_la_pression_en_pa()

void Navier_Stokes_FT_Disc::calculer_la_pression_en_pa ( )
overridevirtual

In Front Tracking, pression is in Pa and so pression_pa field <=> pression field.

Reimplemented from Navier_Stokes_std.

Definition at line 4160 of file Navier_Stokes_FT_Disc.cpp.

◆ champ_rho_faces()

const Champ_Fonc_base & Navier_Stokes_FT_Disc::champ_rho_faces ( ) const

Definition at line 4231 of file Navier_Stokes_FT_Disc.cpp.

◆ compute_boussinesq_additional_gravity()

void Navier_Stokes_FT_Disc::compute_boussinesq_additional_gravity ( const Convection_Diffusion_Temperature_FT_Disc & eq,
const Fluide_Diphasique & fluide_diphasique,
const IntTab & face_voisins,
const DoubleVect & volumes_entrelaces,
const IntVect & orientation,
const DoubleTab & indicatrice,
const ArrOfDouble & g,
DoubleTab & gravite_face ) const

Definition at line 3083 of file Navier_Stokes_FT_Disc.cpp.

◆ compute_eulerian_field_contact_forces()

void Navier_Stokes_FT_Disc::compute_eulerian_field_contact_forces ( const Maillage_FT_Disc & mesh,
const Champ_base & field_volumic_phase_indicator_function )
protected

Definition at line 4323 of file Navier_Stokes_FT_Disc.cpp.

◆ compute_particles_eulerian_id_number()

void Navier_Stokes_FT_Disc::compute_particles_eulerian_id_number ( const OWN_PTR(Collision_Model_FT_base)& collision_model_ptr)

Definition at line 4256 of file Navier_Stokes_FT_Disc.cpp.

◆ correct_at_exit_bad_gradient()

void Navier_Stokes_FT_Disc::correct_at_exit_bad_gradient ( DoubleTab & u0) const

Definition at line 1584 of file Navier_Stokes_FT_Disc.cpp.

◆ data_a_sauvegarder()

std::vector< YAML_data > Navier_Stokes_FT_Disc::data_a_sauvegarder ( ) const
overridevirtual

for PDI IO: retrieve name, type and dimensions of the fields to save/restore

Reimplemented from Equation_base.

Definition at line 227 of file Navier_Stokes_FT_Disc.cpp.

◆ derivee_en_temps_inco()

DoubleTab & Navier_Stokes_FT_Disc::derivee_en_temps_inco ( DoubleTab & vpoint)
overridevirtual

Calcul de la derivee en temps de la vitesse.

Reimplemented from Equation_base.

Definition at line 3126 of file Navier_Stokes_FT_Disc.cpp.

◆ diffusivite_pour_transport()

const Champ_Don_base & Navier_Stokes_FT_Disc::diffusivite_pour_transport ( ) const
overridevirtual

Reimplemented from Navier_Stokes_std.

Definition at line 629 of file Navier_Stokes_FT_Disc.cpp.

◆ discretiser()

void Navier_Stokes_FT_Disc::discretiser ( )
overridevirtual

Discretisation des champs utilises dans cette equation.

Fonction appelee par Probleme_base::discretiser. B. Mathieu : a titre experimental, au lieu de dupliquer les noms des champs ici et dans "a_pour_champ_Fonc", on stocke les champs dans une liste. (voir a_pour_champ_fonc).

Reimplemented from Equation_base.

Definition at line 693 of file Navier_Stokes_FT_Disc.cpp.

◆ discretiser_assembleur_pression()

void Navier_Stokes_FT_Disc::discretiser_assembleur_pression ( )
overrideprotectedvirtual

Methode surchargee de Navier_Stokes_std, appelee par Navier_Stokes_std::discretiser().

L'assembleur pression est particulier pour le front-tracking en VEF (en attendant qu'on factorise tous ces assembleurs pression)

Reimplemented from Navier_Stokes_std.

Definition at line 831 of file Navier_Stokes_FT_Disc.cpp.

◆ eulerian_discretization_contact_forces()

void Navier_Stokes_FT_Disc::eulerian_discretization_contact_forces ( const DoubleTab & volumic_phase_indicator_function,
const DoubleTab & interlaced_volumes,
const DoubleTab & eu )
protected

◆ fluide_diphasique()

const Fluide_Diphasique & Navier_Stokes_FT_Disc::fluide_diphasique ( ) const
virtual

Definition at line 647 of file Navier_Stokes_FT_Disc.cpp.

◆ get_delta_vitesse_interface()

const Champ_base * Navier_Stokes_FT_Disc::get_delta_vitesse_interface ( ) const
virtual

Si le champ de vitesse est discontinu (calcul avec changement de phase), renvoie un pointeur vers le champ delta_v de "discontinuite", tel que.

inconnue - delta_v = vitesse de deplacement des interfaces (voir Transport_Interfaces_FT_Disc::deplacer_maillage_v_fluide()) Si pas de changement de phase, renvoie un pointeur nul.

Definition at line 4181 of file Navier_Stokes_FT_Disc.cpp.

◆ get_interfacial_area()

const DoubleTab & Navier_Stokes_FT_Disc::get_interfacial_area ( ) const

Definition at line 1036 of file Navier_Stokes_FT_Disc.cpp.

◆ get_is_penalized()

const int & Navier_Stokes_FT_Disc::get_is_penalized ( ) const

Definition at line 1021 of file Navier_Stokes_FT_Disc.cpp.

◆ get_is_solid_particle()

bool Navier_Stokes_FT_Disc::get_is_solid_particle ( ) const
inline

Definition at line 78 of file Navier_Stokes_FT_Disc.h.

◆ get_mpoint()

const DoubleTab & Navier_Stokes_FT_Disc::get_mpoint ( ) const

Definition at line 1046 of file Navier_Stokes_FT_Disc.cpp.

◆ get_new_mass_source()

bool Navier_Stokes_FT_Disc::get_new_mass_source ( ) const

Definition at line 1031 of file Navier_Stokes_FT_Disc.cpp.

◆ get_particles_eulerian_id_number()

const IntTab & Navier_Stokes_FT_Disc::get_particles_eulerian_id_number ( ) const
inline

Definition at line 79 of file Navier_Stokes_FT_Disc.h.

◆ get_set_interfacial_area()

DoubleTab & Navier_Stokes_FT_Disc::get_set_interfacial_area ( )

Definition at line 1041 of file Navier_Stokes_FT_Disc.cpp.

◆ get_set_mpoint()

DoubleTab & Navier_Stokes_FT_Disc::get_set_mpoint ( )

Definition at line 1051 of file Navier_Stokes_FT_Disc.cpp.

◆ get_set_pressure_field_Stokes_th()

DoubleTab & Navier_Stokes_FT_Disc::get_set_pressure_field_Stokes_th ( )
inline

Definition at line 85 of file Navier_Stokes_FT_Disc.h.

◆ get_set_velocity_field_Stokes_th()

DoubleTab & Navier_Stokes_FT_Disc::get_set_velocity_field_Stokes_th ( )
inline

Definition at line 84 of file Navier_Stokes_FT_Disc.h.

◆ get_solveur_pression()

const SolveurSys & Navier_Stokes_FT_Disc::get_solveur_pression ( ) const

Definition at line 1078 of file Navier_Stokes_FT_Disc.cpp.

◆ is_shift_secmem2_activated()

bool Navier_Stokes_FT_Disc::is_shift_secmem2_activated ( ) const

Definition at line 1026 of file Navier_Stokes_FT_Disc.cpp.

◆ is_terme_gravite_rhog()

int Navier_Stokes_FT_Disc::is_terme_gravite_rhog ( ) const

Definition at line 4237 of file Navier_Stokes_FT_Disc.cpp.

◆ lire_motcle_non_standard()

int Navier_Stokes_FT_Disc::lire_motcle_non_standard ( const Motcle & motlu,
Entree & is )
overridevirtual

Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.

Parameters
(Motcle&motlu) le nom du terme a lire
(Entree&is) un flot d'entree
Returns
(int) negative value if the keyword is not understood, otherwise positive value.

Reimplemented from Equation_base.

Definition at line 292 of file Navier_Stokes_FT_Disc.cpp.

◆ mettre_a_jour()

void Navier_Stokes_FT_Disc::mettre_a_jour ( double temps)
overridevirtual

La valeur de l'inconnue sur le pas de temps a ete calculee.

Cette methode avance le present jusqu'au temps passe en parametre. Elle met aussi a jour les proprietes du milieu.

Parameters
(doubletemps) le pas de temps de mise a jour

Reimplemented from Equation_base.

Definition at line 1056 of file Navier_Stokes_FT_Disc.cpp.

◆ mettre_a_jour_physical_properties()

void Navier_Stokes_FT_Disc::mettre_a_jour_physical_properties ( double temps)

Definition at line 865 of file Navier_Stokes_FT_Disc.cpp.

◆ milieu() [1/2]

const Milieu_base & Navier_Stokes_FT_Disc::milieu ( ) const
overridevirtual

Implements Equation_base.

Definition at line 669 of file Navier_Stokes_FT_Disc.cpp.

◆ milieu() [2/2]

Milieu_base & Navier_Stokes_FT_Disc::milieu ( )
overridevirtual

Implements Equation_base.

Definition at line 677 of file Navier_Stokes_FT_Disc.cpp.

◆ OBS_PTR()

Navier_Stokes_FT_Disc::OBS_PTR ( Probleme_FT_Disc_gen )
protected

◆ OWN_PTR() [1/7]

Navier_Stokes_FT_Disc::OWN_PTR ( Champ_Don_base )
protected

◆ OWN_PTR() [2/7]

Navier_Stokes_FT_Disc::OWN_PTR ( Champ_Don_base )
protected

◆ OWN_PTR() [3/7]

Navier_Stokes_FT_Disc::OWN_PTR ( Champ_Fonc_base )
protected

◆ OWN_PTR() [4/7]

Navier_Stokes_FT_Disc::OWN_PTR ( Champ_Fonc_base )
protected

◆ OWN_PTR() [5/7]

Navier_Stokes_FT_Disc::OWN_PTR ( Champ_Fonc_base )
protected

◆ OWN_PTR() [6/7]

Navier_Stokes_FT_Disc::OWN_PTR ( Champ_Fonc_base )
protected

◆ OWN_PTR() [7/7]

Navier_Stokes_FT_Disc::OWN_PTR ( Champ_Fonc_base )
protected

◆ preparer_calcul()

int Navier_Stokes_FT_Disc::preparer_calcul ( )
overridevirtual

methode appelee par Probleme_base::preparer_calcul()

Reimplemented from Equation_base.

Definition at line 897 of file Navier_Stokes_FT_Disc.cpp.

◆ probleme_ft() [1/2]

Probleme_FT_Disc_gen & Navier_Stokes_FT_Disc::probleme_ft ( )
protectedvirtual

Definition at line 4152 of file Navier_Stokes_FT_Disc.cpp.

◆ probleme_ft() [2/2]

const Probleme_FT_Disc_gen & Navier_Stokes_FT_Disc::probleme_ft ( ) const
protectedvirtual

Definition at line 4147 of file Navier_Stokes_FT_Disc.cpp.

◆ projeter()

void Navier_Stokes_FT_Disc::projeter ( )
overridevirtual

methode appelee par Navier_Stokes_std::preparer_calcul.

..

Reimplemented from Navier_Stokes_std.

Definition at line 858 of file Navier_Stokes_FT_Disc.cpp.

◆ reprendre()

int Navier_Stokes_FT_Disc::reprendre ( Entree & fich)
overridevirtual

On reprend l'inconnue a partir d'un flot d'entree.

[ON CHERCHE L'INCONNUE PAR SON NOM] [ON LIT L'INCONNUE] Voir Champ_Inc::reprendre(Entree&)

Parameters
(Entree&fich) le flot d'entree (fichier) a lire
Returns
(int) renvoie toujours 1
Exceptions
erreurde reprise, fin de fichier atteinte sans trouver l'inconnue

Reimplemented from Equation_base.

Definition at line 247 of file Navier_Stokes_FT_Disc.cpp.

◆ sauvegarder()

int Navier_Stokes_FT_Disc::sauvegarder ( Sortie & os) const
overridevirtual

On sauvegarde l'inconnue, puis les sources sur un flot de sortie.

Parameters
(Sortie&os)
Returns
(int) le code de retour de Champ_Inc::sauvegarder()

Reimplemented from Equation_base.

Definition at line 238 of file Navier_Stokes_FT_Disc.cpp.

◆ set_id_fluid_phase()

void Navier_Stokes_FT_Disc::set_id_fluid_phase ( const int & id_fluid_phase)
inlineprotected

Definition at line 102 of file Navier_Stokes_FT_Disc.h.

◆ set_is_solid_particle()

void Navier_Stokes_FT_Disc::set_is_solid_particle ( const bool & is_solid_particle)
inlineprotected

Definition at line 101 of file Navier_Stokes_FT_Disc.h.

◆ set_param()

void Navier_Stokes_FT_Disc::set_param ( Param & titi) const
overridevirtual

Reimplemented from Equation_base.

Definition at line 267 of file Navier_Stokes_FT_Disc.cpp.

◆ shift_secmem2()

void Navier_Stokes_FT_Disc::shift_secmem2 ( DoubleTab & shift_secmem2)

{ if (secmem2_loc.get_md_vector().non_nul()) { statistiques().begin_count(echange_vect_counter_); MD_Vector_renumber::echange_espace_virtuel_(secmem2_loc.get_md_vector(), secmem2_loc, Echange_EV_Options(Echange_EV_Options::SUM)); statistiques().end_count(echange_vect_counter_); } else Cerr << "Warning: A call to ::echange_espace_virtuel() is done on a non-distributed vector." << finl; /Process::exit(); }

Definition at line 2074 of file Navier_Stokes_FT_Disc.cpp.

◆ swap_particles_eulerian_id_number()

void Navier_Stokes_FT_Disc::swap_particles_eulerian_id_number ( const ArrOfInt & gravity_center_elem)

Definition at line 4286 of file Navier_Stokes_FT_Disc.cpp.

◆ Post_Processing_Hydrodynamic_Forces

Definition at line 34 of file Navier_Stokes_FT_Disc.h.

Member Data Documentation

◆ id_fluid_phase_

int Navier_Stokes_FT_Disc::id_fluid_phase_ =1
protected

Definition at line 122 of file Navier_Stokes_FT_Disc.h.

◆ is_solid_particle_

bool Navier_Stokes_FT_Disc::is_solid_particle_ =false
protected

Definition at line 121 of file Navier_Stokes_FT_Disc.h.

◆ particles_eulerian_id_number_

IntTab Navier_Stokes_FT_Disc::particles_eulerian_id_number_
protected

Definition at line 123 of file Navier_Stokes_FT_Disc.h.


The documentation for this class was generated from the following files:
  • /home/docs/checkouts/readthedocs.org/user_builds/triocfd-documentation/checkouts/next/src/Multiphase/Front_tracking_discontinu/VDF_VEF/Equations/Navier_Stokes_FT_Disc.h
  • /home/docs/checkouts/readthedocs.org/user_builds/triocfd-documentation/checkouts/next/src/Multiphase/Front_tracking_discontinu/VDF_VEF/Equations/Navier_Stokes_FT_Disc.cpp