21#include <Schema_Adams_Moulton_base.h>
22#include <Equation_base.h>
23#include <Probleme_base.h>
24#include <Probleme_Couple.h>
25#include <Milieu_base.h>
27#include <communications.h>
28#include <Matrice_Morse.h>
59 eqn.
inconnue().Champ_base::changer_temps(temps);
67 time_derivative = data;
86 double effective_time_step = -1.;
103 correction *= (scaling-1.);
104 secmem += correction;
127 DoubleTab correction(secmem);
144 secmem -= correction;
DoubleTab & futur(int i=1) override
Renvoie les valeurs du champs a l'instant t+i.
DoubleTab & passe(int i=1) override
Renvoie les valeurs du champs a l'instant t-i.
void mettre_a_jour(double temps) override
Effectue une mise a jour en temps du champ inconnue.
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
Class defining operators and methods for all reading operation in an input flow (file,...
classe Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....
void set_calculate_time_derivative(int i)
Solveur_Masse_base & solv_masse()
Renvoie le solveur de masse associe a l'equation.
virtual const Champ_Inc_base & inconnue() const =0
virtual DoubleTab & corriger_derivee_expl(DoubleTab &)
virtual const Champ_Inc_base & derivee_en_temps() const
Classe Matrice_Base Classe de base de la hierarchie des matrices.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
classe Probleme_base C'est un Probleme_U qui n'est pas un couplage.
virtual int nombre_d_equations() const =0
virtual const Equation_base & equation(int) const =0
void modify_equation_parameters(Equation_base &eqn, DoubleTab &stored_parameters) override
void modifier_second_membre_full_impl(const Equation_base &eqn, DoubleTab &secmem) override
virtual void compute_adams_moulton_coefficients(double time_step, const DoubleTab ×) const =0
void add_multi_timestep_data(const Equation_base &eqn, Matrice_Base &mat_morse, DoubleTab &secmem) const override
const DoubleTab & coefficients() const override
void update_time_derivative(Equation_base &eqn, const DoubleTab &data) override
double changer_temps(Equation_base &eqn, const double temps) override
void mettre_a_jour_equation(Equation_base &eqn, const double temps) override
void compute_coefficients(double time_step, const DoubleTab ×) const override
void store_equation_parameters(Equation_base &eqn, DoubleTab &stored_parameters) override
void associer_pb(const Probleme_base &) override
virtual int nb_pas_dt_seuil() const =0
virtual int nb_valeurs_passees() const =0
virtual void associer_pb(const Probleme_base &)
Probleme_base & pb_base()
double pas_de_temps() const
Renvoie le pas de temps (delta_t) courant.
int nb_pas_dt() const
Renvoie le nombre de pas de temps effectues.
virtual Matrice_Base & ajouter_masse(double dt, Matrice_Base &matrice, int penalisation=1) const
virtual DoubleTab & appliquer(DoubleTab &) const
renvoie appliquer_impl(x/coeffient_temporelle) si on a un coefficient temporel sinon renvoie applique...
Classe de base des flux de sortie.