16#ifndef Probleme_FTD_IJK_base_included
17#define Probleme_FTD_IJK_base_included
19#include <Fluide_Diphasique_IJK.h>
20#include <Schema_Temps_IJK_base.h>
21#include <Navier_Stokes_FTD_IJK.h>
22#include <Probleme_FT_Disc_gen.h>
23#include <IJK_Interfaces.h>
24#include <IJK_Thermals.h>
25#include <Domaine_IJK.h>
26#include <Postprocessing_IJK.h>
27#include <Champs_compris_IJK.h>
28#include <Champs_compris_IJK_interface.h>
74 void sauver()
const override;
126 virtual void deplacer_interfaces(
const double timestep,
const int rk_step, ArrOfDouble& var_volume_par_bulle,
const int first_step_interface_smoothing);
127 virtual void deplacer_interfaces_rk3(
const double timestep,
const int rk_step, ArrOfDouble& var_volume_par_bulle);
141 return refprobleme_ft_disc_.valeur();
236 void rk3_sub_step(
const int rk_step,
const double total_timestep,
const double fractionnal_timestep,
const double time);
classe Champ_base Cette classe est la base de la hierarchie des champs.
Similar to Champs_compris_interface but for IJK scalar and vector fields.
std::tuple< Motcle, Entity, Nature_du_champ, bool > FieldInfo_t
classe Discretisation_base Cette classe represente un schema de discretisation en espace,...
This class encapsulates all the information related to the eulerian mesh for TrioIJK.
Class defining operators and methods for all reading operation in an input flow (file,...
const Remaillage_FT_IJK & remaillage_ft_ijk() const
const Maillage_FT_IJK & maillage_ft_ijk() const
Une chaine de caractere (Nom) en majuscules.
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
Helper class to factorize the readOn method of Objet_U classes.
double t_debut_statistiques() const
const Probleme_base & probleme(const Domaine_IJK &dom) const
static void Fill_postprocessable_fields()
void get_noms_champs_postraitables(Noms &noms, Option opt) const override
void initialise_ijk_fields()
Fluide_Diphasique_IJK & milieu_ijk()
Domaine_IJK & domaine_ijk()
void calculer_rho_mu_indicatrice(const bool parcourir=true)
const Domaine_IJK & domaine_ijk() const
IJK_Thermals & get_ijk_thermals()
Postprocessing_IJK & get_post()
void completer() override
Complete les equations associees au probleme.
void typer_lire_milieu(Entree &is) override
int new_treatment() const
void update_pre_remeshing_indicator_field()
int thermal_probes_ghost_cells_
friend class Statistiques_dns_ijk_FT
bool has_champ_vectoriel(const Motcle &nom) const override
virtual void set_param(Param ¶m) const override
int get_thermal_probes_ghost_cells() const
void mettre_a_jour(double temps) override
Effectue une mise a jour en temps du probleme.
void reprendre_probleme(const char *fichier_reprise)
const ArrOfDouble_with_ghost & get_delta_z_local() const
void terminate() override
This method is called once at the end, after any other one.
const IJK_Interfaces & get_interface() const
void sauver() const override
Ecriture sur fichier en vue d'une reprise (sauvegarde).
const Maillage_FT_IJK & get_maillage_ft_ijk() const
const IJK_Field_double & get_IJK_field(const Motcle &nom) override
Champs_compris_IJK_interface::FieldInfo_t FieldInfo_t
virtual Cut_cell_FT_Disc * get_cut_cell_disc()
virtual void create_forced_dilation()
void parcourir_maillage()
void initialise_interfaces()
const Nom & nom_sauvegarde() const
bool has_interface() const
int associer_(Objet_U &) override
surcharge Objet_U::associer_(Objet_U& ob) Associe differents objets au probleme en controlant
double presentTime() const override
Returns the present time.
IJK_Interfaces interface_to_remove_later_when_clean_
void update_thermal_properties()
OBS_PTR(Probleme_base) refprobleme_ns_
void resetTime(double time) override
Reset the current time of the Problem to a given value.
friend class Postprocessing_IJK
Domaine_IJK & get_domaine_ft()
const Schema_Temps_IJK_base & schema_temps_ijk() const
const Fluide_Diphasique_IJK & milieu_ijk() const
void euler_time_step(ArrOfDouble &var_volume_par_bulle)
void rk3_sub_step(const int rk_step, const double total_timestep, const double fractionnal_timestep, const double time)
void setStationary(bool flag) override
Tells to the Problem that stationary is reached or not.
OBS_PTR(Domaine_IJK) domaine_ijk_
OBS_PTR(Probleme_base) refprobleme_ft_disc_
const Postprocessing_IJK & get_post() const
void sauvegarder_probleme(const char *fichier_sauvegarde, const int &stop)
void preparer_calcul() override
Prepare le calcul: initialise les parametres du milieu et prepare le calcul de chacune des equations.
friend class IJK_Thermique_cut_cell
void lire_solved_equations(Entree &is) override
IJK_Field_int treatment_count_
void solveTimeStep_Euler(DoubleTrav &)
virtual void update_twice_indicator_field()
virtual void deplacer_interfaces_rk3(const double timestep, const int rk_step, ArrOfDouble &var_volume_par_bulle)
Entree & lire_equations(Entree &is, Motcle &dernier_mot) override
Lecture des equations du probleme.
const IJK_Field_int & treatment_count() const
ArrOfDouble_with_ghost delta_z_local_
bool iterateTimeStep(bool &converged) override
In the case solveTimeStep uses an iterative process, this method executes a single iteration.
IJK_Field_int & treatment_count()
virtual void update_indicator_field()
bool solveTimeStep() override
pour recodage eventuel et appel unifie en python
void update_post_remeshing_indicator_field()
const IJK_Field_vector3_double & get_IJK_field_vector(const Motcle &nom) override
Navier_Stokes_FTD_IJK & eq_ns()
virtual bool updateGivenFields() override
ATTENTION :
void initialize() override
This method is called once at the beginning, before any other one of the interface Problem.
bool initTimeStep(double dt) override
This method allocates and initializes the unknown and given fields for the future time step.
ArrOfDouble_with_ghost & get_delta_z_local()
const Navier_Stokes_FTD_IJK & eq_ns() const
const Domaine_IJK & get_domaine_ft() const
void abortTimeStep() override
Aborts the resolution of the current time step.
const Nom & get_lata_name() const
Schema_Temps_IJK_base & schema_temps_ijk()
const Domaine_IJK & get_domaine() const
void discretiser(Discretisation_base &dis) override
bool has_champ(const Motcle &nom) const override
void validateTimeStep() override
Validates the calculated unknown by moving the present time at the end of the time step.
virtual void deplacer_interfaces(const double timestep, const int rk_step, ArrOfDouble &var_volume_par_bulle, const int first_step_interface_smoothing)
void update_old_intersections()
void solveTimeStep_RK3(DoubleTrav &)
const Remaillage_FT_IJK & get_remaillage_ft_ijk() const
IJK_Interfaces & get_interface()
bool has_thermals() const
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base)&ref_champ) const override
const IJK_Thermals & get_ijk_thermals() const
bool run() override
Cette methode est une sorte de main() du Problem Elle peut etre utilisee si le probleme n'est couple ...
double computeTimeStep(bool &stop) const override
Compute the value the Problem would like for the next time step.
double t_debut_statistiques() const
bool iterateTimeStep_impl(Probleme_base &pb, bool &converged)
classe Probleme_base C'est un Probleme_U qui n'est pas un couplage.
Postraitements les_postraitements_
std::vector< OWN_PTR(Milieu_base)> le_milieu_
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.