16#include <Schema_Euler_explicite.h>
17#include <Schema_Euler_Implicite.h>
18#include <Fluide_Dilatable_base.h>
19#include <Schema_RK_Williamson.h>
20#include <Schema_RK_Rationnel.h>
21#include <Loi_Fermeture_base.h>
22#include <Pb_Dilatable_base.h>
23#include <Probleme_Couple.h>
24#include <Equation_base.h>
25#include <Perf_counters.h>
44 && !sub_type(
RRK2,sch) && !sub_type(
RK2,sch) && !sub_type(
RK3,sch) && !sub_type(
RK4,sch))
46 Cerr <<
"TRUST can't solve a " <<
que_suis_je() <<
" with a " << sch.
que_suis_je() <<
" time scheme." << finl;
52 Cerr <<
"Coupled problem with unique Euler implicit time scheme with " <<
que_suis_je() <<
"fluid are not allowed!" << finl;
53 Cerr <<
"Choose another time scheme or set a time scheme for each of your problems." << finl;
75 le_fluide_->preparer_pas_temps();
90 for (
auto& itr : liste_loi_fermeture_)
108 statistics().begin_count(STD_COUNTERS::update_variables,statistics().get_last_opened_counter_level()+1);
111 statistics().end_count(STD_COUNTERS::update_variables);
114 statistics().begin_count(STD_COUNTERS::update_variables,statistics().get_last_opened_counter_level()+1);
117 le_fluide_->calculer_coeff_T();
120 le_fluide_->calculer_masse_volumique();
123 le_fluide_->Resoudre_EDO_PT();
126 le_fluide_->calculer_masse_volumique();
127 statistics().end_count(STD_COUNTERS::update_variables);
130 statistics().begin_count(STD_COUNTERS::update_variables,statistics().get_last_opened_counter_level()+1);
133 statistics().end_count(STD_COUNTERS::update_variables);
152 le_fluide_->update_pressure_fields(t);
void mettre_a_jour(double temps) override
Performs a time update of the unknown field.
Champ_Inc_base & reculer(int i=1)
Rewinds the current pointer by i time steps, in the list of kept temporal values.
static void set_nom_pb_actuel(const Nom &nom)
virtual int calculer_coeffs_echange(double temps)
Computes the exchange coefficients for thermally coupled problems.
virtual void mettre_a_jour(double temps, Domaine_dis_base &, Probleme_base &)
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Milieu_base & milieu() const =0
virtual const Champ_Inc_base & inconnue() const =0
virtual void mettre_a_jour(double temps)
The value of the unknown at the time step has been calculated.
virtual Domaine_Cl_dis_base & domaine_Cl_dis()
Returns the discretized boundary condition domain associated with the equation.
void nommer(const Nom &) override
Gives a name to the field.
Base class for a dilatable fluid, inheriting from Fluide_base.
void preparer_calcul() override
Prepares the fluid for computation.
void calculer_masse_volumique()
const Nom type_fluide() const
virtual void completer(const Probleme_base &)
Completes the fluid with the unknown fields associated with the problem.
: Base class of closure laws.
virtual void mettre_a_jour(double temps)
This method is called by the problem after mettre_a_jour() of equations and medium.
Milieu_base This class is the base of the (physical) medium hierarchy.
virtual void mettre_a_jour(double temps)
const Nom & que_suis_je() const
Returns the string identifying the class.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
Base class for dilatable fluid problems, factorising what is common to all dilatable problems.
void mettre_a_jour(double temps) override
Performs a time update of the problem.
void associer_sch_tps_base(const Schema_Temps_base &) override
Associates a time scheme with the problem.
bool iterateTimeStep(bool &converged) override
In the case solveTimeStep uses an iterative process, this method executes a single iteration.
bool initTimeStep(double dt) override
This method allocates and initializes the unknown and given fields for the future time step.
virtual void update_pressure_fields(double)
void preparer_calcul() override
Prepares the computation: initializes the medium parameters and prepares the computation of each equa...
void associer_milieu_base(const Milieu_base &) override
Associates a physical medium with the problem equations.
Pb_Fluide_base This class provides a base class for.
const Nom & le_nom() const override
Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual void associer_milieu_base(const Milieu_base &)
Associates a physical medium with the problem equations.
const Domaine & domaine() const
Returns the domain associated with the problem.
virtual void preparer_calcul()
Prepares the computation: initializes the medium parameters and prepares the computation of each equa...
Postraitements les_postraitements_
virtual void associer_sch_tps_base(const Schema_Temps_base &)
Associates a time scheme with the problem.
virtual const Milieu_base & milieu() const
Returns the physical medium associated with the problem (const version).
const Schema_Temps_base & schema_temps() const
Returns the time scheme associated with the problem.
virtual int nombre_d_equations() const =0
virtual const Equation_base & equation(int) const =0
bool initTimeStep(double dt) override
This method allocates and initializes the unknown and given fields for the future time step.
const Domaine_dis_base & domaine_dis() const
Returns the discretized domain associated with the problem (const version).
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
: class RK2 This class represents a second-order Runge-Kutta time scheme, case 1 of Williamson,...
: class RK3 This class represents a third-order Runge-Kutta time scheme, case 7 of Williamson,...
: class RK4 This class represents a degenerate fourth-order Runge-Kutta time scheme (three-point sche...
: class RRK2 This class represents a second-order rational Runge-Kutta scheme:
: class Schema_Euler_explicite This class represents an explicit Euler time scheme: U(n+1) = U(n) + d...
double temps_courant() const
Returns the current time.
double pas_de_temps() const
Returns the current time step (delta_t).
virtual int faire_un_pas_de_temps_eqn_base(Equation_base &)=0
virtual double temps_defaut() const =0
Base class for output streams.